protected String getStencilId(BaseElement baseElement) { IntermediateCatchEvent catchEvent = (IntermediateCatchEvent) baseElement; List<EventDefinition> eventDefinitions = catchEvent.getEventDefinitions(); if (eventDefinitions.size() != 1) { // return timer event as default; return STENCIL_EVENT_CATCH_TIMER; } EventDefinition eventDefinition = eventDefinitions.get(0); if (eventDefinition instanceof MessageEventDefinition) { return STENCIL_EVENT_CATCH_MESSAGE; } else if (eventDefinition instanceof SignalEventDefinition) { return STENCIL_EVENT_CATCH_SIGNAL; } else { return STENCIL_EVENT_CATCH_TIMER; } }
@Override protected void writeAdditionalChildElements(BaseElement element, BpmnModel model, XMLStreamWriter xtw) throws Exception { IntermediateCatchEvent catchEvent = (IntermediateCatchEvent) element; writeEventDefinitions(catchEvent, catchEvent.getEventDefinitions(), model, xtw); } }
@Override protected void executeValidation(BpmnModel bpmnModel, Process process, List<ValidationError> errors) { List<IntermediateCatchEvent> intermediateCatchEvents = process.findFlowElementsOfType(IntermediateCatchEvent.class); for (IntermediateCatchEvent intermediateCatchEvent : intermediateCatchEvents) { EventDefinition eventDefinition = null; if (!intermediateCatchEvent.getEventDefinitions().isEmpty()) { eventDefinition = intermediateCatchEvent.getEventDefinitions().get(0); } if (eventDefinition == null) { addError(errors, Problems.INTERMEDIATE_CATCH_EVENT_NO_EVENTDEFINITION, process, intermediateCatchEvent, "No event definition for intermediate catch event "); } else { if (!(eventDefinition instanceof TimerEventDefinition) && !(eventDefinition instanceof SignalEventDefinition) && !(eventDefinition instanceof MessageEventDefinition)) { addError(errors, Problems.INTERMEDIATE_CATCH_EVENT_INVALID_EVENTDEFINITION, process, intermediateCatchEvent, "Unsupported intermediate catch event type"); } } } }
protected void executeParse(BpmnParse bpmnParse, IntermediateCatchEvent event) { EventDefinition eventDefinition = null; if (!event.getEventDefinitions().isEmpty()) { eventDefinition = event.getEventDefinitions().get(0); } if (eventDefinition == null) { event.setBehavior(bpmnParse.getActivityBehaviorFactory().createIntermediateCatchEventActivityBehavior(event)); } else { if (eventDefinition instanceof TimerEventDefinition || eventDefinition instanceof SignalEventDefinition || eventDefinition instanceof MessageEventDefinition) { bpmnParse.getBpmnParserHandlers().parseElement(bpmnParse, eventDefinition); } else { logger.warn("Unsupported intermediate catch event type for event " + event.getId()); } } }
@Override public void draw(DefaultProcessDiagramCanvas processDiagramCanvas, BpmnModel bpmnModel, FlowNode flowNode) { GraphicInfo graphicInfo = bpmnModel.getGraphicInfo(flowNode.getId()); IntermediateCatchEvent intermediateCatchEvent = (IntermediateCatchEvent) flowNode; if (intermediateCatchEvent.getEventDefinitions() != null && !intermediateCatchEvent.getEventDefinitions() .isEmpty()) { if (intermediateCatchEvent.getEventDefinitions().get(0) instanceof SignalEventDefinition) { processDiagramCanvas.drawCatchingSignalEvent(flowNode.getId(), flowNode.getName(), graphicInfo, true); } else if (intermediateCatchEvent.getEventDefinitions().get(0) instanceof TimerEventDefinition) { processDiagramCanvas.drawCatchingTimerEvent(flowNode.getId(), flowNode.getName(), graphicInfo, true); } else if (intermediateCatchEvent.getEventDefinitions().get(0) instanceof MessageEventDefinition) { processDiagramCanvas.drawCatchingMessageEvent(flowNode.getId(), flowNode.getName(), graphicInfo, true); } } } });
protected String getStencilId(BaseElement baseElement) { IntermediateCatchEvent catchEvent = (IntermediateCatchEvent) baseElement; List<EventDefinition> eventDefinitions = catchEvent.getEventDefinitions(); if (eventDefinitions.size() != 1) { // return timer event as default; return STENCIL_EVENT_CATCH_TIMER; } EventDefinition eventDefinition = eventDefinitions.get(0); if (eventDefinition instanceof MessageEventDefinition) { return STENCIL_EVENT_CATCH_MESSAGE; } else if (eventDefinition instanceof SignalEventDefinition) { return STENCIL_EVENT_CATCH_SIGNAL; } else { return STENCIL_EVENT_CATCH_TIMER; } }
@Override protected void writeAdditionalChildElements(BaseElement element, BpmnModel model, XMLStreamWriter xtw) throws Exception { IntermediateCatchEvent catchEvent = (IntermediateCatchEvent) element; writeEventDefinitions(catchEvent, catchEvent.getEventDefinitions(), model, xtw); } }
@Override protected void writeAdditionalChildElements(BaseElement element, XMLStreamWriter xtw) throws Exception { IntermediateCatchEvent catchEvent = (IntermediateCatchEvent) element; writeEventDefinitions(catchEvent.getEventDefinitions(), xtw); } }
@Override protected void executeValidation(BpmnModel bpmnModel, Process process, List<ValidationError> errors) { List<IntermediateCatchEvent> intermediateCatchEvents = process.findFlowElementsOfType(IntermediateCatchEvent.class); for (IntermediateCatchEvent intermediateCatchEvent : intermediateCatchEvents) { EventDefinition eventDefinition = null; if (!intermediateCatchEvent.getEventDefinitions().isEmpty()) { eventDefinition = intermediateCatchEvent.getEventDefinitions().get(0); } if (eventDefinition == null) { addError(errors, Problems.INTERMEDIATE_CATCH_EVENT_NO_EVENTDEFINITION, process, intermediateCatchEvent, "No event definition for intermediate catch event "); } else { if (!(eventDefinition instanceof TimerEventDefinition) && !(eventDefinition instanceof SignalEventDefinition) && !(eventDefinition instanceof MessageEventDefinition)) { addError(errors, Problems.INTERMEDIATE_CATCH_EVENT_INVALID_EVENTDEFINITION, process, intermediateCatchEvent, "Unsupported intermediate catch event type"); } } } }
protected void executeParse(BpmnParse bpmnParse, IntermediateCatchEvent event) { EventDefinition eventDefinition = null; if (!event.getEventDefinitions().isEmpty()) { eventDefinition = event.getEventDefinitions().get(0); } if (eventDefinition == null) { event.setBehavior(bpmnParse.getActivityBehaviorFactory().createIntermediateCatchEventActivityBehavior(event)); } else { if (eventDefinition instanceof TimerEventDefinition || eventDefinition instanceof SignalEventDefinition || eventDefinition instanceof MessageEventDefinition) { bpmnParse.getBpmnParserHandlers().parseElement(bpmnParse, eventDefinition); } else { logger.warn("Unsupported intermediate catch event type for event " + event.getId()); } } }
public void draw(ProcessDiagramCanvas processDiagramCanvas, BpmnModel bpmnModel, FlowNode flowNode) { GraphicInfo graphicInfo = bpmnModel.getGraphicInfo(flowNode.getId()); IntermediateCatchEvent intermediateCatchEvent = (IntermediateCatchEvent) flowNode; if (intermediateCatchEvent.getEventDefinitions() != null && intermediateCatchEvent.getEventDefinitions().size() > 0) { if (intermediateCatchEvent.getEventDefinitions().get(0) instanceof SignalEventDefinition) { processDiagramCanvas.drawCatchingSignalEvent(flowNode.getName(), (int) graphicInfo.getX(), (int) graphicInfo.getY(), (int) graphicInfo.getWidth(), (int) graphicInfo.getHeight(), false); } else if (intermediateCatchEvent.getEventDefinitions().get(0) instanceof TimerEventDefinition) { processDiagramCanvas.drawCatchingTimerEvent(flowNode.getName(), (int) graphicInfo.getX(), (int) graphicInfo.getY(), (int) graphicInfo.getWidth(), (int) graphicInfo.getHeight(), false); } } } });
ActivityImpl nestedActivity = null; EventDefinition eventDefinition = null; if (event.getEventDefinitions().size() > 0) { eventDefinition = event.getEventDefinitions().get(0);