changes to build script to increase java heap memory
[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 abstract class OwnershipNode {   
8
9     protected HashSet<ReferenceEdge> referencees;
10
11     public OwnershipNode() {
12         referencees = new HashSet<ReferenceEdge>();
13     }
14
15
16     public Iterator<ReferenceEdge> iteratorToReferencees() {
17         return referencees.iterator();
18     }
19
20     public Iterator<ReferenceEdge> iteratorToReferenceesClone() {
21         HashSet<ReferenceEdge> clone = (HashSet<ReferenceEdge>) referencees.clone();
22         return clone.iterator();
23     }
24
25     public int getNumReferencees() {
26         return referencees.size();
27     }
28
29     public void addReferencee( ReferenceEdge edge ) {
30         assert edge != null;
31
32         referencees.add( edge );
33     }
34
35     public void removeReferencee( ReferenceEdge edge ) {
36         assert edge != null;
37         assert referencees.contains( edge );
38
39         referencees.remove( edge );
40     }
41
42     public ReferenceEdge getReferenceTo( HeapRegionNode  hrn,
43                                          FieldDescriptor fd ) {
44         assert hrn != null;
45
46         Iterator<ReferenceEdge> itrEdge = referencees.iterator();
47         while( itrEdge.hasNext() ) {
48             ReferenceEdge edge = itrEdge.next();
49             if( edge.getDst().equals( hrn ) &&
50                 edge.getFieldDesc() == fd     ) {
51                 return edge;
52             }
53         }
54
55         return null;
56     }
57 }