+ this.argValueOperation(Op.SETNEGATED, linkedId, null, avs, null, null,
+ b, 0, false);
+ }
+
+ private void incrementCount(String linkedId, ArgValues avs)
+ {
+ this.argValueOperation(Op.INCREMENTCOUNT, linkedId, null, avs, null,
+ null, false, 0, false);
+ }
+
+ private enum Op
+ {
+ ADDVALUE, SETBOOLEAN, SETNEGATED, INCREMENTCOUNT
+ }
+
+ private void argValueOperation(Op op, String linkedId, Type type,
+ ArgValues avs, SubVals sv, String v, boolean b, int argIndex,
+ boolean doSubs)
+ {
+ // default to merge subvals if subvals are provided
+ argValueOperation(op, linkedId, type, avs, sv, true, v, b, argIndex,
+ doSubs);
+ }
+
+ /*
+ * The following operations look for the "*" and "open*" linkedIds and add the
+ * argvalue to all appropriate linkedId ArgValues if it does.
+ * If subvals are supplied, they are inserted into all new set values.
+ *
+ * @param op The ArgParser.Op operation
+ * @param linkedId The String linkedId from the ArgValuesMap
+ * @param type The Arg.Type to attach to this ArgValue
+ * @param avs The ArgValues for this linkedId
+ * @param sv Use these SubVals on the ArgValue
+ * @param merge Merge the SubVals with any existing on the value. False will replace unless sv is null
+ * @param v The value of the ArgValue (may contain subvals).
+ * @param b The boolean value of the ArgValue.
+ * @param argIndex The argIndex for the ArgValue.
+ * @param doSubs Whether to perform substitutions on the subvals and value.
+ */
+ private void argValueOperation(Op op, String linkedId, Type type,
+ ArgValues avs, SubVals sv, boolean merge, String v, boolean b,
+ int argIndex, boolean doSubs)
+ {