More pieces for new version of analysis
[IRC.git] / Robust / src / Analysis / MLP / SESEWaitingQueue.java
1 package Analysis.MLP;
2
3 import java.util.HashMap;
4 import java.util.Iterator;
5 import java.util.Set;
6
7 public class SESEWaitingQueue {
8         public static final int NORMAL= 0; // enqueue all stuff.
9         public static final int EXCEPTION= 1; // dynamically decide whether a waiting element is enqueued or not.
10         
11         private HashMap<Integer, Set<WaitingElement>>mapWaitingElement;
12         private HashMap<Integer, Integer>mapType;
13         
14         public SESEWaitingQueue(){
15                 mapWaitingElement=new HashMap<Integer, Set<WaitingElement>>();
16                 mapType=new HashMap<Integer, Integer>();
17         }
18         
19         public void setType(int queueID, int type){
20                 mapType.put(new Integer(queueID), new Integer(type));
21         }
22         
23         public int getType(int queueID){
24                 Integer type=mapType.get(new Integer(queueID));
25                 if(type==null){
26                         return SESEWaitingQueue.NORMAL;
27                 }else{
28                         return type.intValue();
29                 }
30         }
31         
32         public void setWaitingElementSet(int queueID, Set<WaitingElement> set){
33                 mapWaitingElement.put(new Integer(queueID), set);
34         }
35         
36         public Set<WaitingElement> getWaitingElementSet(int queueID){
37                 return mapWaitingElement.get(new Integer(queueID));
38         }
39         
40         public Set<Integer> getQueueIDSet(){
41                 return mapWaitingElement.keySet();
42         }
43         
44         public int getWaitingElementSize(){
45                 int size=0;
46                 Set<Integer> keySet=mapWaitingElement.keySet();
47                 for (Iterator iterator = keySet.iterator(); iterator.hasNext();) {
48                         Integer key = (Integer) iterator.next();
49                         size+=mapWaitingElement.get(key).size();
50                 }
51                 return size;
52         }
53 }