public abstract class IndexerBasedAggregatorNode extends StandardNode implements IAggregatorNode
This node cannot be used in recursive differential dataflow evaluation.
childMailboxes, childrennodeId, reteContainer, tag, traceInfos| Constructor and Description |
|---|
IndexerBasedAggregatorNode(ReteContainer reteContainer)
MUST call initializeWith() afterwards!
|
| Modifier and Type | Method and Description |
|---|---|
protected Tuple |
aggregateAndPack(Tuple signature,
java.util.Collection<Tuple> group) |
abstract java.lang.Object |
aggregateGroup(Tuple signature,
java.util.Collection<Tuple> group)
Aggregates (reduces) a group of tuples.
|
java.lang.Object |
aggregateGroupAfterUpdate(Tuple signature,
java.util.Collection<Tuple> currentGroup,
java.lang.Object oldAggregate,
Direction direction,
Tuple updateElement,
boolean change)
Aggregates (reduces) a group of tuples, having access to the previous aggregated value (before the update) and
the update definition.
|
protected void |
aggregateUpdate(Direction direction,
Tuple updateElement,
Tuple signature,
boolean change) |
void |
assignTraceInfo(TraceInfo traceInfo)
assigns new traceability info to this node
|
Indexer |
getAggregatorOuterIdentityIndexer(int resultPositionInSignature) |
Indexer |
getAggregatorOuterIndexer() |
void |
initializeWith(ProjectionIndexer projection) |
void |
networkStructureChanged()
At the time of the invocation, the dependency graph has already been updated.
|
protected Tuple |
packResult(Tuple signature,
java.lang.Object result) |
void |
pullInto(java.util.Collection<Tuple> collector,
boolean flush)
Pulls the contents of this object in this particular moment into a target collection.
|
void |
pullIntoWithTimeline(java.util.Map<Tuple,Timeline<Timestamp>> collector,
boolean flush) |
appendChild, constructIndex, getChildMailboxes, getPulledContents, getReceivers, issueError, propagateUpdate, removeChildacceptPropagatedTraceInfo, getContainer, getNodeId, getTag, getTraceInfoPatternsEnumerated, getTraceInfos, setTag, toString, toStringCoreclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetPulledContentsacceptPropagatedTraceInfo, getCommunicationTracker, getContainer, getNodeId, getTag, getTraceInfos, setTagpublic IndexerBasedAggregatorNode(ReteContainer reteContainer)
public void networkStructureChanged()
NetworkStructureChangeSensitiveNodenetworkStructureChanged in interface NetworkStructureChangeSensitiveNodenetworkStructureChanged in class StandardNodepublic void initializeWith(ProjectionIndexer projection)
projection - the projection indexer whose tuple groups should be aggregatedpublic abstract java.lang.Object aggregateGroup(Tuple signature, java.util.Collection<Tuple> group)
public java.lang.Object aggregateGroupAfterUpdate(Tuple signature, java.util.Collection<Tuple> currentGroup, java.lang.Object oldAggregate, Direction direction, Tuple updateElement, boolean change)
protected Tuple aggregateAndPack(Tuple signature, java.util.Collection<Tuple> group)
public Indexer getAggregatorOuterIndexer()
getAggregatorOuterIndexer in interface IAggregatorNodepublic Indexer getAggregatorOuterIdentityIndexer(int resultPositionInSignature)
getAggregatorOuterIdentityIndexer in interface IAggregatorNodepublic void pullInto(java.util.Collection<Tuple> collector, boolean flush)
Supplierpublic void pullIntoWithTimeline(java.util.Map<Tuple,Timeline<Timestamp>> collector, boolean flush)
pullIntoWithTimeline in interface Supplierprotected void aggregateUpdate(Direction direction, Tuple updateElement, Tuple signature, boolean change)
public void assignTraceInfo(TraceInfo traceInfo)
NodeassignTraceInfo in interface NodeassignTraceInfo in class BaseNode