@Override public List<FlowNode> getOutgoingFlowNodes() { WithFlowElements wfe = DefinitionsHelper.getParentContainer(this); List<FlowNode> result = new ArrayList<FlowNode>(); if(wfe!=null && wfe.hasFlowElement()){ for(SequenceFlow sf : wfe.getFlowElementsByClass(SequenceFlow.class)){ if(sf.getSourceRef().equals(this)){ result.add(sf.getTargetRef()); } } } return result; }
@Override public List<FlowNode> getIncomingFlowNodes() { WithFlowElements wfe = DefinitionsHelper.getParentContainer(this); List<FlowNode> result = new ArrayList<FlowNode>(); if(wfe!=null && wfe.hasFlowElement()){ for(SequenceFlow sf : wfe.getFlowElementsByClass(SequenceFlow.class)){ if(sf.getTargetRef().equals(this)){ result.add(sf.getSourceRef()); } } } return result; }
public static SequenceFlow getSequenceFlow(WithFlowElements proc, String sourceId, String targetId) { for (SequenceFlow sf : proc.getFlowElementsByClass(SequenceFlow.class)) { if (sf.getSourceRef().getId().equals(sourceId) && sf.getTargetRef().getId().equals(targetId)) { return sf; } } return null; }
private static void adaptSequenceFlow(SequenceFlow sf, WithSequenceFlowsBean wfe, DefinitionsBean def){ SequenceFlowBean sfb = new SequenceFlowBean(sf.getId()); setDocumentationAndExtensions(sfb, sf); sfb.setName(sf.getName()); if(sf.getConditionExpression()!=null){ sfb.setExpression(adaptExpression(sf.getConditionExpression())); } sfb.setSourceNode((IFlowElementBean) elements.get(sf.getSourceRef().getId())); sfb.setTargetNode((IFlowElementBean) elements.get(sf.getTargetRef().getId())); wfe.addSequenceFlow(sfb); elements.put(sfb.getId(), sfb); if(defaultFlows.containsKey(sfb.getId())){ defaultFlows.get(sfb.getId()).setDefaultSequenceFlow(sfb); } }