org.eclipse.viatra.query.runtime.localsearch.operations

## Interface ISearchOperation

- All Known Subinterfaces:
    IIteratingSearchOperation
  All Known Implementing Classes:
    AggregatorCheck, AggregatorExtend, BinaryTransitiveClosureCheck, CheckConstant, CheckPositivePatternCall, ContainmentCheck, CountCheck, CountOperation, ExpressionCheck, ExpressionEval, ExpressionEvalCheck, ExtendBinaryTransitiveClosure, ExtendBinaryTransitiveClosure.Backward, ExtendBinaryTransitiveClosure.Forward, ExtendConstant, ExtendPositivePatternCall, ExtendToEStructuralFeatureSource, ExtendToEStructuralFeatureTarget, InequalityCheck, InstanceOfClassCheck, InstanceOfDataTypeCheck, InstanceOfJavaClassCheck, IterateOverChildren, IterateOverContainers, IterateOverEClassInstances, IterateOverEDatatypeInstances, IterateOverEStructuralFeatureInstances, NACOperation, StructuralFeatureCheck

      public interface ISearchOperation

  Represents a search operation executable by the LS engine. It is expected that an operation can be shared among multiple LS matchers, but the created executors are not.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static interface` | `ISearchOperation.ISearchOperationExecutor`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `ISearchOperation.ISearchOperationExecutor` | `createExecutor()` Initializes a new operation executor for the given operation.
    `java.util.List<java.lang.Integer>` | `getVariablePositions()`
    `java.lang.String` | `toString(java.util.function.Function<java.lang.Integer,java.lang.String> variableMapping)` Creates a string representation of the search operation by replacing the variable numbers according to the parameter function.

- - ### Method Detail

    - #### createExecutor

          ISearchOperation.ISearchOperationExecutor createExecutor()

      Initializes a new operation executor for the given operation. Repeated calls must return different executor instances.
      Since:
        2.0

    - #### getVariablePositions

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

      Returns:
        the ordered list of the variable numbers that are affected by the search operation

    - #### toString

          java.lang.String toString(java.util.function.Function<java.lang.Integer,java.lang.String> variableMapping)

      Creates a string representation of the search operation by replacing the variable numbers according to the parameter function. It is expected that the provided function does return a non-null value for each variable index that is returned by `getVariablePositions()`; otherwise a `NullPointerException` will be thrown during the calculation of the string.
      Since:
        2.0