private void validateEventsSubProcess() { final FlowElementContainerDefinition processContainer = process.getProcessContainer(); for (final ActivityDefinition activity : processContainer.getActivities()) { if (activity instanceof SubProcessDefinition) { final FlowElementContainerDefinition subProcessContainer = ((SubProcessDefinition) activity).getSubProcessContainer(); if (subProcessContainer == null) { designErrors.add("The subprocess " + activity.getName() + " does not have any element," + " add at least one element using the builder that can be retrieved on the subprocess activity:" + " org.bonitasoft.engine.bpm.process.impl.SubProcessActivityDefinitionBuilder.getSubProcessBuilder()"); return; } if (((SubProcessDefinition) activity).isTriggeredByEvent()) { if (subProcessContainer.getStartEvents().size() != 1) { designErrors.add("An event sub process must have one and only one start events, but " + subProcessContainer.getStartEvents().size() + " were found : " + activity); } if (!subProcessContainer.getStartEvents().isEmpty() && subProcessContainer.getStartEvents().get(0).getEventTriggers().isEmpty()) { designErrors.add("The event sub process have no start event with a not NONE trigger : " + activity); } if (activity.getIncomingTransitions().size() > 0) { designErrors.add("An event sub process cannot have incoming transitions : " + activity); } if (activity.getOutgoingTransitions().size() > 0) { designErrors.add("An event sub process cannot have outgoing transitions : " + activity); } } validateProcess(subProcessContainer, false); } } }
private void validateEventsSubProcess() { final FlowElementContainerDefinition processContainer = process.getProcessContainer(); for (final ActivityDefinition activity : processContainer.getActivities()) { if (activity instanceof SubProcessDefinition) { final FlowElementContainerDefinition subProcessContainer = ((SubProcessDefinition) activity).getSubProcessContainer(); if (subProcessContainer == null) { designErrors.add("The subprocess " + activity.getName() + " does not have any element," + " add at least one element using the builder that can be retrieved on the subprocess activity:" + " org.bonitasoft.engine.bpm.process.impl.SubProcessActivityDefinitionBuilder.getSubProcessBuilder()"); return; } if (((SubProcessDefinition) activity).isTriggeredByEvent()) { if (subProcessContainer.getStartEvents().size() != 1) { designErrors.add("An event sub process must have one and only one start events, but " + subProcessContainer.getStartEvents().size() + " were found : " + activity); } if (!subProcessContainer.getStartEvents().isEmpty() && subProcessContainer.getStartEvents().get(0).getEventTriggers().isEmpty()) { designErrors.add("The event sub process have no start event with a not NONE trigger : " + activity); } if (activity.getIncomingTransitions().size() > 0) { designErrors.add("An event sub process cannot have incoming transitions : " + activity); } if (activity.getOutgoingTransitions().size() > 0) { designErrors.add("An event sub process cannot have outgoing transitions : " + activity); } } validateProcess(subProcessContainer, false); } } }