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 |
Value converter implementation for converting strings with date/time information |
7036 |
10 Feb 23 |
nicklas |
to actual date objects. The instance is configured with a {@link FastDateFormat} object |
4395 |
13 Mar 17 |
nicklas |
which does the actual conversion. See {@link DateFormat#parse(String)}. |
4395 |
13 Mar 17 |
nicklas |
@author nicklas |
4395 |
13 Mar 17 |
nicklas |
@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 |
Create a new string-to-date converter. |
4395 |
13 Mar 17 |
nicklas |
@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 |
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 |
} |