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 }