001
014
015 package com.liferay.portal.search.generic;
016
017 import com.liferay.portal.kernel.search.BaseBooleanQueryImpl;
018 import com.liferay.portal.kernel.search.BooleanClause;
019 import com.liferay.portal.kernel.search.BooleanClauseOccur;
020 import com.liferay.portal.kernel.search.BooleanClauseOccurImpl;
021 import com.liferay.portal.kernel.search.Query;
022
023 import java.util.ArrayList;
024 import java.util.Collections;
025 import java.util.List;
026
027
030 public class BooleanQueryImpl extends BaseBooleanQueryImpl {
031
032 public void add(Query query, BooleanClauseOccur booleanClauseOccur) {
033 _clauses.add(new BooleanClauseImpl(query, booleanClauseOccur));
034 }
035
036 public void add(Query query, String occur) {
037 BooleanClauseOccur booleanClauseOccur = new BooleanClauseOccurImpl(
038 occur);
039
040 add(query, booleanClauseOccur);
041 }
042
043 public void addExactTerm(String field, boolean value) {
044 addExactTerm(field, String.valueOf(value));
045 }
046
047 public void addExactTerm(String field, Boolean value) {
048 addExactTerm(field, String.valueOf(value));
049 }
050
051 public void addExactTerm(String field, double value) {
052 addExactTerm(field, String.valueOf(value));
053 }
054
055 public void addExactTerm(String field, Double value) {
056 addExactTerm(field, String.valueOf(value));
057 }
058
059 public void addExactTerm(String field, int value) {
060 addExactTerm(field, String.valueOf(value));
061 }
062
063 public void addExactTerm(String field, Integer value) {
064 addExactTerm(field, String.valueOf(value));
065 }
066
067 public void addExactTerm(String field, long value) {
068 addExactTerm(field, String.valueOf(value));
069 }
070
071 public void addExactTerm(String field, Long value) {
072 addExactTerm(field, String.valueOf(value));
073 }
074
075 public void addExactTerm(String field, short value) {
076 addExactTerm(field, String.valueOf(value));
077 }
078
079 public void addExactTerm(String field, Short value) {
080 addExactTerm(field, String.valueOf(value));
081 }
082
083 public void addExactTerm(String field, String value) {
084 TermQueryImpl termQuery = new TermQueryImpl(
085 new QueryTermImpl(field, String.valueOf(value)));
086
087 add(termQuery, BooleanClauseOccur.SHOULD);
088 }
089
090 public void addRequiredTerm(String field, boolean value) {
091 addRequiredTerm(field, String.valueOf(value), false);
092 }
093
094 public void addRequiredTerm(String field, Boolean value) {
095 addRequiredTerm(field, String.valueOf(value), false);
096 }
097
098 public void addRequiredTerm(String field, double value) {
099 addRequiredTerm(field, String.valueOf(value), false);
100 }
101
102 public void addRequiredTerm(String field, Double value) {
103 addRequiredTerm(field, String.valueOf(value), false);
104 }
105
106 public void addRequiredTerm(String field, int value) {
107 addRequiredTerm(field, String.valueOf(value), false);
108 }
109
110 public void addRequiredTerm(String field, Integer value) {
111 addRequiredTerm(field, String.valueOf(value), false);
112 }
113
114 public void addRequiredTerm(String field, long value) {
115 addRequiredTerm(field, String.valueOf(value), false);
116 }
117
118 public void addRequiredTerm(String field, Long value) {
119 addRequiredTerm(field, String.valueOf(value), false);
120 }
121
122 public void addRequiredTerm(String field, short value) {
123 addRequiredTerm(field, String.valueOf(value), false);
124 }
125
126 public void addRequiredTerm(String field, Short value) {
127 addRequiredTerm(field, String.valueOf(value), false);
128 }
129
130 public void addRequiredTerm(String field, String value) {
131 addRequiredTerm(field, value, false);
132 }
133
134 public void addRequiredTerm(String field, String value, boolean like) {
135 Query query = null;
136
137 if (like) {
138 query = new WildcardQueryImpl(
139 new QueryTermImpl(field, String.valueOf(value)));
140 }
141 else {
142 query = new TermQueryImpl(
143 new QueryTermImpl(field, String.valueOf(value)));
144 }
145
146 add(query , BooleanClauseOccur.MUST);
147 }
148
149 public void addTerm(String field, long value) {
150 addTerm(field, String.valueOf(value), false);
151 }
152
153 public void addTerm(String field, String value) {
154 addTerm(field, value, false);
155 }
156
157 public void addTerm(String field, String value, boolean like) {
158 Query query = null;
159
160 if (like) {
161 query = new WildcardQueryImpl(
162 new QueryTermImpl(field, String.valueOf(value)));
163 }
164 else {
165 query = new TermQueryImpl(
166 new QueryTermImpl(field, String.valueOf(value)));
167 }
168
169 add(query , BooleanClauseOccur.SHOULD);
170 }
171
172 public List<BooleanClause> clauses() {
173 return Collections.unmodifiableList(_clauses);
174 }
175
176 private List<BooleanClause> _clauses = new ArrayList<BooleanClause>();
177
178 }