JAL-629 Fixed appending URLs
[jalview.git] / src / jalview / bin / argparser / ArgValue.java
index 019e7c7..36901df 100644 (file)
@@ -3,18 +3,37 @@ package jalview.bin.argparser;
 /**
  * A helper class to keep an index of argument position with argument values
  */
-public class ArgValue
+public class ArgValue implements Comparable<ArgValue>
 {
+  private Arg arg;
+
   private int argIndex;
 
   private String value;
 
   private String id;
 
-  protected ArgValue(String value, int argIndex)
+  private SubVals subVals;
+
+  protected ArgValue(Arg a, SubVals sv, String content, int argIndex)
   {
-    this.value = value;
+    this.arg = a;
+    this.value = content;
     this.argIndex = argIndex;
+    this.subVals = sv == null ? new SubVals("") : sv;
+  }
+
+  protected ArgValue(Arg a, String value, int argIndex)
+  {
+    this.arg = a;
+    this.argIndex = argIndex;
+    this.subVals = new SubVals(value);
+    this.value = getSubVals().getContent();
+  }
+
+  public Arg getArg()
+  {
+    return arg;
   }
 
   public String getValue()
@@ -39,6 +58,24 @@ public class ArgValue
 
   public SubVals getSubVals()
   {
-    return ArgParser.getSubVals(getValue());
+    return subVals;
+  }
+
+  public String getSubVal(String key)
+  {
+    if (subVals == null || !subVals.has(key))
+      return null;
+    return subVals.get(key);
+  }
+
+  protected void putSubVal(String key, String val)
+  {
+    this.subVals.put(key, val);
+  }
+
+  @Override
+  public int compareTo(ArgValue o)
+  {
+    return this.getArgIndex() - o.getArgIndex();
   }
 }
\ No newline at end of file