package tc.oc.pgm.filters.matcher.party;
import tc.oc.pgm.filters.matcher.TypedFilter;
import tc.oc.pgm.filters.query.IPartyQuery;
import tc.oc.pgm.match.Party;
import tc.oc.pgm.teams.Team;
import tc.oc.pgm.teams.TeamFactory;
/**
* Match the given team, or a player on that team
*/
public class TeamFilter extends TypedFilter.Impl<IPartyQuery> {
protected final @Inspect(brief=true) TeamFactory team;
public TeamFilter(TeamFactory team) {
this.team = team;
}
@Override
public boolean isDynamic() {
return true;
}
@Override
public boolean matches(IPartyQuery query) {
final Party party = query.getParty();
return party instanceof Team && ((Team) party).isDefinedBy(team);
}
@Override
public String toString() {
return getClass().getSimpleName() + "{team=" + this.team + "}";
}
}