/** * Creates a "multi" event filter that uses the IPatternMatch.isCompatibleWith to check event atoms against a collection * of filter (partial) matches. The possible semantics are documented in {@link ViatraQueryFilterSemantics}. * * @param filterMatches non-null match to use for filtering * @param semantics the filter semantics to use * @return the event filter */ public static <Match extends IPatternMatch> EventFilter<Match> newMultiMatchFilter(Collection<Match> filterMatches, ViatraQueryFilterSemantics semantics) { return ViatraQueryMultiMatchEventFilter.createFilter(filterMatches, semantics); }
public static <Match extends IPatternMatch> ViatraQueryMultiMatchEventFilter<Match> createFilter(Collection<Match> eventAtoms, ViatraQueryFilterSemantics semantics) { Preconditions.checkArgument(eventAtoms != null, "Cannot create filter for null match, use createEmptyFilter() instead!"); for (Match eventAtom : eventAtoms) { Preconditions.checkArgument(!eventAtom.isMutable(), "Cannot create filter for mutable match!"); } return new ViatraQueryMultiMatchEventFilter<Match>(eventAtoms, semantics); }