Class AbstractColumnAggregatorNode.AggregatorOuterIdentityIndexer
- java.lang.Object
-
- org.eclipse.viatra.query.runtime.rete.network.BaseNode
-
- org.eclipse.viatra.query.runtime.rete.index.StandardIndexer
-
- org.eclipse.viatra.query.runtime.rete.aggregation.AbstractColumnAggregatorNode.AggregatorOuterIdentityIndexer
-
- All Implemented Interfaces:
Indexer
,NetworkStructureChangeSensitiveNode
,Node
- Enclosing class:
- AbstractColumnAggregatorNode<Domain,Accumulator,AggregateResult>
protected class AbstractColumnAggregatorNode.AggregatorOuterIdentityIndexer extends StandardIndexer
A special non-iterable index that checks a suspected aggregate value for a given signature. The signature for this index is the original 'group by' masked tuple, with the suspected result inserted at position resultPositionInSignature.
-
-
Field Summary
Fields Modifier and Type Field Description protected AbstractColumnAggregatorNode.NetworkStructureChangeSensitiveLogic
logic
protected TupleMask
pruneResult
protected TupleMask
reorderMask
protected int
resultPositionInSignature
-
Fields inherited from class org.eclipse.viatra.query.runtime.rete.index.StandardIndexer
mask, parent
-
Fields inherited from class org.eclipse.viatra.query.runtime.rete.network.BaseNode
nodeId, reteContainer, tag, traceInfos
-
-
Constructor Summary
Constructors Constructor Description AggregatorOuterIdentityIndexer(int resultPositionInSignature)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected AbstractColumnAggregatorNode.NetworkStructureChangeSensitiveLogic
createLogic()
java.util.Collection<Tuple>
get(Tuple signatureWithResult)
Node
getActiveNode()
This indexer will be updated whenever a Rete update is sent to the active node (or an equivalent time slot allotted to it).java.util.Map<Tuple,Timeline<Timestamp>>
getTimeline(Tuple signature)
void
networkStructureChanged()
At the time of the invocation, the dependency graph has already been updated.void
propagate(Direction direction, Tuple tuple, Tuple group, Timestamp timestamp)
-
Methods inherited from class org.eclipse.viatra.query.runtime.rete.index.StandardIndexer
assignTraceInfo, attachListener, detachListener, getContainer, getListeners, getMask, getParent, propagate, toStringCore
-
Methods inherited from class org.eclipse.viatra.query.runtime.rete.network.BaseNode
acceptPropagatedTraceInfo, getNodeId, getTag, getTraceInfoPatternsEnumerated, getTraceInfos, setTag, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.eclipse.viatra.query.runtime.rete.network.Node
acceptPropagatedTraceInfo, getCommunicationTracker, getNodeId, getTag, getTraceInfos, setTag
-
-
-
-
Field Detail
-
resultPositionInSignature
protected final int resultPositionInSignature
-
pruneResult
protected final TupleMask pruneResult
-
reorderMask
protected final TupleMask reorderMask
-
logic
protected AbstractColumnAggregatorNode.NetworkStructureChangeSensitiveLogic logic
- Since:
- 2.4
-
-
Method Detail
-
networkStructureChanged
public void networkStructureChanged()
Description copied from interface:NetworkStructureChangeSensitiveNode
At the time of the invocation, the dependency graph has already been updated.- Specified by:
networkStructureChanged
in interfaceNetworkStructureChangeSensitiveNode
- Overrides:
networkStructureChanged
in classStandardIndexer
-
get
public java.util.Collection<Tuple> get(Tuple signatureWithResult)
- Returns:
- all stored tuples that conform to the specified signature, null if there are none such. CONTRACT: do not modify!
-
getTimeline
public java.util.Map<Tuple,Timeline<Timestamp>> getTimeline(Tuple signature)
- Since:
- 2.4
-
propagate
public void propagate(Direction direction, Tuple tuple, Tuple group, Timestamp timestamp)
- Since:
- 2.4
-
getActiveNode
public Node getActiveNode()
Description copied from interface:Indexer
This indexer will be updated whenever a Rete update is sent to the active node (or an equivalent time slot allotted to it). The active node is typically the indexer itself, but it can be a different node such as its parent.- Returns:
- the active node that operates this indexer
-
createLogic
protected AbstractColumnAggregatorNode.NetworkStructureChangeSensitiveLogic createLogic()
- Since:
- 2.4
-
-