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