1 /*
2 * The SmartWeb Framework
3 * Copyright (C) 2004-2006
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * For further informations on the SmartWeb Framework please visit
20 *
21 * http://smartweb.sourceforge.net
22 */
23
24 package net.smartlab.web.bean;
25
26 import java.text.DateFormat;
27 import java.text.ParseException;
28 import java.util.Locale;
29
30 /**
31 * TODO documentation
32 *
33 * @author rlogiacco
34 */
35 public class DateConverter extends Converter {
36
37 /**
38 * TODO documentation
39 */
40 protected int format;
41
42 /**
43 * TODO documentation
44 */
45 public DateConverter() {
46 this(DateFormat.SHORT);
47 }
48
49 /**
50 * TODO documentation
51 *
52 * @param format
53 */
54 public DateConverter(int format) {
55 this.format = format;
56 }
57
58 /**
59 * @see net.smartlab.web.bean.Converter#convert(java.lang.Class,
60 * java.lang.Object, java.util.Locale)
61 */
62 public Object convert(Class type, Object value, Locale locale) throws ConversionException {
63 try {
64 if (value.toString().trim().length() > 0) {
65 if (type.equals(java.sql.Date.class)) {
66 return new java.sql.Date(DateFormat.getDateInstance(format, locale).parse(value.toString()).getTime());
67 } else if (type.equals(java.util.Date.class)) {
68 return DateFormat.getDateInstance(format, locale).parse(value.toString());
69 } else {
70 return DateFormat.getDateInstance(format, locale).format(((java.util.Date)value));
71 }
72 } else {
73 return null;
74 }
75 } catch (ParseException pe) {
76 throw new ConversionException("Invalid date " + value.toString(), pe);
77 }
78 }
79 }