harpoon.Analysis.PA2
Class MapRelPAEdgeSet
java.lang.Object
jpaul.Graphs.DiGraph<PANode>
harpoon.Analysis.PA2.PAEdgeSet
harpoon.Analysis.PA2.MapRelPAEdgeSet
- All Implemented Interfaces:
- Cloneable
public class MapRelPAEdgeSet
- extends PAEdgeSet
MapRelPAEdgeSet
- Version:
- $Id: MapRelPAEdgeSet.java,v 1.5 2005/11/30 22:25:56 salcianu Exp $
- Author:
- Alexandru Salcianu <salcianu@alum.mit.edu>
Fields inherited from class jpaul.Graphs.DiGraph |
CACHING |
Methods inherited from class jpaul.Graphs.DiGraph |
constructBiDiNavigator, dfs, dfs2, diGraph, diGraph, findPath, findPath, forAllVertices, getBiDiNavigator, getComponentDiGraph, numArcs, numVertices, reverseDiGraph, subDiGraph, transitivePred, transitivePred, transitiveSucc, transitiveSucc, union, vertices |
MapRelPAEdgeSet
public MapRelPAEdgeSet(jpaul.DataStructs.Factory<Map<PANode,jpaul.DataStructs.Relation<HField,PANode>>> mapFact,
jpaul.DataStructs.Factory<jpaul.DataStructs.Relation<HField,PANode>> relFact)
- Parameters:
mapFact
- Factory that generates the underlying map from
nodes to relations between fields and nodes.relFact
- Factory that generates the underlying relations.
uncheckedAddEdge
protected boolean uncheckedAddEdge(PANode n1,
HField hf,
PANode n2)
- Description copied from class:
PAEdgeSet
- Adds an
hf
-labeled edge between n1
and n2
UNDER ALL CIRCUMSTANCES (regardless of the
type filtering, etc.). This method is used internally, while
computing the reverse set of edges, in the inter-procedural
analysis.
- Specified by:
uncheckedAddEdge
in class PAEdgeSet
pointedNodes
public Collection<PANode> pointedNodes(PANode n)
- Specified by:
pointedNodes
in class PAEdgeSet
- Returns:
- Collection of all nodes pointed to by
n
,
regardless of the field.
pointedNodes
public Collection<PANode> pointedNodes(PANode n,
HField hf)
- Specified by:
pointedNodes
in class PAEdgeSet
- Returns:
- The collection of the nodes pointed to from
n1
, along hf
-labelled edges.
sources
public Collection<PANode> sources()
- Specified by:
sources
in class PAEdgeSet
- Returns:
- All nodes from which an edge starts.
allNodes
public Iterable<PANode> allNodes()
- Specified by:
allNodes
in class PAEdgeSet
- Returns:
- All nodes from
this set of edges.
fields
public Collection<HField> fields(PANode n)
- Specified by:
fields
in class PAEdgeSet
- Returns:
- All fields that label edges that leave
node
.
join
public boolean join(PAEdgeSet es2)
- Description copied from class:
PAEdgeSet
- Adds all the edges from
es2
to this
set pf edges.
- Specified by:
join
in class PAEdgeSet
- Returns:
- true if NEW information was added to
this
set of edges.
clone
public Object clone()
- Creates a new, independent set of edges (independent = the
operations on the new relation won't affect the old one).
- Overrides:
clone
in class PAEdgeSet
getForwardNavigator
public jpaul.Graphs.ForwardNavigator<PANode> getForwardNavigator()
- Overrides:
getForwardNavigator
in class jpaul.Graphs.DiGraph<PANode>
print
public void print(PrintWriter pw,
String indentStr)
- Overrides:
print
in class PAEdgeSet