private void createMultiInstantiationDefinition(final XmlBuilder xmlDefBuilder, final Node parentNode, final MultiInstantiationDefinition multiInstantiationDefinition) throws Exception { if (multiInstantiationDefinition != null) { final Node multiInstantiationNode = xmlDefBuilder.createNode(parentNode, XmlDef.MULTI_INSTANTIATION); xmlDefBuilder.createNode(multiInstantiationNode, XmlDef.CLASSNAME, multiInstantiationDefinition.getClassName()); xmlDefBuilder.createNode(multiInstantiationNode, XmlDef.DESCRIPTION, multiInstantiationDefinition.getDescription()); xmlDefBuilder.createNode(multiInstantiationNode, XmlDef.VARIABLE_NAME, multiInstantiationDefinition.getVariableName()); final Node parametersNode = xmlDefBuilder.createNode(multiInstantiationNode, XmlDef.PARAMETERS); final Map<String, Object[]> multiInstantiationParameters = multiInstantiationDefinition.getParameters(); for (final Entry<String, Object[]> multiInstantiationParameter : multiInstantiationParameters.entrySet()) { final Map<String, Serializable> multiInstantiationParameterAttributes = new HashMap<String, Serializable>(); multiInstantiationParameterAttributes.put(XmlDef.NAME, multiInstantiationParameter.getKey()); final byte[] value = Misc.serialize(multiInstantiationParameter.getValue()); xmlDefBuilder.createNode(parametersNode, XmlDef.PARAMETER, value, multiInstantiationParameterAttributes); } } }
private void createMultiInstantiationDefinition(final XmlBuilder xmlDefBuilder, final Node parentNode, final MultiInstantiationDefinition multiInstantiationDefinition) throws Exception { if (multiInstantiationDefinition != null) { final Node multiInstantiationNode = xmlDefBuilder.createNode(parentNode, XmlDef.MULTI_INSTANTIATION); xmlDefBuilder.createNode(multiInstantiationNode, XmlDef.CLASSNAME, multiInstantiationDefinition.getClassName()); xmlDefBuilder.createNode(multiInstantiationNode, XmlDef.DESCRIPTION, multiInstantiationDefinition.getDescription()); xmlDefBuilder.createNode(multiInstantiationNode, XmlDef.VARIABLE_NAME, multiInstantiationDefinition.getVariableName()); final Node parametersNode = xmlDefBuilder.createNode(multiInstantiationNode, XmlDef.PARAMETERS); final Map<String, Object[]> multiInstantiationParameters = multiInstantiationDefinition.getParameters(); for (final Entry<String, Object[]> multiInstantiationParameter : multiInstantiationParameters.entrySet()) { final Map<String, Serializable> multiInstantiationParameterAttributes = new HashMap<String, Serializable>(); multiInstantiationParameterAttributes.put(XmlDef.NAME, multiInstantiationParameter.getKey()); final byte[] value = Misc.serialize(multiInstantiationParameter.getValue()); xmlDefBuilder.createNode(parametersNode, XmlDef.PARAMETER, value, multiInstantiationParameterAttributes); } } }
private void checkMultiInstantiation(final ProcessDefinitionImpl process) { for (final ActivityDefinition activity : process.getActivities()) { final MultiInstantiationDefinition multiInstantiationDefinition = activity.getMultiInstantiationDefinition(); final MultiInstantiationDefinition instantiator = activity.getMultipleInstancesInstantiator(); final MultiInstantiationDefinition joinChecker = activity.getMultipleInstancesJoinChecker(); if (instantiator != null || joinChecker != null || multiInstantiationDefinition != null) { if (multiInstantiationDefinition != null) { final String variableId = multiInstantiationDefinition.getVariableName(); boolean variableExists = false; if (activity.getDataFields() != null) { for (final DataFieldDefinition var : activity.getDataFields()) { if (var.getName().equals(variableId)) { variableExists = true; break; } } } if (!variableExists) { problems.add(new Problem("MultiInstantiation variable " + variableId + " must be a local variable of activity " + activity.getName(), Problem.SEVERITY_ERROR)); } } else if (instantiator != null && joinChecker == null) { problems.add(new Problem("JoinChecker is undefined", Problem.SEVERITY_ERROR)); } else if (instantiator == null && joinChecker != null) { problems.add(new Problem("Instantiator is undefined", Problem.SEVERITY_ERROR)); } } } }
private void checkMultiInstantiation(final ProcessDefinitionImpl process) { for (final ActivityDefinition activity : process.getActivities()) { final MultiInstantiationDefinition multiInstantiationDefinition = activity.getMultiInstantiationDefinition(); final MultiInstantiationDefinition instantiator = activity.getMultipleInstancesInstantiator(); final MultiInstantiationDefinition joinChecker = activity.getMultipleInstancesJoinChecker(); if (instantiator != null || joinChecker != null || multiInstantiationDefinition != null) { if (multiInstantiationDefinition != null) { final String variableId = multiInstantiationDefinition.getVariableName(); boolean variableExists = false; if (activity.getDataFields() != null) { for (final DataFieldDefinition var : activity.getDataFields()) { if (var.getName().equals(variableId)) { variableExists = true; break; } } } if (!variableExists) { problems.add(new Problem("MultiInstantiation variable " + variableId + " must be a local variable of activity " + activity.getName(), Problem.SEVERITY_ERROR)); } } else if (instantiator != null && joinChecker == null) { problems.add(new Problem("JoinChecker is undefined", Problem.SEVERITY_ERROR)); } else if (instantiator == null && joinChecker != null) { problems.add(new Problem("Instantiator is undefined", Problem.SEVERITY_ERROR)); } } } }
try { multiInstVar = VariableUtil.createVariable(activity.getProcessDefinitionUUID(), activity .getMultiInstantiationDefinition().getVariableName(), value); } catch (final StaleStateException sse) { throw sse;