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 |
EntryPoint |
matchingEntrypoint |
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 EntryPoint matchingEntrypoint
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