public static Binding getPropagateBinding(final ProcessDefinitionUUID processUUID,
final ProcessInstanceUUID instanceUUID, final ActivityInstanceUUID activityInstanceUUID,
final Map<String, Object> context, final boolean useActivityScope, final boolean useInitialVariableValues)
throws IOException, ClassNotFoundException, GroovyException, InstanceNotFoundException, ActivityNotFoundException {
final Map<String, Object> allVariables = getContext(context, processUUID, activityInstanceUUID, instanceUUID,
useActivityScope, useInitialVariableValues);
ActivityDefinitionUUID activityUUID = null;
if (activityInstanceUUID != null) {
final ActivityInstance activityInstance = EnvTool.getAllQueriers().getActivityInstance(activityInstanceUUID);
activityUUID = activityInstance.getActivityDefinitionUUID();
}
final Set<String> initialVariables = new HashSet<String>();
initialVariables.addAll(allVariables.keySet());
if (context != null) {
initialVariables.removeAll(context.keySet());
}
return new PropagateBinding(processUUID, activityUUID, instanceUUID, activityInstanceUUID, allVariables,
initialVariables);
}