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; }