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