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