org.eclipse.incquery.runtime.rete.boundary

## Class ExternalInputEnumeratorNode

- java.lang.Object
- - org.eclipse.incquery.runtime.rete.network.BaseNode
  - - org.eclipse.incquery.runtime.rete.network.StandardNode
    - - org.eclipse.incquery.runtime.rete.boundary.ExternalInputEnumeratorNode

- All Implemented Interfaces:
    IQueryRuntimeContextListener, Disconnectable, Node, Receiver, Supplier

      public class ExternalInputEnumeratorNode
      extends StandardNode
      implements Disconnectable, Receiver, IQueryRuntimeContextListener

  An input node representing an enumerable extensional input relation and receiving external updates.

  Contains those tuples that are in the extensional relation identified by the input key, and also conform to the global seed (if any).

  Author:
    Bergmann Gabor

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ExternalInputEnumeratorNode(ReteContainer reteContainer)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `appendParent(Supplier supplier)` appends a parent that will continously send insert and revoke updates to this supplier
    `void` | `connectThroughContext(ReteEngine engine, IInputKey inputKey, Tuple globalSeed)`
    `void` | `disconnect()` Disconnects this rete engine component from the underlying model.
    `Tuple` | `getGlobalSeed()`
    `IInputKey` | `getInputKey()`
    `java.util.Collection<Supplier>` | `getParents()` access active parent
    `void` | `pullInto(java.util.Collection<Tuple> collector)` pulls the contents of this object in this particular moment into a target collection
    `void` | `removeParent(Supplier supplier)` removes a parent
    `void` | `update(Direction direction, Tuple updateElement)` updates the receiver with a newly found or lost partial matching
    `void` | `update(IInputKey key, Tuple updateTuple, boolean isInsertion)` The given tuple was inserted into or removed from the input relation indicated by the given key.

    - ### Methods inherited from class org.eclipse.incquery.runtime.rete.network.StandardNode

      `appendChild, constructIndex, getPulledContents, getReceivers, removeChild`

    - ### Methods inherited from class org.eclipse.incquery.runtime.rete.network.BaseNode

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

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

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

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

- - ### Constructor Detail

    - #### ExternalInputEnumeratorNode

          public ExternalInputEnumeratorNode(ReteContainer reteContainer)

  - ### Method Detail

    - #### connectThroughContext

          public void connectThroughContext(ReteEngine engine,
                                            IInputKey inputKey,
                                            Tuple globalSeed)

    - #### disconnect

          public void disconnect()

      Description copied from interface: `Disconnectable`
      Disconnects this rete engine component from the underlying model. Disconnecting enables the garbage collection mechanisms to dispose of the rete network.
      Specified by:
        `disconnect` in interface `Disconnectable`

    - #### pullInto

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

      Description copied from interface: `Supplier`
      pulls the contents of this object in this particular moment into a target collection
      Specified by:
        `pullInto` in interface `Supplier`

    - #### update

          public void update(IInputKey key,
                             Tuple updateTuple,
                             boolean isInsertion)

      Description copied from interface: `IQueryRuntimeContextListener`
      The given tuple was inserted into or removed from the input relation indicated by the given key.
      Specified by:
        `update` in interface `IQueryRuntimeContextListener`
      Parameters:
        `key` - the key identifying the input relation that was updated
        `updateTuple` - the tuple that was inserted or removed
        `isInsertion` - true if it was an insertion, false otherwise.

    - #### update

          public void update(Direction direction,
                             Tuple updateElement)

      Description copied from interface: `Receiver`
      updates the receiver with a newly found or lost partial matching
      Specified by:
        `update` in interface `Receiver`

    - #### appendParent

          public void appendParent(Supplier supplier)

      Description copied from interface: `Receiver`
      appends a parent that will continously send insert and revoke updates to this supplier
      Specified by:
        `appendParent` in interface `Receiver`

    - #### removeParent

          public void removeParent(Supplier supplier)

      Description copied from interface: `Receiver`
      removes a parent
      Specified by:
        `removeParent` in interface `Receiver`

    - #### getParents

          public java.util.Collection<Supplier> getParents()

      Description copied from interface: `Receiver`
      access active parent
      Specified by:
        `getParents` in interface `Receiver`

    - #### getInputKey

          public IInputKey getInputKey()

    - #### getGlobalSeed

          public Tuple getGlobalSeed()