package jalview.bin.argparser;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import jalview.bin.Console;
private static char SEPARATOR = ';';
+ private static char EQUALS = '=';
+
private String content = null;
+ public SubVals(Map<String, String> sv, String c)
+ {
+ this.subVals = sv;
+ this.content = c;
+ }
+
public SubVals(String item)
{
this.parseVals(item);
for (String subvalString : subvalsString
.split(Character.toString(SEPARATOR)))
{
- int equals = subvalString.indexOf('=');
+ if (subVals == null)
+ subVals = new HashMap<>();
+ int equals = subvalString.indexOf(EQUALS);
if (equals > -1)
{
- if (subVals == null)
- subVals = new HashMap<>();
this.put(subvalString.substring(0, equals),
subvalString.substring(equals + 1));
}
} catch (NumberFormatException e)
{
// store this non-numeric key as a "true" value
- subVals.put(subvalsString, "true");
+ subVals.put(subvalString, "true");
}
}
}
return content;
}
+ protected Map<String, String> getSubValsMap()
+ {
+ return subVals;
+ }
+
public String toString()
{
- StringBuilder sb = new StringBuilder();
- if (subVals == null)
+ if (subVals == null && getIndex() == NOTSET)
return "";
- for (Map.Entry<String, String> m : subVals.entrySet())
- {
- sb.append(m.getKey()).append('=').append(m.getValue()).append("\n");
- }
+
+ StringBuilder sb = new StringBuilder();
+ List<String> entries = new ArrayList<>();
+ subVals.entrySet().stream().forEachOrdered(
+ m -> entries.add(m.getValue().equals("true") ? m.getKey()
+ : new StringBuilder().append(m.getKey()).append(EQUALS)
+ .append(m.getValue()).toString()));
+ if (getIndex() != NOTSET)
+ entries.add(Integer.toString(getIndex()));
+ sb.append('[');
+ sb.append(String.join(Character.toString(SEPARATOR), entries));
+ sb.append(']');
return sb.toString();
}
}
\ No newline at end of file