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

## Interface IExpressionEvaluator

- All Known Implementing Classes:
    XBaseEvaluator

      public interface IExpressionEvaluator

  An expression evaluator is used to execute arbitrary Java code during pattern matching. In order to include the evaluation in the planning seemlessly it is expected from the evaluator implementors to report all used PVariables by name.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `evaluateExpression(IValueProvider provider)` The expression evaluator code
    `java.lang.Iterable<java.lang.String>` | `getInputParameterNames()` All input parameter names should be reported correctly.
    `java.lang.String` | `getShortDescription()` A textual description of the expression.

- - ### Method Detail

    - #### getShortDescription

          java.lang.String getShortDescription()

      A textual description of the expression. Used only for debug purposes, but must not be null.

    - #### getInputParameterNames

          java.lang.Iterable<java.lang.String> getInputParameterNames()

      All input parameter names should be reported correctly.

    - #### evaluateExpression

          java.lang.Object evaluateExpression(IValueProvider provider)
                                       throws java.lang.Exception

      The expression evaluator code
      Parameters:
        `provider` - the value provider is an engine-specific way of reading internal variable tuples to evaluate the expression with
      Returns:
        the result of the expression: in case of predicate evaluation the return value must be true or false; otherwise the result can be an arbitrary object. No null values should be returned.
      Throws:
        `java.lang.Exception`