View Javadoc
1   /*
2    * Licensed to The Apereo Foundation under one or more contributor license
3    * agreements. See the NOTICE file distributed with this work for additional
4    * information regarding copyright ownership.
5    *
6    *
7    * The Apereo Foundation licenses this file to you under the Educational
8    * Community License, Version 2.0 (the "License"); you may not use this file
9    * except in compliance with the License. You may obtain a copy of the License
10   * at:
11   *
12   *   http://opensource.org/licenses/ecl2.txt
13   *
14   * Unless required by applicable law or agreed to in writing, software
15   * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
16   * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
17   * License for the specific language governing permissions and limitations under
18   * the License.
19   *
20   */
21  
22  
23  package org.opencastproject.elasticsearch.api;
24  
25  import java.util.Collection;
26  
27  /**
28   * Interface for a data structure that is wrapping a group of search terms.
29   */
30  public interface SearchTerms<T extends Object> {
31  
32    /** The search quantifier */
33    enum Quantifier {
34      All, Any
35    };
36  
37    /**
38     * Adds a term to this list of terms.
39     * 
40     * @param term
41     *          the new term
42     */
43    void add(T term);
44  
45    /**
46     * Returns the terms.
47     * 
48     * @return the terms
49     */
50    Collection<T> getTerms();
51  
52    /**
53     * Returns <code>true</code> if <code>term</code> is contained in the list of
54     * terms.
55     * 
56     * @param term
57     *          the term
58     * @return <code>true</code> if <code>term</code> is contained
59     */
60    boolean contains(T term);
61  
62    /**
63     * Returns the number of terms.
64     * 
65     * @return the number of terms
66     */
67    int size();
68  
69    /**
70     * Returns this group's quantifier.
71     * 
72     * @return the quantifier
73     */
74    Quantifier getQuantifier();
75  
76  }