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

## Interface RederivableNode

- All Superinterfaces:
    `IGroupable`, `Node`
  All Known Implementing Classes:
    `ColumnAggregatorNode`, `DefaultProductionNode`, `UniquenessEnforcerNode`

      public interface RederivableNode
      extends Node, IGroupable

  A rederivable node can potentially re-derive tuples after the Rete network has finished the delivery of messages.
  Since:
    1.6

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `isInDRedMode()` | Returns true if this node actually runs in DRed mode (not necessarily).
    `void` | `rederiveOne()` | The method is called by the `ReteContainer` to re-derive tuples after the normal messages have been delivered and consumed.

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

      `getCurrentGroup, setCurrentGroup`

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

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

- - ### Method Detail

    - #### rederiveOne

          void rederiveOne()

      The method is called by the `ReteContainer` to re-derive tuples after the normal messages have been delivered and consumed. The re-derivation process may trigger the creation and delivery of further messages and further re-derivation rounds.

    - #### isInDRedMode

          boolean isInDRedMode()

      Returns true if this node actually runs in DRed mode (not necessarily).
      Returns:
        true if the node is operating in DRed mode
      Since:
        2.0