org.eclipse.viatra.cep.core.engine.compiler

## Class EquivalentStatesMatcher

- java.lang.Object
- - org.eclipse.viatra.query.runtime.internal.apiimpl.QueryResultWrapper
  - - org.eclipse.viatra.query.runtime.api.impl.BaseMatcher<EquivalentStatesMatch>
    - - org.eclipse.viatra.cep.core.engine.compiler.EquivalentStatesMatcher

- All Implemented Interfaces:
    ViatraQueryMatcher<EquivalentStatesMatch>

      public class EquivalentStatesMatcher
      extends BaseMatcher<EquivalentStatesMatch>

  Generated pattern matcher API of the org.eclipse.viatra.cep.core.engine.compiler.equivalentStates pattern, providing pattern-specific query methods.

  Use the pattern matcher on a given model via `on(ViatraQueryEngine)`, e.g. in conjunction with `ViatraQueryEngine#on(Notifier)`.

  Matches of the pattern will be represented as `EquivalentStatesMatch`.

  Original source: ``

       pattern
       equivalentStates(transition1 : TypedTransition, transition2 : TypedTransition, preState : State, postState1 : State, postState2 : State) {
              transition1 != transition2;

              count find negativeTransition(transition1) ==
              count find negativeTransition(transition2);

              Transition.preState(transition1, preState);
              Transition.preState(transition2, preState);

              Transition.postState(transition1, postState1);
              Transition.postState(transition2, postState2);

              postState1 != postState2;

              TypedTransition.guards(transition1, guard1);
              TypedTransition.guards(transition2, guard2);

              Guard.eventType.id(guard1, et1);
              Guard.eventType.id(guard2, et2);

              et1 == et2;

              Automaton.states(automaton, preState);
              Automaton.states(automaton, postState1);
              Automaton.states(automaton, postState2);
       }

  See Also:
    `EquivalentStatesMatch`, `EquivalentStatesProcessor`, `EquivalentStatesQuerySpecification`

- - ### Field Summary

    - ### Fields inherited from class org.eclipse.viatra.query.runtime.api.impl.BaseMatcher

      `engine, querySpecification`

    - ### Fields inherited from class org.eclipse.viatra.query.runtime.internal.apiimpl.QueryResultWrapper

      `backend`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected EquivalentStatesMatch` | `arrayToMatch(java.lang.Object[] match)` Converts the array representation of a pattern match to an immutable Match object.
    `protected EquivalentStatesMatch` | `arrayToMatchMutable(java.lang.Object[] match)` Converts the array representation of a pattern match to a mutable Match object.
    `int` | `countMatches(TypedTransition pTransition1, TypedTransition pTransition2, State pPreState, State pPostState1, State pPostState2)` Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
    `static EquivalentStatesMatcher` | `create()`
    `void` | `forEachMatch(TypedTransition pTransition1, TypedTransition pTransition2, State pPreState, State pPostState1, State pPostState2, IMatchProcessor<? super EquivalentStatesMatch> processor)` Executes the given processor on each match of the pattern that conforms to the given fixed values of some parameters.
    `boolean` | `forOneArbitraryMatch(TypedTransition pTransition1, TypedTransition pTransition2, State pPreState, State pPostState1, State pPostState2, IMatchProcessor<? super EquivalentStatesMatch> processor)` Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
    `java.util.Collection<EquivalentStatesMatch>` | `getAllMatches(TypedTransition pTransition1, TypedTransition pTransition2, State pPreState, State pPostState1, State pPostState2)` Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
    `java.util.Set<State>` | `getAllValuesOfpostState1()` Retrieve the set of values that occur in matches for postState1.
    `java.util.Set<State>` | `getAllValuesOfpostState1(EquivalentStatesMatch partialMatch)` Retrieve the set of values that occur in matches for postState1.
    `java.util.Set<State>` | `getAllValuesOfpostState1(TypedTransition pTransition1, TypedTransition pTransition2, State pPreState, State pPostState2)` Retrieve the set of values that occur in matches for postState1.
    `java.util.Set<State>` | `getAllValuesOfpostState2()` Retrieve the set of values that occur in matches for postState2.
    `java.util.Set<State>` | `getAllValuesOfpostState2(EquivalentStatesMatch partialMatch)` Retrieve the set of values that occur in matches for postState2.
    `java.util.Set<State>` | `getAllValuesOfpostState2(TypedTransition pTransition1, TypedTransition pTransition2, State pPreState, State pPostState1)` Retrieve the set of values that occur in matches for postState2.
    `java.util.Set<State>` | `getAllValuesOfpreState()` Retrieve the set of values that occur in matches for preState.
    `java.util.Set<State>` | `getAllValuesOfpreState(EquivalentStatesMatch partialMatch)` Retrieve the set of values that occur in matches for preState.
    `java.util.Set<State>` | `getAllValuesOfpreState(TypedTransition pTransition1, TypedTransition pTransition2, State pPostState1, State pPostState2)` Retrieve the set of values that occur in matches for preState.
    `java.util.Set<TypedTransition>` | `getAllValuesOftransition1()` Retrieve the set of values that occur in matches for transition1.
    `java.util.Set<TypedTransition>` | `getAllValuesOftransition1(EquivalentStatesMatch partialMatch)` Retrieve the set of values that occur in matches for transition1.
    `java.util.Set<TypedTransition>` | `getAllValuesOftransition1(TypedTransition pTransition2, State pPreState, State pPostState1, State pPostState2)` Retrieve the set of values that occur in matches for transition1.
    `java.util.Set<TypedTransition>` | `getAllValuesOftransition2()` Retrieve the set of values that occur in matches for transition2.
    `java.util.Set<TypedTransition>` | `getAllValuesOftransition2(EquivalentStatesMatch partialMatch)` Retrieve the set of values that occur in matches for transition2.
    `java.util.Set<TypedTransition>` | `getAllValuesOftransition2(TypedTransition pTransition1, State pPreState, State pPostState1, State pPostState2)` Retrieve the set of values that occur in matches for transition2.
    `EquivalentStatesMatch` | `getOneArbitraryMatch(TypedTransition pTransition1, TypedTransition pTransition2, State pPreState, State pPostState1, State pPostState2)` Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
    `boolean` | `hasMatch(TypedTransition pTransition1, TypedTransition pTransition2, State pPreState, State pPostState1, State pPostState2)` Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, under any possible substitution of the unspecified parameters (if any).
    `EquivalentStatesMatch` | `newMatch(TypedTransition pTransition1, TypedTransition pTransition2, State pPreState, State pPostState1, State pPostState2)` Returns a new (partial) match.
    `static EquivalentStatesMatcher` | `on(ViatraQueryEngine engine)` Initializes the pattern matcher within an existing VIATRA Query engine.
    `static IQuerySpecification<EquivalentStatesMatcher>` | `querySpecification()`
    `protected java.util.Set<State>` | `rawAccumulateAllValuesOfpostState1(java.lang.Object[] parameters)` Retrieve the set of values that occur in matches for postState1.
    `protected java.util.Set<State>` | `rawAccumulateAllValuesOfpostState2(java.lang.Object[] parameters)` Retrieve the set of values that occur in matches for postState2.
    `protected java.util.Set<State>` | `rawAccumulateAllValuesOfpreState(java.lang.Object[] parameters)` Retrieve the set of values that occur in matches for preState.
    `protected java.util.Set<TypedTransition>` | `rawAccumulateAllValuesOftransition1(java.lang.Object[] parameters)` Retrieve the set of values that occur in matches for transition1.
    `protected java.util.Set<TypedTransition>` | `rawAccumulateAllValuesOftransition2(java.lang.Object[] parameters)` Retrieve the set of values that occur in matches for transition2.
    `protected EquivalentStatesMatch` | `tupleToMatch(Tuple t)`

    - ### Methods inherited from class org.eclipse.viatra.query.runtime.api.impl.BaseMatcher

      `countMatches, countMatches, emptyArray, forEachMatch, forEachMatch, forOneArbitraryMatch, forOneArbitraryMatch, getAllMatches, getAllMatches, getAllValues, getAllValues, getCapabilities, getEngine, getOneArbitraryMatch, getOneArbitraryMatch, getParameterNames, getPatternName, getPositionOfParameter, getSpecification, hasMatch, matchToArray, newEmptyMatch, newMatch, rawAccumulateAllValues, rawCountMatches, rawForEachMatch, rawForOneArbitraryMatch, rawGetAllMatches, rawGetAllValues, rawGetOneArbitraryMatch, rawHasMatch, setBackend`

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

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

- - ### Method Detail

    - #### on

          public static EquivalentStatesMatcher on(ViatraQueryEngine engine)
                                            throws ViatraQueryException

      Initializes the pattern matcher within an existing VIATRA Query engine. If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. The match set will be incrementally refreshed upon updates.
      Parameters:
        `engine` - the existing VIATRA Query engine in which this matcher will be created.
      Throws:
        `ViatraQueryException` - if an error occurs during pattern matcher creation

    - #### create

          public static EquivalentStatesMatcher create()
                                                throws ViatraQueryException

      Returns:
        an initialized matcher
      Throws:
        `ViatraQueryException` - if an error occurs during pattern matcher creation
      No Reference:
        This method is for internal matcher initialization by the framework, do not call it manually.

    - #### getAllMatches

          public java.util.Collection<EquivalentStatesMatch> getAllMatches(TypedTransition pTransition1,
                                                                           TypedTransition pTransition2,
                                                                           State pPreState,
                                                                           State pPostState1,
                                                                           State pPostState2)

      Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
      Parameters:
        `pTransition1` - the fixed value of pattern parameter transition1, or null if not bound.
        `pTransition2` - the fixed value of pattern parameter transition2, or null if not bound.
        `pPreState` - the fixed value of pattern parameter preState, or null if not bound.
        `pPostState1` - the fixed value of pattern parameter postState1, or null if not bound.
        `pPostState2` - the fixed value of pattern parameter postState2, or null if not bound.
      Returns:
        matches represented as a EquivalentStatesMatch object.

    - #### getOneArbitraryMatch

          public EquivalentStatesMatch getOneArbitraryMatch(TypedTransition pTransition1,
                                                            TypedTransition pTransition2,
                                                            State pPreState,
                                                            State pPostState1,
                                                            State pPostState2)

      Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. Neither determinism nor randomness of selection is guaranteed.
      Parameters:
        `pTransition1` - the fixed value of pattern parameter transition1, or null if not bound.
        `pTransition2` - the fixed value of pattern parameter transition2, or null if not bound.
        `pPreState` - the fixed value of pattern parameter preState, or null if not bound.
        `pPostState1` - the fixed value of pattern parameter postState1, or null if not bound.
        `pPostState2` - the fixed value of pattern parameter postState2, or null if not bound.
      Returns:
        a match represented as a EquivalentStatesMatch object, or null if no match is found.

    - #### hasMatch

          public boolean hasMatch(TypedTransition pTransition1,
                                  TypedTransition pTransition2,
                                  State pPreState,
                                  State pPostState1,
                                  State pPostState2)

      Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, under any possible substitution of the unspecified parameters (if any).
      Parameters:
        `pTransition1` - the fixed value of pattern parameter transition1, or null if not bound.
        `pTransition2` - the fixed value of pattern parameter transition2, or null if not bound.
        `pPreState` - the fixed value of pattern parameter preState, or null if not bound.
        `pPostState1` - the fixed value of pattern parameter postState1, or null if not bound.
        `pPostState2` - the fixed value of pattern parameter postState2, or null if not bound.
      Returns:
        true if the input is a valid (partial) match of the pattern.

    - #### countMatches

          public int countMatches(TypedTransition pTransition1,
                                  TypedTransition pTransition2,
                                  State pPreState,
                                  State pPostState1,
                                  State pPostState2)

      Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
      Parameters:
        `pTransition1` - the fixed value of pattern parameter transition1, or null if not bound.
        `pTransition2` - the fixed value of pattern parameter transition2, or null if not bound.
        `pPreState` - the fixed value of pattern parameter preState, or null if not bound.
        `pPostState1` - the fixed value of pattern parameter postState1, or null if not bound.
        `pPostState2` - the fixed value of pattern parameter postState2, or null if not bound.
      Returns:
        the number of pattern matches found.

    - #### forEachMatch

          public void forEachMatch(TypedTransition pTransition1,
                                   TypedTransition pTransition2,
                                   State pPreState,
                                   State pPostState1,
                                   State pPostState2,
                                   IMatchProcessor<? super EquivalentStatesMatch> processor)

      Executes the given processor on each match of the pattern that conforms to the given fixed values of some parameters.
      Parameters:
        `pTransition1` - the fixed value of pattern parameter transition1, or null if not bound.
        `pTransition2` - the fixed value of pattern parameter transition2, or null if not bound.
        `pPreState` - the fixed value of pattern parameter preState, or null if not bound.
        `pPostState1` - the fixed value of pattern parameter postState1, or null if not bound.
        `pPostState2` - the fixed value of pattern parameter postState2, or null if not bound.
        `processor` - the action that will process each pattern match.

    - #### forOneArbitraryMatch

          public boolean forOneArbitraryMatch(TypedTransition pTransition1,
                                              TypedTransition pTransition2,
                                              State pPreState,
                                              State pPostState1,
                                              State pPostState2,
                                              IMatchProcessor<? super EquivalentStatesMatch> processor)

      Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. Neither determinism nor randomness of selection is guaranteed.
      Parameters:
        `pTransition1` - the fixed value of pattern parameter transition1, or null if not bound.
        `pTransition2` - the fixed value of pattern parameter transition2, or null if not bound.
        `pPreState` - the fixed value of pattern parameter preState, or null if not bound.
        `pPostState1` - the fixed value of pattern parameter postState1, or null if not bound.
        `pPostState2` - the fixed value of pattern parameter postState2, or null if not bound.
        `processor` - the action that will process the selected match.
      Returns:
        true if the pattern has at least one match with the given parameter values, false if the processor was not invoked

    - #### newMatch

          public EquivalentStatesMatch newMatch(TypedTransition pTransition1,
                                                TypedTransition pTransition2,
                                                State pPreState,
                                                State pPostState1,
                                                State pPostState2)

      Returns a new (partial) match. This can be used e.g. to call the matcher with a partial match.

      The returned match will be immutable. Use `BaseMatcher.newEmptyMatch()` to obtain a mutable match object.

      Parameters:
        `pTransition1` - the fixed value of pattern parameter transition1, or null if not bound.
        `pTransition2` - the fixed value of pattern parameter transition2, or null if not bound.
        `pPreState` - the fixed value of pattern parameter preState, or null if not bound.
        `pPostState1` - the fixed value of pattern parameter postState1, or null if not bound.
        `pPostState2` - the fixed value of pattern parameter postState2, or null if not bound.
      Returns:
        the (partial) match object.

    - #### rawAccumulateAllValuesOftransition1

          protected java.util.Set<TypedTransition> rawAccumulateAllValuesOftransition1(java.lang.Object[] parameters)

      Retrieve the set of values that occur in matches for transition1.
      Returns:
        the Set of all values or empty set if there are no matches

    - #### getAllValuesOftransition1

          public java.util.Set<TypedTransition> getAllValuesOftransition1()

      Retrieve the set of values that occur in matches for transition1.
      Returns:
        the Set of all values or empty set if there are no matches

    - #### getAllValuesOftransition1

          public java.util.Set<TypedTransition> getAllValuesOftransition1(EquivalentStatesMatch partialMatch)

      Retrieve the set of values that occur in matches for transition1.
      Returns:
        the Set of all values or empty set if there are no matches

    - #### getAllValuesOftransition1

          public java.util.Set<TypedTransition> getAllValuesOftransition1(TypedTransition pTransition2,
                                                                          State pPreState,
                                                                          State pPostState1,
                                                                          State pPostState2)

      Retrieve the set of values that occur in matches for transition1.
      Returns:
        the Set of all values or empty set if there are no matches

    - #### rawAccumulateAllValuesOftransition2

          protected java.util.Set<TypedTransition> rawAccumulateAllValuesOftransition2(java.lang.Object[] parameters)

      Retrieve the set of values that occur in matches for transition2.
      Returns:
        the Set of all values or empty set if there are no matches

    - #### getAllValuesOftransition2

          public java.util.Set<TypedTransition> getAllValuesOftransition2()

      Retrieve the set of values that occur in matches for transition2.
      Returns:
        the Set of all values or empty set if there are no matches

    - #### getAllValuesOftransition2

          public java.util.Set<TypedTransition> getAllValuesOftransition2(EquivalentStatesMatch partialMatch)

      Retrieve the set of values that occur in matches for transition2.
      Returns:
        the Set of all values or empty set if there are no matches

    - #### getAllValuesOftransition2

          public java.util.Set<TypedTransition> getAllValuesOftransition2(TypedTransition pTransition1,
                                                                          State pPreState,
                                                                          State pPostState1,
                                                                          State pPostState2)

      Retrieve the set of values that occur in matches for transition2.
      Returns:
        the Set of all values or empty set if there are no matches

    - #### rawAccumulateAllValuesOfpreState

          protected java.util.Set<State> rawAccumulateAllValuesOfpreState(java.lang.Object[] parameters)

      Retrieve the set of values that occur in matches for preState.
      Returns:
        the Set of all values or empty set if there are no matches

    - #### getAllValuesOfpreState

          public java.util.Set<State> getAllValuesOfpreState()

      Retrieve the set of values that occur in matches for preState.
      Returns:
        the Set of all values or empty set if there are no matches

    - #### getAllValuesOfpreState

          public java.util.Set<State> getAllValuesOfpreState(EquivalentStatesMatch partialMatch)

      Retrieve the set of values that occur in matches for preState.
      Returns:
        the Set of all values or empty set if there are no matches

    - #### getAllValuesOfpreState

          public java.util.Set<State> getAllValuesOfpreState(TypedTransition pTransition1,
                                                             TypedTransition pTransition2,
                                                             State pPostState1,
                                                             State pPostState2)

      Retrieve the set of values that occur in matches for preState.
      Returns:
        the Set of all values or empty set if there are no matches

    - #### rawAccumulateAllValuesOfpostState1

          protected java.util.Set<State> rawAccumulateAllValuesOfpostState1(java.lang.Object[] parameters)

      Retrieve the set of values that occur in matches for postState1.
      Returns:
        the Set of all values or empty set if there are no matches

    - #### getAllValuesOfpostState1

          public java.util.Set<State> getAllValuesOfpostState1()

      Retrieve the set of values that occur in matches for postState1.
      Returns:
        the Set of all values or empty set if there are no matches

    - #### getAllValuesOfpostState1

          public java.util.Set<State> getAllValuesOfpostState1(EquivalentStatesMatch partialMatch)

      Retrieve the set of values that occur in matches for postState1.
      Returns:
        the Set of all values or empty set if there are no matches

    - #### getAllValuesOfpostState1

          public java.util.Set<State> getAllValuesOfpostState1(TypedTransition pTransition1,
                                                               TypedTransition pTransition2,
                                                               State pPreState,
                                                               State pPostState2)

      Retrieve the set of values that occur in matches for postState1.
      Returns:
        the Set of all values or empty set if there are no matches

    - #### rawAccumulateAllValuesOfpostState2

          protected java.util.Set<State> rawAccumulateAllValuesOfpostState2(java.lang.Object[] parameters)

      Retrieve the set of values that occur in matches for postState2.
      Returns:
        the Set of all values or empty set if there are no matches

    - #### getAllValuesOfpostState2

          public java.util.Set<State> getAllValuesOfpostState2()

      Retrieve the set of values that occur in matches for postState2.
      Returns:
        the Set of all values or empty set if there are no matches

    - #### getAllValuesOfpostState2

          public java.util.Set<State> getAllValuesOfpostState2(EquivalentStatesMatch partialMatch)

      Retrieve the set of values that occur in matches for postState2.
      Returns:
        the Set of all values or empty set if there are no matches

    - #### getAllValuesOfpostState2

          public java.util.Set<State> getAllValuesOfpostState2(TypedTransition pTransition1,
                                                               TypedTransition pTransition2,
                                                               State pPreState,
                                                               State pPostState1)

      Retrieve the set of values that occur in matches for postState2.
      Returns:
        the Set of all values or empty set if there are no matches

    - #### tupleToMatch

          protected EquivalentStatesMatch tupleToMatch(Tuple t)

      Specified by:
        `tupleToMatch` in class `BaseMatcher<EquivalentStatesMatch>`

    - #### arrayToMatch

          protected EquivalentStatesMatch arrayToMatch(java.lang.Object[] match)

      Description copied from class: `BaseMatcher`
      Converts the array representation of a pattern match to an immutable Match object.
      Specified by:
        `arrayToMatch` in class `BaseMatcher<EquivalentStatesMatch>`

    - #### arrayToMatchMutable

          protected EquivalentStatesMatch arrayToMatchMutable(java.lang.Object[] match)

      Description copied from class: `BaseMatcher`
      Converts the array representation of a pattern match to a mutable Match object.
      Specified by:
        `arrayToMatchMutable` in class `BaseMatcher<EquivalentStatesMatch>`

    - #### querySpecification

          public static IQuerySpecification<EquivalentStatesMatcher> querySpecification()
                                                                                 throws ViatraQueryException

      Returns:
        the singleton instance of the query specification of this pattern
      Throws:
        `ViatraQueryException` - if the pattern definition could not be loaded