Skip to content

Commit cb5bc2d

Browse files
committed
and still more refactoring
1 parent f6bcef7 commit cb5bc2d

File tree

1 file changed

+25
-43
lines changed

1 file changed

+25
-43
lines changed

src/main/java/com/fasterxml/jackson/databind/deser/std/DateDeserializers.java

Lines changed: 25 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -42,27 +42,25 @@ public class DateDeserializers
4242

4343
public static JsonDeserializer<?> find(Class<?> rawType, String clsName)
4444
{
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+
}
6362
}
64-
// should never occur
65-
throw new IllegalArgumentException("Internal error: can't find deserializer for "+clsName);
63+
return null;
6664
}
6765

6866
/*
@@ -170,12 +168,8 @@ protected java.util.Date _parseDate(JsonParser jp, DeserializationContext ctxt)
170168
*/
171169

172170
@JacksonStdImpl
173-
public static class CalendarDeserializer
174-
extends DateBasedDeserializer<Calendar>
171+
public static class CalendarDeserializer extends DateBasedDeserializer<Calendar>
175172
{
176-
public final static CalendarDeserializer instance = new CalendarDeserializer();
177-
public final static CalendarDeserializer gregorianInstance = new CalendarDeserializer(GregorianCalendar.class);
178-
179173
/**
180174
* We may know actual expected type; if so, it will be
181175
* used for instantiation.
@@ -203,8 +197,7 @@ protected CalendarDeserializer withDateFormat(DateFormat df, String formatString
203197
}
204198

205199
@Override
206-
public Calendar deserialize(JsonParser jp, DeserializationContext ctxt)
207-
throws IOException, JsonProcessingException
200+
public Calendar deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException
208201
{
209202
Date d = _parseDate(jp, ctxt);
210203
if (d == null) {
@@ -234,8 +227,7 @@ public Calendar deserialize(JsonParser jp, DeserializationContext ctxt)
234227
* {@link DeserializationContext#parseDate} that this basic
235228
* deserializer calls.
236229
*/
237-
public static class DateDeserializer
238-
extends DateBasedDeserializer<Date>
230+
public static class DateDeserializer extends DateBasedDeserializer<Date>
239231
{
240232
public final static DateDeserializer instance = new DateDeserializer();
241233

@@ -250,9 +242,7 @@ protected DateDeserializer withDateFormat(DateFormat df, String formatString) {
250242
}
251243

252244
@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 {
256246
return _parseDate(jp, ctxt);
257247
}
258248
}
@@ -264,8 +254,6 @@ public java.util.Date deserialize(JsonParser jp, DeserializationContext ctxt)
264254
public static class SqlDateDeserializer
265255
extends DateBasedDeserializer<java.sql.Date>
266256
{
267-
public final static SqlDateDeserializer instance = new SqlDateDeserializer();
268-
269257
public SqlDateDeserializer() { super(java.sql.Date.class); }
270258
public SqlDateDeserializer(SqlDateDeserializer src, DateFormat df, String formatString) {
271259
super(src, df, formatString);
@@ -277,9 +265,7 @@ protected SqlDateDeserializer withDateFormat(DateFormat df, String formatString)
277265
}
278266

279267
@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 {
283269
Date d = _parseDate(jp, ctxt);
284270
return (d == null) ? null : new java.sql.Date(d.getTime());
285271
}
@@ -292,11 +278,8 @@ public java.sql.Date deserialize(JsonParser jp, DeserializationContext ctxt)
292278
* {@link DeserializationContext#parseDate} that this basic
293279
* deserializer calls.
294280
*/
295-
public static class TimestampDeserializer
296-
extends DateBasedDeserializer<Timestamp>
281+
public static class TimestampDeserializer extends DateBasedDeserializer<Timestamp>
297282
{
298-
public final static TimestampDeserializer instance = new TimestampDeserializer();
299-
300283
public TimestampDeserializer() { super(Timestamp.class); }
301284
public TimestampDeserializer(TimestampDeserializer src, DateFormat df, String formatString) {
302285
super(src, df, formatString);
@@ -308,8 +291,7 @@ protected TimestampDeserializer withDateFormat(DateFormat df, String formatStrin
308291
}
309292

310293
@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
313295
{
314296
return new Timestamp(_parseDate(jp, ctxt).getTime());
315297
}

0 commit comments

Comments
 (0)