diff options
author | Tatu Saloranta <tatu.saloranta@iki.fi> | 2020-07-24 15:24:29 -0700 |
---|---|---|
committer | Tatu Saloranta <tatu.saloranta@iki.fi> | 2020-07-24 15:24:29 -0700 |
commit | 825ab66f492c1a9061ac76f1695870ae0fd3ad80 (patch) | |
tree | 78aee5cb670f42e1abc55ec15d0583e4788b106d | |
parent | e3cc58e1e18d0aff39b842a6ec38758533c395d2 (diff) | |
download | jackson-databind-825ab66f492c1a9061ac76f1695870ae0fd3ad80.tar.gz |
Minor streamlining
4 files changed, 21 insertions, 49 deletions
diff --git a/src/main/java/com/fasterxml/jackson/databind/ser/BeanSerializer.java b/src/main/java/com/fasterxml/jackson/databind/ser/BeanSerializer.java index b202b47f6..c50199ee8 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ser/BeanSerializer.java +++ b/src/main/java/com/fasterxml/jackson/databind/ser/BeanSerializer.java @@ -64,10 +64,6 @@ public class BeanSerializer super(src, objectIdWriter, filterId); } - protected BeanSerializer(BeanSerializerBase src, Set<String> toIgnore) { - super(src, toIgnore); - } - protected BeanSerializer(BeanSerializerBase src, Set<String> toIgnore, Set<String> toInclude) { super(src, toIgnore, toInclude); } @@ -119,13 +115,8 @@ public class BeanSerializer return new BeanSerializer(this, _objectIdWriter, filterId); } - @Override - protected BeanSerializerBase withIgnorals(Set<String> toIgnore) { - return new BeanSerializer(this, toIgnore); - } - - @Override - protected BeanSerializerBase withIgnorals(Set<String> toIgnore, Set<String> toInclude) { + @Override // @since 2.12 + protected BeanSerializerBase withByNameInclusion(Set<String> toIgnore, Set<String> toInclude) { return new BeanSerializer(this, toIgnore, toInclude); } diff --git a/src/main/java/com/fasterxml/jackson/databind/ser/impl/BeanAsArraySerializer.java b/src/main/java/com/fasterxml/jackson/databind/ser/impl/BeanAsArraySerializer.java index 86b16366d..edc6ad574 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ser/impl/BeanAsArraySerializer.java +++ b/src/main/java/com/fasterxml/jackson/databind/ser/impl/BeanAsArraySerializer.java @@ -111,13 +111,8 @@ public class BeanAsArraySerializer return new BeanAsArraySerializer(this, _objectIdWriter, filterId); } - @Override - protected BeanAsArraySerializer withIgnorals(Set<String> toIgnore) { - return new BeanAsArraySerializer(this, toIgnore); - } - - @Override - protected BeanAsArraySerializer withIgnorals(Set<String> toIgnore, Set<String> toInclude) { + @Override // @since 2.12 + protected BeanAsArraySerializer withByNameInclusion(Set<String> toIgnore, Set<String> toInclude) { return new BeanAsArraySerializer(this, toIgnore, toInclude); } diff --git a/src/main/java/com/fasterxml/jackson/databind/ser/impl/UnwrappingBeanSerializer.java b/src/main/java/com/fasterxml/jackson/databind/ser/impl/UnwrappingBeanSerializer.java index dd50a6b19..2b5ba9117 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ser/impl/UnwrappingBeanSerializer.java +++ b/src/main/java/com/fasterxml/jackson/databind/ser/impl/UnwrappingBeanSerializer.java @@ -93,13 +93,8 @@ public class UnwrappingBeanSerializer return new UnwrappingBeanSerializer(this, _objectIdWriter, filterId); } - @Override - protected BeanSerializerBase withIgnorals(Set<String> toIgnore) { - return new UnwrappingBeanSerializer(this, toIgnore); - } - - @Override - protected BeanSerializerBase withIgnorals(Set<String> toIgnore, Set<String> toInclude) { + @Override // @since 2.12 + protected BeanSerializerBase withByNameInclusion(Set<String> toIgnore, Set<String> toInclude) { return new UnwrappingBeanSerializer(this, toIgnore, toInclude); } 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); |