org.eclipse.viatra.query.runtime.rete.index

## Class OnetimeIndexer

- java.lang.Object
- - org.eclipse.viatra.query.runtime.rete.network.BaseNode
  - - org.eclipse.viatra.query.runtime.rete.index.StandardIndexer
    - - org.eclipse.viatra.query.runtime.rete.index.IndexerWithMemory
      - - org.eclipse.viatra.query.runtime.rete.index.GenericProjectionIndexer
        - - org.eclipse.viatra.query.runtime.rete.index.OnetimeIndexer

- All Implemented Interfaces:
    java.lang.Iterable<Tuple>, Indexer, IterableIndexer, ProjectionIndexer, org.eclipse.viatra.query.runtime.rete.network.communication.timely.ResumableNode, IGroupable, NetworkStructureChangeSensitiveNode, Node, Receiver

      public class OnetimeIndexer
      extends GenericProjectionIndexer

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.eclipse.viatra.query.runtime.rete.index.IndexerWithMemory

      `IndexerWithMemory.NetworkStructureChangeSensitiveLogic`

  - ### Field Summary

    - ### Fields inherited from class org.eclipse.viatra.query.runtime.rete.index.IndexerWithMemory

      `group, logic, mailbox, memory`

    - ### Fields inherited from class org.eclipse.viatra.query.runtime.rete.index.StandardIndexer

      `mask, parent`

    - ### Fields inherited from class org.eclipse.viatra.query.runtime.rete.network.BaseNode

      `nodeId, reteContainer, tag, traceInfos`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `OnetimeIndexer(ReteContainer reteContainer, TupleMask mask)`

  - ### Method Summary

    All Methods Instance Methods Concrete 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
    `void` | `attachListener(IndexerListener listener)`
    `java.util.Collection<Tuple>` | `get(Tuple signature)`

    - ### Methods inherited from class org.eclipse.viatra.query.runtime.rete.index.GenericProjectionIndexer

      `getActiveNode, getBucketCount, getSignatures, getTimeline, iterator, update`

    - ### Methods inherited from class org.eclipse.viatra.query.runtime.rete.index.IndexerWithMemory

      `createLogic, getCurrentGroup, getMailbox, getMemory, getParents, getResumableTimestamp, instantiateMailbox, networkStructureChanged, removeParent, resumeAt, setCurrentGroup, update`

    - ### Methods inherited from class org.eclipse.viatra.query.runtime.rete.index.StandardIndexer

      `assignTraceInfo, detachListener, getContainer, getListeners, getMask, getParent, propagate, toStringCore`

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

      `acceptPropagatedTraceInfo, getNodeId, getTag, getTraceInfoPatternsEnumerated, getTraceInfos, setTag, toString`

    - ### 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.index.Indexer

      `detachListener, getListeners, getMask, getParent`

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

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

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

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

      `batchUpdate`

- - ### Constructor Detail

    - #### OnetimeIndexer

          public OnetimeIndexer(ReteContainer reteContainer,
                                TupleMask mask)

  - ### Method Detail

    - #### get

          public java.util.Collection<Tuple> get(Tuple signature)

      Specified by:
        `get` in interface `Indexer`
      Overrides:
        `get` in class `GenericProjectionIndexer`
      Returns:
        all stored tuples that conform to the specified signature, null if there are none such. CONTRACT: do not modify!

    - #### appendParent

          public void appendParent(Supplier supplier)

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

    - #### attachListener

          public void attachListener(IndexerListener listener)

      Specified by:
        `attachListener` in interface `Indexer`
      Overrides:
        `attachListener` in class `StandardIndexer`