package org.jboss.windup.exec.rulefilters; import java.util.Arrays; import java.util.HashSet; import java.util.Set; import org.jboss.forge.furnace.util.Predicate; import org.jboss.windup.config.RuleProvider; import org.jboss.windup.config.phase.RulePhase; /** * Filters the rules with given phases. * * @author <a href="mailto:ozizka@redhat.com">Ondrej Zizka</a> */ public class RuleProviderPhasePredicate implements Predicate<RuleProvider> { private final Set<Class<? extends RulePhase>> phases; /** * Creates the {@link RuleProviderPhasePredicate} with the given phase types. */ @SafeVarargs public RuleProviderPhasePredicate(Class<? extends RulePhase>... phases) { this.phases = new HashSet<>(Arrays.asList(phases)); } @Override public boolean accept(RuleProvider provider) { return this.phases.contains(provider.getMetadata().getPhase()); } }