public static class FlowGraph.Peer<FlowItem extends DataFlow.Item>
extends java.lang.Object
Peer
is an occurrence of an AST node in a flow graph.
For most AST nodes, there will be only one Peer for each AST node.
However, if the AST node occurs in a finally block, then there will be
multiple Peer
s for that AST node, one for each possible
path to the finally block. This is because flow graphs for finally blocks
are copied, one copy for each possible path to the finally block.Modifier and Type | Field and Description |
---|---|
protected boolean |
alwaysHaveSuccEdgeKey |
protected int |
entry |
protected FlowItem |
inItem |
protected Term |
node |
protected java.util.Map<FlowGraph.EdgeKey,FlowItem> |
outItems |
protected java.util.List<Term> |
path_to_finally
the path to the finally block that uniquely distinguishes this Peer
from the other Peers for the AST node.
|
protected java.util.List<FlowGraph.Edge<FlowItem>> |
preds |
protected java.util.List<FlowGraph.Edge<FlowItem>> |
succs |
Constructor and Description |
---|
FlowGraph.Peer(Term node,
java.util.List<Term> path_to_finally,
int entry,
boolean alwaysHaveSuccEdgeKey) |
Modifier and Type | Method and Description |
---|---|
FlowItem |
inItem()
The input data flow item.
|
boolean |
isEntry() |
Term |
node()
The node for which this is a peer.
|
FlowItem |
outItem(FlowGraph.EdgeKey key)
The output item for a particular EdgeKey.
|
FlowGraph.PeerKey |
peerKey()
Create a PeerKey for this Peer
|
java.util.List<FlowGraph.Edge<FlowItem>> |
preds()
The predecessor Edges.
|
java.util.Set<FlowGraph.EdgeKey> |
succEdgeKeys() |
java.util.List<FlowGraph.Edge<FlowItem>> |
succs()
The successor Edges.
|
java.lang.String |
toString() |
protected FlowItem extends DataFlow.Item inItem
protected java.util.Map<FlowGraph.EdgeKey,FlowItem extends DataFlow.Item> outItems
protected Term node
protected java.util.List<FlowGraph.Edge<FlowItem extends DataFlow.Item>> succs
protected java.util.List<FlowGraph.Edge<FlowItem extends DataFlow.Item>> preds
protected final boolean alwaysHaveSuccEdgeKey
protected java.util.List<Term> path_to_finally
protected int entry
public java.util.List<FlowGraph.Edge<FlowItem>> succs()
public java.util.List<FlowGraph.Edge<FlowItem>> preds()
public Term node()
public FlowGraph.PeerKey peerKey()
public FlowItem inItem()
public FlowItem outItem(FlowGraph.EdgeKey key)
public java.lang.String toString()
toString
in class java.lang.Object
public boolean isEntry()
public java.util.Set<FlowGraph.EdgeKey> succEdgeKeys()