public TypedValueImpl getTypedValue(String variableId) { VariableInstanceImpl variableInstance = findVariableInstance(variableId); if (variableInstance!=null) { return variableInstance.getTypedValue(); } throw new RuntimeException("Variable "+variableId+" is not defined in "+getClass().getSimpleName()+" "+toString()); }
public Object getValue(String variableId) { VariableInstanceImpl variableInstance = findVariableInstance(variableId); if (variableInstance!=null) { return variableInstance.getValue(); } throw new RuntimeException("Variable "+variableId+" is not defined in "+getClass().getSimpleName()+" "+toString()); }
/** * Returns the description of the variable specified by the given binding expression. */ public VariableImpl findVariable(BindingImpl binding) { if (binding == null || binding.expression == null) { return null; } VariableInstanceImpl variableInstance = getVariableInstance(binding.expression); if (variableInstance == null || variableInstance.getVariable() == null) { return null; } return variableInstance.getVariable(); }
public VariableInstanceImpl createVariableInstanceLocal(VariableImpl variable) { String variableInstanceId = workflowInstance.generateNextVariableInstanceId(); VariableInstanceImpl variableInstance = new VariableInstanceImpl(this, variable, variableInstanceId); variableInstance.configuration = configuration; variableInstance.workflowInstance = workflowInstance; variableInstance.type = variable.type; variableInstance.setValue(variable.defaultValue); variableInstance.variable = variable; if (updates!=null) { variableInstance.updates = new VariableInstanceUpdates(true); updates.isVariableInstancesChanged = true; if (parent!=null) { parent.propagateActivityInstanceChange(); } } addVariableInstance(variableInstance); return variableInstance; }
protected void writeVariableInstances(BasicDBObject dbScope, ScopeInstanceImpl scope) { if (scope.variableInstances!=null) { for (VariableInstanceImpl variableInstanceImpl: scope.variableInstances) { VariableInstance variableInstance = variableInstanceImpl.toVariableInstance(); BasicDBObject dbVariable = mongoMapper.write(variableInstance); writeListElementOpt(dbScope, VARIABLE_INSTANCES, dbVariable); } } }
private void readVariableInstances(ScopeInstanceImpl parent, BasicDBObject dbWorkflowInstance) { List<BasicDBObject> dbVariableInstances = readList(dbWorkflowInstance, VARIABLE_INSTANCES); if (dbVariableInstances!=null && !dbVariableInstances.isEmpty()) { for (BasicDBObject dbVariableInstance: dbVariableInstances) { VariableInstance variableInstance = mongoMapper.read(dbVariableInstance, VariableInstance.class); VariableInstanceImpl variableInstanceImpl = new VariableInstanceImpl(); variableInstanceImpl.id = variableInstance.getId(); String variableId = variableInstance.getVariableId(); variableInstanceImpl.variable = findVariableByIdRecurseParents(parent.scope, variableId); if (variableInstanceImpl.variable!=null) { variableInstanceImpl.type = variableInstanceImpl.variable.type; } else { variableInstanceImpl.variable = new VariableImpl(); DataType type = variableInstance.getType(); if (type!=null) { variableInstanceImpl.type = dataTypeService.createDataType(type); } } variableInstanceImpl.value = variableInstance.getValue(); variableInstanceImpl.configuration = configuration; variableInstanceImpl.workflowInstance = parent.workflowInstance; variableInstanceImpl.parent = parent; variableInstanceImpl.workflow = parent.workflow; parent.addVariableInstance(variableInstanceImpl); } } }
public void setVariableValue(VariableInstanceImpl variableInstance, Object value) { log.debug("Updating variable '"+variableInstance.variable.id+"' to '"+value+"'"); variableInstance.setValue(value); if (updates!=null) { updates.isVariableInstancesChanged = true; if (parent!=null) { parent.propagateActivityInstanceChange(); } } }
public void trackUpdates(boolean isNew) { if (activityInstances!=null) { for (ActivityInstanceImpl activityInstance: activityInstances) { activityInstance.trackUpdates(isNew); } } if (variableInstances!=null) { for (VariableInstanceImpl variableInstance: variableInstances) { variableInstance.trackUpdates(isNew); } } }
protected void writeVariableInstances(BasicDBObject dbScope, ScopeInstanceImpl scope) { if (scope.variableInstances!=null) { for (VariableInstanceImpl variableInstanceImpl: scope.variableInstances) { VariableInstance variableInstance = variableInstanceImpl.toVariableInstance(); BasicDBObject dbVariable = mongoMapper.write(variableInstance); writeListElementOpt(dbScope, VARIABLE_INSTANCES, dbVariable); } } }
private void readVariableInstances(ScopeInstanceImpl parent, BasicDBObject dbWorkflowInstance) { List<BasicDBObject> dbVariableInstances = readList(dbWorkflowInstance, VARIABLE_INSTANCES); if (dbVariableInstances!=null && !dbVariableInstances.isEmpty()) { for (BasicDBObject dbVariableInstance: dbVariableInstances) { VariableInstance variableInstance = mongoMapper.read(dbVariableInstance, VariableInstance.class); VariableInstanceImpl variableInstanceImpl = new VariableInstanceImpl(); variableInstanceImpl.id = variableInstance.getId(); String variableId = variableInstance.getVariableId(); variableInstanceImpl.variable = findVariableByIdRecurseParents(parent.scope, variableId); if (variableInstanceImpl.variable!=null) { variableInstanceImpl.type = variableInstanceImpl.variable.type; } else { variableInstanceImpl.variable = new VariableImpl(); DataType type = variableInstance.getType(); if (type!=null) { variableInstanceImpl.type = dataTypeService.createDataType(type); } } variableInstanceImpl.value = variableInstance.getValue(); variableInstanceImpl.configuration = configuration; variableInstanceImpl.workflowInstance = parent.workflowInstance; variableInstanceImpl.parent = parent; variableInstanceImpl.workflow = parent.workflow; parent.addVariableInstance(variableInstanceImpl); } } }
public void initializeForEachElement(VariableImpl elementVariableDefinition, Object value) { VariableInstanceImpl elementVariableInstance = createVariableInstanceLocal(elementVariableDefinition); elementVariableInstance.setValue(value); }
protected void toScopeInstance(ScopeInstance scopeInstance, boolean includeWorkState) { scopeInstance.setStart(start); scopeInstance.setEnd(end); scopeInstance.setEndState(endState); scopeInstance.setDuration(duration); if (activityInstances!=null && !activityInstances.isEmpty()) { List<ActivityInstance> activityInstanceApis = new ArrayList<>(); for (ActivityInstanceImpl activityInstanceImpl: this.activityInstances) { activityInstanceApis.add(activityInstanceImpl.toActivityInstance(includeWorkState)); } scopeInstance.setActivityInstances(activityInstanceApis); } if (variableInstances!=null && !variableInstances.isEmpty()) { List<VariableInstance> variableInstanceApis = new ArrayList<>(); for (VariableInstanceImpl variableInstanceImpl: this.variableInstances) { variableInstanceApis.add(variableInstanceImpl.toVariableInstance()); } scopeInstance.setVariableInstances(variableInstanceApis); } scopeInstance.setProperties(this.properties); }
protected TypedValueImpl getTypedValueField(VariableInstanceImpl variableInstance, List<String> fields) { return resolveFields(variableInstance.type, variableInstance.getValue(), fields, configuration); }
public TypedValueImpl getTypedValue(ExpressionImpl expression) { VariableInstanceImpl variableInstance = getVariableInstance(expression); if (variableInstance == null) { return null; } if (expression.fieldKeys==null) { return variableInstance.getTypedValue(); } return getTypedValueField(variableInstance, expression.fieldKeys); }
public Object getValue(ExpressionImpl expression) { VariableInstanceImpl variableInstance = getVariableInstance(expression); if (variableInstance==null) { return null; } if (expression.fieldKeys==null) { return variableInstance.getValue(); } TypedValueImpl typedValue = getTypedValueField(variableInstance, expression.fieldKeys); return typedValue!=null ? typedValue.value : null; }