org.eclipse.viatra.transformation.runtime.emf.filters

## Class MatchParameterPredicateFilter

- java.lang.Object
- - org.eclipse.viatra.transformation.runtime.emf.filters.MatchParameterPredicateFilter

- All Implemented Interfaces:
    java.util.function.Predicate<IPatternMatch>, EventFilter<IPatternMatch>

      public class MatchParameterPredicateFilter
      extends java.lang.Object
      implements EventFilter<IPatternMatch>

  A EVM filter that uses a parameter-predicate map that can be used for multiple patterns and rules. This implementation is a generalization of the MatchParameterFilter implementation by supporting more complex conditions for each parameters. When only simple Object comparison is used, it is better to rely on the previously available MatchParameterFilter as it is easier to use and has a bit better performance. Note When using the filter, parameter keys that does not match any parameter of a pattern match are ignored.
  Since:
    2.2
  See Also:
    `MatchParameterFilter`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `MatchParameterPredicateFilter(java.util.Map.Entry<java.lang.String,java.util.function.Predicate<java.lang.Object>>... parameters)`
    `MatchParameterPredicateFilter(java.util.Map<java.lang.String,java.util.function.Predicate<java.lang.Object>> parameterMatchers)`
    `MatchParameterPredicateFilter(java.lang.String name, java.util.function.Predicate<java.lang.Object> parameterMatcher)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `isProcessable(IPatternMatch eventAtom)`

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

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

    - ### Methods inherited from interface org.eclipse.viatra.transformation.evm.api.event.EventFilter

      `and, negate, or, test`

    - ### Methods inherited from interface java.util.function.Predicate

      `isEqual`

- - ### Constructor Detail

    - #### MatchParameterPredicateFilter

          public MatchParameterPredicateFilter(java.lang.String name,
                                               java.util.function.Predicate<java.lang.Object> parameterMatcher)

    - #### MatchParameterPredicateFilter

          public MatchParameterPredicateFilter(java.util.Map<java.lang.String,java.util.function.Predicate<java.lang.Object>> parameterMatchers)

    - #### MatchParameterPredicateFilter

          @SafeVarargs
          public MatchParameterPredicateFilter(java.util.Map.Entry<java.lang.String,java.util.function.Predicate<java.lang.Object>>... parameters)

  - ### Method Detail

    - #### isProcessable

          public boolean isProcessable(IPatternMatch eventAtom)

      Specified by:
        `isProcessable` in interface `EventFilter<IPatternMatch>`