public interface HeapConfiguration
Type which determines the class of the object represented by a node.
Nodes are accessed through integer values.
There are three possible kinds of hyperedges:
SelectorLabel.
If a node represents an object of a certain class then a selector edge can be thought of as a
variable of that object that references another object. Consequently, the SelectorLabel corresponds
to the name of the variable.
For each node and each SelectorLabel, there is at most one selector edge having this node as a source node
with that SelectorLabel.
Selector edges are accessed through their source node and their SelectorLabel.
Nonterminal that determines
the number of nodes connected to it and what is actually modeled by a nonterminal edge.
Nonterminal edges are accessed through integer values.
Variable.
Variable edges are accessed through integer values.
HeapConfigurations can be treated as immutable objects as long as they are not marked as mutable
explicitly by calling builder().
| Modifier and Type | Field and Description |
|---|---|
static int |
INVALID_ELEMENT
Value representing an element that does not belong to any HeapConfiguration.
|
| Modifier and Type | Method and Description |
|---|---|
gnu.trove.list.array.TIntArrayList |
attachedNodesOf(int ntEdge) |
gnu.trove.list.array.TIntArrayList |
attachedNonterminalEdgesOf(int node) |
gnu.trove.map.TIntIntMap |
attachedNonterminalEdgesWithNonReductionTentacle(int node) |
gnu.trove.list.array.TIntArrayList |
attachedVariablesOf(int node) |
HeapConfigurationBuilder |
builder()
Mark a HeapConfiguration as temporarily mutable by a
HeapConfigurationBuilder. |
HeapConfiguration |
clone() |
int |
countExternalNodes() |
int |
countNodes() |
int |
countNonterminalEdges() |
int |
countVariableEdges() |
int |
externalIndexOf(int node) |
int |
externalNodeAt(int pos) |
gnu.trove.list.array.TIntArrayList |
externalNodes() |
AbstractMatchingChecker |
getEmbeddingsOf(HeapConfiguration pattern,
MorphismOptions options)
Returns an AbstractMatchingChecker to search for all occurrences of the given pattern HeapConfiguration
in this HeapConfiguration (the target).
|
HeapConfiguration |
getEmpty() |
boolean |
isExternalNode(int node) |
Nonterminal |
labelOf(int ntEdge) |
String |
nameOf(int varEdge) |
gnu.trove.list.array.TIntArrayList |
nodes() |
Type |
nodeTypeOf(int node) |
gnu.trove.list.array.TIntArrayList |
nonterminalEdges() |
gnu.trove.list.array.TIntArrayList |
predecessorNodesOf(int node) |
int |
rankOf(int ntEdge) |
List<SelectorLabel> |
selectorLabelsOf(int node) |
int |
selectorTargetOf(int node,
SelectorLabel sel) |
gnu.trove.list.array.TIntArrayList |
successorNodesOf(int node) |
int |
targetOf(int varEdge) |
gnu.trove.list.array.TIntArrayList |
variableEdges() |
int |
variableTargetOf(String variableName) |
int |
variableWith(String name) |
static final int INVALID_ELEMENT
HeapConfiguration clone()
HeapConfiguration getEmpty()
HeapConfigurationBuilder builder()
HeapConfigurationBuilder.
The HeapConfiguration stays mutable until HeapConfigurationBuilder.build() is called.
For each HeapConfiguration, there is either no builder (immutable) or exactly one builder (mutable).int countNodes()
gnu.trove.list.array.TIntArrayList nodes()
Type nodeTypeOf(int node)
node - A node contained in the HeapConfiguration.gnu.trove.list.array.TIntArrayList attachedVariablesOf(int node)
node - A node contained in the HeapConfiguration.gnu.trove.list.array.TIntArrayList attachedNonterminalEdgesOf(int node)
node - A node contained in the HeapConfiguration.gnu.trove.list.array.TIntArrayList successorNodesOf(int node)
node - A node contained in the HeapConfiguration.gnu.trove.list.array.TIntArrayList predecessorNodesOf(int node)
node - A node contained in the HeapConfiguration.List<SelectorLabel> selectorLabelsOf(int node)
node - A node contained in the HeapConfiguration.int selectorTargetOf(int node,
SelectorLabel sel)
node - A node contained in the HeapConfiguration.sel - A SelectorLabel that occurs as an edge label for the given node.int countExternalNodes()
gnu.trove.list.array.TIntArrayList externalNodes()
int externalNodeAt(int pos)
pos - An index of an external node satisfying 0 <= pos && pos <= countExternalNodes().boolean isExternalNode(int node)
node - A node in the HeapConfiguration.int externalIndexOf(int node)
node - A node in the HeapConfiguration.int countNonterminalEdges()
gnu.trove.list.array.TIntArrayList nonterminalEdges()
int rankOf(int ntEdge)
ntEdge - A nonterminal edge in this HeapConfiguration.Nonterminal labelOf(int ntEdge)
ntEdge - A nonterminal edge in this HeapConfiguration.gnu.trove.list.array.TIntArrayList attachedNodesOf(int ntEdge)
ntEdge - A nonterminal edge in this HeapConfiguration.int countVariableEdges()
gnu.trove.list.array.TIntArrayList variableEdges()
int variableWith(String name)
name - The name of the requested variableINVALID_ELEMENT.String nameOf(int varEdge)
varEdge - A variable edge in this HeapConfiguration.int targetOf(int varEdge)
varEdge - A variable edge in this HeapConfiguration.AbstractMatchingChecker getEmbeddingsOf(HeapConfiguration pattern, MorphismOptions options)
pattern - The HeapConfiguration to search for.options - Options guiding how embeddings are computed.int variableTargetOf(String variableName)
variableName - The name of the requested variable.gnu.trove.map.TIntIntMap attachedNonterminalEdgesWithNonReductionTentacle(int node)
node - A node in the graph.Copyright © 2019. All rights reserved.