001    /**
002     * Copyright (c) 2000-2013 Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portal.kernel.dao.search;
016    
017    import java.util.ArrayList;
018    import java.util.HashMap;
019    import java.util.List;
020    import java.util.Map;
021    
022    import javax.portlet.PortletURL;
023    
024    import javax.servlet.ServletContext;
025    import javax.servlet.http.HttpServletRequest;
026    import javax.servlet.http.HttpServletResponse;
027    
028    /**
029     * @author Brian Wing Shun Chan
030     */
031    public class ResultRow {
032    
033            public ResultRow(Object obj, long primaryKey, int pos) {
034                    this(obj, String.valueOf(primaryKey), pos);
035            }
036    
037            public ResultRow(Object obj, long primaryKey, int pos, boolean bold) {
038                    this(obj, String.valueOf(primaryKey), pos, bold);
039            }
040    
041            public ResultRow(Object obj, String primaryKey, int pos) {
042                    this(obj, primaryKey, pos, false);
043            }
044    
045            public ResultRow(Object obj, String primaryKey, int pos, boolean bold) {
046                    this(String.valueOf(pos + 1), obj, primaryKey, pos, bold);
047            }
048    
049            public ResultRow(
050                    String rowId, Object obj, String primaryKey, int pos, boolean bold) {
051    
052                    _rowId = rowId;
053                    _obj = obj;
054                    _primaryKey = primaryKey;
055                    _pos = pos;
056                    _bold = bold;
057                    _searchEntries = new ArrayList<SearchEntry>();
058            }
059    
060            public void addButton(int index, String name, String href) {
061                    addButton(
062                            index, SearchEntry.DEFAULT_ALIGN, SearchEntry.DEFAULT_VALIGN,
063                            SearchEntry.DEFAULT_COLSPAN, name, href);
064            }
065    
066            public void addButton(
067                    int index, String align, String valign, int colspan, String name,
068                    String href) {
069    
070                    if (_restricted) {
071                            href = null;
072                    }
073    
074                    ButtonSearchEntry buttonSearchEntry = new ButtonSearchEntry();
075    
076                    buttonSearchEntry.setAlign(align);
077                    buttonSearchEntry.setColspan(colspan);
078                    buttonSearchEntry.setHref(href);
079                    buttonSearchEntry.setName(name);
080                    buttonSearchEntry.setValign(valign);
081    
082                    _searchEntries.add(index, buttonSearchEntry);
083            }
084    
085            public void addButton(String name, String href) {
086                    addButton(_searchEntries.size(), name, href);
087            }
088    
089            public void addButton(
090                    String align, String valign, int colspan, String name, String href) {
091    
092                    addButton(_searchEntries.size(), align, valign, colspan, name, href);
093            }
094    
095            public void addButton(
096                    String align, String valign, String name, String href) {
097    
098                    addButton(
099                            _searchEntries.size(), align, valign, SearchEntry.DEFAULT_COLSPAN,
100                            name, href);
101            }
102    
103            public void addJSP(int index, String path) {
104                    addJSP(
105                            index, SearchEntry.DEFAULT_ALIGN, SearchEntry.DEFAULT_VALIGN,
106                            SearchEntry.DEFAULT_COLSPAN, path);
107            }
108    
109            public void addJSP(
110                    int index, String path, ServletContext servletContext,
111                    HttpServletRequest request, HttpServletResponse response) {
112    
113                    addJSP(
114                            index, SearchEntry.DEFAULT_ALIGN, SearchEntry.DEFAULT_VALIGN,
115                            SearchEntry.DEFAULT_COLSPAN, path, servletContext, request,
116                            response);
117            }
118    
119            public void addJSP(
120                    int index, String align, String valign, int colspan, String path) {
121    
122                    JSPSearchEntry jspSearchEntry = new JSPSearchEntry();
123    
124                    jspSearchEntry.setAlign(align);
125                    jspSearchEntry.setColspan(colspan);
126                    jspSearchEntry.setPath(path);
127                    jspSearchEntry.setValign(valign);
128    
129                    _searchEntries.add(index, jspSearchEntry);
130            }
131    
132            public void addJSP(
133                    int index, String align, String valign, int colspan, String path,
134                    ServletContext servletContext, HttpServletRequest request,
135                    HttpServletResponse response) {
136    
137                    JSPSearchEntry jspSearchEntry = new JSPSearchEntry();
138    
139                    jspSearchEntry.setAlign(align);
140                    jspSearchEntry.setColspan(colspan);
141                    jspSearchEntry.setPath(path);
142                    jspSearchEntry.setRequest(request);
143                    jspSearchEntry.setResponse(response);
144                    jspSearchEntry.setServletContext(servletContext);
145                    jspSearchEntry.setValign(valign);
146    
147                    _searchEntries.add(index, jspSearchEntry);
148            }
149    
150            public void addJSP(String path) {
151                    addJSP(_searchEntries.size(), path);
152            }
153    
154            public void addJSP(
155                    String path, ServletContext servletContext, HttpServletRequest request,
156                    HttpServletResponse response) {
157    
158                    addJSP(_searchEntries.size(), path, servletContext, request, response);
159            }
160    
161            public void addJSP(String align, String valign, int colspan, String path) {
162                    addJSP(_searchEntries.size(), align, valign, colspan, path);
163            }
164    
165            public void addJSP(
166                    String align, String valign, int colspan, String path,
167                    ServletContext servletContext, HttpServletRequest request,
168                    HttpServletResponse response) {
169    
170                    addJSP(
171                            _searchEntries.size(), align, valign, colspan, path, servletContext,
172                            request, response);
173            }
174    
175            public void addJSP(String align, String valign, String path) {
176                    addJSP(
177                            _searchEntries.size(), align, valign, SearchEntry.DEFAULT_COLSPAN,
178                            path);
179            }
180    
181            public void addJSP(
182                    String align, String valign, String path, ServletContext servletContext,
183                    HttpServletRequest request, HttpServletResponse response) {
184    
185                    addJSP(
186                            _searchEntries.size(), align, valign, SearchEntry.DEFAULT_COLSPAN,
187                            path, servletContext, request, response);
188            }
189    
190            public void addSearchEntry(int index, SearchEntry searchEntry) {
191                    _searchEntries.add(index, searchEntry);
192            }
193    
194            public void addSearchEntry(SearchEntry searchEntry) {
195                    _searchEntries.add(searchEntry);
196            }
197    
198            public void addText(int index, String name) {
199                    addText(
200                            index, SearchEntry.DEFAULT_ALIGN, SearchEntry.DEFAULT_VALIGN,
201                            SearchEntry.DEFAULT_COLSPAN, name);
202            }
203    
204            public void addText(int index, String name, PortletURL portletURL) {
205                    if (portletURL == null) {
206                            addText(index, name);
207                    }
208                    else {
209                            addText(index, name, portletURL.toString());
210                    }
211            }
212    
213            public void addText(int index, String name, String href) {
214                    addText(
215                            index, SearchEntry.DEFAULT_ALIGN, SearchEntry.DEFAULT_VALIGN,
216                            SearchEntry.DEFAULT_COLSPAN, name, href);
217            }
218    
219            public void addText(
220                    int index, String align, String valign, int colspan, String name) {
221    
222                    TextSearchEntry textSearchEntry = new TextSearchEntry();
223    
224                    textSearchEntry.setAlign(align);
225                    textSearchEntry.setColspan(colspan);
226                    textSearchEntry.setName(name);
227                    textSearchEntry.setValign(valign);
228    
229                    _searchEntries.add(index, textSearchEntry);
230            }
231    
232            public void addText(
233                    int index, String align, String valign, int colspan, String name,
234                    PortletURL portletURL) {
235    
236                    if (portletURL == null) {
237                            addText(index, align, valign, colspan, name);
238                    }
239                    else {
240                            addText(index, align, valign, colspan, name, portletURL.toString());
241                    }
242            }
243    
244            public void addText(
245                    int index, String align, String valign, int colspan, String name,
246                    String href) {
247    
248                    if (_restricted) {
249                            href = null;
250                    }
251    
252                    TextSearchEntry textSearchEntry = new TextSearchEntry();
253    
254                    textSearchEntry.setAlign(align);
255                    textSearchEntry.setColspan(colspan);
256                    textSearchEntry.setHref(href);
257                    textSearchEntry.setName(name);
258                    textSearchEntry.setValign(valign);
259    
260                    _searchEntries.add(index, textSearchEntry);
261            }
262    
263            public void addText(int index, TextSearchEntry searchEntry) {
264                    if (_restricted) {
265                            searchEntry.setHref(null);
266                    }
267    
268                    _searchEntries.add(index, searchEntry);
269            }
270    
271            public void addText(String name) {
272                    addText(_searchEntries.size(), name);
273            }
274    
275            public void addText(String name, PortletURL portletURL) {
276                    if (portletURL == null) {
277                            addText(name);
278                    }
279                    else {
280                            addText(name, portletURL.toString());
281                    }
282            }
283    
284            public void addText(String name, String href) {
285                    addText(_searchEntries.size(), name, href);
286            }
287    
288            public void addText(String align, String valign, int colspan, String name) {
289                    addText(_searchEntries.size(), align, valign, colspan, name);
290            }
291    
292            public void addText(
293                    String align, String valign, int colspan, String name,
294                    PortletURL portletURL) {
295    
296                    if (portletURL == null) {
297                            addText(align, valign, colspan, name);
298                    }
299                    else {
300                            addText(align, valign, colspan, name, portletURL.toString());
301                    }
302            }
303    
304            public void addText(
305                    String align, String valign, int colspan, String name, String href) {
306    
307                    addText(_searchEntries.size(), align, valign, colspan, name, href);
308            }
309    
310            public void addText(String align, String valign, String name) {
311                    addText(
312                            _searchEntries.size(), align, valign, SearchEntry.DEFAULT_COLSPAN,
313                            name);
314            }
315    
316            public void addText(
317                    String align, String valign, String name, PortletURL portletURL) {
318    
319                    addText(align, valign, SearchEntry.DEFAULT_COLSPAN, name, portletURL);
320            }
321    
322            public void addText(String align, String valign, String name, String href) {
323                    addText(
324                            _searchEntries.size(), align, valign, SearchEntry.DEFAULT_COLSPAN,
325                            name, href);
326            }
327    
328            public void addText(TextSearchEntry searchEntry) {
329                    if (_restricted) {
330                            searchEntry.setHref(null);
331                    }
332    
333                    _searchEntries.add(_searchEntries.size(), searchEntry);
334            }
335    
336            public String getClassHoverName() {
337                    return _classHoverName;
338            }
339    
340            public String getClassName() {
341                    return _className;
342            }
343    
344            public Map<String, Object> getData() {
345                    return _data;
346            }
347    
348            public List<SearchEntry> getEntries() {
349                    return _searchEntries;
350            }
351    
352            public Object getObject() {
353                    return _obj;
354            }
355    
356            public Object getParameter(String param) {
357                    if (_params == null) {
358                            _params = new HashMap<String, Object>();
359                    }
360    
361                    return _params.get(param);
362            }
363    
364            public int getPos() {
365                    return _pos;
366            }
367    
368            public String getPrimaryKey() {
369                    return _primaryKey;
370            }
371    
372            public String getRowId() {
373                    return _rowId;
374            }
375    
376            public boolean isBold() {
377                    return _bold;
378            }
379    
380            public boolean isRestricted() {
381                    return _restricted;
382            }
383    
384            public boolean isSkip() {
385                    return _skip;
386            }
387    
388            public void removeSearchEntry(int pos) {
389                    _searchEntries.remove(pos);
390            }
391    
392            public void setBold(boolean bold) {
393                    _bold = bold;
394            }
395    
396            public void setClassHoverName(String classHoverName) {
397                    _classHoverName = classHoverName;
398            }
399    
400            public void setClassName(String className) {
401                    _className = className;
402            }
403    
404            public void setData(Map<String, Object> data) {
405                    _data = data;
406            }
407    
408            public void setObject(Object obj) {
409                    _obj = obj;
410            }
411    
412            public void setParameter(String param, Object value) {
413                    if (_params == null) {
414                            _params = new HashMap<String, Object>();
415                    }
416    
417                    _params.put(param, value);
418            }
419    
420            public void setPrimaryKey(String primaryKey) {
421                    _primaryKey = primaryKey;
422            }
423    
424            public void setRestricted(boolean restricted) {
425                    _restricted = restricted;
426            }
427    
428            public void setRowId(String rowId) {
429                    _rowId = rowId;
430            }
431    
432            public void setSkip(boolean skip) {
433                    _skip = skip;
434            }
435    
436            private boolean _bold;
437            private String _classHoverName;
438            private String _className;
439            private Map<String, Object> _data;
440            private Object _obj;
441            private Map<String, Object> _params;
442            private int _pos;
443            private String _primaryKey;
444            private boolean _restricted;
445            private String _rowId;
446            private List<SearchEntry> _searchEntries;
447            private boolean _skip;
448    
449    }