harpoon.Analysis.PointerAnalysis
Class AbstrPAEdgeSet

java.lang.Object
  |
  +--harpoon.Analysis.PointerAnalysis.AbstrPAEdgeSet
All Implemented Interfaces:
Cloneable, PAEdgeSet
Direct Known Subclasses:
LightPAEdgeSet

public abstract class AbstrPAEdgeSet
extends Object
implements PAEdgeSet, Cloneable

AbstrPAEdgeSet

Version:
$Id: AbstrPAEdgeSet.java,v 1.2 2002/02/25 20:58:38 cananian Exp $
Author:
Alexandru SALCIANU <salcianu@retezat.lcs.mit.edu>

Constructor Summary
AbstrPAEdgeSet()
           
 
Method Summary
 void addEdge(PANode node1, String f, PANode node2)
           
 void addEdge(Temp v, PANode node)
           
 void addEdges(Collection node1s, String f, Collection node2s)
           
 void addEdges(Collection node1s, String f, PANode node2)
           
 void addEdges(PANode node1, String f, Collection node2s)
           
 void addEdges(Temp v, Collection nodes)
           
 Set allFlagsForNode(PANode node)
           
 Set allSourceNodes()
           
 Set allVariables()
           
 Object clone()
           
static Set difference(PAEdgeSet es1, PAEdgeSet es2)
          Computes the difference between two sets of edges.
 void forAllEdges(harpoon.Analysis.PointerAnalysis.PAEdgeVisitor visitor)
           
 void forAllEdges(PANode node, harpoon.Analysis.PointerAnalysis.PAEdgeVisitor visitor)
           
 void forAllEdges(Temp v, harpoon.Analysis.PointerAnalysis.PAEdgeVisitor visitor)
           
 void forAllNodes(PANodeVisitor visitor)
           
 void forAllPointedNodes(PANode node, PANodeVisitor visitor)
           
 void forAllPointedNodes(PANode node, String f, PANodeVisitor visitor)
           
 void forAllPointedNodes(Temp v, PANodeVisitor visitor)
           
 Set getEdgesFrom(PANode node, String f)
           
protected  PAEdgeSet getEmptyPAEdgeSet()
           
 Relation getPrecedenceRelation()
          Returns a relation that contains all the pairs <n2,n1> such that there was an edge from n1 to n2 (through some field f).
 Set pointedNodes(Collection nodes, String f)
           
 Set pointedNodes(PANode node)
           
 Set pointedNodes(PANode node, String f)
           
 Set pointedNodes(Temp v)
           
 void remove(Set set)
           
 void removeEdge(PANode node1, String f, PANode node2)
           
 void removeEdge(Temp v, PANode node)
           
 void removeEdges(PANode node1)
           
 void removeEdges(PANode node1, String f)
           
 void removeEdges(Temp v)
           
static void show_evolution(PAEdgeSet es_old, PAEdgeSet es_new)
          Display the edges which were removed and the edges which were added while passing from es_old to es_new.
 PAEdgeSet specialize(Map map)
           
 String toString()
           
 void union(PAEdgeSet edges2)
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface harpoon.Analysis.PointerAnalysis.PAEdgeSet
copyEdges
 

Constructor Detail

AbstrPAEdgeSet

public AbstrPAEdgeSet()
Method Detail

addEdge

public void addEdge(Temp v,
                    PANode node)
Specified by:
addEdge in interface PAEdgeSet

addEdges

public void addEdges(Temp v,
                     Collection nodes)
Specified by:
addEdges in interface PAEdgeSet

removeEdge

public void removeEdge(Temp v,
                       PANode node)
Specified by:
removeEdge in interface PAEdgeSet

removeEdges

public void removeEdges(Temp v)
Specified by:
removeEdges in interface PAEdgeSet

pointedNodes

public Set pointedNodes(Temp v)
Specified by:
pointedNodes in interface PAEdgeSet

allVariables

public Set allVariables()
Specified by:
allVariables in interface PAEdgeSet

addEdge

public void addEdge(PANode node1,
                    String f,
                    PANode node2)
Specified by:
addEdge in interface PAEdgeSet

addEdges

public void addEdges(PANode node1,
                     String f,
                     Collection node2s)
Specified by:
addEdges in interface PAEdgeSet

addEdges

public void addEdges(Collection node1s,
                     String f,
                     PANode node2)
Specified by:
addEdges in interface PAEdgeSet

addEdges

public void addEdges(Collection node1s,
                     String f,
                     Collection node2s)
Specified by:
addEdges in interface PAEdgeSet

removeEdge

public void removeEdge(PANode node1,
                       String f,
                       PANode node2)
Specified by:
removeEdge in interface PAEdgeSet

removeEdges

public void removeEdges(PANode node1,
                        String f)
Specified by:
removeEdges in interface PAEdgeSet

removeEdges

public void removeEdges(PANode node1)
Specified by:
removeEdges in interface PAEdgeSet

pointedNodes

public Set pointedNodes(PANode node,
                        String f)
Specified by:
pointedNodes in interface PAEdgeSet

pointedNodes

public Set pointedNodes(Collection nodes,
                        String f)
Specified by:
pointedNodes in interface PAEdgeSet

pointedNodes

public Set pointedNodes(PANode node)
Specified by:
pointedNodes in interface PAEdgeSet

allFlagsForNode

public Set allFlagsForNode(PANode node)
Specified by:
allFlagsForNode in interface PAEdgeSet

allSourceNodes

public Set allSourceNodes()
Specified by:
allSourceNodes in interface PAEdgeSet

getEdgesFrom

public Set getEdgesFrom(PANode node,
                        String f)
Specified by:
getEdgesFrom in interface PAEdgeSet

forAllPointedNodes

public void forAllPointedNodes(Temp v,
                               PANodeVisitor visitor)
Specified by:
forAllPointedNodes in interface PAEdgeSet

forAllPointedNodes

public void forAllPointedNodes(PANode node,
                               String f,
                               PANodeVisitor visitor)
Specified by:
forAllPointedNodes in interface PAEdgeSet

forAllPointedNodes

public void forAllPointedNodes(PANode node,
                               PANodeVisitor visitor)
Specified by:
forAllPointedNodes in interface PAEdgeSet

forAllNodes

public void forAllNodes(PANodeVisitor visitor)
Specified by:
forAllNodes in interface PAEdgeSet

forAllEdges

public void forAllEdges(Temp v,
                        harpoon.Analysis.PointerAnalysis.PAEdgeVisitor visitor)
Specified by:
forAllEdges in interface PAEdgeSet

forAllEdges

public void forAllEdges(PANode node,
                        harpoon.Analysis.PointerAnalysis.PAEdgeVisitor visitor)
Specified by:
forAllEdges in interface PAEdgeSet

forAllEdges

public void forAllEdges(harpoon.Analysis.PointerAnalysis.PAEdgeVisitor visitor)
Specified by:
forAllEdges in interface PAEdgeSet

getEmptyPAEdgeSet

protected PAEdgeSet getEmptyPAEdgeSet()

specialize

public PAEdgeSet specialize(Map map)
Specified by:
specialize in interface PAEdgeSet

remove

public void remove(Set set)
Specified by:
remove in interface PAEdgeSet

union

public void union(PAEdgeSet edges2)
Specified by:
union in interface PAEdgeSet

getPrecedenceRelation

public Relation getPrecedenceRelation()
Description copied from interface: PAEdgeSet
Returns a relation that contains all the pairs <n2,n1> such that there was an edge from n1 to n2 (through some field f).

Specified by:
getPrecedenceRelation in interface PAEdgeSet

toString

public String toString()
Overrides:
toString in class Object

clone

public Object clone()
Specified by:
clone in interface PAEdgeSet
Overrides:
clone in class Object

difference

public static Set difference(PAEdgeSet es1,
                             PAEdgeSet es2)
Computes the difference between two sets of edges. Returns the set of edges that are present in es1 but not in es2. The returned set contains elements of type PASimpleEdge or PAComplexEdge. For debug purposes.


show_evolution

public static void show_evolution(PAEdgeSet es_old,
                                  PAEdgeSet es_new)
Display the edges which were removed and the edges which were added while passing from es_old to es_new.