private void validateModel(BpmnModel model) { assertEquals("simpleProcess", model.getMainProcess().getId()); assertEquals("Simple process", model.getMainProcess().getName()); FlowElement flowElement = model.getMainProcess().getFlowElement("flow1"); assertNotNull(flowElement); assertTrue(flowElement instanceof SequenceFlow); assertEquals("flow1", flowElement.getId()); flowElement = model.getMainProcess().getFlowElement("catchEvent"); assertNotNull(flowElement); assertTrue(flowElement instanceof IntermediateCatchEvent); assertEquals("catchEvent", flowElement.getId()); IntermediateCatchEvent catchEvent = (IntermediateCatchEvent) flowElement; assertTrue(catchEvent.getEventDefinitions().size() == 1); EventDefinition eventDefinition = catchEvent.getEventDefinitions().get(0); assertTrue(eventDefinition instanceof TimerEventDefinition); TimerEventDefinition timerDefinition = (TimerEventDefinition) eventDefinition; assertEquals("PT5M", timerDefinition.getTimeDuration()); flowElement = model.getMainProcess().getFlowElement("flow1Condition"); assertNotNull(flowElement); assertTrue(flowElement instanceof SequenceFlow); assertEquals("flow1Condition", flowElement.getId()); SequenceFlow flow = (SequenceFlow) flowElement; assertEquals("${number <= 1}", flow.getConditionExpression()); }
private void validateModel(BpmnModel model) { BoundaryEvent errorElement = (BoundaryEvent) model.getMainProcess().getFlowElement("errorEvent"); ErrorEventDefinition errorEvent = (ErrorEventDefinition) extractEventDefinition(errorElement); assertTrue(errorElement.isCancelActivity()); // always true assertEquals("errorRef", errorEvent.getErrorCode()); BoundaryEvent signalElement = (BoundaryEvent) model.getMainProcess().getFlowElement("signalEvent"); SignalEventDefinition signalEvent = (SignalEventDefinition) extractEventDefinition(signalElement); assertFalse(signalElement.isCancelActivity()); assertEquals("signalRef", signalEvent.getSignalRef()); BoundaryEvent messageElement = (BoundaryEvent) model.getMainProcess().getFlowElement("messageEvent"); MessageEventDefinition messageEvent = (MessageEventDefinition) extractEventDefinition(messageElement); assertFalse(messageElement.isCancelActivity()); assertEquals("messageRef", messageEvent.getMessageRef()); BoundaryEvent timerElement = (BoundaryEvent) model.getMainProcess().getFlowElement("timerEvent"); TimerEventDefinition timerEvent = (TimerEventDefinition) extractEventDefinition(timerElement); assertFalse(timerElement.isCancelActivity()); assertEquals("PT5M", timerEvent.getTimeDuration()); }
protected void writeTimerDefinition( Event parentEvent, TimerEventDefinition timerDefinition, XMLStreamWriter xtw) throws Exception { xtw.writeStartElement(ELEMENT_EVENT_TIMERDEFINITION); boolean didWriteExtensionStartElement = BpmnXMLUtil.writeExtensionElements(timerDefinition, false, xtw); if (didWriteExtensionStartElement) { xtw.writeEndElement(); } if (StringUtils.isNotEmpty(timerDefinition.getTimeDate())) { xtw.writeStartElement(ATTRIBUTE_TIMER_DATE); xtw.writeCharacters(timerDefinition.getTimeDate()); xtw.writeEndElement(); } else if (StringUtils.isNotEmpty(timerDefinition.getTimeCycle())) { xtw.writeStartElement(ATTRIBUTE_TIMER_CYCLE); xtw.writeCharacters(timerDefinition.getTimeCycle()); xtw.writeEndElement(); } else if (StringUtils.isNotEmpty(timerDefinition.getTimeDuration())) { xtw.writeStartElement(ATTRIBUTE_TIMER_DURATION); xtw.writeCharacters(timerDefinition.getTimeDuration()); xtw.writeEndElement(); } xtw.writeEndElement(); }
protected void addEventProperties(Event event, ObjectNode propertiesNode) { List<EventDefinition> eventDefinitions = event.getEventDefinitions(); if (eventDefinitions.size() == 1) { EventDefinition eventDefinition = eventDefinitions.get(0); if (eventDefinition instanceof ErrorEventDefinition) { ErrorEventDefinition errorDefinition = (ErrorEventDefinition) eventDefinition; if (StringUtils.isNotEmpty(errorDefinition.getErrorCode())) { propertiesNode.put(PROPERTY_ERRORREF, errorDefinition.getErrorCode()); } } else if (eventDefinition instanceof SignalEventDefinition) { SignalEventDefinition signalDefinition = (SignalEventDefinition) eventDefinition; if (StringUtils.isNotEmpty(signalDefinition.getSignalRef())) { propertiesNode.put(PROPERTY_SIGNALREF, signalDefinition.getSignalRef()); } } else if (eventDefinition instanceof MessageEventDefinition) { MessageEventDefinition messageDefinition = (MessageEventDefinition) eventDefinition; if (StringUtils.isNotEmpty(messageDefinition.getMessageRef())) { propertiesNode.put(PROPERTY_MESSAGEREF, messageDefinition.getMessageRef()); } } else if (eventDefinition instanceof TimerEventDefinition) { TimerEventDefinition timerDefinition = (TimerEventDefinition) eventDefinition; if (StringUtils.isNotEmpty(timerDefinition.getTimeDuration())) { propertiesNode.put(PROPERTY_TIMER_DURATON, timerDefinition.getTimeDuration()); } if (StringUtils.isNotEmpty(timerDefinition.getTimeCycle())) { propertiesNode.put(PROPERTY_TIMER_CYCLE, timerDefinition.getTimeCycle()); } if (StringUtils.isNotEmpty(timerDefinition.getTimeDate())) { propertiesNode.put(PROPERTY_TIMER_DATE, timerDefinition.getTimeDate()); } if (StringUtils.isNotEmpty(timerDefinition.getEndDate())) { propertiesNode.put(PROPERTY_TIMER_CYCLE_END_DATE, timerDefinition.getEndDate()); } } else if (eventDefinition instanceof TerminateEventDefinition) { TerminateEventDefinition terminateEventDefinition = (TerminateEventDefinition) eventDefinition; propertiesNode.put(PROPERTY_TERMINATE_ALL, terminateEventDefinition.isTerminateAll()); } } }
protected void convertJsonToTimerDefinition(JsonNode objectNode, Event event) { String timeDate = getPropertyValueAsString(PROPERTY_TIMER_DATE, objectNode); String timeCycle = getPropertyValueAsString(PROPERTY_TIMER_CYCLE, objectNode); String timeDuration = getPropertyValueAsString(PROPERTY_TIMER_DURATON, objectNode); String endDate = getPropertyValueAsString(PROPERTY_TIMER_CYCLE_END_DATE, objectNode); TimerEventDefinition eventDefinition = new TimerEventDefinition(); if (StringUtils.isNotEmpty(timeDate)) { eventDefinition.setTimeDate(timeDate); } else if (StringUtils.isNotEmpty(timeCycle)) { eventDefinition.setTimeCycle(timeCycle); } else if (StringUtils.isNotEmpty(timeDuration)) { eventDefinition.setTimeDuration(timeDuration); } if (StringUtils.isNotEmpty(endDate)) { eventDefinition.setEndDate(endDate); } event.getEventDefinitions().add(eventDefinition); }
protected void writeTimerDefinition(TimerEventDefinition timerDefinition, XMLStreamWriter xtw) throws Exception { xtw.writeStartElement(ELEMENT_EVENT_TIMERDEFINITION); if (StringUtils.isNotEmpty(timerDefinition.getTimeDate())) { xtw.writeStartElement(ATTRIBUTE_TIMER_DATE); xtw.writeCharacters(timerDefinition.getTimeDate()); xtw.writeEndElement(); } else if (StringUtils.isNotEmpty(timerDefinition.getTimeCycle())) { xtw.writeStartElement(ATTRIBUTE_TIMER_CYCLE); xtw.writeCharacters(timerDefinition.getTimeCycle()); xtw.writeEndElement(); } else if (StringUtils.isNotEmpty(timerDefinition.getTimeDuration())) { xtw.writeStartElement(ATTRIBUTE_TIMER_DURATION); xtw.writeCharacters(timerDefinition.getTimeDuration()); xtw.writeEndElement(); } xtw.writeEndElement(); }