private static FlowNode findFlowElementById(WithFlowElements wfe, String id) { return (FlowNode) wfe.getFlowElementById(id); }
private static void adaptItemAwareElement(IItemAwareElementBean iaeb, ItemAwareElement iae, DefinitionsBean defs){ if(iae.hasItemSubjectRef()){ iaeb.setItemSubject(defs.getItemDefinitionById(iae.getItemSubjectRef().getLocalPart())); } if(iae.hasDataState()){ iaeb.setDataState(iae.getDataState().getName()); } }
@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; }
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; }
@Override public void visitSubProcess(ISubProcessBean spBean){ SubProcess sp = newInstance(SubProcess.class); sp.setId(spBean.getId()); sp.setName(sp.getName()); setDocumentationAndExtensions(sp, spBean); currentFlowElementContainer.peek().addFlowElement(sp); currentFlowElementContainer.push(sp); currentLaneSetContainer.push(sp); currentArtifactContainer.push(sp); currentIOSpecOwner.push(sp); }
private static void adaptDataOutputs(WithDataOutput wdi, WithDataOutputBean wdib, DefinitionsBean defs){ if(wdi.hasDataOutput()){ for(DataOutput do_ : wdi.getDataOutput()){ DataOutputBean dob = new DataOutputBean(do_.getId()); setDocumentationAndExtensions(dob, do_); dob.setName(do_.getName()); dob.setCollection(do_.isIsCollection()); adaptItemAwareElement(dob, do_, defs); wdib.addDataOutput(dob); itemAwareElements.put(do_, dob); } } }
private static void adaptDataInputs(WithDataInput wdi, WithDataInputBean wdib, DefinitionsBean defs){ if(wdi.hasDataInput()){ for(DataInput di : wdi.getDataInput()){ DataInputBean dib = new DataInputBean(di.getId()); setDocumentationAndExtensions(dib, di); dib.setName(di.getName()); dib.setCollection(di.isIsCollection()); adaptItemAwareElement(dib, di, defs); wdib.addDataInput(dib); itemAwareElements.put(di, dib); } } }
@Override public void visitSubprocessLaneSet(ILaneSetBean laneSetBean) { LaneSet laneSet = newInstance(LaneSet.class); currentLaneSetContainer.peek().addLaneSet(laneSet); laneSet.setId(laneSetBean.getId()); setDocumentationAndExtensions(laneSet, laneSetBean); currentLaneSet.push(laneSet); }
@Override public void visitAssociation(IAssociationBean ab) { Association a = newInstance(Association.class); a.setId(ab.getId()); setDocumentationAndExtensions(a, ab); a.setAssociationDirection(retrieveAssociationDirection(ab.getDirection())); if(ab.getSource()!=null){ a.setSourceRef(new QName(ab.getSource().getId())); } if(ab.getTarget()!=null){ a.setTargetRef(new QName(ab.getTarget().getId())); } currentArtifactContainer.peek().addArtifact(a); }
@Override public void visitDataInput(IDataInputBean dib, WithDataInputBean owner) { DataInput di = newInstance(DataInput.class); di.setId(dib.getId()); di.setIsCollection(dib.isCollection()); di.setName(dib.getName()); setDocumentationAndExtensions(di, dib); if(dib.getItemSubject()!=null){ di.setItemSubjectRef(getBaseElementRef(dib.getItemSubject())); } currentWithDataInput.addDataInput(di); currentInputSet.addDataInputRef(di); itemAwareElements.put(dib, di); }
@Override public void visitDataOutput(IDataOutputBean dob, WithDataOutputBean owner) { DataOutput do_ = newInstance(DataOutput.class); do_.setId(dob.getId()); do_.setIsCollection(dob.isCollection()); do_.setName(dob.getName()); setDocumentationAndExtensions(do_, dob); if(dob.getItemSubject()!=null){ do_.setItemSubjectRef(getBaseElementRef(dob.getItemSubject())); } currentWithDataOutput.addDataOutput(do_); currentOutputSet.addDataOutputRef(do_); itemAwareElements.put(dob, do_); }
@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; }
private void adaptParallelGateway(ParallelGatewayBean gatewayBean) { ParallelGateway pg = newInstance(ParallelGateway.class); setDocumentationAndExtensions(pg, gatewayBean); pg.setId(gatewayBean.getId()); pg.setName(gatewayBean.getName()); currentFlowElementContainer.peek().addFlowElement(pg); }
@Override public void visitLane(ILaneBean laneBean) { Lane lane = newInstance(Lane.class); currentLaneSet.peek().addLane(lane); setDocumentationAndExtensions(lane,laneBean); lane.setName(laneBean.getName()); lane.setId(laneBean.getId()); for(IFlowElementBean fe : laneBean.getFlowNodes()){ if(fe instanceof IFlowNodeBean) { lane.addFlowNodeRef((FlowNode) currentFlowElementContainer.peek().getFlowElementById(fe.getId())); } } currentLane = lane; }
private void adaptSimpleTask(TaskBean taskBean, Task t) { setDocumentationAndExtensions(t, taskBean); t.setId(taskBean.getId()); t.setName(taskBean.getName()); if(taskBean.getDefaultSequenceFlow()!=null) { defaultFlows.put(taskBean.getDefaultSequenceFlow().getId(), t); } currentFlowElementContainer.peek().addFlowElement(t); currentDataInputAssociationOwner = t; currentDataOutputAssociationOwner = t; currentIOSpecOwner.push(t); }
@Override public void visitCallActivity(ICallActivityBean cab){ CallActivity ca = newInstance(CallActivity.class); ca.setId(cab.getId()); setDocumentationAndExtensions(ca, cab); ca.setName(cab.getName()); if(cab.getCalledElement()!=null){ ca.setCalledElement(getBaseElementRef(cab.getCalledElement())); } currentFlowElementContainer.peek().addFlowElement(ca); currentDataInputAssociationOwner = ca; currentDataOutputAssociationOwner = ca; currentIOSpecOwner.push(ca); }
private void adaptExclusiveGateway(ExclusiveGatewayBean gatewayBean) { ExclusiveGateway eg = newInstance(ExclusiveGateway.class); setDocumentationAndExtensions(eg, gatewayBean); eg.setId(gatewayBean.getId()); eg.setName(gatewayBean.getName()); if(gatewayBean.getDefaultSequenceFlow()!=null){ defaultFlows.put(gatewayBean.getDefaultSequenceFlow().getId(), eg); } currentFlowElementContainer.peek().addFlowElement(eg); }
@Override public void visitDataObject(IDataObjectBean dobj) { DataObject result = newInstance(DataObject.class); setDocumentationAndExtensions(result, dobj); result.setId(dobj.getId()); result.setIsCollection(dobj.isCollection()); result.setName(dobj.getName()); if(dobj.getItemSubject()!=null){ result.setItemSubjectRef(getBaseElementRef(dobj.getItemSubject())); } currentFlowElementContainer.peek().addFlowElement(result); itemAwareElements.put(dobj, result); }
private void adaptEventBasedGateway(EventBasedGatewayBean gb) { EventBasedGateway eg = newInstance(EventBasedGateway.class); setDocumentationAndExtensions(eg, gb); eg.setId(gb.getId()); eg.setName(gb.getName()); eg.setInstantiate(gb.isInstantiate()); eg.setEventGatewayType(retrieveEventGatewayType(gb.getType())); currentFlowElementContainer.peek().addFlowElement(eg); }
@Override public void visitStartEvent(IStartEventBean seb) { StartEvent startEvent = newInstance(StartEvent.class); setDocumentationAndExtensions(startEvent, seb); startEvent.setId(seb.getId()); startEvent.setName(seb.getName()); if(seb.getTriggers()!=null){ for(IEventDefinitionBean edb : seb.getTriggers()){ startEvent.addEventDefinitionRef(adaptEventDefinitionRef(edb)); } } currentFlowElementContainer.peek().addFlowElement(startEvent); currentDataOutputAssociationOwner = startEvent; currentWithDataOutput = startEvent; if(seb.getDataOutputs()!=null && !seb.getDataOutputs().isEmpty()){ OutputSet os = newInstance(OutputSet.class); startEvent.setOutputSet(os); currentOutputSet = os; } }