for (Element eventListenerElement: XmlUtil.elements(element)) {
JpdlBinding eventBinding = (JpdlBinding) getBinding(eventListenerElement, CATEGORY_EVENT_LISTENER);
if (eventBinding!=null) {
EventListener eventListener = (EventListener) eventBinding.parse(eventListenerElement, parse, this);
EventListenerReference eventListenerReference = event.createEventListenerReference(eventListener);
if (XmlUtil.attributeBoolean(eventListenerElement, "propagation", false, parse, false)) {
eventListenerReference.setPropagationEnabled(true);
}
continuationText = XmlUtil.attribute(eventListenerElement, "continue");
if (continuationText!=null) {
if (observableElement instanceof ActivityImpl) {
if (observableElement.getName()==null) {
parse.addProblem("async continuation on event listener requires activity name", eventListenerElement);
}
} else if (observableElement instanceof TransitionImpl) {
TransitionImpl transition = (TransitionImpl) observableElement;
if (transition.getSource().getName()==null) {
parse.addProblem("async continuation on event listener requires name in the transition source activity", eventListenerElement);
}
}
if ("async".equals(continuationText)) {
eventListenerReference.setContinuation(Continuation.ASYNCHRONOUS);
} else if ("exclusive".equals(continuationText)) {
eventListenerReference.setContinuation(Continuation.EXCLUSIVE);
}
}
} else {
String tagName = XmlUtil.getTagLocalName(eventListenerElement);