Class DiscriminatorDispatcherNode
- java.lang.Object
-
- org.eclipse.viatra.query.runtime.rete.network.BaseNode
-
- org.eclipse.viatra.query.runtime.rete.network.StandardNode
-
- org.eclipse.viatra.query.runtime.rete.single.SingleInputNode
-
- org.eclipse.viatra.query.runtime.rete.single.DiscriminatorDispatcherNode
-
- All Implemented Interfaces:
NetworkStructureChangeSensitiveNode
,Node
,Receiver
,Supplier
,Tunnel
public class DiscriminatorDispatcherNode extends SingleInputNode implements NetworkStructureChangeSensitiveNode
Node that sends tuples off to different buckets (attached as children of typeDiscriminatorBucketNode
), based on the value of a given column.Tuple contents and bucket keys have already been wrapped using
IQueryRuntimeContext.wrapElement(Object)
- Since:
- 1.5
-
-
Field Summary
-
Fields inherited from class org.eclipse.viatra.query.runtime.rete.single.SingleInputNode
mailbox, parent
-
Fields inherited from class org.eclipse.viatra.query.runtime.rete.network.StandardNode
childMailboxes, children
-
Fields inherited from class org.eclipse.viatra.query.runtime.rete.network.BaseNode
nodeId, reteContainer, tag, traceInfos
-
-
Constructor Summary
Constructors Constructor Description DiscriminatorDispatcherNode(ReteContainer reteContainer, int discriminationColumnIndex)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
appendChild(Receiver receiver)
appends a receiver that will continously receive insert and revoke updates from this supplierjava.util.Map<java.lang.Object,Mailbox>
getBucketMailboxes()
int
getDiscriminationColumnIndex()
void
networkStructureChanged()
At the time of the invocation, the dependency graph has already been updated.void
pullInto(java.util.Collection<Tuple> collector, boolean flush)
Pulls the contents of this object in this particular moment into a target collection.void
pullIntoFiltered(java.util.Collection<Tuple> collector, java.lang.Object bucketKey, boolean flush)
void
pullIntoWithTimeline(java.util.Map<Tuple,Timeline<Timestamp>> collector, boolean flush)
void
pullIntoWithTimestampFiltered(java.util.Map<Tuple,Timeline<Timestamp>> collector, java.lang.Object bucketKey, boolean flush)
void
removeChild(Receiver receiver)
removes a receiverprotected java.lang.String
toStringCore()
clients should override this to append before the tag / trace indicatorsvoid
update(Direction direction, Tuple updateElement, Timestamp timestamp)
Updates the receiver with a newly found or lost partial matching.-
Methods inherited from class org.eclipse.viatra.query.runtime.rete.single.SingleInputNode
appendParent, assignTraceInfo, getCommunicationTracker, getMailbox, getParents, instantiateMailbox, propagatePullInto, propagatePullIntoWithTimestamp, removeParent
-
Methods inherited from class org.eclipse.viatra.query.runtime.rete.network.StandardNode
constructIndex, getChildMailboxes, getPulledContents, getReceivers, issueError, propagateUpdate
-
Methods inherited from class org.eclipse.viatra.query.runtime.rete.network.BaseNode
acceptPropagatedTraceInfo, getContainer, 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, assignTraceInfo, getCommunicationTracker, getContainer, getNodeId, getTag, getTraceInfos, setTag
-
Methods inherited from interface org.eclipse.viatra.query.runtime.rete.network.Receiver
batchUpdate
-
Methods inherited from interface org.eclipse.viatra.query.runtime.rete.network.Supplier
constructIndex, getPulledContents, getPulledContents, getReceivers
-
-
-
-
Constructor Detail
-
DiscriminatorDispatcherNode
public DiscriminatorDispatcherNode(ReteContainer reteContainer, int discriminationColumnIndex)
- Parameters:
reteContainer
-
-
-
Method Detail
-
update
public void update(Direction direction, Tuple updateElement, Timestamp timestamp)
Description copied from interface:Receiver
Updates the receiver with a newly found or lost partial matching.
-
getDiscriminationColumnIndex
public int getDiscriminationColumnIndex()
-
pullInto
public void pullInto(java.util.Collection<Tuple> collector, boolean flush)
Description copied from interface:Supplier
Pulls the contents of this object in this particular moment into a target collection.
-
pullIntoWithTimeline
public void pullIntoWithTimeline(java.util.Map<Tuple,Timeline<Timestamp>> collector, boolean flush)
- Specified by:
pullIntoWithTimeline
in interfaceSupplier
-
pullIntoFiltered
public void pullIntoFiltered(java.util.Collection<Tuple> collector, java.lang.Object bucketKey, boolean flush)
- Since:
- 2.3
-
pullIntoWithTimestampFiltered
public void pullIntoWithTimestampFiltered(java.util.Map<Tuple,Timeline<Timestamp>> collector, java.lang.Object bucketKey, boolean flush)
- Since:
- 2.3
-
appendChild
public void appendChild(Receiver receiver)
Description copied from interface:Supplier
appends a receiver that will continously receive insert and revoke updates from this supplier- Specified by:
appendChild
in interfaceSupplier
- Overrides:
appendChild
in classStandardNode
-
getBucketMailboxes
public java.util.Map<java.lang.Object,Mailbox> getBucketMailboxes()
- Since:
- 2.2
-
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
-
removeChild
public void removeChild(Receiver receiver)
Description copied from interface:Supplier
removes a receiver- Specified by:
removeChild
in interfaceSupplier
- Overrides:
removeChild
in classStandardNode
-
toStringCore
protected java.lang.String toStringCore()
Description copied from class:BaseNode
clients should override this to append before the tag / trace indicators- Overrides:
toStringCore
in classBaseNode
-
-