@Override public void find(FlowNodeDefinition flowNodeDefinition, long expressionDefinitionId) { if (flowNodeDefinition != null) { findExpressionFromNotNullContainer(flowNodeDefinition.getDisplayName(), expressionDefinitionId); findExpressionFromNotNullContainer(flowNodeDefinition.getDisplayDescription(), expressionDefinitionId); findExpressionFromNotNullContainer(flowNodeDefinition.getDisplayDescriptionAfterCompletion(), expressionDefinitionId); findExpressionFromNotNullContainer(flowNodeDefinition.getDefaultTransition(), expressionDefinitionId); for (TransitionDefinition transitionDefinition : flowNodeDefinition.getIncomingTransitions()) { findExpressionFromNotNullContainer(transitionDefinition, expressionDefinitionId); } for (TransitionDefinition transitionDefinition : flowNodeDefinition.getOutgoingTransitions()) { findExpressionFromNotNullContainer(transitionDefinition, expressionDefinitionId); } for (ConnectorDefinition connectorDefinition : flowNodeDefinition.getConnectors()) { findExpressionFromNotNullContainer(connectorDefinition, expressionDefinitionId); } } }
private void validateFlowNodeName(final List<String> names, final Collection<? extends FlowNodeDefinition> flowNodes) { for (final FlowNodeDefinition flowNode : flowNodes) { validateConnectors(flowNode.getConnectors()); if (names.contains(flowNode.getName())) { designErrors.add("More than one elements are named '" + flowNode.getName() + "'. All names must be unique."); } else { names.add(flowNode.getName()); } if (flowNode instanceof SubProcessDefinition) { final SubProcessDefinition subProcess = (SubProcessDefinition) flowNode; org.bonitasoft.engine.bpm.flownode.impl.FlowElementContainerDefinition subProcessContainer = subProcess.getSubProcessContainer(); if (subProcessContainer != null) { validateFlowNodeUnique(subProcessContainer, names); } } } }
public SFlowNodeDefinitionImpl(final FlowNodeDefinition flowNodeDefinition, final Map<String, STransitionDefinition> sTransitionsMap) { super(flowNodeDefinition.getName()); incomings = buildIncomingTransitions(flowNodeDefinition, sTransitionsMap); outgoings = buildOutGoingTransitions(flowNodeDefinition, sTransitionsMap); if (flowNodeDefinition.getDefaultTransition() != null) { defaultTransition = sTransitionsMap.get(String.valueOf(flowNodeDefinition.getDefaultTransition().getId())); } final List<ConnectorDefinition> connectors2 = flowNodeDefinition.getConnectors(); final ArrayList<SConnectorDefinition> mConnectors = new ArrayList<>(connectors2.size()); connectorsMap = new HashMap<>(2); connectorsMap.put(ConnectorEvent.ON_ENTER, new ArrayList<SConnectorDefinition>()); connectorsMap.put(ConnectorEvent.ON_FINISH, new ArrayList<SConnectorDefinition>()); allConnectorsMap = new HashMap<>(2); for (final ConnectorDefinition connector : connectors2) { final SConnectorDefinitionImpl e = new SConnectorDefinitionImpl(connector); mConnectors.add(e); connectorsMap.get(e.getActivationEvent()).add(e); allConnectorsMap.put(e.getName(), e); } connectors = Collections.unmodifiableList(mConnectors); description = flowNodeDefinition.getDescription(); displayDescription = ServerModelConvertor.convertExpression(flowNodeDefinition.getDisplayDescription()); displayDescriptionAfterCompletion = ServerModelConvertor.convertExpression(flowNodeDefinition.getDisplayDescriptionAfterCompletion()); displayName = ServerModelConvertor.convertExpression(flowNodeDefinition.getDisplayName()); setId(flowNodeDefinition.getId()); }
private List<STransitionDefinition> buildOutGoingTransitions(final FlowNodeDefinition nodeDefinition, final Map<String, STransitionDefinition> sTransitionsMap) { Iterator<TransitionDefinition> iterator; final List<TransitionDefinition> outgoingTransitions = nodeDefinition.getOutgoingTransitions(); final List<STransitionDefinition> outgoings = new ArrayList<>(); iterator = outgoingTransitions.iterator(); while (iterator.hasNext()) { final TransitionDefinition sTransition = iterator.next(); final STransitionDefinition outgoing = sTransitionsMap.get(String.valueOf(sTransition.getId())); outgoings.add(outgoing); } return outgoings; }
private List<STransitionDefinition> buildIncomingTransitions(final FlowNodeDefinition nodeDefinition, final Map<String, STransitionDefinition> sTransitionsMap) { final List<TransitionDefinition> incomingTransitions = nodeDefinition.getIncomingTransitions(); final List<STransitionDefinition> incomings = new ArrayList<>(); final Iterator<TransitionDefinition> iterator = incomingTransitions.iterator(); while (iterator.hasNext()) { final TransitionDefinition sTransition = iterator.next(); final STransitionDefinition incoming = sTransitionsMap.get(String.valueOf(sTransition.getId())); incomings.add(incoming); } return incomings; }
public SFlowNodeDefinitionImpl(final FlowNodeDefinition flowNodeDefinition, final Map<String, STransitionDefinition> sTransitionsMap) { super(flowNodeDefinition.getName()); incomings = buildIncomingTransitions(flowNodeDefinition, sTransitionsMap); outgoings = buildOutGoingTransitions(flowNodeDefinition, sTransitionsMap); if (flowNodeDefinition.getDefaultTransition() != null) { defaultTransition = sTransitionsMap.get(String.valueOf(flowNodeDefinition.getDefaultTransition().getId())); } final List<ConnectorDefinition> connectors2 = flowNodeDefinition.getConnectors(); final ArrayList<SConnectorDefinition> mConnectors = new ArrayList<>(connectors2.size()); connectorsMap = new HashMap<>(2); connectorsMap.put(ConnectorEvent.ON_ENTER, new ArrayList<SConnectorDefinition>()); connectorsMap.put(ConnectorEvent.ON_FINISH, new ArrayList<SConnectorDefinition>()); allConnectorsMap = new HashMap<>(2); for (final ConnectorDefinition connector : connectors2) { final SConnectorDefinitionImpl e = new SConnectorDefinitionImpl(connector); mConnectors.add(e); connectorsMap.get(e.getActivationEvent()).add(e); allConnectorsMap.put(e.getName(), e); } connectors = Collections.unmodifiableList(mConnectors); description = flowNodeDefinition.getDescription(); displayDescription = ServerModelConvertor.convertExpression(flowNodeDefinition.getDisplayDescription()); displayDescriptionAfterCompletion = ServerModelConvertor.convertExpression(flowNodeDefinition.getDisplayDescriptionAfterCompletion()); displayName = ServerModelConvertor.convertExpression(flowNodeDefinition.getDisplayName()); setId(flowNodeDefinition.getId()); }
private List<STransitionDefinition> buildOutGoingTransitions(final FlowNodeDefinition nodeDefinition, final Map<String, STransitionDefinition> sTransitionsMap) { Iterator<TransitionDefinition> iterator; final List<TransitionDefinition> outgoingTransitions = nodeDefinition.getOutgoingTransitions(); final List<STransitionDefinition> outgoings = new ArrayList<>(); iterator = outgoingTransitions.iterator(); while (iterator.hasNext()) { final TransitionDefinition sTransition = iterator.next(); final STransitionDefinition outgoing = sTransitionsMap.get(String.valueOf(sTransition.getId())); outgoings.add(outgoing); } return outgoings; }
private List<STransitionDefinition> buildIncomingTransitions(final FlowNodeDefinition nodeDefinition, final Map<String, STransitionDefinition> sTransitionsMap) { final List<TransitionDefinition> incomingTransitions = nodeDefinition.getIncomingTransitions(); final List<STransitionDefinition> incomings = new ArrayList<>(); final Iterator<TransitionDefinition> iterator = incomingTransitions.iterator(); while (iterator.hasNext()) { final TransitionDefinition sTransition = iterator.next(); final STransitionDefinition incoming = sTransitionsMap.get(String.valueOf(sTransition.getId())); incomings.add(incoming); } return incomings; }
@Override public void find(FlowNodeDefinition flowNodeDefinition, long expressionDefinitionId) { if (flowNodeDefinition != null) { findExpressionFromNotNullContainer(flowNodeDefinition.getDisplayName(), expressionDefinitionId); findExpressionFromNotNullContainer(flowNodeDefinition.getDisplayDescription(), expressionDefinitionId); findExpressionFromNotNullContainer(flowNodeDefinition.getDisplayDescriptionAfterCompletion(), expressionDefinitionId); findExpressionFromNotNullContainer(flowNodeDefinition.getDefaultTransition(), expressionDefinitionId); for (TransitionDefinition transitionDefinition : flowNodeDefinition.getIncomingTransitions()) { findExpressionFromNotNullContainer(transitionDefinition, expressionDefinitionId); } for (TransitionDefinition transitionDefinition : flowNodeDefinition.getOutgoingTransitions()) { findExpressionFromNotNullContainer(transitionDefinition, expressionDefinitionId); } for (ConnectorDefinition connectorDefinition : flowNodeDefinition.getConnectors()) { findExpressionFromNotNullContainer(connectorDefinition, expressionDefinitionId); } } }
private void validateFlowNodeName(final List<String> names, final Collection<? extends FlowNodeDefinition> flowNodes) { for (final FlowNodeDefinition flowNode : flowNodes) { validateConnectors(flowNode.getConnectors()); if (names.contains(flowNode.getName())) { designErrors.add("More than one elements are named '" + flowNode.getName() + "'. All names must be unique."); } else { names.add(flowNode.getName()); } if (flowNode instanceof SubProcessDefinition) { final SubProcessDefinition subProcess = (SubProcessDefinition) flowNode; org.bonitasoft.engine.bpm.flownode.impl.FlowElementContainerDefinition subProcessContainer = subProcess.getSubProcessContainer(); if (subProcessContainer != null) { validateFlowNodeUnique(subProcessContainer, names); } } } }
assertEquals(process.getFlowElementContainer().getTransitions().size(), result.getFlowElementContainer().getTransitions().size()); assertThat(result.getProcessContainer().getFlowNode("start1").getOutgoingTransitions().get(0).getCondition().getContent()) .as("the condition on the transition was not kept").isEqualTo("true");