aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/fasterxml/jackson/databind/ser/std/BeanSerializerBase.java
diff options
context:
space:
mode:
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.java39
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);