001    /**
002     * Copyright (c) 2000-2012 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                    _obj = obj;
047                    _primaryKey = primaryKey;
048                    _pos = pos;
049                    _bold = bold;
050                    _searchEntries = new ArrayList<SearchEntry>();
051            }
052    
053            public void addButton(int index, String name, String href) {
054                    addButton(
055                            index, SearchEntry.DEFAULT_ALIGN, SearchEntry.DEFAULT_VALIGN,
056                            SearchEntry.DEFAULT_COLSPAN, name, href);
057            }
058    
059            public void addButton(
060                    int index, String align, String valign, int colspan, String name,
061                    String href) {
062    
063                    if (_restricted) {
064                            href = null;
065                    }
066    
067                    ButtonSearchEntry buttonSearchEntry = new ButtonSearchEntry();
068    
069                    buttonSearchEntry.setAlign(align);
070                    buttonSearchEntry.setColspan(colspan);
071                    buttonSearchEntry.setHref(href);
072                    buttonSearchEntry.setName(name);
073                    buttonSearchEntry.setValign(valign);
074    
075                    _searchEntries.add(index, buttonSearchEntry);
076            }
077    
078            public void addButton(String name, String href) {
079                    addButton(_searchEntries.size(), name, href);
080            }
081    
082            public void addButton(
083                    String align, String valign, int colspan, String name, String href) {
084    
085                    addButton(_searchEntries.size(), align, valign, colspan, name, href);
086            }
087    
088            public void addButton(
089                    String align, String valign, String name, String href) {
090    
091                    addButton(
092                            _searchEntries.size(), align, valign, SearchEntry.DEFAULT_COLSPAN,
093                            name, href);
094            }
095    
096            public void addJSP(int index, String path) {
097                    addJSP(
098                            index, SearchEntry.DEFAULT_ALIGN, SearchEntry.DEFAULT_VALIGN,
099                            SearchEntry.DEFAULT_COLSPAN, path);
100            }
101    
102            public void addJSP(
103                    int index, String path, ServletContext servletContext,
104                    HttpServletRequest request, HttpServletResponse response) {
105    
106                    addJSP(
107                            index, SearchEntry.DEFAULT_ALIGN, SearchEntry.DEFAULT_VALIGN,
108                            SearchEntry.DEFAULT_COLSPAN, path, servletContext, request,
109                            response);
110            }
111    
112            public void addJSP(
113                    int index, String align, String valign, int colspan, String path) {
114    
115                    JSPSearchEntry jspSearchEntry = new JSPSearchEntry();
116    
117                    jspSearchEntry.setAlign(align);
118                    jspSearchEntry.setColspan(colspan);
119                    jspSearchEntry.setPath(path);
120                    jspSearchEntry.setValign(valign);
121    
122                    _searchEntries.add(index, jspSearchEntry);
123            }
124    
125            public void addJSP(
126                    int index, String align, String valign, int colspan, String path,
127                    ServletContext servletContext, HttpServletRequest request,
128                    HttpServletResponse response) {
129    
130                    JSPSearchEntry jspSearchEntry = new JSPSearchEntry();
131    
132                    jspSearchEntry.setAlign(align);
133                    jspSearchEntry.setColspan(colspan);
134                    jspSearchEntry.setPath(path);
135                    jspSearchEntry.setRequest(request);
136                    jspSearchEntry.setResponse(response);
137                    jspSearchEntry.setServletContext(servletContext);
138                    jspSearchEntry.setValign(valign);
139    
140                    _searchEntries.add(index, jspSearchEntry);
141            }
142    
143            public void addJSP(String path) {
144                    addJSP(_searchEntries.size(), path);
145            }
146    
147            public void addJSP(
148                    String path, ServletContext servletContext, HttpServletRequest request,
149                    HttpServletResponse response) {
150    
151                    addJSP(_searchEntries.size(), path, servletContext, request, response);
152            }
153    
154            public void addJSP(String align, String valign, int colspan, String path) {
155                    addJSP(_searchEntries.size(), align, valign, colspan, path);
156            }
157    
158            public void addJSP(
159                    String align, String valign, int colspan, String path,
160                    ServletContext servletContext, HttpServletRequest request,
161                    HttpServletResponse response) {
162    
163                    addJSP(
164                            _searchEntries.size(), align, valign, colspan, path, servletContext,
165                            request, response);
166            }
167    
168            public void addJSP(String align, String valign, String path) {
169                    addJSP(
170                            _searchEntries.size(), align, valign, SearchEntry.DEFAULT_COLSPAN,
171                            path);
172            }
173    
174            public void addJSP(
175                    String align, String valign, String path, ServletContext servletContext,
176                    HttpServletRequest request, HttpServletResponse response) {
177    
178                    addJSP(
179                            _searchEntries.size(), align, valign, SearchEntry.DEFAULT_COLSPAN,
180                            path, servletContext, request, response);
181            }
182    
183            public void addSearchEntry(int index, SearchEntry searchEntry) {
184                    _searchEntries.add(index, searchEntry);
185            }
186    
187            public void addSearchEntry(SearchEntry searchEntry) {
188                    _searchEntries.add(searchEntry);
189            }
190    
191            public void addText(int index, String name) {
192                    addText(
193                            index, SearchEntry.DEFAULT_ALIGN, SearchEntry.DEFAULT_VALIGN,
194                            SearchEntry.DEFAULT_COLSPAN, name);
195            }
196    
197            public void addText(int index, String name, PortletURL portletURL) {
198                    if (portletURL == null) {
199                            addText(index, name);
200                    }
201                    else {
202                            addText(index, name, portletURL.toString());
203                    }
204            }
205    
206            public void addText(int index, String name, String href) {
207                    addText(
208                            index, SearchEntry.DEFAULT_ALIGN, SearchEntry.DEFAULT_VALIGN,
209                            SearchEntry.DEFAULT_COLSPAN, name, href);
210            }
211    
212            public void addText(
213                    int index, String align, String valign, int colspan, String name) {
214    
215                    TextSearchEntry textSearchEntry = new TextSearchEntry();
216    
217                    textSearchEntry.setAlign(align);
218                    textSearchEntry.setColspan(colspan);
219                    textSearchEntry.setName(name);
220                    textSearchEntry.setValign(valign);
221    
222                    _searchEntries.add(index, textSearchEntry);
223            }
224    
225            public void addText(
226                    int index, String align, String valign, int colspan, String name,
227                    PortletURL portletURL) {
228    
229                    if (portletURL == null) {
230                            addText(index, align, valign, colspan, name);
231                    }
232                    else {
233                            addText(index, 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                    String href) {
240    
241                    if (_restricted) {
242                            href = null;
243                    }
244    
245                    TextSearchEntry textSearchEntry = new TextSearchEntry();
246    
247                    textSearchEntry.setAlign(align);
248                    textSearchEntry.setColspan(colspan);
249                    textSearchEntry.setHref(href);
250                    textSearchEntry.setName(name);
251                    textSearchEntry.setValign(valign);
252    
253                    _searchEntries.add(index, textSearchEntry);
254            }
255    
256            public void addText(int index, TextSearchEntry searchEntry) {
257                    if (_restricted) {
258                            searchEntry.setHref(null);
259                    }
260    
261                    _searchEntries.add(index, searchEntry);
262            }
263    
264            public void addText(String name) {
265                    addText(_searchEntries.size(), name);
266            }
267    
268            public void addText(String name, PortletURL portletURL) {
269                    if (portletURL == null) {
270                            addText(name);
271                    }
272                    else {
273                            addText(name, portletURL.toString());
274                    }
275            }
276    
277            public void addText(String name, String href) {
278                    addText(_searchEntries.size(), name, href);
279            }
280    
281            public void addText(String align, String valign, int colspan, String name) {
282                    addText(_searchEntries.size(), align, valign, colspan, name);
283            }
284    
285            public void addText(
286                    String align, String valign, int colspan, String name,
287                    PortletURL portletURL) {
288    
289                    if (portletURL == null) {
290                            addText(align, valign, colspan, name);
291                    }
292                    else {
293                            addText(align, valign, colspan, name, portletURL.toString());
294                    }
295            }
296    
297            public void addText(
298                    String align, String valign, int colspan, String name, String href) {
299    
300                    addText(_searchEntries.size(), align, valign, colspan, name, href);
301            }
302    
303            public void addText(String align, String valign, String name) {
304                    addText(
305                            _searchEntries.size(), align, valign, SearchEntry.DEFAULT_COLSPAN,
306                            name);
307            }
308    
309            public void addText(
310                    String align, String valign, String name, PortletURL portletURL) {
311    
312                    addText(align, valign, SearchEntry.DEFAULT_COLSPAN, name, portletURL);
313            }
314    
315            public void addText(String align, String valign, String name, String href) {
316                    addText(
317                            _searchEntries.size(), align, valign, SearchEntry.DEFAULT_COLSPAN,
318                            name, href);
319            }
320    
321            public void addText(TextSearchEntry searchEntry) {
322                    if (_restricted) {
323                            searchEntry.setHref(null);
324                    }
325    
326                    _searchEntries.add(_searchEntries.size(), searchEntry);
327            }
328    
329            public String getClassHoverName() {
330                    return _classHoverName;
331            }
332    
333            public String getClassName() {
334                    return _className;
335            }
336    
337            public Map<String, Object> getData() {
338                    return _data;
339            }
340    
341            public List<SearchEntry> getEntries() {
342                    return _searchEntries;
343            }
344    
345            public Object getObject() {
346                    return _obj;
347            }
348    
349            public Object getParameter(String param) {
350                    if (_params == null) {
351                            _params = new HashMap<String, Object>();
352                    }
353    
354                    return _params.get(param);
355            }
356    
357            public int getPos() {
358                    return _pos;
359            }
360    
361            public String getPrimaryKey() {
362                    return _primaryKey;
363            }
364    
365            public boolean isBold() {
366                    return _bold;
367            }
368    
369            public boolean isRestricted() {
370                    return _restricted;
371            }
372    
373            public boolean isSkip() {
374                    return _skip;
375            }
376    
377            public void removeSearchEntry(int pos) {
378                    _searchEntries.remove(pos);
379            }
380    
381            public void setBold(boolean bold) {
382                    _bold = bold;
383            }
384    
385            public void setClassHoverName(String classHoverName) {
386                    _classHoverName = classHoverName;
387            }
388    
389            public void setClassName(String className) {
390                    _className = className;
391            }
392    
393            public void setData(Map<String, Object> data) {
394                    _data = data;
395            }
396    
397            public void setObject(Object obj) {
398                    _obj = obj;
399            }
400    
401            public void setParameter(String param, Object value) {
402                    if (_params == null) {
403                            _params = new HashMap<String, Object>();
404                    }
405    
406                    _params.put(param, value);
407            }
408    
409            public void setPrimaryKey(String primaryKey) {
410                    _primaryKey = primaryKey;
411            }
412    
413            public void setRestricted(boolean restricted) {
414                    _restricted = restricted;
415            }
416    
417            public void setSkip(boolean skip) {
418                    _skip = skip;
419            }
420    
421            private boolean _bold;
422            private String _classHoverName;
423            private String _className;
424            private Map<String, Object> _data;
425            private Object _obj;
426            private Map<String, Object> _params;
427            private int _pos;
428            private String _primaryKey;
429            private boolean _restricted;
430            private List<SearchEntry> _searchEntries;
431            private boolean _skip;
432    
433    }