/** * Parses a boundary timer event. The end-result will be that the given nested * activity will get the appropriate {@link ActivityBehavior}. * * @param timerEventDefinition * The XML element corresponding with the timer event details * @param interrupting * Indicates whether this timer is interrupting. * @param boundaryActivity * The activity which maps to the structure of the timer event on the * boundary of another activity. Note that this is NOT the activity * onto which the boundary event is attached, but a nested activity * inside this activity, specifically created for this event. */ public void parseBoundaryTimerEventDefinition(Element timerEventDefinition, boolean interrupting, ActivityImpl boundaryActivity) { boundaryActivity.getProperties().set(BpmnProperties.TYPE, ActivityTypes.BOUNDARY_TIMER); TimerDeclarationImpl timerDeclaration = parseTimer(timerEventDefinition, boundaryActivity, TimerExecuteNestedActivityJobHandler.TYPE); // ACT-1427 if (interrupting) { timerDeclaration.setInterruptingTimer(true); Element timeCycleElement = timerEventDefinition.element("timeCycle"); if (timeCycleElement != null) { addTimeCycleWarning(timeCycleElement, "cancelling boundary"); } } addTimerDeclaration(boundaryActivity.getEventScope(), timerDeclaration); for (BpmnParseListener parseListener : parseListeners) { parseListener.parseBoundaryTimerEventDefinition(timerEventDefinition, interrupting, boundaryActivity); } }
/** * Parses a boundary timer event. The end-result will be that the given nested * activity will get the appropriate {@link ActivityBehavior}. * * @param timerEventDefinition * The XML element corresponding with the timer event details * @param interrupting * Indicates whether this timer is interrupting. * @param boundaryActivity * The activity which maps to the structure of the timer event on the * boundary of another activity. Note that this is NOT the activity * onto which the boundary event is attached, but a nested activity * inside this activity, specifically created for this event. */ public void parseBoundaryTimerEventDefinition(Element timerEventDefinition, boolean interrupting, ActivityImpl boundaryActivity) { boundaryActivity.getProperties().set(BpmnProperties.TYPE, ActivityTypes.BOUNDARY_TIMER); TimerDeclarationImpl timerDeclaration = parseTimer(timerEventDefinition, boundaryActivity, TimerExecuteNestedActivityJobHandler.TYPE); // ACT-1427 if (interrupting) { timerDeclaration.setInterruptingTimer(true); Element timeCycleElement = timerEventDefinition.element("timeCycle"); if (timeCycleElement != null) { addTimeCycleWarning(timeCycleElement, "cancelling boundary"); } } addTimerDeclaration(boundaryActivity.getEventScope(), timerDeclaration); for (BpmnParseListener parseListener : parseListeners) { parseListener.parseBoundaryTimerEventDefinition(timerEventDefinition, interrupting, boundaryActivity); } }
protected void parseTimerStartEventDefinitionForEventSubprocess(Element timerEventDefinition, ActivityImpl timerActivity, boolean interrupting) { timerActivity.getProperties().set(BpmnProperties.TYPE, ActivityTypes.START_EVENT_TIMER); TimerDeclarationImpl timerDeclaration = parseTimer(timerEventDefinition, timerActivity, TimerStartEventSubprocessJobHandler.TYPE); timerDeclaration.setActivity(timerActivity); timerDeclaration.setEventScopeActivityId(timerActivity.getEventScope().getId()); timerDeclaration.setRawJobHandlerConfiguration(timerActivity.getFlowScope().getId()); timerDeclaration.setInterruptingTimer(interrupting); if (interrupting) { Element timeCycleElement = timerEventDefinition.element("timeCycle"); if (timeCycleElement != null) { addTimeCycleWarning(timeCycleElement, "interrupting start"); } } addTimerDeclaration(timerActivity.getEventScope(), timerDeclaration); }
protected void parseTimerStartEventDefinitionForEventSubprocess(Element timerEventDefinition, ActivityImpl timerActivity, boolean interrupting) { timerActivity.getProperties().set(BpmnProperties.TYPE, ActivityTypes.START_EVENT_TIMER); TimerDeclarationImpl timerDeclaration = parseTimer(timerEventDefinition, timerActivity, TimerStartEventSubprocessJobHandler.TYPE); timerDeclaration.setActivity(timerActivity); timerDeclaration.setEventScopeActivityId(timerActivity.getEventScope().getId()); timerDeclaration.setRawJobHandlerConfiguration(timerActivity.getFlowScope().getId()); timerDeclaration.setInterruptingTimer(interrupting); if (interrupting) { Element timeCycleElement = timerEventDefinition.element("timeCycle"); if (timeCycleElement != null) { addTimeCycleWarning(timeCycleElement, "interrupting start"); } } addTimerDeclaration(timerActivity.getEventScope(), timerDeclaration); }
/** * Parses a boundary timer event. The end-result will be that the given nested * activity will get the appropriate {@link ActivityBehavior}. * * @param timerEventDefinition * The XML element corresponding with the timer event details * @param interrupting * Indicates whether this timer is interrupting. * @param boundaryActivity * The activity which maps to the structure of the timer event on the * boundary of another activity. Note that this is NOT the activity * onto which the boundary event is attached, but a nested activity * inside this activity, specifically created for this event. */ public void parseBoundaryTimerEventDefinition(Element timerEventDefinition, boolean interrupting, ActivityImpl boundaryActivity) { boundaryActivity.getProperties().set(BpmnProperties.TYPE, ActivityTypes.BOUNDARY_TIMER); TimerDeclarationImpl timerDeclaration = parseTimer(timerEventDefinition, boundaryActivity, TimerExecuteNestedActivityJobHandler.TYPE); // ACT-1427 if (interrupting) { timerDeclaration.setInterruptingTimer(true); Element timeCycleElement = timerEventDefinition.element("timeCycle"); if (timeCycleElement != null) { addTimeCycleWarning(timeCycleElement, "cancelling boundary"); } } addTimerDeclaration(boundaryActivity.getEventScope(), timerDeclaration); for (BpmnParseListener parseListener : parseListeners) { parseListener.parseBoundaryTimerEventDefinition(timerEventDefinition, interrupting, boundaryActivity); } }
protected void parseTimerStartEventDefinitionForEventSubprocess(Element timerEventDefinition, ActivityImpl timerActivity, boolean interrupting) { timerActivity.getProperties().set(BpmnProperties.TYPE, ActivityTypes.START_EVENT_TIMER); TimerDeclarationImpl timerDeclaration = parseTimer(timerEventDefinition, timerActivity, TimerStartEventSubprocessJobHandler.TYPE); timerDeclaration.setActivity(timerActivity); timerDeclaration.setEventScopeActivityId(timerActivity.getEventScope().getId()); timerDeclaration.setRawJobHandlerConfiguration(timerActivity.getFlowScope().getId()); timerDeclaration.setInterruptingTimer(interrupting); if (interrupting) { Element timeCycleElement = timerEventDefinition.element("timeCycle"); if (timeCycleElement != null) { addTimeCycleWarning(timeCycleElement, "interrupting start"); } } addTimerDeclaration(timerActivity.getEventScope(), timerDeclaration); }