Class HeapGraphImpl<T extends InstanceKey>
java.lang.Object
com.ibm.wala.analysis.pointers.HeapGraphImpl<T>
- All Implemented Interfaces:
HeapGraph<T>, EdgeManager<Object>, Graph<Object>, NodeManager<Object>, NumberedEdgeManager<Object>, NumberedGraph<Object>, NumberedNodeManager<Object>, Iterable<Object>
- Direct Known Subclasses:
BasicHeapGraph
A
Graph view of a pointer analysis solution.
Nodes in the Graph are PointerKeys and InstanceKeys.
There is an edge from a PointerKey P to an InstanceKey I iff the PointerAnalysis indicates that P may point to I.
There is an edge from an InstanceKey I to a PointerKey P iff - P represents a field of an object instance modeled by I, or - P represents the array contents of array instance I.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetReachableInstances(Set<Object> roots) voidremove a node and all its incident edgesMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface EdgeManager
addEdge, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeOutgoingEdgesModifier and TypeMethodDescriptionvoidintReturn the number ofimmediate predecessornodes of nReturn anIteratorover the immediate predecessor nodes of nintReturn the number ofimmediate successornodes of this Node in the GraphReturn an Iterator over the immediate successor nodes of nbooleanvoidremoveAllIncidentEdges(Object node) voidremoveEdge(Object src, Object dst) voidremoveIncomingEdges(Object node) voidremoveOutgoingEdges(Object node) Methods inherited from interface Iterable
forEach, spliteratorMethods inherited from interface NodeManager
addNode, containsNode, getNumberOfNodes, iterator, removeNode, streamModifier and TypeMethodDescriptionvoidadd a node to this graphbooleanintiterator()voidremoveNode(Object n) remove a node from this graphstream()Methods inherited from interface NumberedEdgeManager
getPredNodeNumbers, getSuccNodeNumbersModifier and TypeMethodDescriptiongetPredNodeNumbers(Object node) getSuccNodeNumbers(Object node) Methods inherited from interface NumberedNodeManager
getMaxNumber, getNode, getNumber
-
Constructor Details
-
HeapGraphImpl
-
-
Method Details
-
iterateNodes
- Specified by:
iterateNodesin interfaceNumberedNodeManager<T extends InstanceKey>- Returns:
- iterator of nodes with the numbers in set s
-
getReachableInstances
- Specified by:
getReachableInstancesin interfaceHeapGraph<T extends InstanceKey>
-
removeNodeAndEdges
Description copied from interface:Graphremove a node and all its incident edges- Specified by:
removeNodeAndEdgesin interfaceGraph<T extends InstanceKey>- Throws:
UnsupportedOperationException- if the graph implementation does not allow removal
-
getHeapModel
- Specified by:
getHeapModelin interfaceHeapGraph<T extends InstanceKey>- Returns:
- the heap model used in this pointer analysis.
-
getPointerAnalysis
- Specified by:
getPointerAnalysisin interfaceHeapGraph<T extends InstanceKey>
-