bug fixes
[IRC.git] / Robust / src / Analysis / OwnershipAnalysis / OwnershipNode.java
1 package Analysis.OwnershipAnalysis;
2
3 import IR.*;
4 import IR.Flat.*;
5 import java.util.*;
6
7 public class OwnershipNode {   
8
9     public OwnershipNode() {
10         referencedRegions = 
11             new Hashtable<HeapRegionNode, ReferenceEdgeProperties>();
12     }
13
14
15     ///////////////////////////////////////////
16     // interface with larger graph
17     ///////////////////////////////////////////
18     protected Hashtable
19         <HeapRegionNode, ReferenceEdgeProperties>
20         referencedRegions;
21
22     public Iterator setIteratorToReferencedRegions() {
23         Set s = referencedRegions.entrySet();
24         return s.iterator();
25     }
26
27     public Iterator setIteratorToReferencedRegionsClone() {
28         Hashtable ht = (Hashtable) referencedRegions.clone();
29         Set s = ht.entrySet();
30         return s.iterator();
31     }
32
33     public void addReferencedRegion( HeapRegionNode hrn,
34                                      ReferenceEdgeProperties rep ) {
35         assert hrn != null;
36         assert rep != null;
37
38         referencedRegions.put( hrn, rep );
39     }
40
41     public void removeReferencedRegion( HeapRegionNode hrn ) {
42         assert hrn != null;
43         assert referencedRegions.containsKey( hrn );
44
45         referencedRegions.remove( hrn );
46     }
47
48     public ReferenceEdgeProperties getReferenceTo( HeapRegionNode hrn ) {
49         assert hrn != null;
50
51         return referencedRegions.get( hrn );
52     }
53     ///////////////////////////////////////////////
54     // end interface with larger graph
55     ///////////////////////////////////////////////
56 }