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 voidappendChild(Receiver receiver)appends a receiver that will continously receive insert and revoke updates from this supplierjava.util.Map<java.lang.Object,Mailbox>getBucketMailboxes()intgetDiscriminationColumnIndex()voidnetworkStructureChanged()At the time of the invocation, the dependency graph has already been updated.voidpullInto(java.util.Collection<Tuple> collector, boolean flush)Pulls the contents of this object in this particular moment into a target collection.voidpullIntoFiltered(java.util.Collection<Tuple> collector, java.lang.Object bucketKey, boolean flush)voidpullIntoWithTimeline(java.util.Map<Tuple,Timeline<Timestamp>> collector, boolean flush)voidpullIntoWithTimestampFiltered(java.util.Map<Tuple,Timeline<Timestamp>> collector, java.lang.Object bucketKey, boolean flush)voidremoveChild(Receiver receiver)removes a receiverprotected java.lang.StringtoStringCore()clients should override this to append before the tag / trace indicatorsvoidupdate(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:ReceiverUpdates 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:SupplierPulls 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:
pullIntoWithTimelinein 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:Supplierappends a receiver that will continously receive insert and revoke updates from this supplier- Specified by:
appendChildin interfaceSupplier- Overrides:
appendChildin classStandardNode
-
getBucketMailboxes
public java.util.Map<java.lang.Object,Mailbox> getBucketMailboxes()
- Since:
- 2.2
-
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
-
removeChild
public void removeChild(Receiver receiver)
Description copied from interface:Supplierremoves a receiver- Specified by:
removeChildin interfaceSupplier- Overrides:
removeChildin classStandardNode
-
toStringCore
protected java.lang.String toStringCore()
Description copied from class:BaseNodeclients should override this to append before the tag / trace indicators- Overrides:
toStringCorein classBaseNode
-
-