Package com.ibm.wala.analysis.pointers
Class BasicHeapGraph
- java.lang.Object
-
- com.ibm.wala.analysis.pointers.HeapGraphImpl
-
- com.ibm.wala.analysis.pointers.BasicHeapGraph
-
- All Implemented Interfaces:
HeapGraph
,EdgeManager
,Graph
,NodeManager
,NumberedEdgeManager
,NumberedGraph
,NumberedNodeManager
,Iterable
public class BasicHeapGraph extends HeapGraphImpl
Basic implementation ofHeapGraph
-
-
Constructor Summary
Constructors Constructor Description BasicHeapGraph(PointerAnalysis<InstanceKey> P, CallGraph callGraph)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addEdge(Object from, Object to)
void
addNode(Object n)
add a node to this graphboolean
containsNode(Object N)
int
getMaxNumber()
Object
getNode(int number)
int
getNumber(Object N)
int
getNumberOfNodes()
int
getPredNodeCount(Object N)
Return the number ofimmediate predecessor
nodes of nIntSet
getPredNodeNumbers(Object node)
Iterator<Object>
getPredNodes(Object N)
Return anIterator
over the immediate predecessor nodes of n This method never returnsnull
.int
getSuccNodeCount(Object N)
Return the number ofimmediate successor
nodes of this Node in the GraphIntSet
getSuccNodeNumbers(Object node)
Iterator<Object>
getSuccNodes(Object N)
Return an Iterator over the immediate successor nodes of nboolean
hasEdge(Object from, Object to)
Iterator<Object>
iterator()
void
removeAllIncidentEdges(Object node)
void
removeEdge(Object from, Object to)
void
removeIncomingEdges(Object node)
void
removeNode(Object n)
remove a node from this graphvoid
removeOutgoingEdges(Object node)
String
toString()
-
Methods inherited from class com.ibm.wala.analysis.pointers.HeapGraphImpl
getHeapModel, getPointerAnalysis, getReachableInstances, iterateNodes, removeNodeAndEdges
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Constructor Detail
-
BasicHeapGraph
public BasicHeapGraph(PointerAnalysis<InstanceKey> P, CallGraph callGraph) throws NullPointerException
- Parameters:
P
- governing pointer analysis- Throws:
NullPointerException
- if P is null
-
-
Method Detail
-
getNumber
public int getNumber(Object N)
-
getNode
public Object getNode(int number)
-
getMaxNumber
public int getMaxNumber()
-
getNumberOfNodes
public int getNumberOfNodes()
- Returns:
- the number of nodes in this graph
-
getPredNodes
public Iterator<Object> getPredNodes(Object N)
Description copied from interface:EdgeManager
Return anIterator
over the immediate predecessor nodes of n This method never returnsnull
.- Returns:
- an
Iterator
over the immediate predecessor nodes of this Node.
-
getPredNodeCount
public int getPredNodeCount(Object N)
Description copied from interface:EdgeManager
Return the number ofimmediate predecessor
nodes of n- Returns:
- the number of immediate predecessors of n.
-
getSuccNodes
public Iterator<Object> getSuccNodes(Object N)
Description copied from interface:EdgeManager
Return an Iterator over the immediate successor nodes of nThis method never returns
null
.- Returns:
- an Iterator over the immediate successor nodes of n
-
getSuccNodeCount
public int getSuccNodeCount(Object N)
Description copied from interface:EdgeManager
Return the number ofimmediate successor
nodes of this Node in the Graph- Returns:
- the number of immediate successor Nodes of this Node in the Graph.
-
addNode
public void addNode(Object n) throws UnimplementedError
Description copied from interface:NodeManager
add a node to this graph- Throws:
UnimplementedError
-
removeNode
public void removeNode(Object n) throws UnimplementedError
Description copied from interface:NodeManager
remove a node from this graph- Throws:
UnimplementedError
-
addEdge
public void addEdge(Object from, Object to) throws UnimplementedError
- Throws:
UnimplementedError
-
removeEdge
public void removeEdge(Object from, Object to) throws UnimplementedError
- Throws:
UnimplementedError
-
hasEdge
public boolean hasEdge(Object from, Object to) throws UnimplementedError
- Throws:
UnimplementedError
-
removeAllIncidentEdges
public void removeAllIncidentEdges(Object node) throws UnsupportedOperationException
- Throws:
UnsupportedOperationException
-
containsNode
public boolean containsNode(Object N)
- Returns:
- true iff the graph contains the specified node
-
removeIncomingEdges
public void removeIncomingEdges(Object node) throws UnimplementedError
- Throws:
UnimplementedError
-
removeOutgoingEdges
public void removeOutgoingEdges(Object node) throws UnimplementedError
- Throws:
UnimplementedError
-
getSuccNodeNumbers
public IntSet getSuccNodeNumbers(Object node) throws UnimplementedError
- Returns:
- the numbers identifying the immediate successors of node
- Throws:
UnimplementedError
-
getPredNodeNumbers
public IntSet getPredNodeNumbers(Object node) throws UnimplementedError
- Returns:
- the numbers identifying the immediate predecessors of node
- Throws:
UnimplementedError
-
-