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