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.Date;
019    import java.util.HashMap;
020    import java.util.List;
021    import java.util.Map;
022    
023    import javax.portlet.PortletURL;
024    
025    import javax.servlet.ServletContext;
026    import javax.servlet.http.HttpServletRequest;
027    import javax.servlet.http.HttpServletResponse;
028    
029    /**
030     * @author Brian Wing Shun Chan
031     */
032    public class ResultRow {
033    
034            public ResultRow(Object obj, long primaryKey, int pos) {
035                    this(obj, String.valueOf(primaryKey), pos);
036            }
037    
038            public ResultRow(Object obj, long primaryKey, int pos, boolean bold) {
039                    this(obj, String.valueOf(primaryKey), pos, bold);
040            }
041    
042            public ResultRow(Object obj, String primaryKey, int pos) {
043                    this(obj, primaryKey, pos, false);
044            }
045    
046            public ResultRow(Object obj, String primaryKey, int pos, boolean bold) {
047                    this(String.valueOf(pos + 1), obj, primaryKey, pos, bold);
048            }
049    
050            public ResultRow(
051                    String rowId, Object obj, String primaryKey, int pos, boolean bold) {
052    
053                    _rowId = rowId;
054                    _obj = obj;
055                    _primaryKey = primaryKey;
056                    _pos = pos;
057                    _bold = bold;
058                    _searchEntries = new ArrayList<SearchEntry>();
059            }
060    
061            public void addButton(int index, String name, String href) {
062                    addButton(
063                            index, SearchEntry.DEFAULT_ALIGN, SearchEntry.DEFAULT_VALIGN,
064                            SearchEntry.DEFAULT_COLSPAN, name, href);
065            }
066    
067            public void addButton(
068                    int index, String align, String valign, int colspan, String name,
069                    String href) {
070    
071                    if (_restricted) {
072                            href = null;
073                    }
074    
075                    ButtonSearchEntry buttonSearchEntry = new ButtonSearchEntry();
076    
077                    buttonSearchEntry.setAlign(align);
078                    buttonSearchEntry.setColspan(colspan);
079                    buttonSearchEntry.setHref(href);
080                    buttonSearchEntry.setName(name);
081                    buttonSearchEntry.setValign(valign);
082    
083                    _searchEntries.add(index, buttonSearchEntry);
084            }
085    
086            public void addButton(String name, String href) {
087                    addButton(_searchEntries.size(), name, href);
088            }
089    
090            public void addButton(
091                    String align, String valign, int colspan, String name, String href) {
092    
093                    addButton(_searchEntries.size(), align, valign, colspan, name, href);
094            }
095    
096            public void addButton(
097                    String align, String valign, String name, String href) {
098    
099                    addButton(
100                            _searchEntries.size(), align, valign, SearchEntry.DEFAULT_COLSPAN,
101                            name, href);
102            }
103    
104            public void addDate(Date date) {
105                    addDate(_searchEntries.size(), date, null);
106            }
107    
108            public void addDate(Date date, PortletURL portletURL) {
109                    if (portletURL != null) {
110                            addDate(_searchEntries.size(), date, portletURL.toString());
111    
112                    }
113                    else {
114                            addDate(_searchEntries.size(), date, null);
115                    }
116            }
117    
118            public void addDate(Date date, String href) {
119                    addDate(_searchEntries.size(), date, null);
120            }
121    
122            public void addDate(int index, Date date, String href) {
123    
124                    DateSearchEntry dateSearchEntry = new DateSearchEntry();
125    
126                    dateSearchEntry.setAlign(SearchEntry.DEFAULT_ALIGN);
127                    dateSearchEntry.setColspan(SearchEntry.DEFAULT_COLSPAN);
128                    dateSearchEntry.setDate(date);
129                    dateSearchEntry.setHref(href);
130                    dateSearchEntry.setValign(SearchEntry.DEFAULT_VALIGN);
131    
132                    _searchEntries.add(index, dateSearchEntry);
133            }
134    
135            public void addJSP(int index, String path) {
136                    addJSP(
137                            index, SearchEntry.DEFAULT_ALIGN, SearchEntry.DEFAULT_VALIGN,
138                            SearchEntry.DEFAULT_COLSPAN, path);
139            }
140    
141            public void addJSP(
142                    int index, String path, ServletContext servletContext,
143                    HttpServletRequest request, HttpServletResponse response) {
144    
145                    addJSP(
146                            index, SearchEntry.DEFAULT_ALIGN, SearchEntry.DEFAULT_VALIGN,
147                            SearchEntry.DEFAULT_COLSPAN, path, servletContext, request,
148                            response);
149            }
150    
151            public void addJSP(
152                    int index, String align, String valign, int colspan, String path) {
153    
154                    JSPSearchEntry jspSearchEntry = new JSPSearchEntry();
155    
156                    jspSearchEntry.setAlign(align);
157                    jspSearchEntry.setColspan(colspan);
158                    jspSearchEntry.setPath(path);
159                    jspSearchEntry.setValign(valign);
160    
161                    _searchEntries.add(index, jspSearchEntry);
162            }
163    
164            public void addJSP(
165                    int index, String align, String valign, int colspan, String path,
166                    ServletContext servletContext, HttpServletRequest request,
167                    HttpServletResponse response) {
168    
169                    JSPSearchEntry jspSearchEntry = new JSPSearchEntry();
170    
171                    jspSearchEntry.setAlign(align);
172                    jspSearchEntry.setColspan(colspan);
173                    jspSearchEntry.setPath(path);
174                    jspSearchEntry.setRequest(request);
175                    jspSearchEntry.setResponse(response);
176                    jspSearchEntry.setServletContext(servletContext);
177                    jspSearchEntry.setValign(valign);
178    
179                    _searchEntries.add(index, jspSearchEntry);
180            }
181    
182            public void addJSP(String path) {
183                    addJSP(_searchEntries.size(), path);
184            }
185    
186            public void addJSP(
187                    String path, ServletContext servletContext, HttpServletRequest request,
188                    HttpServletResponse response) {
189    
190                    addJSP(_searchEntries.size(), path, servletContext, request, response);
191            }
192    
193            public void addJSP(String align, String valign, int colspan, String path) {
194                    addJSP(_searchEntries.size(), align, valign, colspan, path);
195            }
196    
197            public void addJSP(
198                    String align, String valign, int colspan, String path,
199                    ServletContext servletContext, HttpServletRequest request,
200                    HttpServletResponse response) {
201    
202                    addJSP(
203                            _searchEntries.size(), align, valign, colspan, path, servletContext,
204                            request, response);
205            }
206    
207            public void addJSP(String align, String valign, String path) {
208                    addJSP(
209                            _searchEntries.size(), align, valign, SearchEntry.DEFAULT_COLSPAN,
210                            path);
211            }
212    
213            public void addJSP(
214                    String align, String valign, String path, ServletContext servletContext,
215                    HttpServletRequest request, HttpServletResponse response) {
216    
217                    addJSP(
218                            _searchEntries.size(), align, valign, SearchEntry.DEFAULT_COLSPAN,
219                            path, servletContext, request, response);
220            }
221    
222            public void addSearchEntry(int index, SearchEntry searchEntry) {
223                    _searchEntries.add(index, searchEntry);
224            }
225    
226            public void addSearchEntry(SearchEntry searchEntry) {
227                    _searchEntries.add(searchEntry);
228            }
229    
230            public void addStatus(int status) {
231                    addStatus(_searchEntries.size(), status, 0, null, null);
232            }
233    
234            public void addStatus(
235                    int index, int status, long statusByUserId, Date statusDate,
236                    String href) {
237    
238                    StatusSearchEntry statusSearchEntry = new StatusSearchEntry();
239    
240                    statusSearchEntry.setAlign(SearchEntry.DEFAULT_ALIGN);
241                    statusSearchEntry.setColspan(SearchEntry.DEFAULT_COLSPAN);
242                    statusSearchEntry.setHref(href);
243                    statusSearchEntry.setStatus(status);
244                    statusSearchEntry.setStatusDate(statusDate);
245                    statusSearchEntry.setStatusByUserId(statusByUserId);
246                    statusSearchEntry.setValign(SearchEntry.DEFAULT_VALIGN);
247    
248                    _searchEntries.add(index, statusSearchEntry);
249            }
250    
251            public void addStatus(
252                            int index, int status, String href, ServletContext servletContext,
253                            HttpServletRequest request, HttpServletResponse response) {
254    
255                    StatusSearchEntry statusSearchEntry = new StatusSearchEntry();
256    
257                    statusSearchEntry.setAlign(SearchEntry.DEFAULT_ALIGN);
258                    statusSearchEntry.setColspan(SearchEntry.DEFAULT_COLSPAN);
259                    statusSearchEntry.setHref(href);
260                    statusSearchEntry.setRequest(request);
261                    statusSearchEntry.setResponse(response);
262                    statusSearchEntry.setServletContext(servletContext);
263                    statusSearchEntry.setStatus(status);
264                    statusSearchEntry.setValign(SearchEntry.DEFAULT_VALIGN);
265    
266                    _searchEntries.add(index, statusSearchEntry);
267            }
268    
269            public void addStatus(int status, long statusByUserId, Date statusDate) {
270                    addStatus(
271                            _searchEntries.size(), status, statusByUserId, statusDate, null);
272            }
273    
274            public void addStatus(
275                    int status, long statusByUserId, Date statusDate,
276                    PortletURL portletURL) {
277    
278                    if (portletURL != null) {
279                            addStatus(
280                                    _searchEntries.size(), status, statusByUserId, statusDate,
281                                    portletURL.toString());
282                    }
283                    else {
284                            addStatus(
285                                    _searchEntries.size(), status, statusByUserId, statusDate,
286                                    null);
287                    }
288            }
289    
290            public void addStatus(
291                    int status, long statusByUserId, Date statusDate, String href) {
292    
293                    addStatus(
294                            _searchEntries.size(), status, statusByUserId, statusDate, href);
295            }
296    
297            public void addStatus(int status, PortletURL portletURL) {
298                    if (portletURL != null) {
299                            addStatus(
300                                    _searchEntries.size(), status, 0, null, portletURL.toString());
301    
302                    }
303                    else {
304                            addStatus(_searchEntries.size(), status, 0, null, null);
305                    }
306            }
307    
308            public void addStatus(int status, String href) {
309                    addStatus(_searchEntries.size(), status, 0, null, href);
310            }
311    
312            public void addText(int index, String name) {
313                    addText(
314                            index, SearchEntry.DEFAULT_ALIGN, SearchEntry.DEFAULT_VALIGN,
315                            SearchEntry.DEFAULT_COLSPAN, name);
316            }
317    
318            public void addText(int index, String name, PortletURL portletURL) {
319                    if (portletURL == null) {
320                            addText(index, name);
321                    }
322                    else {
323                            addText(index, name, portletURL.toString());
324                    }
325            }
326    
327            public void addText(int index, String name, String href) {
328                    addText(
329                            index, SearchEntry.DEFAULT_ALIGN, SearchEntry.DEFAULT_VALIGN,
330                            SearchEntry.DEFAULT_COLSPAN, name, href);
331            }
332    
333            public void addText(
334                    int index, String align, String valign, int colspan, String name) {
335    
336                    TextSearchEntry textSearchEntry = new TextSearchEntry();
337    
338                    textSearchEntry.setAlign(align);
339                    textSearchEntry.setColspan(colspan);
340                    textSearchEntry.setName(name);
341                    textSearchEntry.setValign(valign);
342    
343                    _searchEntries.add(index, textSearchEntry);
344            }
345    
346            public void addText(
347                    int index, String align, String valign, int colspan, String name,
348                    PortletURL portletURL) {
349    
350                    if (portletURL == null) {
351                            addText(index, align, valign, colspan, name);
352                    }
353                    else {
354                            addText(index, align, valign, colspan, name, portletURL.toString());
355                    }
356            }
357    
358            public void addText(
359                    int index, String align, String valign, int colspan, String name,
360                    String href) {
361    
362                    if (_restricted) {
363                            href = null;
364                    }
365    
366                    TextSearchEntry textSearchEntry = new TextSearchEntry();
367    
368                    textSearchEntry.setAlign(align);
369                    textSearchEntry.setColspan(colspan);
370                    textSearchEntry.setHref(href);
371                    textSearchEntry.setName(name);
372                    textSearchEntry.setValign(valign);
373    
374                    _searchEntries.add(index, textSearchEntry);
375            }
376    
377            public void addText(int index, TextSearchEntry searchEntry) {
378                    if (_restricted) {
379                            searchEntry.setHref(null);
380                    }
381    
382                    _searchEntries.add(index, searchEntry);
383            }
384    
385            public void addText(String name) {
386                    addText(_searchEntries.size(), name);
387            }
388    
389            public void addText(String name, PortletURL portletURL) {
390                    if (portletURL == null) {
391                            addText(name);
392                    }
393                    else {
394                            addText(name, portletURL.toString());
395                    }
396            }
397    
398            public void addText(String name, String href) {
399                    addText(_searchEntries.size(), name, href);
400            }
401    
402            public void addText(String align, String valign, int colspan, String name) {
403                    addText(_searchEntries.size(), align, valign, colspan, name);
404            }
405    
406            public void addText(
407                    String align, String valign, int colspan, String name,
408                    PortletURL portletURL) {
409    
410                    if (portletURL == null) {
411                            addText(align, valign, colspan, name);
412                    }
413                    else {
414                            addText(align, valign, colspan, name, portletURL.toString());
415                    }
416            }
417    
418            public void addText(
419                    String align, String valign, int colspan, String name, String href) {
420    
421                    addText(_searchEntries.size(), align, valign, colspan, name, href);
422            }
423    
424            public void addText(String align, String valign, String name) {
425                    addText(
426                            _searchEntries.size(), align, valign, SearchEntry.DEFAULT_COLSPAN,
427                            name);
428            }
429    
430            public void addText(
431                    String align, String valign, String name, PortletURL portletURL) {
432    
433                    addText(align, valign, SearchEntry.DEFAULT_COLSPAN, name, portletURL);
434            }
435    
436            public void addText(String align, String valign, String name, String href) {
437                    addText(
438                            _searchEntries.size(), align, valign, SearchEntry.DEFAULT_COLSPAN,
439                            name, href);
440            }
441    
442            public void addText(TextSearchEntry searchEntry) {
443                    if (_restricted) {
444                            searchEntry.setHref(null);
445                    }
446    
447                    _searchEntries.add(_searchEntries.size(), searchEntry);
448            }
449    
450            public String getClassHoverName() {
451                    return _classHoverName;
452            }
453    
454            public String getClassName() {
455                    return _className;
456            }
457    
458            public Map<String, Object> getData() {
459                    return _data;
460            }
461    
462            public List<SearchEntry> getEntries() {
463                    return _searchEntries;
464            }
465    
466            public Object getObject() {
467                    return _obj;
468            }
469    
470            public Object getParameter(String param) {
471                    if (_params == null) {
472                            _params = new HashMap<String, Object>();
473                    }
474    
475                    return _params.get(param);
476            }
477    
478            public int getPos() {
479                    return _pos;
480            }
481    
482            public String getPrimaryKey() {
483                    return _primaryKey;
484            }
485    
486            public String getRowId() {
487                    return _rowId;
488            }
489    
490            public boolean isBold() {
491                    return _bold;
492            }
493    
494            public boolean isRestricted() {
495                    return _restricted;
496            }
497    
498            public boolean isSkip() {
499                    return _skip;
500            }
501    
502            public void removeSearchEntry(int pos) {
503                    _searchEntries.remove(pos);
504            }
505    
506            public void setBold(boolean bold) {
507                    _bold = bold;
508            }
509    
510            public void setClassHoverName(String classHoverName) {
511                    _classHoverName = classHoverName;
512            }
513    
514            public void setClassName(String className) {
515                    _className = className;
516            }
517    
518            public void setData(Map<String, Object> data) {
519                    _data = data;
520            }
521    
522            public void setObject(Object obj) {
523                    _obj = obj;
524            }
525    
526            public void setParameter(String param, Object value) {
527                    if (_params == null) {
528                            _params = new HashMap<String, Object>();
529                    }
530    
531                    _params.put(param, value);
532            }
533    
534            public void setPrimaryKey(String primaryKey) {
535                    _primaryKey = primaryKey;
536            }
537    
538            public void setRestricted(boolean restricted) {
539                    _restricted = restricted;
540            }
541    
542            public void setRowId(String rowId) {
543                    _rowId = rowId;
544            }
545    
546            public void setSkip(boolean skip) {
547                    _skip = skip;
548            }
549    
550            private boolean _bold;
551            private String _classHoverName;
552            private String _className;
553            private Map<String, Object> _data;
554            private Object _obj;
555            private Map<String, Object> _params;
556            private int _pos;
557            private String _primaryKey;
558            private boolean _restricted;
559            private String _rowId;
560            private List<SearchEntry> _searchEntries;
561            private boolean _skip;
562    
563    }