Package 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 | 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