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

## Interface IRelationEvaluator

-     public interface IRelationEvaluator

  Implementations of this interface take an arbitrary number of input relations with their contents and compute the tuples of a single output relation.
  Since:
    2.8

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.util.Set<Tuple>` | `evaluateRelation​(java.util.List<java.util.Set<Tuple>> inputs)` | The relation evaluator code.
    `java.util.List<java.lang.Integer>` | `getInputArities()` | For each input relation that this evaluator requires, this method returns the expected arities of the relations in order.
    `int` | `getOutputArity()` | Returns the arity of the output relation that this evaluator computes.
    `java.lang.String` | `getShortDescription()` | A textual description of the evaluator.

- - ### Method Detail

    - #### getShortDescription

          java.lang.String getShortDescription()

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

    - #### evaluateRelation

          java.util.Set<Tuple> evaluateRelation​(java.util.List<java.util.Set<Tuple>> inputs)
                                         throws java.lang.Exception

      The relation evaluator code. For performance reasons, it is expected that the returned set is a mutable collection, and the caller must be allowed to actually perform mutations!
      Throws:
        `java.lang.Exception`

    - #### getInputArities

          java.util.List<java.lang.Integer> getInputArities()

      For each input relation that this evaluator requires, this method returns the expected arities of the relations in order.

    - #### getOutputArity

          int getOutputArity()

      Returns the arity of the output relation that this evaluator computes.