} else if (definition instanceof MultipleInstanceSubprocess) { MultipleInstanceSubprocess miSubprocess = (MultipleInstanceSubprocess) definition; variableInfo = ((MultipleInstanceSubprocess) definition).getExecutionSet().getMultipleInstanceCollectionInput().getValue(); if (variableName.equals(variableInfo)) { result.add(new VariableUsage(variableName, VariableUsage.USAGE_TYPE.INPUT_COLLECTION, node, miSubprocess.getGeneral().getName().getValue()));
@SuppressWarnings("unchecked") private void unmarshallMultiInstanceSubprocess(final DiagramMarshaller marshaller) throws Exception { final String MULTI_INSTANCE_SUBPROCESS_ID = "_8DBFC130-F97C-4A2E-B4A9-4A95865F44FF"; Diagram<Graph, Metadata> diagram = unmarshall(marshaller, BPMN_MULTI_INSTANCE_SUBPROCESS); Node<? extends Definition, ?> miSubProcessNode = diagram.getGraph().getNode(MULTI_INSTANCE_SUBPROCESS_ID); MultipleInstanceSubprocess miSubprocess = (MultipleInstanceSubprocess) miSubProcessNode.getContent().getDefinition(); assertEquals("myCollection", miSubprocess.getExecutionSet().getMultipleInstanceCollectionInput().getValue()); assertEquals("myCollectionResult", miSubprocess.getExecutionSet().getMultipleInstanceCollectionOutput().getValue()); assertEquals("myIterator", miSubprocess.getExecutionSet().getMultipleInstanceDataInput().getValue()); assertEquals("myResultIterator", miSubprocess.getExecutionSet().getMultipleInstanceDataOutput().getValue()); assertEquals("myCollection.size == 0", miSubprocess.getExecutionSet().getMultipleInstanceCompletionCondition().getValue()); }
@Test public void testUnmarshallMultipleInstanceSubprocess() throws Exception { Diagram<Graph, Metadata> diagram = unmarshall(BPMN_MULTIPLE_INSTANCE_SUBPROCESS); assertDiagram(diagram, 2); assertEquals("MultipleInstanceSubprocess", diagram.getMetadata().getTitle()); Node<? extends Definition, ?> multipleInstanceSubprocessNode = diagram.getGraph().getNode("_2316CEC1-C1F7-41B1-8C91-3CE73ADE5571"); MultipleInstanceSubprocess multipleInstanceSubprocess = (MultipleInstanceSubprocess) multipleInstanceSubprocessNode.getContent().getDefinition(); assertEquals("var1", multipleInstanceSubprocess.getExecutionSet().getMultipleInstanceCollectionInput().getValue()); assertEquals("var2", multipleInstanceSubprocess.getExecutionSet().getMultipleInstanceCollectionOutput().getValue()); assertEquals("dataInput", multipleInstanceSubprocess.getExecutionSet().getMultipleInstanceDataInput().getValue()); assertEquals("dataOutput", multipleInstanceSubprocess.getExecutionSet().getMultipleInstanceDataOutput().getValue()); assertEquals("a=b", multipleInstanceSubprocess.getExecutionSet().getMultipleInstanceCompletionCondition().getValue()); assertEquals("onEntryAction", multipleInstanceSubprocess.getExecutionSet().getOnEntryAction().getValue().getValues().get(0).getScript()); assertEquals("java", multipleInstanceSubprocess.getExecutionSet().getOnEntryAction().getValue().getValues().get(0).getLanguage()); assertEquals("onExitAction", multipleInstanceSubprocess.getExecutionSet().getOnExitAction().getValue().getValues().get(0).getScript()); assertEquals("java", multipleInstanceSubprocess.getExecutionSet().getOnExitAction().getValue().getValues().get(0).getLanguage()); assertTrue(multipleInstanceSubprocess.getExecutionSet().getIsAsync().getValue()); assertEquals("mi-var1:String", multipleInstanceSubprocess.getProcessData().getProcessVariables().getValue()); }
private SubProcessPropertyWriter convertMultipleInstanceSubprocessNode(Node<View<MultipleInstanceSubprocess>, ?> n) { SubProcess process = bpmn2.createSubProcess(); process.setId(n.getUUID()); MultipleInstanceSubProcessPropertyWriter p = propertyWriterFactory.ofMultipleInstanceSubProcess(process); MultipleInstanceSubprocess definition = n.getContent().getDefinition(); BPMNGeneralSet general = definition.getGeneral(); p.setName(general.getName().getValue()); p.setDocumentation(general.getDocumentation().getValue()); ProcessData processData = definition.getProcessData(); p.setProcessVariables(processData.getProcessVariables()); MultipleInstanceSubprocessTaskExecutionSet executionSet = definition.getExecutionSet(); p.setCollectionInput(executionSet.getMultipleInstanceCollectionInput().getValue()); p.setInput(executionSet.getMultipleInstanceDataInput().getValue()); p.setCollectionOutput(executionSet.getMultipleInstanceCollectionOutput().getValue()); p.setOutput(executionSet.getMultipleInstanceDataOutput().getValue()); p.setCompletionCondition(executionSet.getMultipleInstanceCompletionCondition().getValue()); p.setOnEntryAction(executionSet.getOnEntryAction()); p.setOnExitAction(executionSet.getOnExitAction()); p.setAsync(executionSet.getIsAsync().getValue()); p.setSimulationSet(definition.getSimulationSet()); p.setBounds(n.getContent().getBounds()); return p; }
@Test public void testUnmarshallMultipleInstanceSubprocess() throws Exception { Diagram<Graph, Metadata> diagram = unmarshall(BPMN_MULTIPLE_INSTANCE_SUBPROCESS); assertDiagram(diagram, 2); assertEquals("MultipleInstanceSubprocess", diagram.getMetadata().getTitle()); Node<? extends Definition, ?> multipleInstanceSubprocessNode = diagram.getGraph().getNode("_2316CEC1-C1F7-41B1-8C91-3CE73ADE5571"); MultipleInstanceSubprocess multipleInstanceSubprocess = (MultipleInstanceSubprocess) multipleInstanceSubprocessNode.getContent().getDefinition(); assertEquals("var1", multipleInstanceSubprocess.getExecutionSet().getMultipleInstanceCollectionInput().getValue()); assertEquals("var2", multipleInstanceSubprocess.getExecutionSet().getMultipleInstanceCollectionOutput().getValue()); assertEquals("dataInput", multipleInstanceSubprocess.getExecutionSet().getMultipleInstanceDataInput().getValue()); assertEquals("dataOutput", multipleInstanceSubprocess.getExecutionSet().getMultipleInstanceDataOutput().getValue()); assertEquals("a=b", multipleInstanceSubprocess.getExecutionSet().getMultipleInstanceCompletionCondition().getValue()); assertEquals("onEntryAction", multipleInstanceSubprocess.getExecutionSet().getOnEntryAction().getValue().getValues().get(0).getScript()); assertEquals("java", multipleInstanceSubprocess.getExecutionSet().getOnEntryAction().getValue().getValues().get(0).getLanguage()); assertEquals("onExitAction", multipleInstanceSubprocess.getExecutionSet().getOnExitAction().getValue().getValues().get(0).getScript()); assertEquals("java", multipleInstanceSubprocess.getExecutionSet().getOnExitAction().getValue().getValues().get(0).getLanguage()); assertTrue(multipleInstanceSubprocess.getExecutionSet().getIsAsync().getValue()); assertEquals("mi-var1:String", multipleInstanceSubprocess.getProcessData().getProcessVariables().getValue()); }