if (variableAccesses!=null) {
String missingTaskVariables = null;
Iterator iter = variableAccesses.iterator();
while (iter.hasNext()) {
VariableAccess variableAccess = (VariableAccess) iter.next();
String mappedName = variableAccess.getMappedName();
// first check if the required variableInstances are present
if ( (variableAccess.isRequired())
&& (! taskInstance.hasVariableLocally(mappedName))
) {
if (missingTaskVariables==null) {
missingTaskVariables = mappedName;
} else {
missingTaskVariables += ", "+mappedName;
}
}
}
// if there are missing, required parameters, throw an IllegalArgumentException
if (missingTaskVariables!=null) {
throw new IllegalArgumentException("missing task variables: "+missingTaskVariables);
}
iter = variableAccesses.iterator();
while (iter.hasNext()) {
VariableAccess variableAccess = (VariableAccess) iter.next();
String mappedName = variableAccess.getMappedName();
String variableName = variableAccess.getVariableName();
if (variableAccess.isWritable()) {
Object value = taskInstance.getVariable(mappedName);
if (value!=null) {
log.debug("submitting task variable '"+mappedName+"' to process variable '"+variableName+"', value '"+value+"'");
contextInstance.setVariable(variableName, value, token);
}