public class Node
extends java.lang.Object
CallGraph#reconstructCallGraph(ClassPool, MethodSignature)
for more
details. The reconstruction process makes sure that there are no loops in the graph.Modifier and Type | Field and Description |
---|---|
java.util.Set<CodeLocation> |
incomingCallLocations
The
CodeLocation s containing the calls in this node's predecessors that lead here. |
boolean |
isTruncated |
java.util.Set<CodeLocation> |
outgoingCallLocations
The
CodeLocation s containing the calls in this node that lead to its successors. |
java.util.Set<Node> |
predecessors |
MethodSignature |
signature |
java.util.Set<Node> |
successors |
Constructor and Description |
---|
Node(MethodSignature signature) |
Modifier and Type | Method and Description |
---|---|
boolean |
equals(java.lang.Object o) |
java.util.Set<Node> |
getAllPredecessors()
Get all predecessors of this node.
|
java.util.Set<Node> |
getFurthestPredecessors()
Get the predecessor leaf nodes in the call sub-graph represented by this node.
|
java.util.Set<Node> |
getFurthestSuccessors()
Get the successor leaf nodes in the call sub-graph represented by this node.
|
int |
getPredecessorDepth()
Calculate the distance between this node and its furthest predecessor.
|
int |
getSuccessorDepth()
Calculate the distance between this node and its furthest successor.
|
int |
hashCode() |
boolean |
predecessorsContain(MethodSignature signature)
Checks if this node or any predecessors corresponds to a specific
MethodSignature . |
boolean |
successorsContain(MethodSignature signature)
Checks if this node or any successors corresponds to a specific
MethodSignature . |
public final MethodSignature signature
public final java.util.Set<Node> predecessors
public final java.util.Set<CodeLocation> incomingCallLocations
CodeLocation
s containing the calls in this node's predecessors that lead here. If
the call graph is traversed strictly in successor direction, there is exactly one incoming call
per node, except for the root, which has none.public final java.util.Set<CodeLocation> outgoingCallLocations
CodeLocation
s containing the calls in this node that lead to its successors. If the
call graph is traversed strictly in predecessor direction, there is exactly one outgoing call
per node, except for the root, which has none.public final java.util.Set<Node> successors
public boolean isTruncated
public Node(MethodSignature signature)
public boolean successorsContain(MethodSignature signature)
MethodSignature
.signature
- The MethodSignature
to look forpublic boolean predecessorsContain(MethodSignature signature)
MethodSignature
.signature
- The MethodSignature
to look forpublic int getSuccessorDepth()
public int getPredecessorDepth()
public java.util.Set<Node> getAllPredecessors()
public java.util.Set<Node> getFurthestPredecessors()
public java.util.Set<Node> getFurthestSuccessors()
public boolean equals(java.lang.Object o)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object