Skip to content

Commit 4113a82

Browse files
committed
Minor clean up, add release notes for #3637
1 parent 678f31c commit 4113a82

File tree

4 files changed

+40
-9
lines changed

4 files changed

+40
-9
lines changed

release-notes/CREDITS-2.x

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1554,3 +1554,8 @@ Sim Yih Tsern (yihtsern@github)
15541554
(2.15.0)
15551555
* Contributed fix for #3342: `JsonTypeInfo.As.EXTERNAL_PROPERTY` does not work with record wrappers
15561556
(2.15.0)
1557+
1558+
Ajay Siwach (Siwach16@github)
1559+
* Contributed #3637: Add enum features into `@JsonFormat.Feature`
1560+
(2.15.0)
1561+

release-notes/VERSION-2.x

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ Project: jackson-databind
1616
(fix contributed by Sim Y-T)
1717
#3342: `JsonTypeInfo.As.EXTERNAL_PROPERTY` does not work with record wrappers
1818
(fix contributed by Sim Y-T)
19+
#3637: Add enum features into `@JsonFormat.Feature`
20+
(requested by @Anatoly4444)
21+
(fix contributed by Ajay S)
1922
#3654: Infer `@JsonCreator(mode = Mode.DELEGATING)` from use of `@JsonValue`)
2023
#3676: Allow use of `@JsonCreator(mode = Mode.PROPERTIES)` creator for POJOs
2124
with"empty String" coercion

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

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
* Deserializer class that can deserialize instances of
2626
* specified Enum class from Strings and Integers.
2727
*/
28-
@JacksonStdImpl // was missing until 2.6
28+
@JacksonStdImpl
2929
public class EnumDeserializer
3030
extends StdScalarDeserializer<Object>
3131
implements ContextualDeserializer
@@ -79,9 +79,10 @@ public EnumDeserializer(EnumResolver byNameResolver, Boolean caseInsensitive)
7979
}
8080

8181
/**
82-
* @since 2.9
82+
* @since 2.15
8383
*/
84-
protected EnumDeserializer(EnumDeserializer base, Boolean caseInsensitive, Boolean useDefaultValueForUnknownEnum, Boolean useNullForUnknownEnum)
84+
protected EnumDeserializer(EnumDeserializer base, Boolean caseInsensitive,
85+
Boolean useDefaultValueForUnknownEnum, Boolean useNullForUnknownEnum)
8586
{
8687
super(base);
8788
_lookupByName = base._lookupByName;
@@ -93,6 +94,15 @@ protected EnumDeserializer(EnumDeserializer base, Boolean caseInsensitive, Boole
9394
_useNullForUnknownEnum = useNullForUnknownEnum;
9495
}
9596

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+
96106
/**
97107
* @deprecated Since 2.9
98108
*/
@@ -150,17 +160,28 @@ public static JsonDeserializer<?> deserializerForNoArgsCreator(DeserializationCo
150160
}
151161

152162
/**
153-
* @since 2.9
163+
* @since 2.15
154164
*/
155-
public EnumDeserializer withResolved(Boolean caseInsensitive, Boolean useDefaultValueForUnknownEnum, Boolean useNullForUnknownEnum) {
165+
public EnumDeserializer withResolved(Boolean caseInsensitive,
166+
Boolean useDefaultValueForUnknownEnum, Boolean useNullForUnknownEnum) {
156167
if (Objects.equals(_caseInsensitive, caseInsensitive)
157168
&& Objects.equals(_useDefaultValueForUnknownEnum, useDefaultValueForUnknownEnum)
158169
&& Objects.equals(_useNullForUnknownEnum, useNullForUnknownEnum)) {
159170
return this;
160171
}
161172
return new EnumDeserializer(this, caseInsensitive, useDefaultValueForUnknownEnum, useNullForUnknownEnum);
162173
}
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+
164185
@Override // since 2.9
165186
public JsonDeserializer<?> createContextual(DeserializationContext ctxt,
166187
BeanProperty property) throws JsonMappingException
@@ -391,12 +412,14 @@ protected CompactStringObjectMap _getToStringLookup(DeserializationContext ctxt)
391412
return lookup;
392413
}
393414

394-
private boolean useNullForUnknownEnum(DeserializationContext ctxt) {
415+
// @since 2.15
416+
protected boolean useNullForUnknownEnum(DeserializationContext ctxt) {
395417
return Boolean.TRUE.equals(_useNullForUnknownEnum)
396418
|| ctxt.isEnabled(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL);
397419
}
398420

399-
private boolean useDefaultValueForUnknownEnum(DeserializationContext ctxt) {
421+
// @since 2.15
422+
protected boolean useDefaultValueForUnknownEnum(DeserializationContext ctxt) {
400423
return (_enumDefaultValue != null)
401424
&& (Boolean.TRUE.equals(_useDefaultValueForUnknownEnum)
402425
|| ctxt.isEnabled(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE));

src/test/java/com/fasterxml/jackson/databind/deser/enums/EnumAltIdTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package com.fasterxml.jackson.databind.deser.enums;
22

3-
import com.fasterxml.jackson.core.JsonProcessingException;
43
import java.io.IOException;
54
import java.util.EnumSet;
65

76
import com.fasterxml.jackson.annotation.JsonAlias;
87
import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
98
import com.fasterxml.jackson.annotation.JsonFormat;
9+
1010
import com.fasterxml.jackson.core.type.TypeReference;
1111
import com.fasterxml.jackson.databind.BaseMapTest;
1212
import com.fasterxml.jackson.databind.DeserializationFeature;

0 commit comments

Comments
 (0)