Package org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred

## Class ExpressionEvaluation

- java.lang.Object
- - org.eclipse.viatra.query.runtime.matchers.psystem.BasePConstraint
  - - org.eclipse.viatra.query.runtime.matchers.psystem.DeferredPConstraint
    - - org.eclipse.viatra.query.runtime.matchers.psystem.VariableDeferredPConstraint
      - - org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.BaseTypeSafeConstraint
        - - org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExpressionEvaluation

- All Implemented Interfaces:
    `PConstraint`, `PTraceable`

      public class ExpressionEvaluation
      extends BaseTypeSafeConstraint

- - ### Field Summary

    - ### Fields inherited from class org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.BaseTypeSafeConstraint

      `inputVariables, outputVariable`

    - ### Fields inherited from class org.eclipse.viatra.query.runtime.matchers.psystem.BasePConstraint

      `pBody`

    - ### Fields inherited from interface org.eclipse.viatra.query.runtime.matchers.psystem.PConstraint

      `COMPARE_BY_MONOTONOUS_ID`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ExpressionEvaluation​(PBody pBody, IExpressionEvaluator evaluator, PVariable outputVariable)` |
    `ExpressionEvaluation​(PBody pBody, IExpressionEvaluator evaluator, PVariable outputVariable, boolean isUnwinding)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `IExpressionEvaluator` | `getEvaluator()` |
    `java.util.Map<java.util.Set<PVariable>,​java.util.Set<PVariable>>` | `getFunctionalDependencies​(IQueryMetaContext context)` | A (preferably minimal) cover of known functional dependencies between variables.
    `boolean` | `isUnwinding()` |
    `protected java.lang.String` | `toStringRest()` |

    - ### Methods inherited from class org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.BaseTypeSafeConstraint

      `checkTypeSafety, doReplaceVariable, getDeducedVariables, getDeferringVariables, getOutputVariable, isReadyAt`

    - ### Methods inherited from class org.eclipse.viatra.query.runtime.matchers.psystem.BasePConstraint

      `checkSanity, delete, getAffectedVariables, getBody, getMonotonousID, getPSystem, replaceVariable, toString`

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

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

- - ### Constructor Detail

    - #### ExpressionEvaluation

          public ExpressionEvaluation​(PBody pBody,
                                      IExpressionEvaluator evaluator,
                                      PVariable outputVariable)

    - #### ExpressionEvaluation

          public ExpressionEvaluation​(PBody pBody,
                                      IExpressionEvaluator evaluator,
                                      PVariable outputVariable,
                                      boolean isUnwinding)

      Since:
        2.4

  - ### Method Detail

    - #### isUnwinding

          public boolean isUnwinding()

      Since:
        2.4

    - #### getEvaluator

          public IExpressionEvaluator getEvaluator()

    - #### toStringRest

          protected java.lang.String toStringRest()

      Specified by:
        `toStringRest` in class `BasePConstraint`

    - #### getFunctionalDependencies

          public java.util.Map<java.util.Set<PVariable>,​java.util.Set<PVariable>> getFunctionalDependencies​(IQueryMetaContext context)

      Description copied from interface: `PConstraint`
      A (preferably minimal) cover of known functional dependencies between variables.
      Specified by:
        `getFunctionalDependencies` in interface `PConstraint`
      Overrides:
        `getFunctionalDependencies` in class `BasePConstraint`
      Returns:
        non-trivial functional dependencies in the form of {variables} --> {variables}, where dependencies with the same lhs are unified.