1
22
23 package com.liferay.portal.kernel.dao.search;
24
25 import com.liferay.portal.kernel.util.OrderByComparator;
26 import com.liferay.portal.kernel.util.ParamUtil;
27
28 import java.util.ArrayList;
29 import java.util.List;
30 import java.util.Map;
31
32 import javax.portlet.PortletRequest;
33 import javax.portlet.PortletURL;
34
35
41 public class SearchContainer<R> {
42
43 public static final String DEFAULT_CUR_PARAM = "cur";
44
45 public static final int DEFAULT_CUR_VALUE = 1;
46
47 public static final int DEFAULT_DELTA = 20;
48
49 public SearchContainer() {
50 }
51
52 public SearchContainer(
53 PortletRequest portletRequest, DisplayTerms displayTerms,
54 DisplayTerms searchTerms, String curParam, int delta,
55 PortletURL iteratorURL, List<String> headerNames,
56 String emptyResultsMessage) {
57
58 _displayTerms = displayTerms;
59 _searchTerms = searchTerms;
60
61 _curParam = curParam;
62 _curValue = ParamUtil.get(portletRequest, _curParam, DEFAULT_CUR_VALUE);
63
64 if (_curValue < 1) {
65 _curValue = DEFAULT_CUR_VALUE;
66 }
67
68 setDelta(delta);
69
70 _iteratorURL = iteratorURL;
71
72 _iteratorURL.setParameter(
73 DisplayTerms.KEYWORDS,
74 ParamUtil.getString(portletRequest, DisplayTerms.KEYWORDS));
75 _iteratorURL.setParameter(
76 DisplayTerms.ADVANCED_SEARCH,
77 String.valueOf(
78 ParamUtil.getBoolean(
79 portletRequest, DisplayTerms.ADVANCED_SEARCH)));
80 _iteratorURL.setParameter(
81 DisplayTerms.AND_OPERATOR,
82 String.valueOf(
83 ParamUtil.getBoolean(
84 portletRequest, DisplayTerms.AND_OPERATOR, true)));
85
86 if (headerNames != null) {
87 _headerNames = new ArrayList<String>(headerNames.size());
88
89 _headerNames.addAll(headerNames);
90 }
91
92 _emptyResultsMessage = emptyResultsMessage;
93 }
94
95 public DisplayTerms getDisplayTerms() {
96 return _displayTerms;
97 }
98
99 public DisplayTerms getSearchTerms() {
100 return _searchTerms;
101 }
102
103 public String getCurParam() {
104 return _curParam;
105 }
106
107 public int getCurValue() {
108 return _curValue;
109 }
110
111 public int getDelta() {
112 return _delta;
113 }
114
115 public void setDelta(int delta) {
116 if (delta <= 0) {
117 _delta = DEFAULT_DELTA;
118 }
119 else {
120 _delta = delta;
121 }
122
123 _calculateStartAndEnd();
124 }
125
126 public int getStart() {
127 return _start;
128 }
129
130 public int getEnd() {
131 return _end;
132 }
133
134 public int getResultEnd() {
135 return _resultEnd;
136 }
137
138 public int getTotal() {
139 return _total;
140 }
141
142 public void setTotal(int total) {
143 _total = total;
144
145 if (((_curValue - 1) * _delta) > _total) {
146 _curValue = DEFAULT_CUR_VALUE;
147 }
148
149 _calculateStartAndEnd();
150 }
151
152 public List<R> getResults() {
153 return _results;
154 }
155
156 public void setResults(List<R> results) {
157 _results = results;
158 }
159
160 public List<ResultRow> getResultRows() {
161 return _resultRows;
162 }
163
164 public PortletURL getIteratorURL() {
165 return _iteratorURL;
166 }
167
168 public void setIteratorURL(PortletURL iteratorURL) {
169 _iteratorURL = iteratorURL;
170 }
171
172 public List<String> getHeaderNames() {
173 return _headerNames;
174 }
175
176 public void setHeaderNames(List<String> headerNames) {
177 _headerNames = headerNames;
178 }
179
180 public Map<String, String> getOrderableHeaders() {
181 return _orderableHeaders;
182 }
183
184 public void setOrderableHeaders(Map<String, String> orderableHeaders) {
185 _orderableHeaders = orderableHeaders;
186 }
187
188 public String getOrderByCol() {
189 return _orderByCol;
190 }
191
192 public void setOrderByCol(String orderByCol) {
193 _orderByCol = orderByCol;
194 }
195
196 public String getOrderByType() {
197 return _orderByType;
198 }
199
200 public void setOrderByType(String orderByType) {
201 _orderByType = orderByType;
202 }
203
204 public OrderByComparator getOrderByComparator() {
205 return _orderByComparator;
206 }
207
208 public void setOrderByComparator(OrderByComparator orderByComparator) {
209 _orderByComparator = orderByComparator;
210 }
211
212 public String getEmptyResultsMessage() {
213 return _emptyResultsMessage;
214 }
215
216 public void setEmptyResultsMessage(String emptyResultsMessage) {
217 _emptyResultsMessage = emptyResultsMessage;
218 }
219
220 public RowChecker getRowChecker() {
221 return _rowChecker;
222 }
223
224 public void setRowChecker(RowChecker rowChecker) {
225 _rowChecker = rowChecker;
226 }
227
228 public boolean isHover() {
229 return _hover;
230 }
231
232 public void setHover(boolean hover) {
233 _hover = hover;
234 }
235
236 private void _calculateStartAndEnd() {
237 _start = (_curValue - 1) * _delta;
238 _end = _start + _delta;
239
240 _resultEnd = _end;
241
242 if (_resultEnd > _total) {
243 _resultEnd = _total;
244 }
245 }
246
247 private DisplayTerms _displayTerms;
248 private DisplayTerms _searchTerms;
249 private String _curParam = DEFAULT_CUR_PARAM;
250 private int _curValue;
251 private int _delta = DEFAULT_DELTA;
252 private int _start;
253 private int _end;
254 private int _resultEnd;
255 private int _total;
256 private List<R> _results = new ArrayList<R>();
257 private List<ResultRow> _resultRows = new ArrayList<ResultRow>();
258 private PortletURL _iteratorURL;
259 private List<String> _headerNames;
260 private Map<String, String> _orderableHeaders;
261 private String _orderByCol;
262 private String _orderByType;
263 private OrderByComparator _orderByComparator;
264 private String _emptyResultsMessage;
265 private RowChecker _rowChecker;
266 private boolean _hover = true;
267
268 }