package tc.oc.pgm.filters.matcher.party;
import com.google.common.collect.Range;
import tc.oc.pgm.filters.query.IMatchQuery;
import tc.oc.pgm.match.Competitor;
import tc.oc.pgm.score.ScoreMatchModule;
/**
* Match whether a {@link Competitor}'s score is within a range.
*/
public class ScoreFilter extends CompetitorFilter {
private final @Inspect Range<Integer> scores;
public ScoreFilter(Range<Integer> scores) {
this.scores = scores;
}
@Override
public boolean isDynamic() {
return true;
}
@Override
public boolean matches(IMatchQuery query, Competitor competitor) {
return competitor.getMatch()
.module(ScoreMatchModule.class)
.filter(smm -> scores.contains((int) smm.getScore(competitor)))
.isPresent();
}
}