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

## Interface Supplier

- All Superinterfaces:
    Node
  All Known Subinterfaces:
    Production, Tunnel
  All Known Implementing Classes:
    AbstractEvaluatorNode, CachedFunctionEvaluatorNode, CachedPredicateEvaluatorNode, ColumnAggregatorNode, ConstantNode, CountNode, DefaultProductionNode, DiscriminatorBucketNode, DiscriminatorDispatcherNode, DualInputNode, EqualityFilterNode, ExistenceNode, ExternalInputEnumeratorNode, ExternalInputStatelessFilterNode, FilterNode, IndexerBasedAggregatorNode, InequalityFilterNode, JoinNode, MemorylessEvaluatorNode, OuterJoinNode, OutputCachingEvaluatorNode, RemoteReceiver, RemoteSupplier, RetePatternMatcher, SingleInputNode, StandardNode, TransformerNode, TransitiveClosureNode, TransparentNode, TrimmerNode, UniquenessEnforcerNode, ValueBinderFilterNode

      public interface Supplier
      extends Node

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `appendChild(Receiver receiver)` appends a receiver that will continously receive insert and revoke updates from this supplier
    `ProjectionIndexer` | `constructIndex(TupleMask mask, TraceInfo... traces)` Instantiates (or reuses, depending on implementation) an index according to the given mask.
    `java.util.Set<Tuple>` | `getPulledContents()` Returns the contents of this object in this particular moment.
    `java.util.Collection<Receiver>` | `getReceivers()` lists receivers
    `void` | `pullInto(java.util.Collection<Tuple> collector)` pulls the contents of this object in this particular moment into a target collection
    `void` | `removeChild(Receiver receiver)` removes a receiver

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

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

- - ### Method Detail

    - #### pullInto

          void pullInto(java.util.Collection<Tuple> collector)

      pulls the contents of this object in this particular moment into a target collection

    - #### getPulledContents

          java.util.Set<Tuple> getPulledContents()

      Returns the contents of this object in this particular moment. For memoryless nodes, this may involve a costly recomputation of contents.

      Intended mainly for debug purposes, therefore does not do flushing. During runtime, flushing may be preferred; see `ReteContainer.pullContents(Supplier)`

    - #### appendChild

          void appendChild(Receiver receiver)

      appends a receiver that will continously receive insert and revoke updates from this supplier

    - #### removeChild

          void removeChild(Receiver receiver)

      removes a receiver

    - #### constructIndex

          ProjectionIndexer constructIndex(TupleMask mask,
                                           TraceInfo... traces)

      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.

    - #### getReceivers

          java.util.Collection<Receiver> getReceivers()

      lists receivers