001    /**
002     * Copyright (c) 2000-2011 Liferay, Inc. All rights reserved.
003     *
004     * The contents of this file are subject to the terms of the Liferay Enterprise
005     * Subscription License ("License"). You may not use this file except in
006     * compliance with the License. You can obtain a copy of the License by
007     * contacting Liferay, Inc. See the License for the specific language governing
008     * permissions and limitations under the License, including but not limited to
009     * distribution rights of the Software.
010     *
011     *
012     *
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 addScore(float score) {
184                    addScore(_searchEntries.size(), score);
185            }
186    
187            public void addScore(int index, float score) {
188                    ScoreSearchEntry scoreSearchEntry = new ScoreSearchEntry();
189    
190                    scoreSearchEntry.setScore(score);
191    
192                    _searchEntries.add(index, scoreSearchEntry);
193            }
194    
195            public void addSearchEntry(int index, SearchEntry searchEntry) {
196                    _searchEntries.add(index, searchEntry);
197            }
198    
199            public void addSearchEntry(SearchEntry searchEntry) {
200                    _searchEntries.add(searchEntry);
201            }
202    
203            public void addText(int index, String name) {
204                    addText(
205                            index, SearchEntry.DEFAULT_ALIGN, SearchEntry.DEFAULT_VALIGN,
206                            SearchEntry.DEFAULT_COLSPAN, name);
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(int index, String name, String href) {
219                    addText(
220                            index, SearchEntry.DEFAULT_ALIGN, SearchEntry.DEFAULT_VALIGN,
221                            SearchEntry.DEFAULT_COLSPAN, name, href);
222            }
223    
224            public void addText(
225                    int index, String align, String valign, int colspan, String name) {
226    
227                    TextSearchEntry textSearchEntry = new TextSearchEntry();
228    
229                    textSearchEntry.setAlign(align);
230                    textSearchEntry.setColspan(colspan);
231                    textSearchEntry.setName(name);
232                    textSearchEntry.setValign(valign);
233    
234                    _searchEntries.add(index, textSearchEntry);
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            public void addText(
250                    int index, String align, String valign, int colspan, String name,
251                    String href) {
252    
253                    if (_restricted) {
254                            href = null;
255                    }
256    
257                    TextSearchEntry textSearchEntry = new TextSearchEntry();
258    
259                    textSearchEntry.setAlign(align);
260                    textSearchEntry.setColspan(colspan);
261                    textSearchEntry.setHref(href);
262                    textSearchEntry.setName(name);
263                    textSearchEntry.setValign(valign);
264    
265                    _searchEntries.add(index, textSearchEntry);
266            }
267    
268            public void addText(int index, TextSearchEntry searchEntry) {
269                    if (_restricted) {
270                            searchEntry.setHref(null);
271                    }
272    
273                    _searchEntries.add(index, searchEntry);
274            }
275    
276            public void addText(String name) {
277                    addText(_searchEntries.size(), name);
278            }
279    
280            public void addText(String name, PortletURL portletURL) {
281                    if (portletURL == null) {
282                            addText(name);
283                    }
284                    else {
285                            addText(name, portletURL.toString());
286                    }
287            }
288    
289            public void addText(String name, String href) {
290                    addText(_searchEntries.size(), name, href);
291            }
292    
293            public void addText(
294                    String align, String valign, int colspan, String name) {
295    
296                    addText(_searchEntries.size(), align, valign, colspan, name);
297            }
298    
299            public void addText(
300                    String align, String valign, int colspan, String name,
301                    PortletURL portletURL) {
302    
303                    if (portletURL == null) {
304                            addText(align, valign, colspan, name);
305                    }
306                    else {
307                            addText(align, valign, colspan, name, portletURL.toString());
308                    }
309            }
310    
311            public void addText(
312                    String align, String valign, int colspan, String name, String href) {
313    
314                    addText(_searchEntries.size(), align, valign, colspan, name, href);
315            }
316    
317            public void addText(String align, String valign, String name) {
318                    addText(
319                            _searchEntries.size(), align, valign, SearchEntry.DEFAULT_COLSPAN,
320                            name);
321            }
322    
323            public void addText(
324                    String align, String valign, String name, PortletURL portletURL) {
325    
326                    addText(
327                            align, valign, SearchEntry.DEFAULT_COLSPAN, name, portletURL);
328            }
329    
330            public void addText(String align, String valign, String name, String href) {
331                    addText(
332                            _searchEntries.size(), align, valign, SearchEntry.DEFAULT_COLSPAN,
333                            name, href);
334            }
335    
336            public void addText(TextSearchEntry searchEntry) {
337                    if (_restricted) {
338                            searchEntry.setHref(null);
339                    }
340    
341                    _searchEntries.add(_searchEntries.size(), searchEntry);
342            }
343    
344            public String getClassHoverName() {
345                    return _classHoverName;
346            }
347    
348            public String getClassName() {
349                    return _className;
350            }
351    
352            public List<SearchEntry> getEntries() {
353                    return _searchEntries;
354            }
355    
356            public Object getObject() {
357                    return _obj;
358            }
359    
360            public Object getParameter(String param) {
361                    if (_params == null) {
362                            _params = new HashMap<String, Object>();
363                    }
364    
365                    return _params.get(param);
366            }
367    
368            public int getPos() {
369                    return _pos;
370            }
371    
372            public String getPrimaryKey() {
373                    return _primaryKey;
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 setObject(Object obj) {
405                    _obj = obj;
406            }
407    
408            public void setParameter(String param, Object value) {
409                    if (_params == null) {
410                            _params = new HashMap<String, Object>();
411                    }
412    
413                    _params.put(param, value);
414            }
415    
416            public void setPrimaryKey(String primaryKey) {
417                    _primaryKey = primaryKey;
418            }
419    
420            public void setRestricted(boolean restricted) {
421                    _restricted = restricted;
422            }
423    
424            public void setSkip(boolean skip) {
425                    _skip = skip;
426            }
427    
428            private boolean _bold;
429            private String _classHoverName;
430            private String _className;
431            private List<SearchEntry> _searchEntries;
432            private Object _obj;
433            private Map<String, Object> _params;
434            private int _pos;
435            private String _primaryKey;
436            private boolean _restricted;
437            private boolean _skip;
438    
439    }