extensions/net.sf.basedb.reggie/trunk/src/net/sf/basedb/reggie/converter/StringToDateConverter.java

Code
Comments
Other
Rev Date Author Line
1333 05 Apr 11 nicklas 1 package net.sf.basedb.reggie.converter;
1333 05 Apr 11 nicklas 2
1333 05 Apr 11 nicklas 3 import java.text.DateFormat;
1333 05 Apr 11 nicklas 4 import java.text.ParseException;
1333 05 Apr 11 nicklas 5 import java.util.Date;
1333 05 Apr 11 nicklas 6
7024 07 Feb 23 nicklas 7 import org.apache.commons.lang3.time.FastDateFormat;
7024 07 Feb 23 nicklas 8
1333 05 Apr 11 nicklas 9 /**
1333 05 Apr 11 nicklas 10   Value converter implementation for converting strings with date/time information
7024 07 Feb 23 nicklas 11   to actual date objects. The instance is configured with a {@link FastDateFormat} object 
1333 05 Apr 11 nicklas 12   which does the actual conversion. See {@link DateFormat#parse(String)}.
1333 05 Apr 11 nicklas 13   @author nicklas
7024 07 Feb 23 nicklas 14   @since 1.2, 4.44
1333 05 Apr 11 nicklas 15 */
1333 05 Apr 11 nicklas 16 public class StringToDateConverter 
1333 05 Apr 11 nicklas 17   implements ValueConverter<String, Date> 
1333 05 Apr 11 nicklas 18 {
1333 05 Apr 11 nicklas 19
7024 07 Feb 23 nicklas 20   private final FastDateFormat fastDateFormat;
1333 05 Apr 11 nicklas 21   
1333 05 Apr 11 nicklas 22   /**
1333 05 Apr 11 nicklas 23     Create a new string-to-date converter.
1333 05 Apr 11 nicklas 24     @param dateFormat The formatter object used for the actual conversion
1333 05 Apr 11 nicklas 25   */
7024 07 Feb 23 nicklas 26   public StringToDateConverter(FastDateFormat dateFormat)
1333 05 Apr 11 nicklas 27   {
7024 07 Feb 23 nicklas 28     this.fastDateFormat = dateFormat;
1333 05 Apr 11 nicklas 29   }
1333 05 Apr 11 nicklas 30   
1333 05 Apr 11 nicklas 31   /*
1333 05 Apr 11 nicklas 32     From the ValueConverter interface
1333 05 Apr 11 nicklas 33     ---------------------------------
1333 05 Apr 11 nicklas 34   */
1333 05 Apr 11 nicklas 35   @Override
1333 05 Apr 11 nicklas 36   public Date convert(String value) 
1333 05 Apr 11 nicklas 37   {
1333 05 Apr 11 nicklas 38     try
1333 05 Apr 11 nicklas 39     {
7024 07 Feb 23 nicklas 40       return value == null || "".equals(value) ? null : fastDateFormat.parse(value);
1333 05 Apr 11 nicklas 41     }
1333 05 Apr 11 nicklas 42     catch (ParseException ex)
1333 05 Apr 11 nicklas 43     {
1333 05 Apr 11 nicklas 44       throw new RuntimeException(ex);
1333 05 Apr 11 nicklas 45     }
1333 05 Apr 11 nicklas 46   }
1333 05 Apr 11 nicklas 47   // ------------------------------------
1333 05 Apr 11 nicklas 48   
1333 05 Apr 11 nicklas 49 }