@@ -42,27 +42,25 @@ public class DateDeserializers
42
42
43
43
public static JsonDeserializer <?> find (Class <?> rawType , String clsName )
44
44
{
45
- if (!_classNames .contains (clsName )) {
46
- return null ;
47
- }
48
- // Start with the most common type
49
- if (rawType == Calendar .class ) {
50
- return CalendarDeserializer .instance ;
51
- }
52
- if (rawType == java .util .Date .class ) {
53
- return DateDeserializer .instance ;
54
- }
55
- if (rawType == java .sql .Date .class ) {
56
- return SqlDateDeserializer .instance ;
57
- }
58
- if (rawType == Timestamp .class ) {
59
- return TimestampDeserializer .instance ;
60
- }
61
- if (rawType == GregorianCalendar .class ) {
62
- return CalendarDeserializer .gregorianInstance ;
45
+ if (_classNames .contains (clsName )) {
46
+ // Start with the most common type
47
+ if (rawType == Calendar .class ) {
48
+ return new CalendarDeserializer ();
49
+ }
50
+ if (rawType == java .util .Date .class ) {
51
+ return DateDeserializer .instance ;
52
+ }
53
+ if (rawType == java .sql .Date .class ) {
54
+ return new SqlDateDeserializer ();
55
+ }
56
+ if (rawType == Timestamp .class ) {
57
+ return new TimestampDeserializer ();
58
+ }
59
+ if (rawType == GregorianCalendar .class ) {
60
+ return new CalendarDeserializer (GregorianCalendar .class );
61
+ }
63
62
}
64
- // should never occur
65
- throw new IllegalArgumentException ("Internal error: can't find deserializer for " +clsName );
63
+ return null ;
66
64
}
67
65
68
66
/*
@@ -170,12 +168,8 @@ protected java.util.Date _parseDate(JsonParser jp, DeserializationContext ctxt)
170
168
*/
171
169
172
170
@ JacksonStdImpl
173
- public static class CalendarDeserializer
174
- extends DateBasedDeserializer <Calendar >
171
+ public static class CalendarDeserializer extends DateBasedDeserializer <Calendar >
175
172
{
176
- public final static CalendarDeserializer instance = new CalendarDeserializer ();
177
- public final static CalendarDeserializer gregorianInstance = new CalendarDeserializer (GregorianCalendar .class );
178
-
179
173
/**
180
174
* We may know actual expected type; if so, it will be
181
175
* used for instantiation.
@@ -203,8 +197,7 @@ protected CalendarDeserializer withDateFormat(DateFormat df, String formatString
203
197
}
204
198
205
199
@ Override
206
- public Calendar deserialize (JsonParser jp , DeserializationContext ctxt )
207
- throws IOException , JsonProcessingException
200
+ public Calendar deserialize (JsonParser jp , DeserializationContext ctxt ) throws IOException
208
201
{
209
202
Date d = _parseDate (jp , ctxt );
210
203
if (d == null ) {
@@ -234,8 +227,7 @@ public Calendar deserialize(JsonParser jp, DeserializationContext ctxt)
234
227
* {@link DeserializationContext#parseDate} that this basic
235
228
* deserializer calls.
236
229
*/
237
- public static class DateDeserializer
238
- extends DateBasedDeserializer <Date >
230
+ public static class DateDeserializer extends DateBasedDeserializer <Date >
239
231
{
240
232
public final static DateDeserializer instance = new DateDeserializer ();
241
233
@@ -250,9 +242,7 @@ protected DateDeserializer withDateFormat(DateFormat df, String formatString) {
250
242
}
251
243
252
244
@ Override
253
- public java .util .Date deserialize (JsonParser jp , DeserializationContext ctxt )
254
- throws IOException , JsonProcessingException
255
- {
245
+ public java .util .Date deserialize (JsonParser jp , DeserializationContext ctxt ) throws IOException {
256
246
return _parseDate (jp , ctxt );
257
247
}
258
248
}
@@ -264,8 +254,6 @@ public java.util.Date deserialize(JsonParser jp, DeserializationContext ctxt)
264
254
public static class SqlDateDeserializer
265
255
extends DateBasedDeserializer <java .sql .Date >
266
256
{
267
- public final static SqlDateDeserializer instance = new SqlDateDeserializer ();
268
-
269
257
public SqlDateDeserializer () { super (java .sql .Date .class ); }
270
258
public SqlDateDeserializer (SqlDateDeserializer src , DateFormat df , String formatString ) {
271
259
super (src , df , formatString );
@@ -277,9 +265,7 @@ protected SqlDateDeserializer withDateFormat(DateFormat df, String formatString)
277
265
}
278
266
279
267
@ Override
280
- public java .sql .Date deserialize (JsonParser jp , DeserializationContext ctxt )
281
- throws IOException , JsonProcessingException
282
- {
268
+ public java .sql .Date deserialize (JsonParser jp , DeserializationContext ctxt ) throws IOException {
283
269
Date d = _parseDate (jp , ctxt );
284
270
return (d == null ) ? null : new java .sql .Date (d .getTime ());
285
271
}
@@ -292,11 +278,8 @@ public java.sql.Date deserialize(JsonParser jp, DeserializationContext ctxt)
292
278
* {@link DeserializationContext#parseDate} that this basic
293
279
* deserializer calls.
294
280
*/
295
- public static class TimestampDeserializer
296
- extends DateBasedDeserializer <Timestamp >
281
+ public static class TimestampDeserializer extends DateBasedDeserializer <Timestamp >
297
282
{
298
- public final static TimestampDeserializer instance = new TimestampDeserializer ();
299
-
300
283
public TimestampDeserializer () { super (Timestamp .class ); }
301
284
public TimestampDeserializer (TimestampDeserializer src , DateFormat df , String formatString ) {
302
285
super (src , df , formatString );
@@ -308,8 +291,7 @@ protected TimestampDeserializer withDateFormat(DateFormat df, String formatStrin
308
291
}
309
292
310
293
@ Override
311
- public java .sql .Timestamp deserialize (JsonParser jp , DeserializationContext ctxt )
312
- throws IOException , JsonProcessingException
294
+ public java .sql .Timestamp deserialize (JsonParser jp , DeserializationContext ctxt ) throws IOException
313
295
{
314
296
return new Timestamp (_parseDate (jp , ctxt ).getTime ());
315
297
}
0 commit comments