@Override public boolean accept(Map<String, Object> map) { for (Criteria criterion : this.criteria.values()) { if (!criterion.matches(map)) { return false; } } return true; }