Refactor GetEppResourceCommand hierarchy

This refactors the GetEppResourceCommand hierarchy a bit so that instead of
using the type param on the class to do implicit loading (which doesn't
work that well any more for domain applications anyway), we just do the
loading in each child class and rely on the parent class only for printing
and setting common flags.

I did this to make it possible for loadByForeignKey() to have strong typing
(in a future CL), but I think this changes stands on its own merits for
making the logic here more straightforward and actually somewhat shorter.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=134115072
This commit is contained in:
nickfelt 2016-09-23 14:05:22 -07:00 committed by Ben McIlwain
parent 9dde013066
commit c3723bfa2f
8 changed files with 50 additions and 67 deletions

View file

@ -14,16 +14,16 @@
package google.registry.tools;
import static google.registry.model.EppResourceUtils.loadDomainApplication;
import com.beust.jcommander.Parameter;
import com.beust.jcommander.Parameters;
import google.registry.model.domain.DomainApplication;
import google.registry.tools.Command.GtechCommand;
import java.util.List;
/** Command to show a domain application. */
@Parameters(separators = " =", commandDescription = "Show domain application record(s)")
final class GetApplicationCommand extends GetEppResourceCommand<DomainApplication>
implements GtechCommand {
@Parameters(separators = " =", commandDescription = "Show domain application resource(s)")
final class GetApplicationCommand extends GetEppResourceCommand implements GtechCommand {
@Parameter(
description = "Domain application id(s)",
@ -31,9 +31,10 @@ final class GetApplicationCommand extends GetEppResourceCommand<DomainApplicatio
private List<String> mainParameters;
@Override
public void processParameters() {
public void runAndPrint() {
for (String applicationId : mainParameters) {
printResource(applicationId);
printResource(
"Application", applicationId, loadDomainApplication(applicationId, readTimestamp));
}
}
}