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 for(int i=0;i<task.numParameters();i++) {
26 this.parameterset[i]=new HashSet<FlagTagState>();
27 TagExpressionList tel=td.getTag(td.getParameter(i));
28 for(int j=0;j<tel.numTags();j++) {
29 TempDescriptor tagtmp=tel.getTemp(j);
30 if (!tags.contains(tagtmp))
36 public TaskQueueIterator enqueue(int index, FlagTagState fts) {
37 parameterset[index].add(fts);
38 if (!map.containsKey(fts.fs)) {
39 map.put(fts.fs, new Vector<FlagTagState>());
41 map.get(fts.fs).add(fts);
42 return new TaskQueueIterator(this, index, fts);