package org.mongodb.morphia.query; /** * Internal class to represent groups of {@link Criteria} instances via $and and $or query clauses */ public interface CriteriaContainer extends Criteria { /** * Adds Criteria to this container * * @param criteria the criteria to add */ void add(Criteria... criteria); /** * Ands Criteria with this CriteriaContainer. * * @param criteria the criteria * @return the container */ CriteriaContainer and(Criteria... criteria); /** * Creates a criteria against a field * * @param field the field * @return the FieldEnd to define the criteria to apply */ FieldEnd<? extends CriteriaContainer> criteria(String field); /** * Ors Criteria with this CriteriaContainer. * * @param criteria the criteria * @return the container */ CriteriaContainer or(Criteria... criteria); /** * Removes Criteria to this container * * @param criteria the criteria to remove */ void remove(Criteria criteria); }