package tc.oc.pgm.filters.matcher.party; import java.util.Optional; import tc.oc.pgm.filters.query.IMatchQuery; import tc.oc.pgm.goals.GoalDefinition; import tc.oc.pgm.match.Competitor; public class GoalFilter extends CompetitorFilter { private final @Inspect(brief = true) GoalDefinition goal; public GoalFilter(GoalDefinition goal) { this.goal = goal; } @Override public String inspectType() { return "Goal"; } @Override public String toString() { return inspect(); } @Override public boolean isDynamic() { return true; } public boolean matches(IMatchQuery query, Optional<Competitor> competitor) { return goal.getGoal(query.getMatch()).isCompleted(competitor); } @Override public boolean matchesAny(IMatchQuery query) { return matches(query, Optional.empty()); } @Override public boolean matches(IMatchQuery query, Competitor competitor) { return matches(query, Optional.of(competitor)); } }