protected void addCaseFileVariables(StringBuilder variablesBuilder, CaseManagementSet caseManagementSet) { if (caseManagementSet != null && caseManagementSet.getCaseFileVariables() != null && !isEmpty(caseManagementSet.getCaseFileVariables().getValue())) { String caseVariables = caseManagementSet.getCaseFileVariables().getValue(); String[] caseVariableDefs = caseVariables.split(","); boolean isFirst = variablesBuilder.length() == 0; for (String caseVariableDefItem : caseVariableDefs) { if (!caseVariableDefItem.isEmpty()) { String[] caseVariable = caseVariableDefItem.split(":"); if (!isFirst) { variablesBuilder.append(","); } if (caseVariable.length == 1) { variablesBuilder.append(CASE_VARIABLE_PREFIX) .append(caseVariable[0]) .append(":"); } else { variablesBuilder.append(CASE_VARIABLE_PREFIX) .append(caseVariable[0]) .append(":") .append(caseVariable[1]); } isFirst = false; } } } }
private CaseManagementDiagram mockCMDiagram(String variables, String caseVariables) { CaseManagementDiagram cmDiagram = mock(CaseManagementDiagram.class); ProcessData processData = mockProcessData(variables); when(cmDiagram.getProcessData()).thenReturn(processData); CaseManagementSet caseManagementSet = mock(CaseManagementSet.class); CaseFileVariables caseFileVariables = mock(CaseFileVariables.class); when(caseManagementSet.getCaseFileVariables()).thenReturn(caseFileVariables); when(caseFileVariables.getValue()).thenReturn(caseVariables); when(cmDiagram.getCaseManagementSet()).thenReturn(caseManagementSet); return cmDiagram; } }
public void setCaseFileVariables(CaseFileVariables caseFileVariables) { String value = caseFileVariables.getValue(); DeclarationList declarationList = DeclarationList.fromString(value); List<Property> properties = process.getProperties(); declarationList.getDeclarations().forEach(decl -> { VariableScope.Variable variable = variableScope.declare(this.process.getId(), CaseFileVariables.CASE_FILE_PREFIX + decl.getIdentifier(), decl.getType()); properties.add(variable.getTypedIdentifier()); this.itemDefinitions.add(variable.getTypeDeclaration()); }); }
@Test public void testGetValue() { CaseFileVariables tested = new CaseFileVariables(_value); assertEquals(_value, tested.getValue()); }
@Override protected Collection<Pair<Object, String>> findElements(Predicate<Node> filter, Function<Node, Pair<Object, String>> mapper) { Collection<Pair<Object, String>> result = new ArrayList<>(); String elementUUID = sessionManager.getCurrentSession().getCanvasHandler().getDiagram().getMetadata().getCanvasRootUUID(); Node node; if (elementUUID != null) { node = sessionManager.getCurrentSession().getCanvasHandler().getDiagram().getGraph().getNode(elementUUID); Object oDefinition = ((View) node.getContent()).getDefinition(); if (oDefinition instanceof BPMNDiagram) { BPMNDiagramImpl bpmnDiagram = (BPMNDiagramImpl) oDefinition; ProcessVariables processVars = bpmnDiagram.getProcessData().getProcessVariables(); addPropertyVariableToResult(result, processVars.getValue()); CaseFileVariables caseVars = bpmnDiagram.getCaseManagementSet().getCaseFileVariables(); addCaseFileVariableToResult(result, caseVars.getValue()); } } return result; }
@Test public void testUnmarshall_diagram() throws Exception { try (InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(DIAGRAM_FILE)) { Metadata metadata = new MetadataImpl.MetadataImplBuilder( BindableAdapterUtils.getDefinitionSetId(CaseManagementDefinitionSet.class)).build(); Graph<DefinitionSet, Node> graph = tested.unmarshall(metadata, inputStream); List<Node<View<?>, Edge>> nodes = StreamSupport.stream(graph.nodes().spliterator(), false) .map(n -> (Node<View<?>, Edge>) n).collect(Collectors.toList()); Node<View<?>, Edge> root = nodes.stream() .filter(node -> CaseManagementDiagram.class.isInstance(node.getContent().getDefinition())) .findAny().get(); CaseManagementDiagram diagram = (CaseManagementDiagram) root.getContent().getDefinition(); DiagramSet diagramSet = diagram.getDiagramSet(); assertEquals("DiagramTest", diagramSet.getName().getValue()); assertEquals("DiagramTest", diagramSet.getDocumentation().getValue()); assertEquals("DiagramTest", diagramSet.getId().getValue()); assertEquals("DiagramTest", diagramSet.getPackageProperty().getValue()); assertEquals("2.0", diagramSet.getVersion().getValue()); assertTrue(diagramSet.getAdHoc().getValue()); assertEquals("DiagramTest", diagramSet.getProcessInstanceDescription().getValue()); ProcessData processData = diagram.getProcessData(); assertEquals("DiagramTest:Boolean", processData.getProcessVariables().getValue()); CaseManagementSet caseManagementSet = diagram.getCaseManagementSet(); assertEquals("DiagramTest", caseManagementSet.getCaseIdPrefix().getValue()); assertEquals("DiagramTest:5", caseManagementSet.getCaseRoles().getValue()); assertEquals("DiagramTest:Boolean", caseManagementSet.getCaseFileVariables().getValue()); } }