private void parseDataObjects(Element element, Parse parse, BpmnProcessDefinition processDefinition) { List<VariableDefinitionImpl> variableDefinitions = new ArrayList<VariableDefinitionImpl>(); for (Element dataElement : XmlUtil.elements(element, "dataObject")) { VariableDefinitionImpl variableDefinition = new VariableDefinitionImpl(); String name = XmlUtil.attribute(dataElement, "id", parse); variableDefinition.setName(name); String typeRef = XmlUtil.attribute(dataElement, "itemSubjectRef"); variableDefinition.setTypeName(processDefinition.getType(typeRef)); variableDefinitions.add(variableDefinition); } processDefinition.setVariableDefinition(variableDefinitions); }
protected void initializeVariables(CompositeElementImpl scope, ExecutionImpl outerExecution) { // loop over all variable definitions List<VariableDefinitionImpl> variableDefinitions = scope.getVariableDefinitions(); if (!variableDefinitions.isEmpty()){ if (log.isTraceEnabled()) { log.trace("initializing variables in scope "+scope); } variables = new HashMap<String, Variable>(); for (VariableDefinitionImpl variableDefinition: variableDefinitions) { String key = variableDefinition.getKey(); Object value = variableDefinition.getSourceValue(outerExecution); Type type = variableDefinition.getType(); createVariable(key, value, type); } } }
/** declares a local variable. {@link #scope()} is automatically implied. */ public ProcessFactory variable(Descriptor sourceDescriptor) { if (node!=null && scope==null) { scope(); } VariableDefinitionImpl variableDefinition = scope.createVariableDefinition(); variableDefinition.setKey(sourceDescriptor.getName()); variableDefinition.setSourceDescriptor(sourceDescriptor); return this; }
protected void destroyVariables(CompositeElementImpl scope, ExecutionImpl outerExecution) { // loop over all variable definitions List<VariableDefinitionImpl> variableDefinitions = scope.getVariableDefinitions(); if (variableDefinitions!=null) { if (log.isTraceEnabled()) { log.trace("destroying var scope "+scope); } for (VariableDefinitionImpl variableDefinition: variableDefinitions) { String destination = variableDefinition.getDestination(); if (destination!=null) { String key = variableDefinition.getKey(); Object value = variableDefinition.getDestinationValue(this); outerExecution.setVariable(key, value); } } } }
/** declares a local variable. {@link #scope()} is automatically implied. */ public ProcessFactory variable(String key) { if (node!=null) { scope(); } VariableDefinitionImpl variableDefinition = compositeElement.createVariableDefinition(); variableDefinition.setKey(key); return this; }
public VariableDefinitionImpl createVariableDefinition() { VariableDefinitionImpl variableDefinition = new VariableDefinitionImpl(); if (variableDefinitions==null) { variableDefinitions = new ArrayList<VariableDefinitionImpl>(); } variableDefinitions.add(variableDefinition); hasVariableDefinitions = true; return variableDefinition; }
varDef.setKey(formalParameter.getId());
protected static void createVariableDefinitionsFromDataFields(CompositeElementImpl element, Collection<DataFieldDefinition> dataFields, Set<String> participantIds) { if (dataFields != null && !dataFields.isEmpty()) { for (DataFieldDefinition dataField : dataFields) { VariableDefinitionImpl variable = element.createVariableDefinition(); variable.setKey(dataField.getDataFieldId()); variable.setSourceDescriptor(getInitialValueDescriptor(dataField, participantIds)); } } }