1   /**
2    * Copyright (c) 2000-2009 Liferay, Inc. All rights reserved.
3    *
4    * The contents of this file are subject to the terms of the Liferay Enterprise
5    * Subscription License ("License"). You may not use this file except in
6    * compliance with the License. You can obtain a copy of the License by
7    * contacting Liferay, Inc. See the License for the specific language governing
8    * permissions and limitations under the License, including but not limited to
9    * distribution rights of the Software.
10   *
11   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
12   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
13   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
14   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
15   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
16   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
17   * SOFTWARE.
18   */
19  
20  package com.liferay.portal.kernel.dao.search;
21  
22  import com.liferay.portal.kernel.util.CalendarFactoryUtil;
23  import com.liferay.portal.kernel.util.DateUtil;
24  import com.liferay.portal.kernel.util.GetterUtil;
25  import com.liferay.portal.kernel.util.ParamUtil;
26  import com.liferay.portal.kernel.util.StringPool;
27  import com.liferay.portal.kernel.util.Validator;
28  
29  import java.text.DateFormat;
30  
31  import java.util.Calendar;
32  
33  import javax.portlet.PortletRequest;
34  
35  import javax.servlet.http.HttpServletRequest;
36  
37  /**
38   * <a href="DAOParamUtil.java.html"><b><i>View Source</i></b></a>
39   *
40   * @author Brian Wing Shun Chan
41   *
42   */
43  public class DAOParamUtil {
44  
45      // Servlet Request
46  
47      public static boolean getBoolean(HttpServletRequest request, String param) {
48          return GetterUtil.getBoolean(getString(request, param));
49      }
50  
51      public static int getInteger(HttpServletRequest request, String param) {
52          return GetterUtil.getInteger(getString(request, param));
53      }
54  
55      public static String getISODate(HttpServletRequest request, String param) {
56          int month = ParamUtil.getInteger(request, param + "Month");
57          int day = ParamUtil.getInteger(request, param + "Day");
58          int year = ParamUtil.getInteger(request, param + "Year");
59          int hour = ParamUtil.getInteger(request, param + "Hour", -1);
60          int minute = ParamUtil.getInteger(request, param + "Minute", -1);
61          int amPm = ParamUtil.getInteger(request, param + "AmPm");
62  
63          if ((month >= 0) && (day > 0) && (year > 0)) {
64              Calendar cal = CalendarFactoryUtil.getCalendar();
65  
66              if ((hour == -1) || (minute == -1)) {
67                  cal.set(year, month, day);
68              }
69              else {
70                  if (amPm == Calendar.PM) {
71                      hour += 12;
72                  }
73  
74                  cal.set(year, month, day, hour, minute, 0);
75              }
76  
77              DateFormat isoFormat = DateUtil.getISOFormat();
78  
79              return isoFormat.format(cal.getTime());
80          }
81          else {
82              return null;
83          }
84      }
85  
86      public static String getLike(HttpServletRequest request, String param) {
87          return getLike(request, param, null, true);
88      }
89  
90      public static String getLike(
91          HttpServletRequest request, String param, String defaultValue) {
92  
93          return getLike(request, param, defaultValue, true);
94      }
95  
96      public static String getLike(
97          HttpServletRequest request, String param, boolean toLowerCase) {
98  
99          return getLike(request, param, null, toLowerCase);
100     }
101 
102     public static String getLike(
103         HttpServletRequest request, String param, String defaultValue,
104         boolean toLowerCase) {
105 
106         String value = request.getParameter(param);
107 
108         if (value != null) {
109             value = value.trim();
110 
111             if (toLowerCase) {
112                 value = value.toLowerCase();
113             }
114         }
115 
116         if (Validator.isNull(value)) {
117             value = defaultValue;
118         }
119         else {
120             value = StringPool.PERCENT + value + StringPool.PERCENT;
121         }
122 
123         return value;
124     }
125 
126     public static long getLong(HttpServletRequest request, String param) {
127         return GetterUtil.getLong(getString(request, param));
128     }
129 
130     public static short getShort(HttpServletRequest request, String param) {
131         return GetterUtil.getShort(getString(request, param));
132     }
133 
134     public static String getString(HttpServletRequest request, String param) {
135         String value = ParamUtil.getString(request, param);
136 
137         if (Validator.isNull(value)) {
138             return null;
139         }
140         else {
141             return value;
142         }
143     }
144 
145     // Portlet Request
146 
147     public static boolean getBoolean(
148         PortletRequest portletRequest, String param) {
149 
150         return GetterUtil.getBoolean(getString(portletRequest, param));
151     }
152 
153     public static int getInteger(PortletRequest portletRequest, String param) {
154         return GetterUtil.getInteger(getString(portletRequest, param));
155     }
156 
157     public static String getISODate(
158         PortletRequest portletRequest, String param) {
159 
160         int month = ParamUtil.getInteger(portletRequest, param + "Month");
161         int day = ParamUtil.getInteger(portletRequest, param + "Day");
162         int year = ParamUtil.getInteger(portletRequest, param + "Year");
163         int hour = ParamUtil.getInteger(portletRequest, param + "Hour", -1);
164         int minute = ParamUtil.getInteger(portletRequest, param + "Minute", -1);
165         int amPm = ParamUtil.getInteger(portletRequest, param + "AmPm");
166 
167         if ((month >= 0) && (day > 0) && (year > 0)) {
168             Calendar cal = CalendarFactoryUtil.getCalendar();
169 
170             if ((hour == -1) || (minute == -1)) {
171                 cal.set(year, month, day);
172             }
173             else {
174                 if (amPm == Calendar.PM) {
175                     hour += 12;
176                 }
177 
178                 cal.set(year, month, day, hour, minute, 0);
179             }
180 
181             DateFormat isoFormat = DateUtil.getISOFormat();
182 
183             return isoFormat.format(cal.getTime());
184         }
185         else {
186             return null;
187         }
188     }
189 
190     public static String getLike(PortletRequest portletRequest, String param) {
191         return getLike(portletRequest, param, null, true);
192     }
193 
194     public static String getLike(
195         PortletRequest portletRequest, String param, String defaultValue) {
196 
197         return getLike(portletRequest, param, defaultValue, true);
198     }
199 
200     public static String getLike(
201         PortletRequest portletRequest, String param, boolean toLowerCase) {
202 
203         return getLike(portletRequest, param, null, toLowerCase);
204     }
205 
206     public static String getLike(
207         PortletRequest portletRequest, String param, String defaultValue,
208         boolean toLowerCase) {
209 
210         String value = portletRequest.getParameter(param);
211 
212         if (value != null) {
213             value = value.trim();
214 
215             if (toLowerCase) {
216                 value = value.toLowerCase();
217             }
218         }
219 
220         if (Validator.isNull(value)) {
221             value = defaultValue;
222         }
223         else {
224             value = StringPool.PERCENT + value + StringPool.PERCENT;
225         }
226 
227         return value;
228     }
229 
230     public static long getLong(PortletRequest portletRequest, String param) {
231         return GetterUtil.getLong(getString(portletRequest, param));
232     }
233 
234     public static short getShort(PortletRequest portletRequest, String param) {
235         return GetterUtil.getShort(getString(portletRequest, param));
236     }
237 
238     public static String getString(
239         PortletRequest portletRequest, String param) {
240 
241         String value = ParamUtil.getString(portletRequest, param);
242 
243         if (Validator.isNull(value)) {
244             return null;
245         }
246         else {
247             return value;
248         }
249     }
250 
251 }