- ArgValuesMap avm = linkedArgs.get(id);
- ArgValues tavs = avm.getArgValues(a);
- String val = doSubs ? makeSubstitutions(v, linkedId) : v;
- tavs.addValue(val, argIndex);
+ // skip incorrectly stored wildcard ids!
+ if (matchedLinkedId == null
+ || MATCHALLLINKEDIDS.equals(matchedLinkedId)
+ || MATCHOPENEDLINKEDIDS.equals(matchedLinkedId))
+ {
+ continue;
+ }
+ ArgValuesMap avm = linkedArgs.get(matchedLinkedId);
+ // don't set an output if there isn't an input
+ if (a.hasOption(Opt.REQUIREINPUT)
+ && !avm.hasArgWithOption(Opt.INPUT))
+ continue;
+
+ ArgValues tavs = avm.getOrCreateArgValues(a);
+ switch (op)
+ {
+
+ case ADDVALUE:
+ String val = v;
+ if (sv != null)
+ {
+ if (doSubs)
+ {
+ sv = new SubVals(sv, val, merge);
+ val = makeSubstitutions(sv.getContent(), matchedLinkedId);
+ }
+ tavs.addValue(sv, type, val, argIndex, true, givenLinkedId);
+ }
+ else
+ {
+ if (doSubs)
+ {
+ val = makeSubstitutions(v, matchedLinkedId);
+ }
+ tavs.addValue(type, val, argIndex, true, givenLinkedId);
+ }
+ finaliseStoringArgValue(matchedLinkedId, tavs);
+ break;
+
+ case SETBOOLEAN:
+ tavs.setBoolean(type, b, argIndex, true, givenLinkedId);
+ finaliseStoringArgValue(matchedLinkedId, tavs);
+ break;
+
+ case SETNEGATED:
+ tavs.setNegated(b, true);
+ break;
+
+ case INCREMENTCOUNT:
+ tavs.incrementCount();
+ break;
+
+ default:
+ break;
+
+ }
+