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; } }
@Before public void setUp() throws Exception { diagram = new BPMNDiagramImpl(); diagram.setDiagramSet(new DiagramSet()); diagram.setCaseManagementSet(caseManagementSet); context = new DefinitionsBuildingContext(node, Stream.of(new AbstractMap.SimpleEntry("uuid", node)).collect(Collectors.toMap(Map.Entry<String, Node>::getKey, Map.Entry<String, Node>::getValue))).withRootNode(node); converter = new RootProcessConverter(context, propertyWriterFactory, converterFactory); when(propertyWriterFactory.of(Matchers.any(Process.class))).thenReturn(processPropertyWriter); when(node.getContent()).thenReturn(content); when(content.getDefinition()).thenReturn(diagram); when(caseManagementSet.getCaseIdPrefix()).thenReturn(caseIdPrefix); when(caseManagementSet.getCaseRoles()).thenReturn(caseRoles); when(caseManagementSet.getCaseFileVariables()).thenReturn(caseFileVariables); when(converterFactory.subProcessConverter()).thenReturn(subProcessConverter); when(converterFactory.viewDefinitionConverter()).thenReturn(viewDefinitionConverter); when(converterFactory.laneConverter()).thenReturn(laneConverter); }
CaseFileVariables caseFileVariables = caseManagementSet.getCaseFileVariables(); if (caseFileVariables != null) { if (variables.length() > 0) {
@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()); } }
p.setCaseRoles(caseRoles); final CaseFileVariables caseFileVariables = definition.getCaseManagementSet().getCaseFileVariables(); p.setCaseFileVariables(caseFileVariables);