Class StandardNode
- java.lang.Object
-
- org.eclipse.viatra.query.runtime.rete.network.BaseNode
-
- org.eclipse.viatra.query.runtime.rete.network.StandardNode
-
- All Implemented Interfaces:
NetworkStructureChangeSensitiveNode
,Node
,Supplier
- Direct Known Subclasses:
AbstractUniquenessEnforcerNode
,ConstantNode
,DualInputNode
,ExternalInputEnumeratorNode
,IndexerBasedAggregatorNode
,RelationEvaluatorNode
,SingleInputNode
public abstract class StandardNode extends BaseNode implements Supplier, NetworkStructureChangeSensitiveNode
Base implementation for a supplier node.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.List<Mailbox>
childMailboxes
protected java.util.List<Receiver>
children
-
Fields inherited from class org.eclipse.viatra.query.runtime.rete.network.BaseNode
nodeId, reteContainer, tag, traceInfos
-
-
Constructor Summary
Constructors Constructor Description StandardNode(ReteContainer reteContainer)
-
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 supplierProjectionIndexer
constructIndex(TupleMask mask, TraceInfo... traces)
Instantiates (or reuses, depending on implementation) an index according to the given mask.java.util.Collection<Mailbox>
getChildMailboxes()
java.util.Set<Tuple>
getPulledContents(boolean flush)
Returns the contents of this object in this particular moment.java.util.Collection<Receiver>
getReceivers()
lists receiversprotected void
issueError(java.lang.String message, java.lang.Exception ex)
void
networkStructureChanged()
At the time of the invocation, the dependency graph has already been updated.protected void
propagateUpdate(Direction direction, Tuple updateElement, Timestamp timestamp)
void
removeChild(Receiver receiver)
removes a receiver-
Methods inherited from class org.eclipse.viatra.query.runtime.rete.network.BaseNode
acceptPropagatedTraceInfo, assignTraceInfo, 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 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.Supplier
getPulledContents, pullInto, pullIntoWithTimeline
-
-
-
-
Constructor Detail
-
StandardNode
public StandardNode(ReteContainer reteContainer)
-
-
Method Detail
-
propagateUpdate
protected void propagateUpdate(Direction direction, Tuple updateElement, Timestamp timestamp)
- Since:
- 2.4
-
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
-
removeChild
public void removeChild(Receiver receiver)
Description copied from interface:Supplier
removes a receiver- Specified by:
removeChild
in interfaceSupplier
-
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
-
getReceivers
public java.util.Collection<Receiver> getReceivers()
Description copied from interface:Supplier
lists receivers- Specified by:
getReceivers
in interfaceSupplier
-
getChildMailboxes
public java.util.Collection<Mailbox> getChildMailboxes()
- Since:
- 2.2
-
getPulledContents
public java.util.Set<Tuple> getPulledContents(boolean flush)
Description copied from interface:Supplier
Returns the contents of this object in this particular moment. For memoryless nodes, this may involve a costly recomputation of contents. The result is returned as a Set, even when it has multiplicities (at the output ofTrimmerNode
).Intended mainly for debug purposes; therefore flushing is performed only if explicitly requested During runtime, flushing may be preferred; see
ReteContainer#pullContents(Supplier)
- Specified by:
getPulledContents
in interfaceSupplier
-
constructIndex
public ProjectionIndexer constructIndex(TupleMask mask, TraceInfo... traces)
Description copied from interface:Supplier
Instantiates (or reuses, depending on implementation) an index according to the given mask. Intended for internal use; clients should invoke through Library instead to enable reusing.- Specified by:
constructIndex
in interfaceSupplier
-
issueError
protected void issueError(java.lang.String message, java.lang.Exception ex)
- Since:
- 1.6
-
-