use of io.automatiko.engine.workflow.bpmn2.core.Signal in project automatiko-engine by automatiko-io.
the class AbstractNodeHandler method findSignalByName.
protected Signal findSignalByName(ExtensibleXmlParser parser, String signalName) {
ProcessBuildData buildData = ((ProcessBuildData) parser.getData());
Set<String> signalNames = (Set<String>) buildData.getMetaData(SIGNAL_NAMES);
if (signalNames == null) {
signalNames = new HashSet<>();
buildData.setMetaData(SIGNAL_NAMES, signalNames);
}
signalNames.add(signalName);
Map<String, Signal> signals = (Map<String, Signal>) buildData.getMetaData("Signals");
if (signals != null) {
return signals.get(signalName);
}
return null;
}
use of io.automatiko.engine.workflow.bpmn2.core.Signal in project automatiko-engine by automatiko-io.
the class IntermediateCatchEventHandler method handleSignalNode.
protected void handleSignalNode(final Node node, final Element element, final String uri, final String localName, final ExtensibleXmlParser parser) throws SAXException {
super.handleNode(node, element, uri, localName, parser);
EventNode eventNode = (EventNode) node;
org.w3c.dom.Node xmlNode = element.getFirstChild();
while (xmlNode != null) {
String nodeName = xmlNode.getNodeName();
if ("dataOutput".equals(nodeName)) {
String id = ((Element) xmlNode).getAttribute("id");
String outputName = ((Element) xmlNode).getAttribute("name");
dataOutputs.put(id, outputName);
populateDataOutputs(xmlNode, outputName, parser);
} else if ("dataOutputAssociation".equals(nodeName)) {
readDataOutputAssociation(xmlNode, eventNode);
} else if ("signalEventDefinition".equals(nodeName)) {
String type = ((Element) xmlNode).getAttribute("signalRef");
if (type != null && type.trim().length() > 0) {
Signal signal = findSignalByName(parser, type);
if (signal != null) {
eventNode.setMetaData("MessageType", retrieveDataType(signal.getStructureRef(), null, parser));
}
type = checkSignalAndConvertToRealSignalNam(parser, type);
List<EventFilter> eventFilters = new ArrayList<EventFilter>();
EventTypeFilter eventFilter = new EventTypeFilter();
eventFilter.setType(type);
eventFilters.add(eventFilter);
eventNode.setEventFilters(eventFilters);
}
}
xmlNode = xmlNode.getNextSibling();
}
}
use of io.automatiko.engine.workflow.bpmn2.core.Signal in project automatiko-engine by automatiko-io.
the class SignalHandler method start.
@SuppressWarnings("unchecked")
public Object start(final String uri, final String localName, final Attributes attrs, final ExtensibleXmlParser parser) throws SAXException {
parser.startElementBuilder(localName, attrs);
// according to the (Semantic.)xsd, both the name and structureRef are optional
String id = attrs.getValue("id");
// referred to by the signalEventDefinition.signalRef attr
String name = attrs.getValue("name");
String structureRef = attrs.getValue("structureRef");
ProcessBuildData buildData = (ProcessBuildData) parser.getData();
Map<String, Signal> signals = (Map<String, Signal>) buildData.getMetaData("Signals");
if (signals == null) {
signals = new HashMap<String, Signal>();
buildData.setMetaData("Signals", signals);
}
Signal s = new Signal(id, name, structureRef);
signals.put(id, s);
return s;
}
Aggregations