1   /**
2    * Copyright (c) 2000-2009 Liferay, Inc. All rights reserved.
3    *
4    * The contents of this file are subject to the terms of the Liferay Enterprise
5    * Subscription License ("License"). You may not use this file except in
6    * compliance with the License. You can obtain a copy of the License by
7    * contacting Liferay, Inc. See the License for the specific language governing
8    * permissions and limitations under the License, including but not limited to
9    * distribution rights of the Software.
10   *
11   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
12   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
13   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
14   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
15   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
16   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
17   * SOFTWARE.
18   */
19  
20  package com.liferay.portal.kernel.dao.search;
21  
22  import java.util.ArrayList;
23  import java.util.HashMap;
24  import java.util.List;
25  import java.util.Map;
26  
27  import javax.portlet.PortletURL;
28  
29  import javax.servlet.ServletContext;
30  import javax.servlet.http.HttpServletRequest;
31  import javax.servlet.http.HttpServletResponse;
32  
33  /**
34   * <a href="ResultRow.java.html"><b><i>View Source</i></b></a>
35   *
36   * @author Brian Wing Shun Chan
37   *
38   */
39  public class ResultRow {
40  
41      public ResultRow(Object obj, long primaryKey, int pos) {
42          this(obj, String.valueOf(primaryKey), pos);
43      }
44  
45      public ResultRow(Object obj, long primaryKey, int pos, boolean bold) {
46          this(obj, String.valueOf(primaryKey), pos, bold);
47      }
48  
49      public ResultRow(Object obj, String primaryKey, int pos) {
50          this(obj, primaryKey, pos, false);
51      }
52  
53      public ResultRow(Object obj, String primaryKey, int pos, boolean bold) {
54          _obj = obj;
55          _primaryKey = primaryKey;
56          _pos = pos;
57          _bold = bold;
58          _entries = new ArrayList<SearchEntry>();
59      }
60  
61      public Object getObject() {
62          return _obj;
63      }
64  
65      public void setObject(Object obj) {
66          _obj = obj;
67      }
68  
69      public String getPrimaryKey() {
70          return _primaryKey;
71      }
72  
73      public void setPrimaryKey(String primaryKey) {
74          _primaryKey = primaryKey;
75      }
76  
77      public int getPos() {
78          return _pos;
79      }
80  
81      public boolean isBold() {
82          return _bold;
83      }
84  
85      public boolean isRestricted() {
86          return _restricted;
87      }
88  
89      public void setRestricted(boolean restricted) {
90          _restricted = restricted;
91      }
92  
93      public String getClassName() {
94          return _className;
95      }
96  
97      public void setClassName(String className) {
98          _className = className;
99      }
100 
101     public String getClassHoverName() {
102         return _classHoverName;
103     }
104 
105     public void setClassHoverName(String classHoverName) {
106         _classHoverName = classHoverName;
107     }
108 
109     public List<SearchEntry> getEntries() {
110         return _entries;
111     }
112 
113     public Object getParameter(String param) {
114         if (_params == null) {
115             _params = new HashMap<String, Object>();
116         }
117 
118         return _params.get(param);
119     }
120 
121     public void setParameter(String param, Object value) {
122         if (_params == null) {
123             _params = new HashMap<String, Object>();
124         }
125 
126         _params.put(param, value);
127     }
128 
129     // Text with name
130 
131     public void addText(String name) {
132         addText(_entries.size(), name);
133     }
134 
135     public void addText(int index, String name) {
136         addText(
137             index, SearchEntry.DEFAULT_ALIGN, SearchEntry.DEFAULT_VALIGN,
138             SearchEntry.DEFAULT_COLSPAN, name);
139     }
140 
141     public void addText(String align, String valign, String name) {
142         addText(
143             _entries.size(), align, valign, SearchEntry.DEFAULT_COLSPAN, name);
144     }
145 
146     public void addText(
147         String align, String valign, int colspan, String name) {
148 
149         addText(_entries.size(), align, valign, colspan, name);
150     }
151 
152     public void addText(
153         int index, String align, String valign, int colspan, String name) {
154 
155         _entries.add(
156             index, new TextSearchEntry(align, valign, colspan, name));
157     }
158 
159     // Text with name and href
160 
161     public void addText(String name, String href) {
162         addText(_entries.size(), name, href);
163     }
164 
165     public void addText(int index, String name, String href) {
166         addText(
167             index, SearchEntry.DEFAULT_ALIGN, SearchEntry.DEFAULT_VALIGN,
168             SearchEntry.DEFAULT_COLSPAN, name, href);
169     }
170 
171     public void addText(String align, String valign, String name, String href) {
172         addText(
173             _entries.size(), align, valign, SearchEntry.DEFAULT_COLSPAN, name,
174             href);
175     }
176 
177     public void addText(
178         String align, String valign, int colspan, String name, String href) {
179 
180         addText(_entries.size(), align, valign, colspan, name, href);
181     }
182 
183     public void addText(
184         int index, String align, String valign, int colspan, String name,
185         String href) {
186 
187         if (_restricted) {
188             href = null;
189         }
190 
191         _entries.add(
192             index, new TextSearchEntry(align, valign, colspan, name, href));
193     }
194 
195     // Text with name and portlet URL
196 
197     public void addText(String name, PortletURL portletURL) {
198         if (portletURL == null) {
199             addText(name);
200         }
201         else {
202             addText(name, portletURL.toString());
203         }
204     }
205 
206     public void addText(int index, String name, PortletURL portletURL) {
207         if (portletURL == null) {
208             addText(index, name);
209         }
210         else {
211             addText(index, name, portletURL.toString());
212         }
213     }
214 
215     public void addText(
216         String align, String valign, String name, PortletURL portletURL) {
217 
218         addText(
219             align, valign, SearchEntry.DEFAULT_COLSPAN, name, portletURL);
220     }
221 
222     public void addText(
223         String align, String valign, int colspan, String name,
224         PortletURL portletURL) {
225 
226         if (portletURL == null) {
227             addText(align, valign, colspan, name);
228         }
229         else {
230             addText(align, valign, colspan, name, portletURL.toString());
231         }
232     }
233 
234     public void addText(
235         int index, String align, String valign, int colspan, String name,
236         PortletURL portletURL) {
237 
238         if (portletURL == null) {
239             addText(index, align, valign, colspan, name);
240         }
241         else {
242             addText(index, align, valign, colspan, name, portletURL.toString());
243         }
244     }
245 
246     // Text with search entry
247 
248     public void addText(TextSearchEntry searchEntry) {
249         if (_restricted) {
250             searchEntry.setHref(null);
251         }
252 
253         _entries.add(_entries.size(), searchEntry);
254     }
255 
256     public void addText(int index, TextSearchEntry searchEntry) {
257         if (_restricted) {
258             searchEntry.setHref(null);
259         }
260 
261         _entries.add(index, searchEntry);
262     }
263 
264     // Button with name and href
265 
266     public void addButton(String name, String href) {
267         addButton(_entries.size(), name, href);
268     }
269 
270     public void addButton(int index, String name, String href) {
271         addButton(
272             index, SearchEntry.DEFAULT_ALIGN, SearchEntry.DEFAULT_VALIGN,
273             SearchEntry.DEFAULT_COLSPAN, name, href);
274     }
275 
276     public void addButton(
277         String align, String valign, String name, String href) {
278 
279         addButton(
280             _entries.size(), align, valign, SearchEntry.DEFAULT_COLSPAN, name,
281             href);
282     }
283 
284     public void addButton(
285         String align, String valign, int colspan, String name, String href) {
286 
287         addButton(_entries.size(), align, valign, colspan, name, href);
288     }
289 
290     public void addButton(
291         int index, String align, String valign, int colspan, String name,
292         String href) {
293 
294         if (_restricted) {
295             href = null;
296         }
297 
298         _entries.add(
299             index, new ButtonSearchEntry(align, valign, colspan, name, href));
300     }
301 
302     // JSP
303 
304     public void addJSP(String path) {
305         addJSP(_entries.size(), path);
306     }
307 
308     public void addJSP(String align, String valign, String path) {
309         addJSP(
310             _entries.size(), align, valign, SearchEntry.DEFAULT_COLSPAN, path);
311     }
312 
313     public void addJSP(String align, String valign, int colspan, String path) {
314         addJSP(_entries.size(), align, valign, colspan, path);
315     }
316 
317     public void addJSP(int index, String path) {
318         addJSP(
319             index, SearchEntry.DEFAULT_ALIGN, SearchEntry.DEFAULT_VALIGN,
320             SearchEntry.DEFAULT_COLSPAN, path);
321     }
322 
323     public void addJSP(
324         int index, String align, String valign, int colspan, String path) {
325 
326         _entries.add(index, new JSPSearchEntry(align, valign, colspan, path));
327     }
328 
329     // JSP with portlet context
330 
331     public void addJSP(
332         String path, ServletContext servletContext, HttpServletRequest request,
333         HttpServletResponse response) {
334 
335         addJSP(_entries.size(), path, servletContext, request, response);
336     }
337 
338     public void addJSP(
339         String align, String valign, String path, ServletContext servletContext,
340         HttpServletRequest request, HttpServletResponse response) {
341 
342         addJSP(
343             _entries.size(), align, valign, SearchEntry.DEFAULT_COLSPAN, path,
344             servletContext, request, response);
345     }
346 
347     public void addJSP(
348         String align, String valign, int colspan, String path,
349         ServletContext servletContext, HttpServletRequest request,
350         HttpServletResponse response) {
351 
352         addJSP(
353             _entries.size(), align, valign, colspan, path, servletContext,
354             request, response);
355     }
356 
357     public void addJSP(
358         int index, String path, ServletContext servletContext,
359         HttpServletRequest request, HttpServletResponse response) {
360 
361         addJSP(
362             index, SearchEntry.DEFAULT_ALIGN, SearchEntry.DEFAULT_VALIGN,
363             SearchEntry.DEFAULT_COLSPAN, path, servletContext, request,
364             response);
365     }
366 
367     public void addJSP(
368         int index, String align, String valign, int colspan, String path,
369         ServletContext servletContext, HttpServletRequest request,
370         HttpServletResponse response) {
371 
372         _entries.add(
373             index,
374             new JSPSearchEntry(
375                 align, valign, colspan, path, servletContext, request,
376                 response));
377     }
378 
379     // Score
380 
381     public void addScore(float score) {
382         addScore(_entries.size(), score);
383     }
384 
385     public void addScore(int index, float score) {
386         _entries.add(index, new ScoreSearchEntry(score));
387     }
388 
389     private Object _obj;
390     private String _primaryKey;
391     private int _pos;
392     private boolean _bold;
393     private boolean _restricted;
394     private String _className;
395     private String _classHoverName;
396     private List<SearchEntry> _entries;
397     private Map<String, Object> _params;
398 
399 }