public List<Node> getEndNodes() { return getEndNodes(this.getNodes()); }
public List<StartNode> getTimerStart() { Node[] nodes = getNodes(); List<StartNode> timerStartNodes = new ArrayList<StartNode>(); for (int i = 0; i < nodes.length; i++) { if (nodes[i] instanceof StartNode) { // return start node that is not event based node if (((StartNode) nodes[i]).getTimer() != null) { timerStartNodes.add((StartNode) nodes[i]); } } } return timerStartNodes; }
public List<Node> getStartNodes() { return getStartNodes(this.getNodes()); }
public List<Node> getAutoStartNodes() { if (!isDynamic()) { return Collections.emptyList(); } List<Node> nodes = Arrays.stream(getNodes()) .filter(n -> n.getIncomingConnections().isEmpty() && "true".equalsIgnoreCase((String)n.getMetaData().get("customAutoStart"))) .collect(Collectors.toList()); return nodes; }
if (activityRef != null) { Queue<Node> nodeQueue = new LinkedList<Node>(); nodeQueue.addAll(Arrays.asList(process.getNodes())); while (!nodeQueue.isEmpty()) { Node polledNode = nodeQueue.poll();
from = getNodeId(((WorkflowProcess) processFrom).getNodes(), entry.getKey(), true); } else if (processFrom instanceof RuleFlowProcess) { from = getNodeId(((RuleFlowProcess) processFrom).getNodes(), entry.getKey(), true); } else if (processFrom != null) { throw new IllegalArgumentException("Suported processes are WorkflowProcess and RuleFlowProcess, it was:" + processFrom.getClass()); to = Long.valueOf(getNodeId(((WorkflowProcess) processTo).getNodes(), entry.getValue(), false)); } else if (processTo instanceof RuleFlowProcess) { to = Long.valueOf(getNodeId(((RuleFlowProcess) processTo).getNodes(), entry.getValue(), false)); } else if (processTo != null) { throw new IllegalArgumentException("Suported processes are WorkflowProcess and RuleFlowProcess, it was:" + processTo.getClass());
private Node findNode(RuleFlowProcess process, String nodeName) { Node found = null; Queue<org.kie.api.definition.process.Node> nodes = new LinkedList<org.kie.api.definition.process.Node>(); nodes.addAll(Arrays.asList(process.getNodes())); while( ! nodes.isEmpty() ) { org.kie.api.definition.process.Node node = nodes.poll(); if (node.getName().equals(nodeName) ) { found = (Node) node; } if( node instanceof NodeContainer ) { nodes.addAll(Arrays.asList(((NodeContainer) node).getNodes())); } } assertNotNull("Could not find node (" + nodeName + ").", found); return found; }
validateNodes(process.getNodes(), errors, process);
public Object end(final String uri, final String localName, final ExtensibleXmlParser parser) throws SAXException { parser.endElementBuilder(); ProcessInfo processInfo = (ProcessInfo) parser.getCurrent(); List<Process> processes = ((ProcessBuildData) parser.getData()).getProcesses(); RuleFlowProcess process = null; for (Process p : processes) { if (p.getId() != null && p.getId().equals(processInfo.getProcessRef())) { process = (RuleFlowProcess) p; break; } } if (process != null) { for (NodeInfo nodeInfo: processInfo.getNodeInfos()) { processNodeInfo(nodeInfo, process.getNodes()); } postProcessNodeOffset(process.getNodes(), 0, 0); for (ConnectionInfo connectionInfo: processInfo.getConnectionInfos()) { if (connectionInfo.getBendpoints() != null) { processConnectionInfo(connectionInfo, process.getNodes()); } } } return processInfo; }
public StartNode getStart(String trigger) { Node[] nodes = getNodes();
@Test public void testLoadOrderITHardwareCase() throws Exception { KieBase kbase = createKnowledgeBase("CMMN-OrderITHardwareCase.cmmn"); assertThat(kbase).isNotNull(); Process process = kbase.getProcess("itorders.orderhardware"); assertThat(process).isNotNull(); assertThat(process).isInstanceOf(RuleFlowProcess.class); RuleFlowProcess caseProcess = (RuleFlowProcess) process; assertThat(caseProcess.isDynamic()).isTrue(); assertThat(caseProcess.getId()).isEqualTo("itorders.orderhardware"); assertThat(caseProcess.getName()).isEqualTo("Order IT hardware"); Node[] nodes = caseProcess.getNodes(); assertThat(nodes).hasSize(9); List<Variable> variables = caseProcess.getVariableScope().getVariables(); assertThat(variables).hasSize(7); }
@Test public void testLoadProcessTaskReferenceCase() throws Exception { KieBase kbase = createKnowledgeBase("CMMN-ProcessTaskReferenceCase.cmmn"); assertThat(kbase).isNotNull(); Process process = kbase.getProcess("Case_636d4bea-4d52-46fb-b1ad-9ceeddf1be69"); assertThat(process).isNotNull(); assertThat(process).isInstanceOf(RuleFlowProcess.class); RuleFlowProcess caseProcess = (RuleFlowProcess) process; assertThat(caseProcess.isDynamic()).isTrue(); assertThat(caseProcess.getId()).isEqualTo("Case_636d4bea-4d52-46fb-b1ad-9ceeddf1be69"); assertThat(caseProcess.getName()).isEqualTo("ProcessTaskCase"); Node[] nodes = caseProcess.getNodes(); assertThat(nodes).hasSize(1); SubProcessNode processNode = (SubProcessNode) nodes[0]; assertThat(processNode.getName()).isEqualTo("call my process"); assertThat(processNode.getProcessId()).isEqualTo("_4e0c5178-c886-4a14-ab6b-6ec6c940194b"); assertThat(processNode.isWaitForCompletion()).isTrue(); assertThat(processNode.isIndependent()).isFalse(); assertThat(processNode.getInAssociations()).hasSize(0); assertThat(processNode.getOutAssociations()).hasSize(0); }
assertThat(caseProcess.getName()).isEqualTo("ProcessAndDecisionTaskCase"); Node[] nodes = caseProcess.getNodes(); assertThat(nodes).hasSize(2);
assertThat(roles).isEqualTo("owner,manager"); Node[] nodes = caseProcess.getNodes(); assertThat(nodes).hasSize(2);
assertThat(roles).isEqualTo("owner,manager"); Node[] nodes = caseProcess.getNodes(); assertThat(nodes).hasSize(2);
private void initProcessEventListener(Process process) { if ( process instanceof RuleFlowProcess ) { for (Node node : ((RuleFlowProcess) process).getNodes()) { if (node instanceof StartNode) { StartNode startNode = (StartNode) node;
assertThat(roles).isEqualTo("owner,manager"); Node[] nodes = caseProcess.getNodes(); assertThat(nodes).hasSize(2); assertThat(nodes).allSatisfy(n -> assertThat(n).isInstanceOf(HumanTaskNode.class));
assertThat(caseFileItem.getType()).isInstanceOf(ObjectDataType.class); Node[] nodes = caseProcess.getNodes(); assertThat(nodes).hasSize(3);
assertThat(caseFileItem.getType()).isInstanceOf(ObjectDataType.class); Node[] nodes = caseProcess.getNodes(); assertThat(nodes).hasSize(2);
assertEquals(17, process.getNodes().length);