@Override protected BaseElement convertXMLToElement(XMLStreamReader xtr, BpmnModel model) throws Exception { BoundaryEvent boundaryEvent = new BoundaryEvent(); BpmnXMLUtil.addXMLLocation(boundaryEvent, xtr); if (StringUtils.isNotEmpty(xtr.getAttributeValue(null, ATTRIBUTE_BOUNDARY_CANCELACTIVITY))) { String cancelActivity = xtr.getAttributeValue(null, ATTRIBUTE_BOUNDARY_CANCELACTIVITY); if (ATTRIBUTE_VALUE_FALSE.equalsIgnoreCase(cancelActivity)) { boundaryEvent.setCancelActivity(false); } } boundaryEvent.setAttachedToRefId(xtr.getAttributeValue(null, ATTRIBUTE_BOUNDARY_ATTACHEDTOREF)); parseChildElements(getXMLElementName(), boundaryEvent, model, xtr); // Explicitly set cancel activity to false for error boundary events if (boundaryEvent.getEventDefinitions().size() == 1) { EventDefinition eventDef = boundaryEvent.getEventDefinitions().get(0); if (eventDef instanceof ErrorEventDefinition) { boundaryEvent.setCancelActivity(false); } } return boundaryEvent; }
protected FlowElement convertJsonToElement(JsonNode elementNode, JsonNode modelNode, Map<String, JsonNode> shapeMap) { BoundaryEvent boundaryEvent = new BoundaryEvent(); String stencilId = BpmnJsonConverterUtil.getStencilId(elementNode); if (STENCIL_EVENT_BOUNDARY_TIMER.equals(stencilId)) { convertJsonToTimerDefinition(elementNode, boundaryEvent); boundaryEvent.setCancelActivity(getPropertyValueAsBoolean(PROPERTY_CANCEL_ACTIVITY, elementNode)); } else if (STENCIL_EVENT_BOUNDARY_ERROR.equals(stencilId)) { convertJsonToErrorDefinition(elementNode, boundaryEvent); } else if (STENCIL_EVENT_BOUNDARY_SIGNAL.equals(stencilId)) { convertJsonToSignalDefinition(elementNode, boundaryEvent); boundaryEvent.setCancelActivity(getPropertyValueAsBoolean(PROPERTY_CANCEL_ACTIVITY, elementNode)); } else if (STENCIL_EVENT_BOUNDARY_MESSAGE.equals(stencilId)) { convertJsonToMessageDefinition(elementNode, boundaryEvent); boundaryEvent.setCancelActivity(getPropertyValueAsBoolean(PROPERTY_CANCEL_ACTIVITY, elementNode)); } else if (STENCIL_EVENT_BOUNDARY_CANCEL.equals(stencilId)) { CancelEventDefinition cancelEventDefinition = new CancelEventDefinition(); boundaryEvent.getEventDefinitions().add(cancelEventDefinition); boundaryEvent.setCancelActivity(getPropertyValueAsBoolean(PROPERTY_CANCEL_ACTIVITY, elementNode)); } else if (STENCIL_EVENT_BOUNDARY_COMPENSATION.equals(stencilId)) { CompensateEventDefinition compensateEventDefinition = new CompensateEventDefinition(); boundaryEvent.getEventDefinitions().add(compensateEventDefinition); boundaryEvent.setCancelActivity(getPropertyValueAsBoolean(PROPERTY_CANCEL_ACTIVITY, elementNode)); } boundaryEvent.setAttachedToRefId(lookForAttachedRef(elementNode.get(EDITOR_SHAPE_ID).asText(), modelNode.get(EDITOR_CHILD_SHAPES))); return boundaryEvent; }
@Override protected BaseElement convertXMLToElement(XMLStreamReader xtr, BpmnModel model) throws Exception { BoundaryEvent boundaryEvent = new BoundaryEvent(); BpmnXMLUtil.addXMLLocation(boundaryEvent, xtr); if (StringUtils.isNotEmpty(xtr.getAttributeValue(null, ATTRIBUTE_BOUNDARY_CANCELACTIVITY))) { String cancelActivity = xtr.getAttributeValue(null, ATTRIBUTE_BOUNDARY_CANCELACTIVITY); if (ATTRIBUTE_VALUE_FALSE.equalsIgnoreCase(cancelActivity)) { boundaryEvent.setCancelActivity(false); } } boundaryEvent.setAttachedToRefId(xtr.getAttributeValue(null, ATTRIBUTE_BOUNDARY_ATTACHEDTOREF)); parseChildElements(getXMLElementName(), boundaryEvent, model, xtr); // Explicitly set cancel activity to false for error boundary events if (boundaryEvent.getEventDefinitions().size() == 1) { EventDefinition eventDef = boundaryEvent.getEventDefinitions().get(0); if (eventDef instanceof ErrorEventDefinition) { boundaryEvent.setCancelActivity(false); } } return boundaryEvent; }
@Override protected BaseElement convertXMLToElement(XMLStreamReader xtr) throws Exception { BoundaryEvent boundaryEvent = new BoundaryEvent(); BpmnXMLUtil.addXMLLocation(boundaryEvent, xtr); if (StringUtils.isNotEmpty(xtr.getAttributeValue(null, ATTRIBUTE_BOUNDARY_CANCELACTIVITY))) { String cancelActivity = xtr.getAttributeValue(null, ATTRIBUTE_BOUNDARY_CANCELACTIVITY); if (ATTRIBUTE_VALUE_FALSE.equalsIgnoreCase(cancelActivity)) { boundaryEvent.setCancelActivity(false); } } boundaryEvent.setAttachedToRefId(xtr.getAttributeValue(null, ATTRIBUTE_BOUNDARY_ATTACHEDTOREF)); parseChildElements(getXMLElementName(), boundaryEvent, xtr); // Explicitly set cancel activity to false for error boundary events if (boundaryEvent.getEventDefinitions().size() == 1) { EventDefinition eventDef = boundaryEvent.getEventDefinitions().get(0); if (eventDef instanceof ErrorEventDefinition) { boundaryEvent.setCancelActivity(false); } } return boundaryEvent; }
protected FlowElement convertJsonToElement(JsonNode elementNode, JsonNode modelNode, Map<String, JsonNode> shapeMap) { BoundaryEvent boundaryEvent = new BoundaryEvent(); String stencilId = BpmnJsonConverterUtil.getStencilId(elementNode); if (STENCIL_EVENT_BOUNDARY_TIMER.equals(stencilId)) { convertJsonToTimerDefinition(elementNode, boundaryEvent); boundaryEvent.setCancelActivity(getPropertyValueAsBoolean(PROPERTY_CANCEL_ACTIVITY, elementNode)); } else if (STENCIL_EVENT_BOUNDARY_ERROR.equals(stencilId)) { convertJsonToErrorDefinition(elementNode, boundaryEvent); } else if (STENCIL_EVENT_BOUNDARY_SIGNAL.equals(stencilId)) { convertJsonToSignalDefinition(elementNode, boundaryEvent); boundaryEvent.setCancelActivity(getPropertyValueAsBoolean(PROPERTY_CANCEL_ACTIVITY, elementNode)); } else if (STENCIL_EVENT_BOUNDARY_MESSAGE.equals(stencilId)) { convertJsonToMessageDefinition(elementNode, boundaryEvent); boundaryEvent.setCancelActivity(getPropertyValueAsBoolean(PROPERTY_CANCEL_ACTIVITY, elementNode)); } else if (STENCIL_EVENT_BOUNDARY_CANCEL.equals(stencilId)) { CancelEventDefinition cancelEventDefinition = new CancelEventDefinition(); boundaryEvent.getEventDefinitions().add(cancelEventDefinition); boundaryEvent.setCancelActivity(getPropertyValueAsBoolean(PROPERTY_CANCEL_ACTIVITY, elementNode)); } else if (STENCIL_EVENT_BOUNDARY_COMPENSATION.equals(stencilId)) { CompensateEventDefinition compensateEventDefinition = new CompensateEventDefinition(); boundaryEvent.getEventDefinitions().add(compensateEventDefinition); boundaryEvent.setCancelActivity(getPropertyValueAsBoolean(PROPERTY_CANCEL_ACTIVITY, elementNode)); } boundaryEvent.setAttachedToRefId(lookForAttachedRef(elementNode.get(EDITOR_SHAPE_ID).asText(), modelNode.get(EDITOR_CHILD_SHAPES))); return boundaryEvent; }
public static BoundaryEvent createSignalBoundaryEvent( WorkflowDefinitionConversion conversion, Signal signal, Activity activity, boolean cancelActivity) { BoundaryEvent signalBoundaryEvent = new BoundaryEvent(); signalBoundaryEvent.setId(conversion.getUniqueNumberedId(SIGNAL_BOUNDARY_EVENT)); signalBoundaryEvent.setCancelActivity(cancelActivity); signalBoundaryEvent.setAttachedToRef(activity); SignalEventDefinition boundarySignalEventDefinition = new SignalEventDefinition(); boundarySignalEventDefinition.setSignalRef(signal.getId()); signalBoundaryEvent.addEventDefinition(boundarySignalEventDefinition); return signalBoundaryEvent; }
protected BoundaryEvent createBoundarySignalCatch(WorkflowDefinitionConversion conversion, Signal signal, UserTask feedbackTask) { BoundaryEvent boundarySignalCatch = new BoundaryEvent(); boundarySignalCatch.setId(conversion.getUniqueNumberedId(ConversionConstants.BOUNDARY_ID_PREFIX)); boundarySignalCatch.setAttachedToRef(feedbackTask); boundarySignalCatch.setAttachedToRefId(feedbackTask.getId()); boundarySignalCatch.setCancelActivity(true); addFlowElement(conversion, boundarySignalCatch); SignalEventDefinition signalCatchEventDefinition = new SignalEventDefinition(); signalCatchEventDefinition.setSignalRef(signal.getId()); boundarySignalCatch.addEventDefinition(signalCatchEventDefinition); return boundarySignalCatch; }