private Node generateSequence(final Scope scope, final Sequence sequence, final BPELProcess bpelprocess) throws CoreException { this.log.finest("start generate sequence"); Node sequenceNode = null; if (sequence != null) { final List<Node> childNodes = new ArrayList<Node>(); Node activityNode = null; for (final Activity activity : sequence.getActivities()) { activityNode = this.generateActivity(scope, activity, bpelprocess); if (activityNode != null) { childNodes.add(activityNode); } else { throw new CoreException("Impossible to generate activity: " + activity.getName()); } } // TODO Manage non-functional behaviours in process (set to null for // now) sequenceNode = CreationPatternFactory.getInstance() .createSequencePattern(sequence.getName(), childNodes, scope, null); } this.log.finest("end generate sequence"); return sequenceNode; }
public void addAssign(Activity a, String assignName, String fromXPath, String toXPath) throws Exception{ Assign assign1 = new AssignImpl(new TAssign(),a); Copy c = new CopyImpl(new TCopy(), assign1); From from = new FromImpl(new TFrom(), c); from.setContent(fromXPath); from.setExpressionLanguage(URI.create("http://www.w3.org/TR/xpath20/")); To to = new ToImpl(new TTo(), c); to.setExpressionLanguage(URI.create("http://www.w3.org/TR/xpath20/")); to.setContent(toXPath); c.setFrom(from); c.setTo(to); assign1.addCopy(c); assign1.setName(assignName); if(a instanceof Sequence){ ((Sequence) a).addActivity(assign1); }else{ throw new Exception("addActivity not yet implemented for "+a.getClass().getName()+" activity"); } }
@Override public void validate() { // validation if((((TSequence)((BPELElementImpl)this.getActivity()).getModel()).getActivity() == null) || (((TSequence)((BPELElementImpl)this.getActivity()).getModel()).getActivity().size() == 0)) { BPELStaticAnalysisImpl.getInstance().addError(new BPELErrorImpl(this.getActivity(), new BPELException("In sequence " + this.getActivity().getName() + " => A sequence MUST have at less one activity."))); } }
for(Activity a : seq.getActivities()) { res.addAll(findActivityRecursively(clazz,a));