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>childMailboxesprotected 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 voidappendChild(Receiver receiver)appends a receiver that will continously receive insert and revoke updates from this supplierProjectionIndexerconstructIndex(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 voidissueError(java.lang.String message, java.lang.Exception ex)voidnetworkStructureChanged()At the time of the invocation, the dependency graph has already been updated.protected voidpropagateUpdate(Direction direction, Tuple updateElement, Timestamp timestamp)voidremoveChild(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:Supplierappends a receiver that will continously receive insert and revoke updates from this supplier- Specified by:
appendChildin interfaceSupplier
-
removeChild
public void removeChild(Receiver receiver)
Description copied from interface:Supplierremoves a receiver- Specified by:
removeChildin interfaceSupplier
-
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
-
getReceivers
public java.util.Collection<Receiver> getReceivers()
Description copied from interface:Supplierlists receivers- Specified by:
getReceiversin interfaceSupplier
-
getChildMailboxes
public java.util.Collection<Mailbox> getChildMailboxes()
- Since:
- 2.2
-
getPulledContents
public java.util.Set<Tuple> getPulledContents(boolean flush)
Description copied from interface:SupplierReturns 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:
getPulledContentsin interfaceSupplier
-
constructIndex
public ProjectionIndexer constructIndex(TupleMask mask, TraceInfo... traces)
Description copied from interface:SupplierInstantiates (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:
constructIndexin interfaceSupplier
-
issueError
protected void issueError(java.lang.String message, java.lang.Exception ex)- Since:
- 1.6
-
-