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

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