public SubProcessNodeFactory processId(final String processId) { getSubProcessNode().setProcessId(processId); return this; }
public void handleNode(final Node node, final Element element, final String uri, final String localName, final ExtensibleXmlParser parser) throws SAXException { super.handleNode(node, element, uri, localName, parser); SubProcessNode subProcessNode = (SubProcessNode) node; String processId = element.getAttribute("processId"); if (processId != null && processId.length() > 0) { subProcessNode.setProcessId(processId); } String waitForCompletion = element.getAttribute("waitForCompletion"); subProcessNode.setWaitForCompletion(!"false".equals(waitForCompletion)); String independent = element.getAttribute("independent"); subProcessNode.setIndependent(!"false".equals(independent)); for (String eventType: subProcessNode.getActionTypes()) { handleAction(subProcessNode, element, eventType); } }
protected void handleNode(final Node node, final Element element, final String uri, final String localName, final ExtensibleXmlParser parser) throws SAXException { super.handleNode(node, element, uri, localName, parser); SubProcessNode subProcessNode = (SubProcessNode) node; String processId = element.getAttribute("processRef"); String isBlocking = element.getAttribute("isBlocking"); if (isBlocking == null || isBlocking.isEmpty()) { isBlocking = "true"; } subProcessNode.setProcessId(processId); subProcessNode.setWaitForCompletion(Boolean.parseBoolean(isBlocking)); subProcessNode.setIndependent(false); Map<String, String> inputs = new HashMap<>(); Map<String, String> outputs = new HashMap<>(); Map<String, String> inputTypes = new HashMap<>(); Map<String, String> outputTypes = new HashMap<>(); loadDataInputsAndOutputs(element, inputs, outputs, inputTypes, outputTypes, parser); subProcessNode.setMetaData("DataInputs", inputTypes); subProcessNode.setMetaData("DataOutputs", outputTypes); subProcessNode.setMetaData("customAbortParent", "false"); for (Entry<String, String> entry : inputs.entrySet()) { subProcessNode.addInAssociation(new DataAssociation(entry.getValue(), entry.getKey(), Collections.emptyList(), null)); } for (Entry<String, String> entry : outputs.entrySet()) { subProcessNode.addOutAssociation(new DataAssociation(entry.getKey(), entry.getValue(), Collections.emptyList(), null)); } }
String processId = element.getAttribute("calledElement"); if (processId != null && processId.length() > 0) { subProcessNode.setProcessId(processId); } else { String processName = element.getAttribute("calledElementByName");
private void postProcessNodes(RuleFlowProcess process, NodeContainer container, ProcessBuildData buildData, ExtensibleXmlParser parser) { for (Node node : container.getNodes()) { if (node instanceof SubProcessNode) { Map<String, String> processes = (Map<String, String>) buildData.getMetaData("ProcessElements"); if (processes != null) { SubProcessNode subprocessNode = (SubProcessNode) node; subprocessNode.setProcessId(processes.getOrDefault(subprocessNode.getProcessId(), subprocessNode.getProcessId())); } } else if (node instanceof RuleSetNode) { Map<String, Decision> decisions = (Map<String, Decision>) buildData.getMetaData("DecisionElements"); RuleSetNode ruleSetNode = (RuleSetNode) node; if (decisions != null && decisions.containsKey(ruleSetNode.getRuleFlowGroup())) { Decision decision = decisions.get(ruleSetNode.getRuleFlowGroup()); ruleSetNode.setRuleFlowGroup(null); ruleSetNode.setLanguage(RuleSetNode.DMN_LANG); ruleSetNode.setNamespace((String) parser.getNamespaceURI(decision.getNamespace())); ruleSetNode.setModel(decision.getModel()); ruleSetNode.setDecision(decision.getDecision()); } } if (node instanceof NodeContainer) { postProcessNodes(process, (NodeContainer) node, buildData, parser); } } }
subProcessNode.setName("SubProcessNode"); subProcessNode.setId(2); subProcessNode.setProcessId(nonExistentSubProcessName); EndNode endNode = new EndNode(); endNode.setName("End");
public static RuleFlowProcess newProcessWithOneSubProcess(String processId, String subProcessId) { RuleFlowProcess process = new RuleFlowProcess(); process.setId(processId); StartNode startNode = new StartNode(); startNode.setName( "Start" ); startNode.setId(1); SubProcessNode subProcessNode = new SubProcessNode(); subProcessNode.setId(2); subProcessNode.setProcessId(subProcessId); subProcessNode.setName("subProcess"); EndNode endNode = new EndNode(); endNode.setName("EndNode"); endNode.setId(4); connect( startNode, subProcessNode ); connect( subProcessNode, endNode ); process.addNode( startNode ); process.addNode( subProcessNode ); process.addNode( endNode ); return process; }
subProcess.setMetaData("width", 3); subProcess.setMetaData("height", 4); subProcess.setProcessId("processId"); subProcess.setWaitForCompletion(false); subProcess.setIndependent(false);
subProcessNode.setName("SubProcessNode"); subProcessNode.setId(3); subProcessNode.setProcessId("org.drools.core.process.subprocess"); process.addNode(subProcessNode); new ConnectionImpl(
subProcessNode.setName("SubProcessNode"); subProcessNode.setId(3); subProcessNode.setProcessId("org.drools.core.process.subprocess"); process.addNode(subProcessNode); new ConnectionImpl(
public SubProcessNodeFactory processId(final String processId) { getSubProcessNode().setProcessId(processId); return this; }
subProcessNode.setId( 3 ); subProcessNode.setName( "SubProcess" ); subProcessNode.setProcessId( "org.drools.test.SubProcess" ); process.addNode( subProcessNode );
public void handleNode(final Node node, final Element element, final String uri, final String localName, final ExtensibleXmlParser parser) throws SAXException { super.handleNode(node, element, uri, localName, parser); SubProcessNode subProcessNode = (SubProcessNode) node; String processId = element.getAttribute("processId"); if (processId != null && processId.length() > 0) { subProcessNode.setProcessId(processId); } String waitForCompletion = element.getAttribute("waitForCompletion"); subProcessNode.setWaitForCompletion(!"false".equals(waitForCompletion)); String independent = element.getAttribute("independent"); subProcessNode.setIndependent(!"false".equals(independent)); for (String eventType: subProcessNode.getActionTypes()) { handleAction(subProcessNode, element, eventType); } }
protected void handleNode(final Node node, final Element element, final String uri, final String localName, final ExtensibleXmlParser parser) throws SAXException { super.handleNode(node, element, uri, localName, parser); SubProcessNode subProcessNode = (SubProcessNode) node; String processId = element.getAttribute("processRef"); String isBlocking = element.getAttribute("isBlocking"); if (isBlocking == null || isBlocking.isEmpty()) { isBlocking = "true"; } subProcessNode.setProcessId(processId); subProcessNode.setWaitForCompletion(Boolean.parseBoolean(isBlocking)); subProcessNode.setIndependent(false); Map<String, String> inputs = new HashMap<>(); Map<String, String> outputs = new HashMap<>(); Map<String, String> inputTypes = new HashMap<>(); Map<String, String> outputTypes = new HashMap<>(); loadDataInputsAndOutputs(element, inputs, outputs, inputTypes, outputTypes, parser); subProcessNode.setMetaData("DataInputs", inputTypes); subProcessNode.setMetaData("DataOutputs", outputTypes); subProcessNode.setMetaData("customAbortParent", "false"); for (Entry<String, String> entry : inputs.entrySet()) { subProcessNode.addInAssociation(new DataAssociation(entry.getValue(), entry.getKey(), Collections.emptyList(), null)); } for (Entry<String, String> entry : outputs.entrySet()) { subProcessNode.addOutAssociation(new DataAssociation(entry.getKey(), entry.getValue(), Collections.emptyList(), null)); } }
String processId = element.getAttribute("calledElement"); if (processId != null && processId.length() > 0) { subProcessNode.setProcessId(processId); } else { String processName = element.getAttribute("calledElementByName");
private void postProcessNodes(RuleFlowProcess process, NodeContainer container, ProcessBuildData buildData, ExtensibleXmlParser parser) { for (Node node : container.getNodes()) { if (node instanceof SubProcessNode) { Map<String, String> processes = (Map<String, String>) buildData.getMetaData("ProcessElements"); if (processes != null) { SubProcessNode subprocessNode = (SubProcessNode) node; subprocessNode.setProcessId(processes.getOrDefault(subprocessNode.getProcessId(), subprocessNode.getProcessId())); } } else if (node instanceof RuleSetNode) { Map<String, Decision> decisions = (Map<String, Decision>) buildData.getMetaData("DecisionElements"); RuleSetNode ruleSetNode = (RuleSetNode) node; if (decisions != null && decisions.containsKey(ruleSetNode.getRuleFlowGroup())) { Decision decision = decisions.get(ruleSetNode.getRuleFlowGroup()); ruleSetNode.setRuleFlowGroup(null); ruleSetNode.setLanguage(RuleSetNode.DMN_LANG); ruleSetNode.setNamespace((String) parser.getNamespaceURI(decision.getNamespace())); ruleSetNode.setModel(decision.getModel()); ruleSetNode.setDecision(decision.getDecision()); } } if (node instanceof NodeContainer) { postProcessNodes(process, (NodeContainer) node, buildData, parser); } } }
subProcessNode.setId( 3 ); subProcessNode.setName( "SubProcess" ); subProcessNode.setProcessId( "org.drools.test.SubProcess" ); process.addNode( subProcessNode ); new ConnectionImpl( actionNode,
subProcessNode.setId(3); subProcessNode.setName("SubProcess"); subProcessNode.setProcessId("org.drools.test.SubProcess"); process.addNode(subProcessNode); new ConnectionImpl(actionNode,
subProcessNode.setId(3); subProcessNode.setName("SubProcess"); subProcessNode.setProcessId("org.drools.test.SubProcess"); process.addNode(subProcessNode); new ConnectionImpl(actionNode,
subProcessNode.setId(3); subProcessNode.setName("SubProcess"); subProcessNode.setProcessId("org.drools.test.SubProcess"); process.addNode(subProcessNode); new ConnectionImpl(actionNode,