X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2Fargparser%2FSubVals.java;h=9723c9adc784d14ceae668fff5bf7e2636af7b7d;hb=bc1a3842b31a35a7794f4afec4911ad421c7c3e4;hp=196cd24522b7e5420b7e6bcc7f03399450225e82;hpb=03968fce3d428957aced82b7f051527fa66e762f;p=jalview.git
diff --git a/src/jalview/bin/argparser/SubVals.java b/src/jalview/bin/argparser/SubVals.java
index 196cd24..9723c9a 100644
--- a/src/jalview/bin/argparser/SubVals.java
+++ b/src/jalview/bin/argparser/SubVals.java
@@ -1,3 +1,23 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see .
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.bin.argparser;
import java.util.ArrayList;
@@ -21,7 +41,7 @@ public class SubVals
private Map subValMap;
- private static char SEPARATOR = ';';
+ private static char SEPARATOR = ',';
private static char EQUALS = '=';
@@ -29,14 +49,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;
}