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 package net.smartlab.web.bean;
24
25 import java.text.DateFormat;
26 import java.text.ParseException;
27 import java.util.Locale;
28
29 /**
30 * TODO documentation
31 *
32 * @author rlogiacco
33 */
34 public class DateTimeConverter extends Converter {
35
36 private int date;
37
38 private int time;
39
40
41 /**
42 * TODO documentation
43 *
44 * @param type
45 */
46 public DateTimeConverter() {
47 this(DateFormat.SHORT, DateFormat.SHORT);
48 }
49
50 /**
51 * TODO documentation
52 *
53 * @param type
54 * @param date
55 * @param time
56 */
57 public DateTimeConverter(int date, int time) {
58 this.date = date;
59 this.time = time;
60 }
61
62 /**
63 * @see net.smartlab.web.bean.Converter#convert(java.lang.Class,
64 * java.lang.Object, java.util.Locale)
65 */
66 public Object convert(Class type, Object value, Locale locale) throws ConversionException {
67 try {
68 if (value.toString().trim().length() > 0) {
69 if (type.equals(java.util.Date.class)) {
70 return DateFormat.getDateTimeInstance(date, time, locale).parse(value.toString());
71 } else if (type.equals(java.sql.Timestamp.class)) {
72 return new java.sql.Timestamp(DateFormat.getDateTimeInstance(date, time, locale).parse(
73 value.toString()).getTime());
74 } else {
75 return DateFormat.getDateTimeInstance(date, time, locale).format(((java.util.Date)value));
76 }
77 } else {
78 return null;
79 }
80 } catch (ParseException pe) {
81 throw new ConversionException("Invalid date " + value.toString(), pe);
82 }
83 }
84 }