25
25
* Deserializer class that can deserialize instances of
26
26
* specified Enum class from Strings and Integers.
27
27
*/
28
- @ JacksonStdImpl // was missing until 2.6
28
+ @ JacksonStdImpl
29
29
public class EnumDeserializer
30
30
extends StdScalarDeserializer <Object >
31
31
implements ContextualDeserializer
@@ -79,9 +79,10 @@ public EnumDeserializer(EnumResolver byNameResolver, Boolean caseInsensitive)
79
79
}
80
80
81
81
/**
82
- * @since 2.9
82
+ * @since 2.15
83
83
*/
84
- protected EnumDeserializer (EnumDeserializer base , Boolean caseInsensitive , Boolean useDefaultValueForUnknownEnum , Boolean useNullForUnknownEnum )
84
+ protected EnumDeserializer (EnumDeserializer base , Boolean caseInsensitive ,
85
+ Boolean useDefaultValueForUnknownEnum , Boolean useNullForUnknownEnum )
85
86
{
86
87
super (base );
87
88
_lookupByName = base ._lookupByName ;
@@ -93,6 +94,15 @@ protected EnumDeserializer(EnumDeserializer base, Boolean caseInsensitive, Boole
93
94
_useNullForUnknownEnum = useNullForUnknownEnum ;
94
95
}
95
96
97
+ /**
98
+ * @since 2.9
99
+ * @deprecated Since 2.15
100
+ */
101
+ @ Deprecated
102
+ protected EnumDeserializer (EnumDeserializer base , Boolean caseInsensitive ) {
103
+ this (base , caseInsensitive , null , null );
104
+ }
105
+
96
106
/**
97
107
* @deprecated Since 2.9
98
108
*/
@@ -150,17 +160,28 @@ public static JsonDeserializer<?> deserializerForNoArgsCreator(DeserializationCo
150
160
}
151
161
152
162
/**
153
- * @since 2.9
163
+ * @since 2.15
154
164
*/
155
- public EnumDeserializer withResolved (Boolean caseInsensitive , Boolean useDefaultValueForUnknownEnum , Boolean useNullForUnknownEnum ) {
165
+ public EnumDeserializer withResolved (Boolean caseInsensitive ,
166
+ Boolean useDefaultValueForUnknownEnum , Boolean useNullForUnknownEnum ) {
156
167
if (Objects .equals (_caseInsensitive , caseInsensitive )
157
168
&& Objects .equals (_useDefaultValueForUnknownEnum , useDefaultValueForUnknownEnum )
158
169
&& Objects .equals (_useNullForUnknownEnum , useNullForUnknownEnum )) {
159
170
return this ;
160
171
}
161
172
return new EnumDeserializer (this , caseInsensitive , useDefaultValueForUnknownEnum , useNullForUnknownEnum );
162
173
}
163
-
174
+
175
+ /**
176
+ * @since 2.9
177
+ * @deprecated Since 2.15
178
+ */
179
+ @ Deprecated
180
+ public EnumDeserializer withResolved (Boolean caseInsensitive ) {
181
+ return withResolved (caseInsensitive ,
182
+ _useDefaultValueForUnknownEnum , _useNullForUnknownEnum );
183
+ }
184
+
164
185
@ Override // since 2.9
165
186
public JsonDeserializer <?> createContextual (DeserializationContext ctxt ,
166
187
BeanProperty property ) throws JsonMappingException
@@ -391,12 +412,14 @@ protected CompactStringObjectMap _getToStringLookup(DeserializationContext ctxt)
391
412
return lookup ;
392
413
}
393
414
394
- private boolean useNullForUnknownEnum (DeserializationContext ctxt ) {
415
+ // @since 2.15
416
+ protected boolean useNullForUnknownEnum (DeserializationContext ctxt ) {
395
417
return Boolean .TRUE .equals (_useNullForUnknownEnum )
396
418
|| ctxt .isEnabled (DeserializationFeature .READ_UNKNOWN_ENUM_VALUES_AS_NULL );
397
419
}
398
420
399
- private boolean useDefaultValueForUnknownEnum (DeserializationContext ctxt ) {
421
+ // @since 2.15
422
+ protected boolean useDefaultValueForUnknownEnum (DeserializationContext ctxt ) {
400
423
return (_enumDefaultValue != null )
401
424
&& (Boolean .TRUE .equals (_useDefaultValueForUnknownEnum )
402
425
|| ctxt .isEnabled (DeserializationFeature .READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE ));
0 commit comments