use of io.automatiko.engine.workflow.base.instance.ProcessRuntimeServiceProvider in project automatiko-engine by automatiko-io.
the class AbstractProtobufProcessInstanceMarshaller method readVariableScope.
protected void readVariableScope(MarshallerReaderContext context, Process process, WorkflowProcessInstanceImpl processInstance, AutomatikoMessages.ProcessInstance _instance) throws IOException {
if (_instance.getVariableCount() > 0) {
VariableScope variableScope = (VariableScope) ((io.automatiko.engine.workflow.base.core.Process) process).getDefaultContext(VariableScope.VARIABLE_SCOPE);
VariableScopeInstance variableScopeInstance = (VariableScopeInstance) processInstance.getContextInstance(variableScope);
for (AutomatikoMessages.Variable _variable : _instance.getVariableList()) {
try {
Object _value = ProtobufProcessMarshaller.unmarshallVariableValue(context, _variable);
if ((boolean) context.env.getOrDefault("_import_", false)) {
VariableInitializer initializer = ((ProcessRuntimeServiceProvider) context.env.get("_services_")).getVariableInitializer();
for (VariableAugmentor augmentor : initializer.augmentors()) {
Variable var = variableScope.findVariable(_variable.getName());
if (augmentor.accept(var, _value)) {
_value = augmentor.augmentOnCreate(process.getId(), process.getVersion(), _instance.getId(), var, _value);
}
}
}
variableScopeInstance.internalSetVariable(_variable.getName(), _value);
} catch (ClassNotFoundException e) {
throw new IllegalArgumentException("Could not reload variable " + _variable.getName());
}
}
}
}
Aggregations