1 package jalview.bin.argparser;
3 import java.util.ArrayList;
4 import java.util.HashMap;
8 import jalview.bin.Console;
9 import jalview.bin.argparser.Arg.Opt;
11 public class ArgValues
13 protected static final String ID = "id";
17 private int argCount = 0;
19 private boolean boolValue = false;
21 private boolean negated = false;
23 private int boolIndex = -1;
25 private List<Integer> argsIndexes;
27 private List<ArgValue> argValueList;
29 private Map<String, ArgValue> idMap = new HashMap<>();
31 protected ArgValues(Arg a)
34 this.argValueList = new ArrayList<ArgValue>();
35 this.boolValue = arg.getDefaultBoolValue();
43 protected int getCount()
48 protected void incrementCount()
53 protected void setNegated(boolean b)
58 protected boolean isNegated()
63 protected void setBoolean(boolean b, int i)
69 protected boolean getBoolean()
71 return this.boolValue;
75 public String toString()
77 if (argValueList == null)
79 StringBuilder sb = new StringBuilder();
80 sb.append(arg.toLongString());
81 if (arg.hasOption(Opt.BOOLEAN) || arg.hasOption(Opt.UNARY))
82 sb.append("Boolean: ").append(boolValue).append("; Default: ")
83 .append(arg.getDefaultBoolValue()).append("; Negated: ")
84 .append(negated).append("\n");
85 if (arg.hasOption(Opt.STRING))
89 for (ArgValue av : argValueList)
91 String v = av.getValue();
95 sb.append(v).append("'");
100 sb.append("Count: ").append(argCount).append("\n");
101 return sb.toString();
104 protected void addValue()
109 protected void addValue(String val, int argIndex)
111 addArgValue(new ArgValue(val, argIndex));
114 protected void addArgValue(ArgValue av)
116 if ((!arg.hasOption(Opt.MULTI) && argValueList.size() > 0)
117 || (arg.hasOption(Opt.NODUPLICATEVALUES)
118 && argValueList.contains(av.getValue())))
120 if (argValueList == null)
122 argValueList = new ArrayList<ArgValue>();
124 SubVals sv = ArgParser.getSubVals(av.getValue());
127 String id = sv.get(ID);
131 argValueList.add(av);
134 protected boolean hasValue(String val)
136 return argValueList.contains(val);
139 protected ArgValue getArgValue()
141 if (arg.hasOption(Opt.MULTI))
142 Console.warn("Requesting single value for multi value argument");
143 return argValueList.size() > 0 ? argValueList.get(0) : null;
146 protected List<ArgValue> getArgValueList()
151 protected boolean hasId(String id)
153 return idMap.containsKey(id);
156 protected ArgValue getId(String id)
158 return idMap.get(id);