diff options
Diffstat (limited to 'src/main/java/com/fasterxml/jackson/databind/ser/std/BeanSerializerBase.java')
-rw-r--r-- | src/main/java/com/fasterxml/jackson/databind/ser/std/BeanSerializerBase.java | 39 |
1 files changed, 15 insertions, 24 deletions
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 545cd94e5..553b809ab 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 @@ -179,6 +179,7 @@ public abstract class BeanSerializerBase this(src, ArrayBuilders.arrayToSet(toIgnore), null); } + @Deprecated // since 2.12 protected BeanSerializerBase(BeanSerializerBase src, Set<String> toIgnore) { this(src, toIgnore, null); } @@ -229,16 +230,12 @@ public abstract class BeanSerializerBase * set of properties to ignore (from properties this instance otherwise has) * * @since 2.8 + * @deprecated Since 2.12 */ - protected abstract BeanSerializerBase withIgnorals(Set<String> toIgnore); - - /** - * Mutant factory used for creating a new instance with additional - * set of properties to ignore or include (from properties this instance otherwise has) - * - * @since 2.12 - */ - protected abstract BeanSerializerBase withIgnorals(Set<String> toIgnore, Set<String> toInclude); + @Deprecated // since 2.12 + protected BeanSerializerBase withIgnorals(Set<String> toIgnore) { + return withByNameInclusion(toIgnore, null); + } /** * Mutant factory used for creating a new instance with additional @@ -246,9 +243,8 @@ public abstract class BeanSerializerBase * * @since 2.12 */ - protected BeanSerializerBase withInclusions(Set<String> toInclude) { - return withIgnorals(Collections.<String>emptySet(), toInclude); - } + protected abstract BeanSerializerBase withByNameInclusion(Set<String> toIgnore, + Set<String> toInclude); /** * Mutant factory used for creating a new instance with additional @@ -504,14 +500,8 @@ public abstract class BeanSerializerBase // Then we may have an override for Object Id if (accessor != null) { - JsonIgnoreProperties.Value ignorals = intr.findPropertyIgnoralByName(config, accessor); - if (ignorals != null) { - ignoredProps = ignorals.findIgnoredForSerialization(); - } - JsonIncludeProperties.Value inclusions = intr.findPropertyInclusionByName(config, accessor); - if (inclusions != null) { - includedProps = inclusions.getIncluded(); - } + ignoredProps = intr.findPropertyIgnoralByName(config, accessor).findIgnoredForSerialization(); + includedProps = intr.findPropertyInclusionByName(config, accessor).getIncluded(); ObjectIdInfo objectIdInfo = intr.findObjectIdInfo(accessor); if (objectIdInfo == null) { // no ObjectId override, but maybe ObjectIdRef? @@ -596,10 +586,11 @@ public abstract class BeanSerializerBase contextual = contextual.withObjectIdWriter(oiw); } } - // And possibly add more properties to ignore - contextual = contextual.withInclusions(includedProps); - if ((ignoredProps != null) && !ignoredProps.isEmpty()) { - contextual = contextual.withIgnorals(ignoredProps, includedProps); + // Possibly change inclusions: for ignored, only non-empty set matters; + // for inclusion `null` means "not defined" but empty "include nothing": + if (((ignoredProps != null) && !ignoredProps.isEmpty()) + || (includedProps != null)) { + contextual = contextual.withByNameInclusion(ignoredProps, includedProps); } if (newFilterId != null) { contextual = contextual.withFilterId(newFilterId); |