JAL-629 Added --structureimage code and formatting args/subvals. Added tests for...
[jalview.git] / src / jalview / bin / argparser / SubVals.java
index a03ec15..4d146d9 100644 (file)
@@ -29,14 +29,42 @@ public class SubVals
 
   protected SubVals(SubVals sv, String c)
   {
-    if (sv == null)
+    this(sv, c, true);
+  }
+
+  protected SubVals(SubVals sv, String c, boolean merge)
+  {
+    SubVals subvals;
+    if (merge)
+    {
+      SubVals vsv = new SubVals(c);
+      if (sv != null && sv.getSubValMap() != null)
+      {
+        for (String key : sv.getSubValMap().keySet())
+        {
+          vsv.put(key, sv.get(key));
+        }
+      }
+      if (sv != null && sv.getIndex() > 0)
+      {
+        vsv.index = sv.getIndex();
+      }
+      subvals = vsv;
+    }
+    else
+    {
+      // replace
+      subvals = sv;
+    }
+    if (subvals == null)
     {
       this.subValMap = new HashMap<>();
     }
     else
     {
-      this.subValMap = sv == null ? new HashMap<>() : sv.getSubValMap();
-      this.index = sv.getIndex();
+      this.subValMap = subvals == null ? new HashMap<>()
+              : subvals.getSubValMap();
+      this.index = subvals.getIndex();
     }
     this.content = c;
   }