Fix tabbing.... Please fix your editors so they do tabbing correctly!!! (Spaces...
[IRC.git] / Robust / src / Analysis / OoOJava / SESEWaitingQueue.java
1 package Analysis.OoOJava;
2
3 import java.util.HashMap;
4 import java.util.Iterator;
5 import java.util.HashSet;
6 import java.util.Set;
7 import IR.Flat.TempDescriptor;
8
9 public class SESEWaitingQueue {
10   public static final int NORMAL= 0; // enqueue all stuff.
11   public static final int EXCEPTION= 1; // dynamically decide whether a waiting element is enqueued or not.
12
13   private HashMap<TempDescriptor, Set<WaitingElement>>tmp2WaitingElement;
14   private HashMap<Integer, Set<WaitingElement>>mapWaitingElement;
15   private HashMap<Integer, Integer>mapType;
16
17   public SESEWaitingQueue() {
18     mapWaitingElement=new HashMap<Integer, Set<WaitingElement>>();
19     tmp2WaitingElement=new HashMap<TempDescriptor, Set<WaitingElement>>();
20     mapType=new HashMap<Integer, Integer>();
21   }
22
23   public void setType(int queueID, int type) {
24     mapType.put(new Integer(queueID), new Integer(type));
25   }
26
27   public int getType(int queueID) {
28     Integer type=mapType.get(new Integer(queueID));
29     if(type==null) {
30       return SESEWaitingQueue.NORMAL;
31     } else {
32       return type.intValue();
33     }
34   }
35
36   public void setWaitingElementSet(int queueID, Set<WaitingElement> set) {
37     mapWaitingElement.put(new Integer(queueID), set);
38     for(Iterator<WaitingElement> wit=set.iterator(); wit.hasNext(); ) {
39       WaitingElement we=wit.next();
40       TempDescriptor tmp=we.getTempDesc();
41       if (!tmp2WaitingElement.containsKey(tmp))
42         tmp2WaitingElement.put(tmp, new HashSet<WaitingElement>());
43       tmp2WaitingElement.get(tmp).add(we);
44     }
45   }
46
47   public Set<WaitingElement> getWaitingElementSet(TempDescriptor tmp) {
48     return tmp2WaitingElement.get(tmp);
49   }
50
51   public Set<WaitingElement> getWaitingElementSet(int queueID) {
52     return mapWaitingElement.get(new Integer(queueID));
53   }
54
55   public Set<Integer> getQueueIDSet() {
56     return mapWaitingElement.keySet();
57   }
58
59   public int getWaitingElementSize() {
60     int size=0;
61     Set<Integer> keySet=mapWaitingElement.keySet();
62     for (Iterator iterator = keySet.iterator(); iterator.hasNext(); ) {
63       Integer key = (Integer) iterator.next();
64       size+=mapWaitingElement.get(key).size();
65     }
66     return size;
67   }
68 }