- Arg a = avs.arg();
- if (linkedId != null && a.hasOption(Opt.STORED)
- && !storedLinkedIds.contains(linkedId))
- {
- storedLinkedIds.add(linkedId);
- }
-
- List<String> wildcardLinkedIds = null;
- if (a.hasOption(Opt.ALLOWALL))
- {
- switch (linkedId)
- {
- case MATCHALLLINKEDIDS:
- wildcardLinkedIds = getLinkedIds();
- break;
- case MATCHOPENEDLINKEDIDS:
- wildcardLinkedIds = this.storedLinkedIds;
- break;
- }
- }
-
- // if we're not a wildcard linkedId and the arg is marked to be stored, add
- // to storedLinkedIds
- if (linkedId != null && wildcardLinkedIds == null
- && a.hasOption(Opt.STORED)
- && !storedLinkedIds.contains(linkedId))
- {
- storedLinkedIds.add(linkedId);
- }
-
- // if we are a wildcard linkedId, apply the arg and value to all appropriate
- // linkedIds
- if (wildcardLinkedIds != null)
- {
- for (String id : wildcardLinkedIds)
- {
- // skip incorrectly stored wildcard ids!
- if (id == null || MATCHALLLINKEDIDS.equals(id)
- || MATCHOPENEDLINKEDIDS.equals(id))
- continue;
- ArgValuesMap avm = linkedArgs.get(id);
- // 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);
- String val = doSubs ? makeSubstitutions(v, id) : v;
- tavs.addValue(val, argIndex);
- finaliseStoringArgValue(id, tavs);
- }
- }
- else
- {
- String val = doSubs ? makeSubstitutions(v, linkedId) : v;
- avs.addValue(val, argIndex);
- finaliseStoringArgValue(linkedId, avs);
- }
- }
-
- private void setBoolean(String linkedId, ArgValues avs, boolean b,
- int argIndex)
- {
- this.argValueOperation(Op.SETBOOLEAN, linkedId, avs, null, null, b,
- argIndex, false);
- }
-
- private void NOTsetBoolean(String linkedId, ArgValues avs, boolean b,
- int argIndex)
- {
- Arg a = avs.arg();
- if (linkedId != null && a.hasOption(Opt.STORED)
- && !storedLinkedIds.contains(linkedId))
- {
- storedLinkedIds.add(linkedId);
- }
-
- List<String> wildcardLinkedIds = null;
- if (a.hasOption(Opt.ALLOWALL))
- {
- switch (linkedId)
- {
- case MATCHALLLINKEDIDS:
- wildcardLinkedIds = getLinkedIds();
- break;
- case MATCHOPENEDLINKEDIDS:
- wildcardLinkedIds = this.storedLinkedIds;
- break;
- }
- }
-
- // if we're not a wildcard linkedId and the arg is marked to be stored, add
- // to storedLinkedIds
- if (linkedId != null && wildcardLinkedIds == null
- && a.hasOption(Opt.STORED)
- && !storedLinkedIds.contains(linkedId))
- {
- storedLinkedIds.add(linkedId);
- }
-
- // if we are a wildcard linkedId, apply the arg and value to all appropriate
- // linkedIds
- if (wildcardLinkedIds != null)
- {
- for (String id : wildcardLinkedIds)
- {
- // skip incorrectly stored wildcard ids!
- if (id == null || MATCHALLLINKEDIDS.equals(id)
- || MATCHOPENEDLINKEDIDS.equals(id))
- continue;
- ArgValuesMap avm = linkedArgs.get(id);
- if (a.hasOption(Opt.REQUIREINPUT)
- && !avm.hasArgWithOption(Opt.INPUT))
- continue;
- ArgValues tavs = avm.getOrCreateArgValues(a);
- tavs.setBoolean(b, argIndex);
- finaliseStoringArgValue(id, tavs);
- }
- }
- else
- {
- avs.setBoolean(b, argIndex);
- finaliseStoringArgValue(linkedId, avs);
- }