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 class
FaithfulSequentialTimelyColumnAggregatorNode.CumulativeAggregate<Domain,
Accumulator, AggregateResult> protected static class
Nested 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, timelines
Fields inherited from class tools.refinery.interpreter.rete.aggregation.AbstractColumnAggregatorNode
aggregatorOuterIdentityIndexers, aggregatorOuterIndexer, columnMask, groupMask, NEUTRAL, operator, runtimeContext, sourceWidth
Fields inherited from class tools.refinery.interpreter.rete.single.SingleInputNode
mailbox, parent
Fields inherited from class tools.refinery.interpreter.rete.network.StandardNode
childMailboxes, children
Fields 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 void
gcAggregates
(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 AggregateResult
getResultRaw
(Tuple group, Timestamp timestamp, boolean lower) void
At the time of the invocation, the dependency graph has already been updated.void
Updates 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, updateTimeline
Methods inherited from class tools.refinery.interpreter.rete.aggregation.AbstractColumnAggregatorNode
appendChild, getAggregatorOuterIdentityIndexer, getAggregatorOuterIndexer, getCommunicationTracker, propagate, propagateAggregateResultUpdate, pullInto, pullIntoWithTimeline, tupleFromAggregateResult
Methods inherited from class tools.refinery.interpreter.rete.single.SingleInputNode
appendParent, assignTraceInfo, getMailbox, getParents, propagatePullInto, propagatePullIntoWithTimestamp, removeParent
Methods inherited from class tools.refinery.interpreter.rete.network.StandardNode
constructIndex, getChildMailboxes, getPulledContents, getReceivers, issueError, propagateUpdate, removeChild
Methods inherited from class tools.refinery.interpreter.rete.network.BaseNode
acceptPropagatedTraceInfo, getContainer, getNodeId, getTag, getTraceInfoPatternsEnumerated, getTraceInfos, setTag, toString, toStringCore
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface tools.refinery.interpreter.rete.network.IGroupable
getCurrentGroup, setCurrentGroup
Methods inherited from interface tools.refinery.interpreter.rete.network.Node
acceptPropagatedTraceInfo, assignTraceInfo, getCommunicationTracker, getContainer, getNodeId, getTag, getTraceInfos, setTag
Methods inherited from interface tools.refinery.interpreter.rete.network.Receiver
batchUpdate
Methods inherited from interface tools.refinery.interpreter.rete.network.communication.timely.ResumableNode
getResumableTimestamp, resumeAt
Methods 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:NetworkStructureChangeSensitiveNode
At the time of the invocation, the dependency graph has already been updated.- Specified by:
networkStructureChanged
in interfaceNetworkStructureChangeSensitiveNode
- Overrides:
networkStructureChanged
in classStandardNode
-
doFoldingStep
protected Map<AggregateResult,Diff<Timestamp>> doFoldingStep(Tuple group, FaithfulSequentialTimelyColumnAggregatorNode.FoldingState<Domain, AggregateResult> state, Timestamp timestamp) -
update
Description copied from interface:Receiver
Updates 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:FaithfulTimelyColumnAggregatorNode
Garbage 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:FaithfulTimelyColumnAggregatorNode
On-demand initializes and returns the aggregate for the given group and timestamp. -
getAggregateResult
- Specified by:
getAggregateResult
in classAbstractColumnAggregatorNode<Domain,
Accumulator, AggregateResult>
-