Merge branch 'develop' into spike/JAL-4047/JAL-4048_columns_in_sequenceID
[jalview.git] / src / jalview / bin / argparser / ArgValue.java
index 1643713..3467f61 100644 (file)
@@ -1,5 +1,8 @@
 package jalview.bin.argparser;
 
+import jalview.bin.argparser.Arg.Opt;
+import jalview.bin.argparser.Arg.Type;
+
 /**
  * A helper class to keep an index of argument position with argument values
  */
@@ -11,26 +14,47 @@ public class ArgValue implements Comparable<ArgValue>
 
   private String value;
 
-  // This id is set by a subVal id= to identify the product of this ArgValue
-  // later. Set but not currently used.
+  /*
+   * Type type is only really used by --help-type
+   */
+  private Type type = null;
+
+  /*
+   * This id is set by a subVal id= to identify the product of this ArgValue
+   * later. Set but not currently used.
+   */
   private String id;
 
   private SubVals subVals;
 
-  protected ArgValue(Arg a, SubVals sv, String content, int argIndex)
+  protected ArgValue(Arg a, SubVals sv, Type type, String content,
+          int argIndex)
   {
     this.arg = a;
     this.value = content;
     this.argIndex = argIndex;
     this.subVals = sv == null ? new SubVals("") : sv;
+    this.setType(type);
   }
 
-  protected ArgValue(Arg a, String value, int argIndex)
+  protected ArgValue(Arg a, Type type, String value, int argIndex)
   {
     this.arg = a;
     this.argIndex = argIndex;
     this.subVals = new SubVals(value);
     this.value = getSubVals().getContent();
+    this.setType(type);
+  }
+
+  protected void setType(Type t)
+  {
+    if (this.getArg().hasOption(Opt.HASTYPE))
+      this.type = t;
+  }
+
+  public Type getType()
+  {
+    return type;
   }
 
   public Arg getArg()
@@ -76,7 +100,7 @@ public class ArgValue implements Comparable<ArgValue>
   }
 
   @Override
-  public int compareTo(ArgValue o)
+  public final int compareTo(ArgValue o)
   {
     return this.getArgIndex() - o.getArgIndex();
   }