View Javadoc

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  }