changes.
[IRC.git] / Robust / src / Analysis / SSJava / BasisSet.java
1 package Analysis.SSJava;
2
3 import java.util.HashMap;
4 import java.util.HashSet;
5 import java.util.Iterator;
6 import java.util.Map;
7 import java.util.Set;
8
9 public class BasisSet {
10
11   // an element of the basis set is represented by a pair (HNode,basis)
12   Map<Set<Integer>, HNode> map;
13
14   public BasisSet() {
15     map = new HashMap<Set<Integer>, HNode>();
16   }
17
18   public void addElement(Set<Integer> basis, HNode node) {
19     map.put(basis, node);
20   }
21
22   public Iterator<Set<Integer>> basisIterator() {
23     return map.keySet().iterator();
24   }
25
26   public HNode getHNode(Set<Integer> B) {
27     return map.get(B);
28   }
29
30   public Set<HNode> getHNodeSet() {
31     Set<HNode> set = new HashSet<HNode>();
32     set.addAll(map.values());
33     return set;
34   }
35
36   public Set<Set<Integer>> getBasisSetByHNodeSet(Set<HNode> nodeSet) {
37
38     Set<Set<Integer>> rtrSet = new HashSet<Set<Integer>>();
39
40     Set<Set<Integer>> keySet = map.keySet();
41     for (Iterator iterator = keySet.iterator(); iterator.hasNext();) {
42       Set<Integer> basisKey = (Set<Integer>) iterator.next();
43       HNode node = map.get(basisKey);
44       if (nodeSet.contains(node)) {
45         rtrSet.add(basisKey);
46       }
47     }
48
49     return rtrSet;
50
51   }
52
53 }