org.eclipse.viatra.query.runtime.rete.network

## Interface Receiver

- All Superinterfaces:
    Node
  All Known Subinterfaces:
    PosetAwareReceiver, ProductionNode, Tunnel
  All Known Implementing Classes:
    AbstractColumnAggregatorNode, AbstractEvaluatorNode, AbstractUniquenessEnforcerNode, Bag, CallbackNode, ColumnAggregatorNode, DefaultDeltaMonitor, DefaultProductionNode, DeltaMonitor, DiscriminatorBucketNode, DiscriminatorDispatcherNode, EqualityFilterNode, ExternalInputEnumeratorNode, ExternalInputStatelessFilterNode, FilterNode, GenericProjectionIndexer, IndexerWithMemory, InequalityFilterNode, MemorylessEvaluatorNode, OnetimeIndexer, OutputCachingEvaluatorNode, RelationEvaluatorNode.BatchingReceiver, RemoteReceiver, RemoteSupplier, RetePatternMatcher, SimpleReceiver, SingleInputNode, TimelyProductionNode, TimelyUniquenessEnforcerNode, TransformerNode, TransitiveClosureNode, TransparentNode, TrimmerNode, UniquenessEnforcerNode, ValueBinderFilterNode

      public interface Receiver
      extends Node

  ALL METHODS: FOR INTERNAL USE ONLY; ONLY INVOKE FROM `ReteContainer`
  No Implement:
    This interface is not intended to be implemented by external clients.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `appendParent(Supplier supplier)` appends a parent that will continuously send insert and revoke updates to this supplier
    `default void` | `batchUpdate(java.util.Collection<java.util.Map.Entry<Tuple,java.lang.Integer>> updates, Timestamp timestamp)` Updates the receiver in batch style with a collection of updates.
    `Mailbox` | `getMailbox()` Returns the `Mailbox` of this receiver.
    `java.util.Collection<Supplier>` | `getParents()` access active parent
    `void` | `removeParent(Supplier supplier)` removes a parent
    `void` | `update(Direction direction, Tuple updateElement, Timestamp timestamp)` Updates the receiver with a newly found or lost partial matching.

    - ### Methods inherited from interface org.eclipse.viatra.query.runtime.rete.network.Node

      `acceptPropagatedTraceInfo, assignTraceInfo, getCommunicationTracker, getContainer, getNodeId, getTag, getTraceInfos, setTag`

- - ### Method Detail

    - #### update

          void update(Direction direction,
                      Tuple updateElement,
                      Timestamp timestamp)

      Updates the receiver with a newly found or lost partial matching.
      Since:
        2.4

    - #### batchUpdate

          default void batchUpdate(java.util.Collection<java.util.Map.Entry<Tuple,java.lang.Integer>> updates,
                                   Timestamp timestamp)

      Updates the receiver in batch style with a collection of updates. The input collection consists of pairs in the form (t, c) where t is an update tuple and c is the count. The count can also be negative, and it specifies how many times the tuple t gets deleted or inserted. The default implementation of this method simply calls `update(Direction, Tuple, Timestamp)` individually for all updates.
      Since:
        2.8

    - #### getMailbox

          Mailbox getMailbox()

      Returns the `Mailbox` of this receiver.
      Returns:
        the mailbox
      Since:
        2.0

    - #### appendParent

          void appendParent(Supplier supplier)

      appends a parent that will continuously send insert and revoke updates to this supplier

    - #### removeParent

          void removeParent(Supplier supplier)

      removes a parent

    - #### getParents

          java.util.Collection<Supplier> getParents()

      access active parent