0

I have some data that is repeated between multiple commands. How can I deduplicate the common parameters with a class? If I can use a class, I will be able to deduplicate other code as well.

Sample code provided below where common1 and common2 are repeated between my two commands.

public class Job1 {
    @Option(name="-common1",usage="common1")
    public String common1;
    @Option(name="-common2",usage="common2")
    public String common2;
    @Option(name="-somethingDifferent",usage="onlyJob1HasThis")
    public String onlyJob1HasThis;


    public void run() {
        System.out.println("common1=" + common1);
        System.out.println("common2=" + common2);
        System.out.println("onlyJob1HasThis=" + onlyJob1HasThis);
        CommonUtility.doSomethingCommon(common1, common2);
        this.doSomethingDifferent(common1, common2);
    }
}

public class Job1 {
    @Option(name="-common1",usage="common1")
    public String common1;
    @Option(name="-common2",usage="common2")
    public String common2;
    @Option(name="-onlyJob2HasThis",usage="onlyJob2HasThis")
    public String onlyJob2HasThis;

    public void run() {
        System.out.println("common1=" + common1);
        System.out.println("common2=" + common2);
        System.out.println("onlyJob2HasThis=" + onlyJob2HasThis);
        CommonUtility.doSomethingCommon(common1, common2);
        this.doSomethingDifferent(common1, common2);
    }
}
joseph
  • 2,429
  • 1
  • 22
  • 43

1 Answers1

0

You could just summary all repeated ones into one argument with ',' as the splitter. Then, use String.split to parse.

And you could also use StringArrayOptionHandler.class as the handler. Please see Multiple args with arg4j

闫伯元
  • 445
  • 1
  • 4
  • 9