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

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