1 package Analysis.Disjoint;
7 public abstract class RefSrcNode {
9 protected HashSet<RefEdge> referencees;
12 referencees = new HashSet<RefEdge>();
16 public Iterator<RefEdge> iteratorToReferencees() {
17 return referencees.iterator();
20 public Iterator<RefEdge> iteratorToReferenceesClone() {
21 HashSet<RefEdge> clone = (HashSet<RefEdge>)referencees.clone();
22 return clone.iterator();
25 public int getNumReferencees() {
26 return referencees.size();
29 public void addReferencee(RefEdge edge) {
31 referencees.add(edge);
34 public void removeReferencee(RefEdge edge) {
36 assert referencees.contains(edge);
37 referencees.remove(edge);
40 public RefEdge getReferenceTo(HeapRegionNode hrn,
46 Iterator<RefEdge> itrEdge = referencees.iterator();
47 while( itrEdge.hasNext() ) {
48 RefEdge edge = itrEdge.next();
49 if( edge.getDst().equals(hrn) &&
50 edge.typeEquals(type) &&
51 edge.fieldEquals(field)