Class FaithfulSequentialTimelyColumnAggregatorNode<Domain,Accumulator,AggregateResult>
java.lang.Object
tools.refinery.interpreter.rete.network.BaseNode
tools.refinery.interpreter.rete.network.StandardNode
tools.refinery.interpreter.rete.single.SingleInputNode
tools.refinery.interpreter.rete.aggregation.AbstractColumnAggregatorNode<Domain,Accumulator,AggregateResult>
tools.refinery.interpreter.rete.aggregation.timely.FaithfulTimelyColumnAggregatorNode<Domain,Accumulator,AggregateResult,FaithfulSequentialTimelyColumnAggregatorNode.CumulativeAggregate<Domain,Accumulator,AggregateResult>,FaithfulSequentialTimelyColumnAggregatorNode.FoldingState<Domain,AggregateResult>>
tools.refinery.interpreter.rete.aggregation.timely.FaithfulSequentialTimelyColumnAggregatorNode<Domain,Accumulator,AggregateResult>
- All Implemented Interfaces:
Clearable,IAggregatorNode,ResumableNode,IGroupable,NetworkStructureChangeSensitiveNode,Node,Receiver,Supplier,Tunnel
public class FaithfulSequentialTimelyColumnAggregatorNode<Domain,Accumulator,AggregateResult>
extends FaithfulTimelyColumnAggregatorNode<Domain,Accumulator,AggregateResult,FaithfulSequentialTimelyColumnAggregatorNode.CumulativeAggregate<Domain,Accumulator,AggregateResult>,FaithfulSequentialTimelyColumnAggregatorNode.FoldingState<Domain,AggregateResult>>
implements ResumableNode
Faithful column aggregator with sequential aggregation architecture.
- Since:
- 2.4
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classFaithfulSequentialTimelyColumnAggregatorNode.CumulativeAggregate<Domain,Accumulator, AggregateResult> protected static classNested classes/interfaces inherited from class tools.refinery.interpreter.rete.aggregation.timely.FaithfulTimelyColumnAggregatorNode
FaithfulTimelyColumnAggregatorNode.MergeableFoldingState<T>Nested classes/interfaces inherited from class tools.refinery.interpreter.rete.aggregation.AbstractColumnAggregatorNode
AbstractColumnAggregatorNode.AggregatorOuterIdentityIndexer, AbstractColumnAggregatorNode.AggregatorOuterIndexer, AbstractColumnAggregatorNode.NetworkStructureChangeSensitiveLogic -
Field Summary
FieldsFields inherited from class tools.refinery.interpreter.rete.aggregation.timely.FaithfulTimelyColumnAggregatorNode
aggregates, communicationGroup, foldingState, NEUTRAL_INITIAL_TIMELINE, NON_NEUTRAL_INITIAL_TIMELINE, timelinesFields inherited from class tools.refinery.interpreter.rete.aggregation.AbstractColumnAggregatorNode
aggregatorOuterIdentityIndexers, aggregatorOuterIndexer, columnMask, groupMask, NEUTRAL, operator, runtimeContext, sourceWidthFields inherited from class tools.refinery.interpreter.rete.single.SingleInputNode
mailbox, parentFields inherited from class tools.refinery.interpreter.rete.network.StandardNode
childMailboxes, childrenFields inherited from class tools.refinery.interpreter.rete.network.BaseNode
nodeId, reteContainer, tag, traceInfos -
Constructor Summary
ConstructorsConstructorDescriptionFaithfulSequentialTimelyColumnAggregatorNode(ReteContainer reteContainer, IMultisetAggregationOperator<Domain, Accumulator, AggregateResult> operator, TupleMask groupMask, TupleMask columnMask) -
Method Summary
Modifier and TypeMethodDescriptionprotected Map<AggregateResult, Diff<Timestamp>> doFoldingStep(Tuple group, FaithfulSequentialTimelyColumnAggregatorNode.FoldingState<Domain, AggregateResult> state, Timestamp timestamp) protected voidgcAggregates(FaithfulSequentialTimelyColumnAggregatorNode.CumulativeAggregate<Domain, Accumulator, AggregateResult> aggregate, Tuple group, Timestamp timestamp) Garbage collects the counter of the given group and timestamp if the bag of aggregands is empty.protected FaithfulSequentialTimelyColumnAggregatorNode.CumulativeAggregate<Domain, Accumulator, AggregateResult> getAggregate(Tuple group, Timestamp timestamp) On-demand initializes and returns the aggregate for the given group and timestamp.getAggregateResult(Tuple group) protected AggregateResultgetResultRaw(Tuple group, Timestamp timestamp, boolean lower) voidAt the time of the invocation, the dependency graph has already been updated.voidUpdates the receiver with a newly found or lost partial matching.Methods inherited from class tools.refinery.interpreter.rete.aggregation.timely.FaithfulTimelyColumnAggregatorNode
addFoldingState, appendDiff, clear, getAggregateResultTimeline, getAggregateTuple, getAggregateTupleTimeline, getCurrentGroup, getInitialTimeline, getResumableTimestamp, instantiateMailbox, resumeAt, setCurrentGroup, updateTimelineMethods inherited from class tools.refinery.interpreter.rete.aggregation.AbstractColumnAggregatorNode
appendChild, getAggregatorOuterIdentityIndexer, getAggregatorOuterIndexer, getCommunicationTracker, propagate, propagateAggregateResultUpdate, pullInto, pullIntoWithTimeline, tupleFromAggregateResultMethods inherited from class tools.refinery.interpreter.rete.single.SingleInputNode
appendParent, assignTraceInfo, getMailbox, getParents, propagatePullInto, propagatePullIntoWithTimestamp, removeParentMethods inherited from class tools.refinery.interpreter.rete.network.StandardNode
constructIndex, getChildMailboxes, getPulledContents, getReceivers, issueError, propagateUpdate, removeChildMethods inherited from class tools.refinery.interpreter.rete.network.BaseNode
acceptPropagatedTraceInfo, getContainer, getNodeId, getTag, getTraceInfoPatternsEnumerated, getTraceInfos, setTag, toString, toStringCoreMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface tools.refinery.interpreter.rete.network.IGroupable
getCurrentGroup, setCurrentGroupMethods inherited from interface tools.refinery.interpreter.rete.network.Node
acceptPropagatedTraceInfo, assignTraceInfo, getCommunicationTracker, getContainer, getNodeId, getTag, getTraceInfos, setTagMethods inherited from interface tools.refinery.interpreter.rete.network.Receiver
batchUpdateMethods inherited from interface tools.refinery.interpreter.rete.network.communication.timely.ResumableNode
getResumableTimestamp, resumeAtMethods inherited from interface tools.refinery.interpreter.rete.network.Supplier
constructIndex, getPulledContents, getPulledContents, getReceivers, removeChild
-
Field Details
-
isRecursiveAggregation
protected boolean isRecursiveAggregation
-
-
Constructor Details
-
FaithfulSequentialTimelyColumnAggregatorNode
public FaithfulSequentialTimelyColumnAggregatorNode(ReteContainer reteContainer, IMultisetAggregationOperator<Domain, Accumulator, AggregateResult> operator, TupleMask groupMask, TupleMask columnMask)
-
-
Method Details
-
networkStructureChanged
public void networkStructureChanged()Description copied from interface:NetworkStructureChangeSensitiveNodeAt the time of the invocation, the dependency graph has already been updated.- Specified by:
networkStructureChangedin interfaceNetworkStructureChangeSensitiveNode- Overrides:
networkStructureChangedin classStandardNode
-
doFoldingStep
protected Map<AggregateResult,Diff<Timestamp>> doFoldingStep(Tuple group, FaithfulSequentialTimelyColumnAggregatorNode.FoldingState<Domain, AggregateResult> state, Timestamp timestamp) -
update
Description copied from interface:ReceiverUpdates the receiver with a newly found or lost partial matching. -
getResultRaw
-
gcAggregates
protected void gcAggregates(FaithfulSequentialTimelyColumnAggregatorNode.CumulativeAggregate<Domain, Accumulator, AggregateResult> aggregate, Tuple group, Timestamp timestamp) Description copied from class:FaithfulTimelyColumnAggregatorNodeGarbage collects the counter of the given group and timestamp if the bag of aggregands is empty. -
getAggregate
protected FaithfulSequentialTimelyColumnAggregatorNode.CumulativeAggregate<Domain,Accumulator, getAggregateAggregateResult> (Tuple group, Timestamp timestamp) Description copied from class:FaithfulTimelyColumnAggregatorNodeOn-demand initializes and returns the aggregate for the given group and timestamp. -
getAggregateResult
- Specified by:
getAggregateResultin classAbstractColumnAggregatorNode<Domain,Accumulator, AggregateResult>
-