@Override public Set<Card> getCards(FilterCard filter, Game game) { return stream().map(game::getCard).filter(card -> filter.match(card, game)).collect(Collectors.toSet()); }
@Override public int count(FilterCard filter, UUID playerId, Game game) { return (int) this.stream().filter(card -> filter.match(game.getCard(card), playerId, game)).count(); }
@Override public int count(FilterCard filter, Game game) { return (int) stream().filter(cardId -> filter.match(game.getCard(cardId), game)).count(); }
@Override public int count(FilterCard filter, UUID sourceId, UUID playerId, Game game) { if (sourceId == null) { return count(filter, playerId, game); } return (int) this.stream().filter(card -> filter.match(game.getCard(card), sourceId, playerId, game)).count(); }