1 package Analysis.TaskStateAnalysis;
7 public class TaskQueue {
8 protected TaskDescriptor task;
9 protected HashSet<FlagTagState> [] parameterset;
10 protected Vector<TempDescriptor> tags;
11 protected Hashtable <FlagState, Vector<FlagTagState>> map;
13 public int numParameters() {
14 return parameterset.length;
17 public TaskDescriptor getTask() {
21 public TaskQueue(TaskDescriptor td) {
23 this.parameterset=(HashSet<FlagTagState>[]) new HashSet[task.numParameters()];
24 this.map=new Hashtable<FlagState, Vector<FlagTagState>>();
25 this.tags=new Vector<TempDescriptor>();
26 for(int i=0; i<task.numParameters(); i++) {
27 this.parameterset[i]=new HashSet<FlagTagState>();
28 TagExpressionList tel=td.getTag(td.getParameter(i));
30 for(int j=0; j<tel.numTags(); j++) {
31 TempDescriptor tagtmp=tel.getTemp(j);
32 if (!tags.contains(tagtmp))
38 public TaskQueueIterator enqueue(int index, FlagTagState fts) {
39 parameterset[index].add(fts);
40 if (!map.containsKey(fts.fs)) {
41 map.put(fts.fs, new Vector<FlagTagState>());
43 map.get(fts.fs).add(fts);
44 return new TaskQueueIterator(this, index, fts);