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 com.liferay.portal.kernel.bean.BeanPropertiesUtil;
018    import com.liferay.portal.kernel.util.HtmlUtil;
019    import com.liferay.portal.kernel.util.StringBundler;
020    import com.liferay.portal.kernel.util.Validator;
021    
022    import java.util.Map;
023    
024    import javax.servlet.jsp.JspWriter;
025    import javax.servlet.jsp.PageContext;
026    
027    /**
028     * @author Brian Wing Shun Chan
029     */
030    public class TextSearchEntry extends SearchEntry {
031    
032            public TextSearchEntry() {
033            }
034    
035            /**
036             * @deprecated
037             */
038            public TextSearchEntry(String align, String valign, String name) {
039                    this(align, valign, DEFAULT_COLSPAN, name, null);
040            }
041    
042            /**
043             * @deprecated
044             */
045            public TextSearchEntry(
046                    String align, String valign, int colspan, String name) {
047    
048                    this(align, valign, colspan, name, null);
049            }
050    
051            /**
052             * @deprecated
053             */
054            public TextSearchEntry(
055                    String align, String valign, String name, String href) {
056    
057                    this(align, valign, DEFAULT_COLSPAN, name, href, null, null);
058            }
059    
060            /**
061             * @deprecated
062             */
063            public TextSearchEntry(
064                    String align, String valign, int colspan, String name, String href) {
065    
066                    this(align, valign, colspan, name, href, null, null);
067            }
068    
069            /**
070             * @deprecated
071             */
072            public TextSearchEntry(
073                    String align, String valign, String name, String href, String target,
074                    String title) {
075    
076                    this(align, valign, DEFAULT_COLSPAN, name, href, target, title);
077            }
078    
079            /**
080             * @deprecated
081             */
082            public TextSearchEntry(
083                    String align, String valign, int colspan, String name, String href,
084                    String target, String title) {
085    
086                    super(align, valign, colspan);
087    
088                    _name = name;
089                    _href = href;
090                    _target = target;
091                    _title = title;
092            }
093    
094            @Override
095            public Object clone() {
096                    TextSearchEntry textSearchEntry = new TextSearchEntry();
097    
098                    BeanPropertiesUtil.copyProperties(this, textSearchEntry);
099    
100                    return textSearchEntry;
101            }
102    
103            public Map<String, Object> getData() {
104                    return _data;
105            }
106    
107            public String getHref() {
108                    return _href;
109            }
110    
111            public String getName() {
112                    return _name;
113            }
114    
115            public String getTarget() {
116                    return _target;
117            }
118    
119            public String getTitle() {
120                    return _title;
121            }
122    
123            @Override
124            public void print(PageContext pageContext) throws Exception {
125                    if (_href == null) {
126                            pageContext.getOut().print(_name);
127                    }
128                    else {
129                            StringBundler sb = new StringBundler();
130    
131                            sb.append("<a");
132    
133                            if (_data != null) {
134                                    for (Map.Entry<String, Object> entry : _data.entrySet()) {
135                                            String key = entry.getKey();
136                                            String value = String.valueOf(entry.getValue());
137    
138                                            sb.append(" data-");
139                                            sb.append(key);
140                                            sb.append("=\"");
141                                            sb.append(value);
142                                            sb.append("\"");
143                                    }
144                            }
145    
146                            sb.append(" href=\"");
147                            sb.append(HtmlUtil.escape(_href));
148                            sb.append("\"");
149    
150                            if (Validator.isNotNull(_target)) {
151                                    sb.append(" target=\"");
152                                    sb.append(_target);
153                                    sb.append("\"");
154                            }
155    
156                            if (Validator.isNotNull(_title)) {
157                                    sb.append(" title=\"");
158                                    sb.append(_title);
159                                    sb.append("\"");
160                            }
161    
162                            sb.append(">");
163                            sb.append(_name);
164                            sb.append("</a>");
165    
166                            JspWriter jspWriter = pageContext.getOut();
167    
168                            jspWriter.print(sb.toString());
169                    }
170            }
171    
172            public void setData(Map<String,Object> data) {
173                    _data = data;
174            }
175    
176            public void setHref(String href) {
177                    _href = href;
178            }
179    
180            public void setName(String name) {
181                    _name = name;
182            }
183    
184            public void setTarget(String target) {
185                    _target = target;
186            }
187    
188            public void setTitle(String title) {
189                    _title = title;
190            }
191    
192            private Map<String, Object> _data;
193            private String _href;
194            private String _name;
195            private String _target;
196            private String _title;
197    
198    }