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

## Class RecipeTraceInfo

- java.lang.Object
- - org.eclipse.viatra.query.runtime.rete.traceability.RecipeTraceInfo

- All Implemented Interfaces:
    `TraceInfo`
  Direct Known Subclasses:
    `ActiveNodeConflictTrace`, `CompiledQuery`, `ParameterProjectionTrace`, `PlanningTrace`, `UserRequestTrace`

      public class RecipeTraceInfo
      extends java.lang.Object
      implements TraceInfo

  A trace marker that indicates the recipe for which the node was built.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `RecipeTraceInfo​(ReteNodeRecipe recipe, java.util.Collection<? extends RecipeTraceInfo> parentRecipeTraces)` |
    `RecipeTraceInfo​(ReteNodeRecipe recipe, RecipeTraceInfo... parentRecipeTraces)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `assignNode​(Node node)` |
    `Node` | `getNode()` |
    `java.util.List<RecipeTraceInfo>` | `getParentRecipeTraces()` | For cloning in case of recursion cut-off points, use `getParentRecipeTracesForCloning()` instead.
    `java.util.Collection<? extends RecipeTraceInfo>` | `getParentRecipeTracesForCloning()` | Directly return the underlying collection so that changes to it will be transparent.
    `ReteNodeRecipe` | `getRecipe()` |
    `ReteNodeRecipe` | `getShadowedRecipe()` | Get original recipe shadowed by an equivalent
    `boolean` | `propagateFromIndexerToSupplierParent()` |
    `boolean` | `propagateFromStandardNodeToSupplierParent()` |
    `boolean` | `propagateToIndexerParent()` |
    `boolean` | `propagateToProductionNodeParentAlso()` |
    `void` | `shadowWithEquivalentRecipe​(ReteNodeRecipe knownRecipe)` |

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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### RecipeTraceInfo

          public RecipeTraceInfo​(ReteNodeRecipe recipe,
                                 java.util.Collection<? extends RecipeTraceInfo> parentRecipeTraces)

    - #### RecipeTraceInfo

          public RecipeTraceInfo​(ReteNodeRecipe recipe,
                                 RecipeTraceInfo... parentRecipeTraces)

  - ### Method Detail

    - #### getRecipe

          public ReteNodeRecipe getRecipe()

    - #### getParentRecipeTraces

          public java.util.List<RecipeTraceInfo> getParentRecipeTraces()

      For cloning in case of recursion cut-off points, use `getParentRecipeTracesForCloning()` instead.
      Returns:
        an unmodifiable view on parent traces, to be constructed before this node (or alongside, in case of recursion)

    - #### getParentRecipeTracesForCloning

          public java.util.Collection<? extends RecipeTraceInfo> getParentRecipeTracesForCloning()

      Directly return the underlying collection so that changes to it will be transparent. Use only for recursion-tolerant cloning.
      No Reference:
        This method is not intended to be referenced by clients.

    - #### getNode

          public Node getNode()

      Specified by:
        `getNode` in interface `TraceInfo`

    - #### propagateToIndexerParent

          public boolean propagateToIndexerParent()

      Specified by:
        `propagateToIndexerParent` in interface `TraceInfo`

    - #### propagateFromIndexerToSupplierParent

          public boolean propagateFromIndexerToSupplierParent()

      Specified by:
        `propagateFromIndexerToSupplierParent` in interface `TraceInfo`

    - #### propagateFromStandardNodeToSupplierParent

          public boolean propagateFromStandardNodeToSupplierParent()

      Specified by:
        `propagateFromStandardNodeToSupplierParent` in interface `TraceInfo`

    - #### propagateToProductionNodeParentAlso

          public boolean propagateToProductionNodeParentAlso()

      Specified by:
        `propagateToProductionNodeParentAlso` in interface `TraceInfo`

    - #### assignNode

          public void assignNode​(Node node)

      Specified by:
        `assignNode` in interface `TraceInfo`

    - #### shadowWithEquivalentRecipe

          public void shadowWithEquivalentRecipe​(ReteNodeRecipe knownRecipe)

      Parameters:
        `knownRecipe` - a known recipe that is equivalent to the current recipe

    - #### getShadowedRecipe

          public ReteNodeRecipe getShadowedRecipe()

      Get original recipe shadowed by an equivalent