Merge branch 'bug/JAL-4353_cannot_output_multiple_different_structure_images_for_one_...
[jalview.git] / src / jalview / bin / argparser / ArgValue.java
index eab38ca..e7ee1a2 100644 (file)
@@ -34,6 +34,12 @@ public class ArgValue implements Comparable<ArgValue>
 
   private String value;
 
+  private String givenLinkedId = null;
+
+  private String assignedLinkedId = null;
+
+  private boolean setByWildcardLinkedId = false;
+
   /*
    * Type type is only really used by --help-type
    */
@@ -48,22 +54,31 @@ public class ArgValue implements Comparable<ArgValue>
   private SubVals subVals;
 
   protected ArgValue(Arg a, SubVals sv, Type type, String content,
-          int argIndex)
+          int argIndex, boolean setByWildcardLinkedId, String givenLinkedId,
+          String assignedLinkedId)
   {
     this.arg = a;
     this.value = content;
     this.argIndex = argIndex;
     this.subVals = sv == null ? new SubVals("") : sv;
     this.setType(type);
+    this.setByWildcardLinkedId = setByWildcardLinkedId;
+    this.givenLinkedId = givenLinkedId;
+    this.assignedLinkedId = assignedLinkedId;
   }
 
-  protected ArgValue(Arg a, Type type, String value, int argIndex)
+  protected ArgValue(Arg a, Type type, String value, int argIndex,
+          boolean setByWildcardLinkedId, String givenLinkedId,
+          String assignedLinkedId)
   {
     this.arg = a;
     this.argIndex = argIndex;
     this.subVals = new SubVals(value);
     this.value = getSubVals().getContent();
     this.setType(type);
+    this.setByWildcardLinkedId = setByWildcardLinkedId;
+    this.givenLinkedId = givenLinkedId;
+    this.assignedLinkedId = assignedLinkedId;
   }
 
   protected void setType(Type t)
@@ -124,4 +139,37 @@ public class ArgValue implements Comparable<ArgValue>
   {
     return this.getArgIndex() - o.getArgIndex();
   }
+
+  @Override
+  public String toString()
+  {
+    StringBuilder sb = new StringBuilder();
+    sb.append(this.getArg().argString());
+    sb.append("=");
+    if (!this.getSubVals().getSubValMap().isEmpty())
+    {
+      sb.append(this.getSubVals().toString());
+    }
+    sb.append("'");
+    sb.append(this.getValue());
+    sb.append("'");
+
+    return sb.toString();
+  }
+
+  public String getGivenLinkedId()
+  {
+    return this.givenLinkedId;
+  }
+
+  public String getAssignedLinkedId()
+  {
+    return this.assignedLinkedId;
+  }
+
+  public boolean setByWildcardLinkedId()
+  {
+    // looking for deliberately user set wildcard
+    return this.setByWildcardLinkedId && this.getGivenLinkedId() != null;
+  }
 }
\ No newline at end of file