private void readUserTaskFormVariables(FlowElementsContainer container, ProcessTaskFormsGenerationResult result) { container.getFlowElements().stream().filter(flowElement -> flowElement instanceof UserTask).map(flowElement -> (UserTask) flowElement).forEach(userTask -> readTaskVariables(userTask, result)); container.getFlowElements().stream().filter(flowElement -> flowElement instanceof FlowElementsContainer).map(flowElement -> (FlowElementsContainer) flowElement).forEach(flowElementsContainer -> readUserTaskFormVariables(flowElementsContainer, result)); }
private ProcessTaskFormsGenerationResult readUserTaskFormVariables(FlowElementsContainer container) { ProcessTaskFormsGenerationResult result = new ProcessTaskFormsGenerationResult(container.getId()); readUserTaskFormVariables(container, result); return result; }
private void findBoundaryEvents(FlowElementsContainer flc, List<BoundaryEvent> boundaryList) { for (FlowElement fl : flc.getFlowElements()) { if (fl instanceof BoundaryEvent) { boundaryList.add((BoundaryEvent) fl); } if (fl instanceof FlowElementsContainer) { findBoundaryEvents((FlowElementsContainer) fl, boundaryList); } } }
private void readContainerUserTasks(FlowElementsContainer container, Consumer<TaskFormModel> consumer) { container.getFlowElements() .stream() .filter(flowElement -> flowElement instanceof UserTask) .map(flowElement -> (UserTask) flowElement).forEach(userTask -> readUserTask(userTask, consumer)); container.getFlowElements() .stream() .filter(flowElement -> flowElement instanceof FlowElementsContainer).map(flowElement -> (FlowElementsContainer) flowElement) .forEach(flowElementsContainer -> readContainerUserTasks(flowElementsContainer, consumer)); }
protected FlowElement findElementInContainer(FlowElementsContainer container, String id) { List<FlowElement> currentContainerElems = container.getFlowElements(); for (FlowElement fElement : currentContainerElems) { if (fElement.getId().equals(id) ) { return fElement; } else if (fElement instanceof FlowElementsContainer) { FlowElement fe = findElementInContainer((FlowElementsContainer) fElement, id); if (fe != null) { return fe; } } } return null; }
protected FlowElement findElementInContainer(FlowElementsContainer container, String id) { List<FlowElement> currentContainerElems = container.getFlowElements(); for (FlowElement fElement : currentContainerElems) { if (fElement.getId().equals(id) ) { return fElement; } else if (fElement instanceof FlowElementsContainer) { FlowElement fe = findElementInContainer((FlowElementsContainer) fElement, id); if (fe != null) { return fe; } } } return null; }
protected FlowElement findElementInContainer(FlowElementsContainer container, String id) { List<FlowElement> currentContainerElems = container.getFlowElements(); for (FlowElement fElement : currentContainerElems) { if (fElement.getId().equals(id) ) { return fElement; } else if (fElement instanceof FlowElementsContainer) { FlowElement fe = findElementInContainer((FlowElementsContainer) fElement, id); if (fe != null) { return fe; } } } return null; }
protected Activity findActivity(FlowElementsContainer container, String uuid) { final List<FlowElementsContainer> subContainers = new ArrayList<>(); for (FlowElement flowElement : container.getFlowElements()) { if (flowElement instanceof Activity) { if (flowElement.getId().equals(uuid)) { return (Activity) flowElement; } else if (flowElement instanceof SubProcess) { subContainers.add((SubProcess) flowElement); } } } Activity result; for (FlowElementsContainer subContainer : subContainers) { result = findActivity(subContainer, uuid); if (result != null) { return result; } } return null; } }
private FlowElementsContainer findContanerForFlowElement(FlowElementsContainer container, FlowElement fl) { for (FlowElement flowElement : container.getFlowElements()) { if (flowElement.getId().equals(fl.getId())) { return container; } if (flowElement instanceof FlowElementsContainer) { return findContanerForFlowElement((FlowElementsContainer) flowElement, fl); } } return null; }
protected void revisitBoundaryEventsPositions(Definitions def) { for (RootElement root : def.getRootElements()) { if (root instanceof Process) { Process process = (Process) root; List<BoundaryEvent> toRemove = new ArrayList(); for (FlowElement fe : process.getFlowElements()) { if (fe instanceof BoundaryEvent) { BoundaryEvent be = (BoundaryEvent) fe; FlowElementsContainer container = findContainerForBoundaryEvent(process, be); if (container != null && !(container instanceof Process)) { BoundaryEvent beCopy = copyBoundaryEvent(be); container.getFlowElements().add(beCopy); _outgoingFlows.put(beCopy, _outgoingFlows.get(be)); toRemove.add(be); _outgoingFlows.remove(be); } } } for (BoundaryEvent be : toRemove) { process.getFlowElements().remove(be); } } } reconnectFlows(); }
protected FlowElementsContainer findContainerForBoundaryEvent(FlowElementsContainer container, BoundaryEvent be) { for (FlowElement flowElement : container.getFlowElements()) { if (flowElement.getId().equals(be.getAttachedToRef().getId())) { return container; } if (flowElement instanceof FlowElementsContainer) { FlowElementsContainer result = findContainerForBoundaryEvent((FlowElementsContainer) flowElement, be); if (result != null) { return result; } } } return null; }
protected void readFlowElements(FlowElementsContainer container, Map<String, FlowElement> catchingEvents) { List<FlowElement> flowElements = container.getFlowElements(); for (FlowElement fElement : flowElements) { if (fElement instanceof StartEvent) {
process.getFlowElements().add((FlowElement) p.getElement()); } else { process.getFlowElements().add(0, (FlowElement) p.getElement()); p.getElement();
public void setSignalRefForThrowEvents(FlowElementsContainer container, Definitions def) { List<FlowElement> flowElements = container.getFlowElements(); for (FlowElement fe : flowElements) { if (fe instanceof ThrowEvent) { if (((ThrowEvent) fe).getEventDefinitions().size() > 0) { EventDefinition ed = ((ThrowEvent) fe).getEventDefinitions().get(0); if (ed instanceof SignalEventDefinition) { SignalEventDefinition sed = (SignalEventDefinition) ed; if (sed.getSignalRef() != null) { Signal signal = findSignalWithName(sed.getSignalRef(), def); if (signal != null) { sed.setSignalRef(signal.getId()); } } } } } else if (fe instanceof FlowElementsContainer) { setSignalRefForThrowEvents((FlowElementsContainer) fe, def); } } }
public void setSignalRefForBoundaryEvents(FlowElementsContainer container, Definitions def) { List<FlowElement> flowElements = container.getFlowElements(); for (FlowElement fe : flowElements) { if (fe instanceof BoundaryEvent) { if (((BoundaryEvent) fe).getEventDefinitions().size() > 0) { EventDefinition ed = ((BoundaryEvent) fe).getEventDefinitions().get(0); if (ed instanceof SignalEventDefinition) { SignalEventDefinition sed = (SignalEventDefinition) ed; if (sed.getSignalRef() != null) { Signal signal = findSignalWithName(sed.getSignalRef(), def); if (signal != null) { sed.setSignalRef(signal.getId()); } } } } } else if (fe instanceof FlowElementsContainer) { setSignalRefForBoundaryEvents((FlowElementsContainer) fe, def); } } }
public void setSignalRefForCatchEvents(FlowElementsContainer container, Definitions def) { List<FlowElement> flowElements = container.getFlowElements(); for (FlowElement fe : flowElements) { if (fe instanceof CatchEvent) { if (((CatchEvent) fe).getEventDefinitions().size() > 0) { EventDefinition ed = ((CatchEvent) fe).getEventDefinitions().get(0); if (ed instanceof SignalEventDefinition) { SignalEventDefinition sed = (SignalEventDefinition) ed; if (sed.getSignalRef() != null) { Signal signal = findSignalWithName(sed.getSignalRef(), def); if (signal != null) { sed.setSignalRef(signal.getId()); } } } } } else if (fe instanceof FlowElementsContainer) { setSignalRefForCatchEvents((FlowElementsContainer) fe, def); } } }
protected void readFlowElements(FlowElementsContainer container, Map<String, FlowElement> catchingEvents) { List<FlowElement> flowElements = container.getFlowElements(); for (FlowElement fElement : flowElements) { if (fElement instanceof StartEvent) {
protected void readFlowElements(FlowElementsContainer container, Map<String, FlowElement> catchingEvents) { List<FlowElement> flowElements = container.getFlowElements(); for (FlowElement fElement : flowElements) { if (fElement instanceof StartEvent) {
public void setSendReceiveTasksInfo(FlowElementsContainer container, Definitions def, List<Message> toAddMessages, List<ItemDefinition> toAddItemDefinitions) { List<FlowElement> flowElements = container.getFlowElements(); for (FlowElement fe : flowElements) { if (fe instanceof ReceiveTask) { ReceiveTask rt = (ReceiveTask) fe; rt.setMessageRef(extractMessage(rt, toAddMessages, toAddItemDefinitions)); } else if (fe instanceof SendTask) { SendTask st = (SendTask) fe; st.setMessageRef(extractMessage(st, toAddMessages, toAddItemDefinitions)); } else if (fe instanceof FlowElementsContainer) { setSendReceiveTasksInfo((FlowElementsContainer) fe, def, toAddMessages, toAddItemDefinitions); } } }
Map<BoundaryEvent, List<String>> boundaryEventsToAdd) { FlowElementsContainer container = subContainer != null ? subContainer : process; List<FlowElement> flowElements = container.getFlowElements(); for (FlowElement fe : flowElements) { if (fe instanceof CatchEvent) { boolean removed = container.getFlowElements().remove(ce); _outgoingFlows.remove(ce); while (boundaryToAddIterator.hasNext()) { BoundaryEvent bToAdd = boundaryToAddIterator.next(); container.getFlowElements().add(bToAdd); _outgoingFlows.put(bToAdd, boundaryEventsToAdd.get(bToAdd));