1 package org.smartcomps.twister.engine.priv.core.definition.impl;
2
3 import org.smartcomps.twister.engine.priv.core.definition.Activity;
4 import org.smartcomps.twister.engine.priv.core.definition.StructuredActivity;
5 import org.smartcomps.twister.engine.priv.core.dynamic.StructuredEC;
6
7 import java.util.ArrayList;
8 import java.util.HashSet;
9 import java.util.Iterator;
10 import java.util.List;
11 import java.util.Set;
12 import java.util.SortedSet;
13 import java.util.TreeSet;
14 import java.util.Collection;
15
16 /***
17 * Persistent implementation of the StructuredActivity interface.
18 * @see org.smartcomps.twister.engine.priv.core.definition.StructuredActivity
19 */
20 public abstract class StructuredActivityImpl extends ActivityImpl implements StructuredActivity {
21
22 private Set activitySet = new HashSet();
23 private Collection executionContexts = new HashSet();
24
25 public List getActivities() {
26 // Making sure the set is ordered before using it to create the List.
27 SortedSet sortedSet = new TreeSet(activitySet);
28 return new ArrayList(sortedSet);
29 }
30
31 public void setActivities(List activities) {
32 this.activitySet = new HashSet(activities);
33 }
34
35 public Set getActivitySet() {
36 return activitySet;
37 }
38
39 /***
40 * Do not use this method, its doesn't maintain activity indexes properly, use
41 * the addActivity method instead.
42 * @param activitySet
43 */
44 public void setActivitySet(Set activitySet) {
45 this.activitySet = activitySet;
46 }
47
48 public void addActivity(Activity activity) {
49 ActivityImpl impl = (ActivityImpl) activity;
50 impl.setIndex(nextActivityIndex());
51 getActivitySet().add(activity);
52 impl.setContainer(this);
53 }
54
55 public Collection getExecutionContexts() {
56 return executionContexts;
57 }
58
59 public void setExecutionContexts(Collection executionContexts) {
60 if (!(executionContexts instanceof Set)) {
61 this.executionContexts = new HashSet(executionContexts);
62 } else {
63 this.executionContexts = executionContexts;
64 }
65 }
66
67 public void addExecutionContext(StructuredEC context) {
68 this.executionContexts.add(context);
69 }
70
71 private int nextActivityIndex() {
72 int index = 0;
73 for (Iterator actIterator = getActivitySet().iterator(); actIterator.hasNext();) {
74 ActivityImpl activity = (ActivityImpl) actIterator.next();
75 if (activity.getIndex() > index)
76 index = activity.getIndex();
77 }
78 return index + 1;
79 }
80
81
82 }
This page was automatically generated by Maven