diff options
author | Tatu Saloranta <tatu.saloranta@iki.fi> | 2020-07-24 13:30:34 -0700 |
---|---|---|
committer | Tatu Saloranta <tatu.saloranta@iki.fi> | 2020-07-24 13:30:34 -0700 |
commit | cf948c4fed21c6f1b96f563bbf433e313b566c34 (patch) | |
tree | bcf2f031fc0d64a3064c6e90684d243f84a2a137 | |
parent | b793a30d80c5b77a82c653ff94e9303c97bcd8c5 (diff) | |
download | jackson-databind-cf948c4fed21c6f1b96f563bbf433e313b566c34.tar.gz |
Bit of refactoring wrt #1296, renaming
10 files changed, 21 insertions, 16 deletions
diff --git a/release-notes/CREDITS-2.x b/release-notes/CREDITS-2.x index ac87a0189..9c6ba0ed8 100644 --- a/release-notes/CREDITS-2.x +++ b/release-notes/CREDITS-2.x @@ -1151,6 +1151,11 @@ Mike Gilbode (gilbode@github) * Reported #792: Deserialization Not Working Right with Generic Types and Builders (2.12.0) +Baptiste Pernet (sp4ce@github) + * Contributed #1296 implementation: Add `@JsonIncludeProperties(propertyNames)` (reverse + of `@JsonIgnoreProperties`) + (2.12.0) + Patrick Jungermann (pjungermann@github) * Requested #1852: Allow case insensitive deserialization of String value into `boolean`/`Boolean` (esp for Excel) diff --git a/release-notes/VERSION-2.x b/release-notes/VERSION-2.x index 0fc8a1284..755d8bdca 100644 --- a/release-notes/VERSION-2.x +++ b/release-notes/VERSION-2.x @@ -11,6 +11,8 @@ Project: jackson-databind (reported by gmkll@github) #921: Deserialization Not Working Right with Generic Types and Builders (reported by Mike G; fix contributed by Ville K) +#1296: Add `@JsonIncludeProperties(propertyNames)` (reverse of `@JsonIgnoreProperties`) + (contributed Baptiste P) #1852: Allow case insensitive deserialization of String value into `boolean`/`Boolean` (esp for Excel) (requested by Patrick J) diff --git a/src/main/java/com/fasterxml/jackson/databind/AnnotationIntrospector.java b/src/main/java/com/fasterxml/jackson/databind/AnnotationIntrospector.java index 7f1bbf527..fe90ec543 100644 --- a/src/main/java/com/fasterxml/jackson/databind/AnnotationIntrospector.java +++ b/src/main/java/com/fasterxml/jackson/databind/AnnotationIntrospector.java @@ -280,17 +280,15 @@ public abstract class AnnotationIntrospector /** * Method for finding information about names of properties to included. - *<p> - * NOTE: naming confusing wrt {@link #findPropertyInclusion}, which controls - * inclusion rules for individual properties based on value, as opposed to - * inclusion by name. + * This is typically used to strictly limit properties to include based + * on fully defined set of names ("allow-listing"), as opposed to excluding + * potential properties by exclusion ("deny-listing"). * - * @param ac Annotated class to introspect + * @param ac Annotated entity (Class, acccessor) to introspect * * @since 2.12 */ - public JsonIncludeProperties.Value findPropertyInclusions(MapperConfig<?> config, Annotated ac) - { + public JsonIncludeProperties.Value findPropertyInclusionByName(MapperConfig<?> config, Annotated ac) { return JsonIncludeProperties.Value.all(); } diff --git a/src/main/java/com/fasterxml/jackson/databind/cfg/MapperConfigBase.java b/src/main/java/com/fasterxml/jackson/databind/cfg/MapperConfigBase.java index cda8a925f..da7718a94 100644 --- a/src/main/java/com/fasterxml/jackson/databind/cfg/MapperConfigBase.java +++ b/src/main/java/com/fasterxml/jackson/databind/cfg/MapperConfigBase.java @@ -670,7 +670,7 @@ public abstract class MapperConfigBase<CFG extends ConfigFeature, AnnotatedClass actualClass) { AnnotationIntrospector intr = getAnnotationIntrospector(); - return (intr == null) ? null : intr.findPropertyInclusions(this, actualClass); + return (intr == null) ? null : intr.findPropertyInclusionByName(this, actualClass); } @Override diff --git a/src/main/java/com/fasterxml/jackson/databind/deser/BeanDeserializerBase.java b/src/main/java/com/fasterxml/jackson/databind/deser/BeanDeserializerBase.java index b2c6c3547..b2b84aa79 100644 --- a/src/main/java/com/fasterxml/jackson/databind/deser/BeanDeserializerBase.java +++ b/src/main/java/com/fasterxml/jackson/databind/deser/BeanDeserializerBase.java @@ -808,7 +808,7 @@ public abstract class BeanDeserializerBase contextual = contextual.withIgnoreAllUnknown(true); } } - JsonIncludeProperties.Value inclusions = intr.findPropertyInclusions(ctxt.getConfig(), accessor); + JsonIncludeProperties.Value inclusions = intr.findPropertyInclusionByName(ctxt.getConfig(), accessor); if (inclusions != null) { Set<String> included = inclusions.getIncluded(); Set<String> prev = contextual._includableProps; diff --git a/src/main/java/com/fasterxml/jackson/databind/deser/std/MapDeserializer.java b/src/main/java/com/fasterxml/jackson/databind/deser/std/MapDeserializer.java index b31a2fbc1..3d978f4b6 100644 --- a/src/main/java/com/fasterxml/jackson/databind/deser/std/MapDeserializer.java +++ b/src/main/java/com/fasterxml/jackson/databind/deser/std/MapDeserializer.java @@ -320,7 +320,7 @@ public class MapDeserializer } } } - JsonIncludeProperties.Value inclusions = intr.findPropertyInclusions(ctxt.getConfig(), member); + JsonIncludeProperties.Value inclusions = intr.findPropertyInclusionByName(ctxt.getConfig(), member); if (inclusions != null) { Set<String> includedToAdd = inclusions.getIncluded(); if (includedToAdd != null) { diff --git a/src/main/java/com/fasterxml/jackson/databind/introspect/AnnotationIntrospectorPair.java b/src/main/java/com/fasterxml/jackson/databind/introspect/AnnotationIntrospectorPair.java index 944bce7fa..c2640f80c 100644 --- a/src/main/java/com/fasterxml/jackson/databind/introspect/AnnotationIntrospectorPair.java +++ b/src/main/java/com/fasterxml/jackson/databind/introspect/AnnotationIntrospectorPair.java @@ -127,10 +127,10 @@ public class AnnotationIntrospectorPair } @Override - public JsonIncludeProperties.Value findPropertyInclusions(MapperConfig<?> config, Annotated a) + public JsonIncludeProperties.Value findPropertyInclusionByName(MapperConfig<?> config, Annotated a) { - JsonIncludeProperties.Value v2 = _secondary.findPropertyInclusions(config, a); - JsonIncludeProperties.Value v1 = _primary.findPropertyInclusions(config, a); + JsonIncludeProperties.Value v2 = _secondary.findPropertyInclusionByName(config, a); + JsonIncludeProperties.Value v1 = _primary.findPropertyInclusionByName(config, a); return (v2 == null) // shouldn't occur but ? v1 : v2.withOverrides(v1); } diff --git a/src/main/java/com/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector.java b/src/main/java/com/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector.java index 4a331743f..9706858d5 100644 --- a/src/main/java/com/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector.java +++ b/src/main/java/com/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector.java @@ -309,7 +309,7 @@ public class JacksonAnnotationIntrospector } @Override - public JsonIncludeProperties.Value findPropertyInclusions(MapperConfig<?> config, Annotated a) + public JsonIncludeProperties.Value findPropertyInclusionByName(MapperConfig<?> config, Annotated a) { JsonIncludeProperties v = _findAnnotation(a, JsonIncludeProperties.class); if (v == null) { diff --git a/src/main/java/com/fasterxml/jackson/databind/ser/std/BeanSerializerBase.java b/src/main/java/com/fasterxml/jackson/databind/ser/std/BeanSerializerBase.java index b507646aa..31aa78b91 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ser/std/BeanSerializerBase.java +++ b/src/main/java/com/fasterxml/jackson/databind/ser/std/BeanSerializerBase.java @@ -508,7 +508,7 @@ public abstract class BeanSerializerBase if (ignorals != null) { ignoredProps = ignorals.findIgnoredForSerialization(); } - JsonIncludeProperties.Value inclusions = intr.findPropertyInclusions(config, accessor); + JsonIncludeProperties.Value inclusions = intr.findPropertyInclusionByName(config, accessor); if (inclusions != null) { includedProps = inclusions.getIncluded(); } diff --git a/src/main/java/com/fasterxml/jackson/databind/ser/std/MapSerializer.java b/src/main/java/com/fasterxml/jackson/databind/ser/std/MapSerializer.java index 3c95de962..2711bf92c 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ser/std/MapSerializer.java +++ b/src/main/java/com/fasterxml/jackson/databind/ser/std/MapSerializer.java @@ -518,7 +518,7 @@ public class MapSerializer } } // inclusions - JsonIncludeProperties.Value inclusions = intr.findPropertyInclusions(provider.getConfig(), propertyAcc); + JsonIncludeProperties.Value inclusions = intr.findPropertyInclusionByName(provider.getConfig(), propertyAcc); if (inclusions != null) { Set<String> newIncluded = inclusions.getIncluded(); if (newIncluded != null) { |