Class DiscriminatorBucketNode
- 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.DiscriminatorBucketNode
-
- All Implemented Interfaces:
NetworkStructureChangeSensitiveNode
,Node
,Receiver
,Supplier
,Tunnel
public class DiscriminatorBucketNode extends SingleInputNode
A bucket holds a filtered set of tuples of its parentDiscriminatorDispatcherNode
. Exactly those that have the given bucket key at their discrimination column.During operation, 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 DiscriminatorBucketNode(ReteContainer reteContainer, java.lang.Object bucketKey)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
appendParent(Supplier supplier)
appends a parent that will continuously send insert and revoke updates to this supplierjava.lang.Object
getBucketKey()
DiscriminatorDispatcherNode
getDispatcher()
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)
protected 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
assignTraceInfo, getCommunicationTracker, getMailbox, getParents, instantiateMailbox, propagatePullInto, propagatePullIntoWithTimestamp, removeParent
-
Methods inherited from class org.eclipse.viatra.query.runtime.rete.network.StandardNode
appendChild, constructIndex, getChildMailboxes, getPulledContents, getReceivers, issueError, networkStructureChanged, propagateUpdate, removeChild
-
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, 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
appendChild, constructIndex, getPulledContents, getPulledContents, getReceivers, removeChild
-
-
-
-
Constructor Detail
-
DiscriminatorBucketNode
public DiscriminatorBucketNode(ReteContainer reteContainer, java.lang.Object bucketKey)
- Parameters:
bucketKey
- will be wrapped usingIQueryRuntimeContext.wrapElement(Object)
-
-
Method Detail
-
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.flush
- if true, flushing of messages is allowed during the pull, otherwise flushing is not allowed
-
pullIntoWithTimeline
public void pullIntoWithTimeline(java.util.Map<Tuple,Timeline<Timestamp>> collector, boolean flush)
-
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.
-
getBucketKey
public java.lang.Object getBucketKey()
-
appendParent
public void appendParent(Supplier supplier)
Description copied from interface:Receiver
appends a parent that will continuously send insert and revoke updates to this supplier- Specified by:
appendParent
in interfaceReceiver
- Overrides:
appendParent
in classSingleInputNode
-
getDispatcher
public DiscriminatorDispatcherNode getDispatcher()
-
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
-
-