Search in sources :

Example 1 with SendSignalAction

use of org.jbpm.bpmn2.handler.SendSignalAction in project jbpm by kiegroup.

the class IntermediateThrowEventHandler method handleSignalNode.

public void handleSignalNode(final Node node, final Element element, final String uri, final String localName, final ExtensibleXmlParser parser) throws SAXException {
    ActionNode actionNode = (ActionNode) node;
    String executeActionAfterCompleteMetadata = (String) node.getMetaData().get("executeActionAfterComplete");
    Boolean executeActionAfterComplete = executeActionAfterCompleteMetadata != null && Boolean.parseBoolean(executeActionAfterCompleteMetadata);
    actionNode.setExecuteActionAfterComplete(executeActionAfterComplete);
    org.w3c.dom.Node xmlNode = element.getFirstChild();
    while (xmlNode != null) {
        String nodeName = xmlNode.getNodeName();
        if ("dataInput".equals(nodeName)) {
            String id = ((Element) xmlNode).getAttribute("id");
            String inputName = ((Element) xmlNode).getAttribute("name");
            dataInputs.put(id, inputName);
        } else if ("dataInputAssociation".equals(nodeName)) {
            readDataInputAssociation(xmlNode, actionNode);
        } else if ("signalEventDefinition".equals(nodeName)) {
            String signalName = checkSignalAndConvertToRealSignalNam(parser, ((Element) xmlNode).getAttribute("signalRef"), s -> s.addOutgoingNode(node));
            String variable = (String) actionNode.getMetaData("MappingVariable");
            actionNode.setMetaData("EventType", "signal");
            actionNode.setMetaData("Ref", signalName);
            actionNode.setMetaData("Variable", variable);
            actionNode.setAction(new JavaDroolsAction(new SendSignalAction(actionNode, variable, signalName, dataInputs.containsValue("async"))));
        }
        xmlNode = xmlNode.getNextSibling();
    }
}
Also used : JavaDroolsAction(org.jbpm.workflow.core.impl.JavaDroolsAction) Element(org.w3c.dom.Element) ActionNode(org.jbpm.workflow.core.node.ActionNode) SendSignalAction(org.jbpm.bpmn2.handler.SendSignalAction)

Example 2 with SendSignalAction

use of org.jbpm.bpmn2.handler.SendSignalAction in project jbpm by kiegroup.

the class EndEventHandler method handleSignalNode.

public void handleSignalNode(final Node node, final Element element, final String uri, final String localName, final ExtensibleXmlParser parser) throws SAXException {
    EndNode endNode = (EndNode) node;
    org.w3c.dom.Node xmlNode = element.getFirstChild();
    while (xmlNode != null) {
        String nodeName = xmlNode.getNodeName();
        if ("dataInput".equals(nodeName)) {
            String id = ((Element) xmlNode).getAttribute("id");
            String inputName = ((Element) xmlNode).getAttribute("name");
            dataInputs.put(id, inputName);
        } else if ("dataInputAssociation".equals(nodeName)) {
            readEndDataInputAssociation(xmlNode, endNode);
        } else if ("signalEventDefinition".equals(nodeName)) {
            String signalName = ((Element) xmlNode).getAttribute("signalRef");
            String variable = (String) endNode.getMetaData("MappingVariable");
            signalName = checkSignalAndConvertToRealSignalNam(parser, signalName, s -> s.addOutgoingNode(node));
            endNode.setMetaData("EventType", "signal");
            endNode.setMetaData("Ref", signalName);
            endNode.setMetaData("Variable", variable);
            endNode.setActions(EndNode.EVENT_NODE_ENTER, Collections.singletonList(new JavaDroolsAction(new SendSignalAction(endNode, variable, signalName, dataInputs.containsValue("async")))));
        }
        xmlNode = xmlNode.getNextSibling();
    }
}
Also used : Text(org.w3c.dom.Text) EndNode(org.jbpm.workflow.core.node.EndNode) NodeList(org.w3c.dom.NodeList) Escalation(org.jbpm.bpmn2.core.Escalation) ExtensibleXmlParser(org.drools.core.xml.ExtensibleXmlParser) JavaDroolsAction(org.jbpm.workflow.core.impl.JavaDroolsAction) Message(org.jbpm.bpmn2.core.Message) List(java.util.List) Error(org.jbpm.bpmn2.core.Error) NodeContainer(org.jbpm.workflow.core.NodeContainer) ProcessBuildData(org.jbpm.compiler.xml.ProcessBuildData) Element(org.w3c.dom.Element) Node(org.jbpm.workflow.core.Node) Map(java.util.Map) SAXException(org.xml.sax.SAXException) SendMessageAction(org.jbpm.bpmn2.handler.SendMessageAction) Attributes(org.xml.sax.Attributes) FaultNode(org.jbpm.workflow.core.node.FaultNode) Collections(java.util.Collections) SendSignalAction(org.jbpm.bpmn2.handler.SendSignalAction) EndNode(org.jbpm.workflow.core.node.EndNode) JavaDroolsAction(org.jbpm.workflow.core.impl.JavaDroolsAction) Element(org.w3c.dom.Element) SendSignalAction(org.jbpm.bpmn2.handler.SendSignalAction)

Example 3 with SendSignalAction

use of org.jbpm.bpmn2.handler.SendSignalAction in project jbpm by kiegroup.

the class AbstractNodeHandler method writeJavaAction.

protected void writeJavaAction(Node node, JavaAction action, StringBuilder xmlDump) {
    if (action instanceof SendSignalAction) {
        SendSignalAction signalAction = (SendSignalAction) action;
        String variable = signalAction.getVariable();
        if (variable != null) {
            xmlDump.append("      <dataInput id=\"" + XmlBPMNProcessDumper.getUniqueNodeId(node) + "_Input\" />" + EOL + "      <dataInputAssociation>" + EOL + "        <sourceRef>" + XmlDumper.replaceIllegalChars(variable) + "</sourceRef>" + EOL + "        <targetRef>" + XmlBPMNProcessDumper.getUniqueNodeId(node) + "_Input</targetRef>" + EOL + "      </dataInputAssociation>" + EOL + "      <inputSet>" + EOL + "        <dataInputRefs>" + XmlBPMNProcessDumper.getUniqueNodeId(node) + "_Input</dataInputRefs>" + EOL + "      </inputSet>" + EOL);
        }
        xmlDump.append("      <signalEventDefinition signalRef=\"" + XmlBPMNProcessDumper.replaceIllegalCharsAttribute(signalAction.getSignalName()) + "\"/>" + EOL);
    } else if (action instanceof SendMessageAction) {
        SendMessageAction signalAction = (SendMessageAction) action;
        String variable = signalAction.getVariable();
        if (variable != null) {
            xmlDump.append("      <dataInput id=\"" + XmlBPMNProcessDumper.getUniqueNodeId(node) + "_Input\" />" + EOL + "      <dataInputAssociation>" + EOL + "        <sourceRef>" + XmlDumper.replaceIllegalChars(variable) + "</sourceRef>" + EOL + "        <targetRef>" + XmlBPMNProcessDumper.getUniqueNodeId(node) + "_Input</targetRef>" + EOL + "      </dataInputAssociation>" + EOL + "      <inputSet>" + EOL + "        <dataInputRefs>" + XmlBPMNProcessDumper.getUniqueNodeId(node) + "_Input</dataInputRefs>" + EOL + "      </inputSet>" + EOL);
        }
        xmlDump.append("      <messageEventDefinition messageRef=\"" + XmlBPMNProcessDumper.getUniqueNodeId(node) + "_Message\"/>" + EOL);
    }
}
Also used : SendMessageAction(org.jbpm.bpmn2.handler.SendMessageAction) SendSignalAction(org.jbpm.bpmn2.handler.SendSignalAction)

Aggregations

SendSignalAction (org.jbpm.bpmn2.handler.SendSignalAction)3 SendMessageAction (org.jbpm.bpmn2.handler.SendMessageAction)2 JavaDroolsAction (org.jbpm.workflow.core.impl.JavaDroolsAction)2 Element (org.w3c.dom.Element)2 Collections (java.util.Collections)1 List (java.util.List)1 Map (java.util.Map)1 ExtensibleXmlParser (org.drools.core.xml.ExtensibleXmlParser)1 Error (org.jbpm.bpmn2.core.Error)1 Escalation (org.jbpm.bpmn2.core.Escalation)1 Message (org.jbpm.bpmn2.core.Message)1 ProcessBuildData (org.jbpm.compiler.xml.ProcessBuildData)1 Node (org.jbpm.workflow.core.Node)1 NodeContainer (org.jbpm.workflow.core.NodeContainer)1 ActionNode (org.jbpm.workflow.core.node.ActionNode)1 EndNode (org.jbpm.workflow.core.node.EndNode)1 FaultNode (org.jbpm.workflow.core.node.FaultNode)1 NodeList (org.w3c.dom.NodeList)1 Text (org.w3c.dom.Text)1 Attributes (org.xml.sax.Attributes)1