X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2Fargparser%2FSubVals.java;h=4d146d9e8e029c63d9a72db70848a9677c585e5b;hb=fbdb24c3c8ad23e3966a8295bed2de3b05f60119;hp=6708cf9267700371a3220d2502adfbd9d1b1524c;hpb=f52d881ba992cf5d4570d487f6319666f13263a9;p=jalview.git diff --git a/src/jalview/bin/argparser/SubVals.java b/src/jalview/bin/argparser/SubVals.java index 6708cf9..4d146d9 100644 --- a/src/jalview/bin/argparser/SubVals.java +++ b/src/jalview/bin/argparser/SubVals.java @@ -21,7 +21,7 @@ public class SubVals private Map subValMap; - private static char SEPARATOR = ';'; + private static char SEPARATOR = ','; private static char EQUALS = '='; @@ -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; } @@ -104,6 +132,11 @@ public class SubVals return index == NOTSET && (subValMap == null || subValMap.size() == 0); } + public String getWithSubstitutions(ArgParser ap, String id, String key) + { + return ap.makeSubstitutions(subValMap.get(key), id); + } + public String get(String key) { return subValMap.get(key);