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; } } } }
@Override public boolean equals(Object o) { if (!(o instanceof CaseManagementSet)) { return false; } CaseManagementSet other = (CaseManagementSet) o; return Objects.equals(caseRoles, other.caseRoles) && Objects.equals(getCaseIdPrefix(), other.caseIdPrefix) && Objects.equals(caseFileVariables, other.caseFileVariables); } }
@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); }
public BPMNDiagramImpl() { this(new DiagramSet(), new ProcessData(), new CaseManagementSet(), new BackgroundSet(), new FontSet(), new RectangleDimensionsSet(WIDTH, HEIGHT)); }
@Override public int hashCode() { return HashUtil.combineHashCodes(diagramSet.hashCode(), processData.hashCode(), caseManagementSet.hashCode(), backgroundSet.hashCode(), fontSet.hashCode(), dimensionsSet.hashCode()); }
@Override public boolean equals(Object o) { if (o instanceof BPMNDiagramImpl) { BPMNDiagramImpl other = (BPMNDiagramImpl) o; return diagramSet.equals(other.diagramSet) && processData.equals(other.processData) && caseManagementSet.equals(other.caseManagementSet) && backgroundSet.equals(other.backgroundSet) && fontSet.equals(other.fontSet) && dimensionsSet.equals(other.dimensionsSet); } return false; } }
@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()); } }
public CaseManagementDiagram() { this(new DiagramSet(""), new ProcessData(), new CaseManagementSet(), new BackgroundSet(), new FontSet(), new RectangleDimensionsSet(WIDTH, HEIGHT)); }
@Override public int hashCode() { return HashUtil.combineHashCodes(diagramSet.hashCode(), processData.hashCode(), caseManagementSet.hashCode(), backgroundSet.hashCode(), fontSet.hashCode(), dimensionsSet.hashCode()); }
@Override public boolean equals(Object o) { if (o instanceof CaseManagementDiagram) { CaseManagementDiagram other = (CaseManagementDiagram) o; return diagramSet.equals(other.diagramSet) && processData.equals(other.processData) && caseManagementSet.equals(other.caseManagementSet) && backgroundSet.equals(other.backgroundSet) && fontSet.equals(other.fontSet) && dimensionsSet.equals(other.dimensionsSet); } return false; } }
final CaseIdPrefix caseIdPrefix = definition.getCaseManagementSet().getCaseIdPrefix(); p.setCaseIdPrefix(caseIdPrefix); final CaseRoles caseRoles = definition.getCaseManagementSet().getCaseRoles(); p.setCaseRoles(caseRoles); final CaseFileVariables caseFileVariables = definition.getCaseManagementSet().getCaseFileVariables(); p.setCaseFileVariables(caseFileVariables);
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; } }
private BpmnNode convertProcessNode(String id, Process process) { Node<View<D>, Edge> diagramNode = delegate.factoryManager.newNode(id, getDiagramClass()); D definition = diagramNode.getContent().getDefinition(); ProcessPropertyReader e = delegate.propertyReaderFactory.of(process); definition.setDiagramSet(new DiagramSet(new Name(process.getName()), new Documentation(e.getDocumentation()), new Id(process.getId()), new Package(e.getPackage()), new Version(e.getVersion()), new AdHoc(e.isAdHoc()), new ProcessInstanceDescription(e.getDescription()), new Executable(process.isIsExecutable())) ); definition.setCaseManagementSet(new CaseManagementSet(new CaseIdPrefix(e.getCaseIdPrefix()), new CaseRoles(e.getCaseRoles()), new CaseFileVariables(e.getCaseFileVariables()) )); definition.setProcessData(new ProcessData(new ProcessVariables(e.getProcessVariables()))); diagramNode.getContent().setBounds(e.getBounds()); definition.setFontSet(e.getFontSet()); definition.setBackgroundSet(e.getBackgroundSet()); return BpmnNode.of(diagramNode); }
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; }