From 3db97303e97258d1ea1629c8ecea541fe9622436 Mon Sep 17 00:00:00 2001 From: Tatu Saloranta Date: Mon, 8 Feb 2021 11:53:40 -0800 Subject: [PATCH] Fix #3047 (Bean[De]SerializerModifier->Value[De]SerializerModifier) --- release-notes/VERSION | 1 + .../jackson/databind/JacksonModule.java | 6 +-- .../cfg/DeserializerFactoryConfig.java | 14 +++---- .../databind/cfg/ModuleContextBase.java | 6 +-- .../databind/cfg/SerializerFactoryConfig.java | 14 +++---- .../deser/BasicDeserializerFactory.java | 20 +++++----- .../deser/BeanDeserializerFactory.java | 18 ++++----- .../databind/deser/DeserializerFactory.java | 4 +- ...er.java => ValueDeserializerModifier.java} | 40 ++++++------------- .../jackson/databind/module/SimpleModule.java | 12 +++--- .../databind/ser/BasicSerializerFactory.java | 16 ++++---- .../databind/ser/BeanSerializerFactory.java | 8 ++-- .../databind/ser/SerializerFactory.java | 2 +- ...fier.java => ValueSerializerModifier.java} | 25 +++++++----- .../deser/TestCustomDeserializers.java | 4 +- .../deser/bean/TestBeanDeserializer.java | 26 ++++++------ .../module/TestCustomEnumKeyDeserializer.java | 4 +- ...a => ValueSerializerModifier1612Test.java} | 4 +- ....java => ValueSerializerModifierTest.java} | 28 ++++++------- 19 files changed, 122 insertions(+), 130 deletions(-) rename src/main/java/com/fasterxml/jackson/databind/deser/{BeanDeserializerModifier.java => ValueDeserializerModifier.java} (89%) rename src/main/java/com/fasterxml/jackson/databind/ser/{BeanSerializerModifier.java => ValueSerializerModifier.java} (90%) rename src/test/java/com/fasterxml/jackson/databind/ser/{BeanSerializerModifier1612Test.java => ValueSerializerModifier1612Test.java} (94%) rename src/test/java/com/fasterxml/jackson/databind/ser/{BeanSerializerModifierTest.java => ValueSerializerModifierTest.java} (93%) diff --git a/release-notes/VERSION b/release-notes/VERSION index 5ce3674a82..9f029356ec 100644 --- a/release-notes/VERSION +++ b/release-notes/VERSION @@ -46,5 +46,6 @@ Versions: 3.x (for earlier see VERSION-2.x) `JsonGenerator.canWriteBinaryNatively()` #3037: Rename `Module` as `JacksonModule` in 3.0 (to avoid overlap with `java.lang.Module`) #3046: Rename `JsonSerializable` as `JacksonSerializable` in 3.0 +#3047: Rename `Bean[De]SerializerModifier` as `Value[De]SerializerModifier` in 3.0 - Remove `MappingJsonFactory` - Add context parameter for `TypeSerializer` contextualization (`forProperty()`) diff --git a/src/main/java/com/fasterxml/jackson/databind/JacksonModule.java b/src/main/java/com/fasterxml/jackson/databind/JacksonModule.java index 32e296ce52..9b2035c6fa 100644 --- a/src/main/java/com/fasterxml/jackson/databind/JacksonModule.java +++ b/src/main/java/com/fasterxml/jackson/databind/JacksonModule.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.databind.cfg.MutableConfigOverride; import com.fasterxml.jackson.databind.deser.*; import com.fasterxml.jackson.databind.jsontype.NamedType; -import com.fasterxml.jackson.databind.ser.BeanSerializerModifier; +import com.fasterxml.jackson.databind.ser.ValueSerializerModifier; import com.fasterxml.jackson.databind.ser.Serializers; import com.fasterxml.jackson.databind.type.TypeFactory; import com.fasterxml.jackson.databind.type.TypeModifier; @@ -199,7 +199,7 @@ public static interface SetupContext * * @param mod Modifier to register */ - public SetupContext addDeserializerModifier(BeanDeserializerModifier mod); + public SetupContext addDeserializerModifier(ValueDeserializerModifier mod); /** * Method that module can use to register additional {@link com.fasterxml.jackson.databind.deser.ValueInstantiator}s, @@ -239,7 +239,7 @@ public static interface SetupContext * * @param mod Modifier to register */ - public SetupContext addSerializerModifier(BeanSerializerModifier mod); + public SetupContext addSerializerModifier(ValueSerializerModifier mod); /** * Method that module can use to override handler called to write JSON Object key diff --git a/src/main/java/com/fasterxml/jackson/databind/cfg/DeserializerFactoryConfig.java b/src/main/java/com/fasterxml/jackson/databind/cfg/DeserializerFactoryConfig.java index 06fbfb2ba6..c503419a6b 100644 --- a/src/main/java/com/fasterxml/jackson/databind/cfg/DeserializerFactoryConfig.java +++ b/src/main/java/com/fasterxml/jackson/databind/cfg/DeserializerFactoryConfig.java @@ -15,7 +15,7 @@ public class DeserializerFactoryConfig private static final long serialVersionUID = 3L; protected final static Deserializers[] NO_DESERIALIZERS = new Deserializers[0]; - protected final static BeanDeserializerModifier[] NO_MODIFIERS = new BeanDeserializerModifier[0]; + protected final static ValueDeserializerModifier[] NO_MODIFIERS = new ValueDeserializerModifier[0]; protected final static ValueInstantiators[] NO_VALUE_INSTANTIATORS = new ValueInstantiators[0]; /** @@ -42,7 +42,7 @@ public class DeserializerFactoryConfig * List of modifiers that can change the way {@link BeanDeserializer} instances * are configured and constructed. */ - protected final BeanDeserializerModifier[] _modifiers; + protected final ValueDeserializerModifier[] _modifiers; /** * List of objects that know how to create instances of POJO types; @@ -67,7 +67,7 @@ public DeserializerFactoryConfig() { */ protected DeserializerFactoryConfig(Deserializers[] allAdditionalDeserializers, KeyDeserializers[] allAdditionalKeyDeserializers, - BeanDeserializerModifier[] modifiers, + ValueDeserializerModifier[] modifiers, ValueInstantiators[] vi) { _additionalDeserializers = (allAdditionalDeserializers == null) ? @@ -116,12 +116,12 @@ public DeserializerFactoryConfig withAdditionalKeyDeserializers(KeyDeserializers * deserialiazer modifier. Added modifier has the highest priority (that is, it * gets called before any already registered modifier). */ - public DeserializerFactoryConfig withDeserializerModifier(BeanDeserializerModifier modifier) + public DeserializerFactoryConfig withDeserializerModifier(ValueDeserializerModifier modifier) { if (modifier == null) { throw new IllegalArgumentException("Cannot pass null modifier"); } - BeanDeserializerModifier[] all = ArrayBuilders.insertInListNoDup(_modifiers, modifier); + ValueDeserializerModifier[] all = ArrayBuilders.insertInListNoDup(_modifiers, modifier); return new DeserializerFactoryConfig(_additionalDeserializers, _additionalKeyDeserializers, all, _valueInstantiators); } @@ -162,8 +162,8 @@ public Iterable keyDeserializers() { return new ArrayIterator(_additionalKeyDeserializers); } - public Iterable deserializerModifiers() { - return new ArrayIterator(_modifiers); + public Iterable deserializerModifiers() { + return new ArrayIterator(_modifiers); } public Iterable valueInstantiators() { diff --git a/src/main/java/com/fasterxml/jackson/databind/cfg/ModuleContextBase.java b/src/main/java/com/fasterxml/jackson/databind/cfg/ModuleContextBase.java index f5112df6c0..4b4cfdd962 100644 --- a/src/main/java/com/fasterxml/jackson/databind/cfg/ModuleContextBase.java +++ b/src/main/java/com/fasterxml/jackson/databind/cfg/ModuleContextBase.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.databind.JacksonModule.SetupContext; import com.fasterxml.jackson.databind.deser.*; import com.fasterxml.jackson.databind.jsontype.NamedType; -import com.fasterxml.jackson.databind.ser.BeanSerializerModifier; +import com.fasterxml.jackson.databind.ser.ValueSerializerModifier; import com.fasterxml.jackson.databind.ser.SerializerFactory; import com.fasterxml.jackson.databind.ser.Serializers; import com.fasterxml.jackson.databind.type.TypeFactory; @@ -141,7 +141,7 @@ public SetupContext addKeyDeserializers(KeyDeserializers kd) { } @Override - public SetupContext addDeserializerModifier(BeanDeserializerModifier modifier) { + public SetupContext addDeserializerModifier(ValueDeserializerModifier modifier) { _set(_deserializerFactory().withDeserializerModifier(modifier)); return this; } @@ -171,7 +171,7 @@ public SetupContext addKeySerializers(Serializers s) { } @Override - public SetupContext addSerializerModifier(BeanSerializerModifier modifier) { + public SetupContext addSerializerModifier(ValueSerializerModifier modifier) { _set(_serializerFactory().withSerializerModifier(modifier)); return this; } diff --git a/src/main/java/com/fasterxml/jackson/databind/cfg/SerializerFactoryConfig.java b/src/main/java/com/fasterxml/jackson/databind/cfg/SerializerFactoryConfig.java index 5a34c91eae..7e8c0912f9 100644 --- a/src/main/java/com/fasterxml/jackson/databind/cfg/SerializerFactoryConfig.java +++ b/src/main/java/com/fasterxml/jackson/databind/cfg/SerializerFactoryConfig.java @@ -26,7 +26,7 @@ public final class SerializerFactoryConfig */ protected final static Serializers[] NO_SERIALIZERS = new Serializers[0]; - protected final static BeanSerializerModifier[] NO_MODIFIERS = new BeanSerializerModifier[0]; + protected final static ValueSerializerModifier[] NO_MODIFIERS = new ValueSerializerModifier[0]; /** * List of providers for additional serializers, checked before considering default @@ -44,7 +44,7 @@ public final class SerializerFactoryConfig * List of modifiers that can change the way {@link BeanSerializer} instances * are configured and constructed. */ - protected final BeanSerializerModifier[] _modifiers; + protected final ValueSerializerModifier[] _modifiers; /** * Serializer used to output a null value, unless explicitly redefined for property. @@ -65,7 +65,7 @@ public SerializerFactoryConfig() { protected SerializerFactoryConfig(Serializers[] allAdditionalSerializers, Serializers[] allAdditionalKeySerializers, - BeanSerializerModifier[] modifiers, + ValueSerializerModifier[] modifiers, JsonSerializer nullKeySer, JsonSerializer nullValueSer) { @@ -94,10 +94,10 @@ public SerializerFactoryConfig withAdditionalKeySerializers(Serializers addition _nullKeySerializer, _nullValueSerializer); } - public SerializerFactoryConfig withSerializerModifier(BeanSerializerModifier modifier) + public SerializerFactoryConfig withSerializerModifier(ValueSerializerModifier modifier) { - Objects.requireNonNull(modifier, "Cannot pass null BeanSerializerModifier"); - BeanSerializerModifier[] modifiers = ArrayBuilders.insertInListNoDup(_modifiers, modifier); + Objects.requireNonNull(modifier, "Cannot pass null ValueSerializerModifier"); + ValueSerializerModifier[] modifiers = ArrayBuilders.insertInListNoDup(_modifiers, modifier); return new SerializerFactoryConfig(_additionalSerializers, _additionalKeySerializers, modifiers, _nullKeySerializer, _nullValueSerializer); } @@ -122,7 +122,7 @@ public SerializerFactoryConfig withNullKeySerializer(JsonSerializer nks) { public Iterable serializers() { return new ArrayIterator(_additionalSerializers); } public Iterable keySerializers() { return new ArrayIterator(_additionalKeySerializers); } - public Iterable serializerModifiers() { return new ArrayIterator(_modifiers); } + public Iterable serializerModifiers() { return new ArrayIterator(_modifiers); } public JsonSerializer getNullKeySerializer() { return _nullKeySerializer; } public JsonSerializer getNullValueSerializer() { return _nullValueSerializer; } diff --git a/src/main/java/com/fasterxml/jackson/databind/deser/BasicDeserializerFactory.java b/src/main/java/com/fasterxml/jackson/databind/deser/BasicDeserializerFactory.java index 9ba8a21fb9..92239389af 100644 --- a/src/main/java/com/fasterxml/jackson/databind/deser/BasicDeserializerFactory.java +++ b/src/main/java/com/fasterxml/jackson/databind/deser/BasicDeserializerFactory.java @@ -119,10 +119,10 @@ public final DeserializerFactory withAdditionalKeyDeserializers(KeyDeserializers /** * Convenience method for creating a new factory instance with additional - * {@link BeanDeserializerModifier}. + * {@link ValueDeserializerModifier}. */ @Override - public final DeserializerFactory withDeserializerModifier(BeanDeserializerModifier modifier) { + public final DeserializerFactory withDeserializerModifier(ValueDeserializerModifier modifier) { return withConfig(_factoryConfig.withDeserializerModifier(modifier)); } @@ -1299,7 +1299,7 @@ public JsonDeserializer createArrayDeserializer(DeserializationContext ctxt, } // and then new with 2.2: ability to post-process it too (databind#120) if (_factoryConfig.hasDeserializerModifiers()) { - for (BeanDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { + for (ValueDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { deser = mod.modifyArrayDeserializer(config, type, beanDesc, deser); } } @@ -1394,7 +1394,7 @@ public JsonDeserializer createCollectionDeserializer(DeserializationContext c } // allow post-processing it too if (_factoryConfig.hasDeserializerModifiers()) { - for (BeanDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { + for (ValueDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { deser = mod.modifyCollectionDeserializer(config, type, beanDesc, deser); } } @@ -1432,7 +1432,7 @@ public JsonDeserializer createCollectionLikeDeserializer(DeserializationConte if (deser != null) { // and then new with 2.2: ability to post-process it too (Issue#120) if (_factoryConfig.hasDeserializerModifiers()) { - for (BeanDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { + for (ValueDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { deser = mod.modifyCollectionLikeDeserializer(config, type, beanDesc, deser); } } @@ -1551,7 +1551,7 @@ public JsonDeserializer createMapDeserializer(DeserializationContext ctxt, } } if (_factoryConfig.hasDeserializerModifiers()) { - for (BeanDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { + for (ValueDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { deser = mod.modifyMapDeserializer(config, type, beanDesc, deser); } } @@ -1599,7 +1599,7 @@ public JsonDeserializer createMapLikeDeserializer(DeserializationContext ctxt if (deser != null) { // and then new with 2.2: ability to post-process it too (Issue#120) if (_factoryConfig.hasDeserializerModifiers()) { - for (BeanDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { + for (ValueDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { deser = mod.modifyMapLikeDeserializer(config, type, beanDesc, deser); } } @@ -1667,7 +1667,7 @@ public JsonDeserializer createEnumDeserializer(DeserializationContext ctxt, // and then post-process it too if (_factoryConfig.hasDeserializerModifiers()) { - for (BeanDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { + for (ValueDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { deser = mod.modifyEnumDeserializer(config, type, beanDesc, deser); } } @@ -1734,7 +1734,7 @@ public JsonDeserializer createReferenceDeserializer(DeserializationContext ct if (deser != null) { // and then post-process if (_factoryConfig.hasDeserializerModifiers()) { - for (BeanDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { + for (ValueDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { deser = mod.modifyReferenceDeserializer(config, type, beanDesc, deser); } } @@ -1798,7 +1798,7 @@ public KeyDeserializer createKeyDeserializer(DeserializationContext ctxt, // and then post-processing if (deser != null) { if (_factoryConfig.hasDeserializerModifiers()) { - for (BeanDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { + for (ValueDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { deser = mod.modifyKeyDeserializer(config, type, deser); } } diff --git a/src/main/java/com/fasterxml/jackson/databind/deser/BeanDeserializerFactory.java b/src/main/java/com/fasterxml/jackson/databind/deser/BeanDeserializerFactory.java index f6ceb59cb9..6e74dfef54 100644 --- a/src/main/java/com/fasterxml/jackson/databind/deser/BeanDeserializerFactory.java +++ b/src/main/java/com/fasterxml/jackson/databind/deser/BeanDeserializerFactory.java @@ -100,7 +100,7 @@ public JsonDeserializer createBeanDeserializer(DeserializationContext ct if (deser != null) { // [databind#2392] if (_factoryConfig.hasDeserializerModifiers()) { - for (BeanDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { + for (ValueDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { deser = mod.modifyDeserializer(ctxt.getConfig(), beanDesc, deser); } } @@ -181,7 +181,7 @@ protected JsonDeserializer findStdDeserializer(DeserializationContext ctxt, // Also: better ensure these are post-processable? if (deser != null) { if (_factoryConfig.hasDeserializerModifiers()) { - for (BeanDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { + for (ValueDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { deser = mod.modifyDeserializer(ctxt.getConfig(), beanDesc, deser); } } @@ -275,7 +275,7 @@ public JsonDeserializer buildBeanDeserializer(DeserializationContext ctx final DeserializationConfig config = ctxt.getConfig(); if (_factoryConfig.hasDeserializerModifiers()) { - for (BeanDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { + for (ValueDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { builder = mod.updateBuilder(config, beanDesc, builder); } } @@ -289,7 +289,7 @@ public JsonDeserializer buildBeanDeserializer(DeserializationContext ctx // may have modifier(s) that wants to modify or replace serializer we just built // (note that `resolve()` and `createContextual()` called later on) if (_factoryConfig.hasDeserializerModifiers()) { - for (BeanDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { + for (ValueDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { deserializer = mod.modifyDeserializer(config, beanDesc, deserializer); } } @@ -346,7 +346,7 @@ protected JsonDeserializer buildBuilderBasedDeserializer( builder.setPOJOBuilder(buildMethod, builderConfig); // this may give us more information... if (_factoryConfig.hasDeserializerModifiers()) { - for (BeanDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { + for (ValueDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { builder = mod.updateBuilder(config, builderDesc, builder); } } @@ -355,7 +355,7 @@ protected JsonDeserializer buildBuilderBasedDeserializer( // [JACKSON-440]: may have modifier(s) that wants to modify or replace serializer we just built: if (_factoryConfig.hasDeserializerModifiers()) { - for (BeanDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { + for (ValueDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { deserializer = mod.modifyDeserializer(config, builderDesc, deserializer); } } @@ -438,7 +438,7 @@ public JsonDeserializer buildThrowableDeserializer(DeserializationContex // update builder now that all information is in? if (_factoryConfig.hasDeserializerModifiers()) { - for (BeanDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { + for (ValueDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { builder = mod.updateBuilder(config, beanDesc, builder); } } @@ -453,7 +453,7 @@ public JsonDeserializer buildThrowableDeserializer(DeserializationContex // may have modifier(s) that wants to modify or replace serializer we just built: if (_factoryConfig.hasDeserializerModifiers()) { - for (BeanDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { + for (ValueDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { deserializer = mod.modifyDeserializer(config, beanDesc, deserializer); } } @@ -550,7 +550,7 @@ protected void addBeanProps(DeserializationContext ctxt, beanDesc, builder, beanDesc.findProperties(), ignored, included); // After which we can let custom code change the set if (_factoryConfig.hasDeserializerModifiers()) { - for (BeanDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { + for (ValueDeserializerModifier mod : _factoryConfig.deserializerModifiers()) { propDefs = mod.updateProperties(ctxt.getConfig(), beanDesc, propDefs); } } diff --git a/src/main/java/com/fasterxml/jackson/databind/deser/DeserializerFactory.java b/src/main/java/com/fasterxml/jackson/databind/deser/DeserializerFactory.java index ba5572a315..90a3429bf3 100644 --- a/src/main/java/com/fasterxml/jackson/databind/deser/DeserializerFactory.java +++ b/src/main/java/com/fasterxml/jackson/databind/deser/DeserializerFactory.java @@ -162,9 +162,9 @@ public abstract boolean hasExplicitDeserializerFor(DatabindContext ctxt, /** * Convenience method for creating a new factory instance with additional - * {@link BeanDeserializerModifier}. + * {@link ValueDeserializerModifier}. */ - public abstract DeserializerFactory withDeserializerModifier(BeanDeserializerModifier modifier); + public abstract DeserializerFactory withDeserializerModifier(ValueDeserializerModifier modifier); /** * Convenience method for creating a new factory instance with additional diff --git a/src/main/java/com/fasterxml/jackson/databind/deser/BeanDeserializerModifier.java b/src/main/java/com/fasterxml/jackson/databind/deser/ValueDeserializerModifier.java similarity index 89% rename from src/main/java/com/fasterxml/jackson/databind/deser/BeanDeserializerModifier.java rename to src/main/java/com/fasterxml/jackson/databind/deser/ValueDeserializerModifier.java index 202321b219..e467273977 100644 --- a/src/main/java/com/fasterxml/jackson/databind/deser/BeanDeserializerModifier.java +++ b/src/main/java/com/fasterxml/jackson/databind/deser/ValueDeserializerModifier.java @@ -14,16 +14,14 @@ /** * Abstract class that defines API for objects that can be registered + * (via {@code ObjectMapper} configuration process, + * using {@link com.fasterxml.jackson.databind.cfg.MapperBuilder}) * to participate in constructing {@link JsonDeserializer} instances - * (via {@link DeserializerFactory}). - * This is typically done by modules that want alter some aspects of deserialization - * process; and is preferable to sub-classing of {@link BeanDeserializerFactory}. + * (including but not limited to {@link BeanDeserializer}s). + * This is typically done by modules that want alter some aspects of + * the typical serialization process. *

- * Note that Jackson 2.2 adds more methods for customization; with earlier versions - * only {@link BeanDeserializer} instances could be modified, but with 2.2 all types - * of deserializers can be changed. - *

- * Sequence in which callback methods are called for {@link BeanDeserializer} is: + * Sequence in which callback methods are called for a {@link BeanDeserializer} is: *

    *
  1. {@link #updateProperties} is called once all property definitions are * collected, and initial filtering (by ignorable type and explicit ignoral-by-bean) @@ -45,8 +43,10 @@ * Default method implementations are "no-op"s, meaning that methods are implemented * but have no effect; this is mostly so that new methods can be added in later * versions. + *

    + * NOTE: In Jackson 2.x was named {@code BeanDeserializerModifier} */ -public abstract class BeanDeserializerModifier +public abstract class ValueDeserializerModifier { /** * Method called by {@link BeanDeserializerFactory} when it has collected @@ -94,16 +94,14 @@ public JsonDeserializer modifyDeserializer(DeserializationConfig config, } /* - /********************************************************** - /* Callback methods for other types (since 2.2) - /********************************************************** + /********************************************************************** + /* Callback methods for other types + /********************************************************************** */ /** * Method called by {@link BeanDeserializerFactory} after constructing default * enum type deserializer instance. - * - * @since 2.2 */ public JsonDeserializer modifyEnumDeserializer(DeserializationConfig config, JavaType type, BeanDescription beanDesc, JsonDeserializer deserializer) { @@ -113,8 +111,6 @@ public JsonDeserializer modifyEnumDeserializer(DeserializationConfig config, /** * Method called by {@link BeanDeserializerFactory} after constructing default * {@link ReferenceType} deserializer instance. - * - * @since 2.7 */ public JsonDeserializer modifyReferenceDeserializer(DeserializationConfig config, ReferenceType type, BeanDescription beanDesc, JsonDeserializer deserializer) { @@ -135,8 +131,6 @@ public JsonDeserializer modifyReferenceDeserializer(DeserializationConfig con * * @return Deserializer to use; either deserializer that was passed * in, or an instance method constructed. - * - * @since 2.2 */ public JsonDeserializer modifyArrayDeserializer(DeserializationConfig config, ArrayType valueType, BeanDescription beanDesc, JsonDeserializer deserializer) { @@ -146,8 +140,6 @@ public JsonDeserializer modifyArrayDeserializer(DeserializationConfig config, /** * Method called by {@link BeanDeserializerFactory} after constructing default * {@link CollectionType} deserializer instance. - * - * @since 2.2 */ public JsonDeserializer modifyCollectionDeserializer(DeserializationConfig config, CollectionType type, BeanDescription beanDesc, JsonDeserializer deserializer) { @@ -157,8 +149,6 @@ public JsonDeserializer modifyCollectionDeserializer(DeserializationConfig co /** * Method called by {@link BeanDeserializerFactory} after constructing default * {@link CollectionLikeType} deserializer instance. - * - * @since 2.2 */ public JsonDeserializer modifyCollectionLikeDeserializer(DeserializationConfig config, CollectionLikeType type, BeanDescription beanDesc, JsonDeserializer deserializer) { @@ -168,8 +158,6 @@ public JsonDeserializer modifyCollectionLikeDeserializer(DeserializationConfi /** * Method called by {@link BeanDeserializerFactory} after constructing default * {@link MapType} deserializer instance. - * - * @since 2.2 */ public JsonDeserializer modifyMapDeserializer(DeserializationConfig config, MapType type, BeanDescription beanDesc, JsonDeserializer deserializer) { @@ -179,8 +167,6 @@ public JsonDeserializer modifyMapDeserializer(DeserializationConfig config, /** * Method called by {@link BeanDeserializerFactory} after constructing default * {@link MapLikeType} deserializer instance. - * - * @since 2.2 */ public JsonDeserializer modifyMapLikeDeserializer(DeserializationConfig config, MapLikeType type, BeanDescription beanDesc, JsonDeserializer deserializer) { @@ -193,8 +179,6 @@ public JsonDeserializer modifyMapLikeDeserializer(DeserializationConfig confi * This make it possible to replace the default key deserializer, or augment * it somehow (including optional use of default deserializer with occasional * override). - * - * @since 2.2 */ public KeyDeserializer modifyKeyDeserializer(DeserializationConfig config, JavaType type, KeyDeserializer deserializer) { diff --git a/src/main/java/com/fasterxml/jackson/databind/module/SimpleModule.java b/src/main/java/com/fasterxml/jackson/databind/module/SimpleModule.java index b62082bbd3..7fca2168e1 100644 --- a/src/main/java/com/fasterxml/jackson/databind/module/SimpleModule.java +++ b/src/main/java/com/fasterxml/jackson/databind/module/SimpleModule.java @@ -4,10 +4,10 @@ import com.fasterxml.jackson.core.Version; import com.fasterxml.jackson.databind.*; -import com.fasterxml.jackson.databind.deser.BeanDeserializerModifier; +import com.fasterxml.jackson.databind.deser.ValueDeserializerModifier; import com.fasterxml.jackson.databind.deser.ValueInstantiator; import com.fasterxml.jackson.databind.jsontype.NamedType; -import com.fasterxml.jackson.databind.ser.BeanSerializerModifier; +import com.fasterxml.jackson.databind.ser.ValueSerializerModifier; import com.fasterxml.jackson.databind.util.UniqueId; /** @@ -76,9 +76,9 @@ public class SimpleModule */ protected SimpleValueInstantiators _valueInstantiators = null; - protected BeanDeserializerModifier _deserializerModifier = null; + protected ValueDeserializerModifier _deserializerModifier = null; - protected BeanSerializerModifier _serializerModifier = null; + protected ValueSerializerModifier _serializerModifier = null; /** * Lazily-constructed map that contains mix-in definitions, indexed @@ -237,12 +237,12 @@ public SimpleModule setValueInstantiators(SimpleValueInstantiators svi) { return this; } - public SimpleModule setDeserializerModifier(BeanDeserializerModifier mod) { + public SimpleModule setDeserializerModifier(ValueDeserializerModifier mod) { _deserializerModifier = mod; return this; } - public SimpleModule setSerializerModifier(BeanSerializerModifier mod) { + public SimpleModule setSerializerModifier(ValueSerializerModifier mod) { _serializerModifier = mod; return this; } diff --git a/src/main/java/com/fasterxml/jackson/databind/ser/BasicSerializerFactory.java b/src/main/java/com/fasterxml/jackson/databind/ser/BasicSerializerFactory.java index ad7daf39f4..4bf062e13c 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ser/BasicSerializerFactory.java +++ b/src/main/java/com/fasterxml/jackson/databind/ser/BasicSerializerFactory.java @@ -156,7 +156,7 @@ public final SerializerFactory withAdditionalKeySerializers(Serializers addition * serializer modifier. */ @Override - public final SerializerFactory withSerializerModifier(BeanSerializerModifier modifier) { + public final SerializerFactory withSerializerModifier(ValueSerializerModifier modifier) { return withConfig(_factoryConfig.withSerializerModifier(modifier)); } @@ -227,7 +227,7 @@ public JsonSerializer createKeySerializer(SerializerProvider ctxt, JavaT // [databind#120]: Allow post-processing if (_factoryConfig.hasSerializerModifiers()) { - for (BeanSerializerModifier mod : _factoryConfig.serializerModifiers()) { + for (ValueSerializerModifier mod : _factoryConfig.serializerModifiers()) { ser = mod.modifyKeySerializer(config, keyType, beanDesc, ser); } } @@ -561,7 +561,7 @@ protected JsonSerializer buildContainerSerializer(SerializerProvider ctxt, } if (ser != null) { if (_factoryConfig.hasSerializerModifiers()) { - for (BeanSerializerModifier mod : _factoryConfig.serializerModifiers()) { + for (ValueSerializerModifier mod : _factoryConfig.serializerModifiers()) { ser = mod.modifyMapLikeSerializer(config, mlType, beanDesc, ser); } } @@ -591,7 +591,7 @@ protected JsonSerializer buildContainerSerializer(SerializerProvider ctxt, } if (ser != null) { if (_factoryConfig.hasSerializerModifiers()) { - for (BeanSerializerModifier mod : _factoryConfig.serializerModifiers()) { + for (ValueSerializerModifier mod : _factoryConfig.serializerModifiers()) { ser = mod.modifyCollectionLikeSerializer(config, clType, beanDesc, ser); } } @@ -674,7 +674,7 @@ protected JsonSerializer buildCollectionSerializer(SerializerProvider ctxt, } // [databind#120]: Allow post-processing if (_factoryConfig.hasSerializerModifiers()) { - for (BeanSerializerModifier mod : _factoryConfig.serializerModifiers()) { + for (ValueSerializerModifier mod : _factoryConfig.serializerModifiers()) { ser = mod.modifyCollectionSerializer(config, type, beanDesc, ser); } } @@ -766,7 +766,7 @@ protected JsonSerializer buildMapSerializer(SerializerProvider ctxt, } // [databind#120]: Allow post-processing if (_factoryConfig.hasSerializerModifiers()) { - for (BeanSerializerModifier mod : _factoryConfig.serializerModifiers()) { + for (ValueSerializerModifier mod : _factoryConfig.serializerModifiers()) { ser = mod.modifyMapSerializer(config, type, beanDesc, ser); } } @@ -978,7 +978,7 @@ protected JsonSerializer buildArraySerializer(SerializerProvider ctxt, } // [databind#120]: Allow post-processing if (_factoryConfig.hasSerializerModifiers()) { - for (BeanSerializerModifier mod : _factoryConfig.serializerModifiers()) { + for (ValueSerializerModifier mod : _factoryConfig.serializerModifiers()) { ser = mod.modifyArraySerializer(config, type, beanDesc, ser); } } @@ -1133,7 +1133,7 @@ protected JsonSerializer buildEnumSerializer(SerializerProvider ctxt, final SerializationConfig config = ctxt.getConfig(); JsonSerializer ser = EnumSerializer.construct(enumClass, config, beanDesc, effectiveFormat); if (_factoryConfig.hasSerializerModifiers()) { - for (BeanSerializerModifier mod : _factoryConfig.serializerModifiers()) { + for (ValueSerializerModifier mod : _factoryConfig.serializerModifiers()) { ser = mod.modifyEnumSerializer(config, type, beanDesc, ser); } } diff --git a/src/main/java/com/fasterxml/jackson/databind/ser/BeanSerializerFactory.java b/src/main/java/com/fasterxml/jackson/databind/ser/BeanSerializerFactory.java index 3f26ff7a00..73325a3a12 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ser/BeanSerializerFactory.java +++ b/src/main/java/com/fasterxml/jackson/databind/ser/BeanSerializerFactory.java @@ -232,7 +232,7 @@ protected JsonSerializer _createSerializer2(SerializerProvider ctxt, } // can not be null any more (always get at least "unknown" serializer) if (_factoryConfig.hasSerializerModifiers()) { - for (BeanSerializerModifier mod : _factoryConfig.serializerModifiers()) { + for (ValueSerializerModifier mod : _factoryConfig.serializerModifiers()) { ser = mod.modifySerializer(config, beanDesc, ser); } } @@ -301,7 +301,7 @@ protected JsonSerializer constructBeanOrAddOnSerializer(SerializerProvid // allow modification bean properties to serialize if (_factoryConfig.hasSerializerModifiers()) { - for (BeanSerializerModifier mod : _factoryConfig.serializerModifiers()) { + for (ValueSerializerModifier mod : _factoryConfig.serializerModifiers()) { props = mod.changeProperties(config, beanDesc, props); } } @@ -311,7 +311,7 @@ protected JsonSerializer constructBeanOrAddOnSerializer(SerializerProvid // Need to allow reordering of properties to serialize if (_factoryConfig.hasSerializerModifiers()) { - for (BeanSerializerModifier mod : _factoryConfig.serializerModifiers()) { + for (ValueSerializerModifier mod : _factoryConfig.serializerModifiers()) { props = mod.orderProperties(config, beanDesc, props); } } @@ -352,7 +352,7 @@ protected JsonSerializer constructBeanOrAddOnSerializer(SerializerProvid // Finally: let interested parties mess with the result bit more... if (_factoryConfig.hasSerializerModifiers()) { - for (BeanSerializerModifier mod : _factoryConfig.serializerModifiers()) { + for (ValueSerializerModifier mod : _factoryConfig.serializerModifiers()) { builder = mod.updateBuilder(config, beanDesc, builder); } } diff --git a/src/main/java/com/fasterxml/jackson/databind/ser/SerializerFactory.java b/src/main/java/com/fasterxml/jackson/databind/ser/SerializerFactory.java index 4b12d72741..fee250664e 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ser/SerializerFactory.java +++ b/src/main/java/com/fasterxml/jackson/databind/ser/SerializerFactory.java @@ -75,7 +75,7 @@ public abstract JsonSerializer createKeySerializer(SerializerProvider ct * Mutant factory method for creating a new factory instance with additional serializer modifier: * modifier will get inserted as the first one to be checked. */ - public abstract SerializerFactory withSerializerModifier(BeanSerializerModifier modifier); + public abstract SerializerFactory withSerializerModifier(ValueSerializerModifier modifier); /** * @since 3.0 diff --git a/src/main/java/com/fasterxml/jackson/databind/ser/BeanSerializerModifier.java b/src/main/java/com/fasterxml/jackson/databind/ser/ValueSerializerModifier.java similarity index 90% rename from src/main/java/com/fasterxml/jackson/databind/ser/BeanSerializerModifier.java rename to src/main/java/com/fasterxml/jackson/databind/ser/ValueSerializerModifier.java index 0508eeafd2..41df011778 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ser/BeanSerializerModifier.java +++ b/src/main/java/com/fasterxml/jackson/databind/ser/ValueSerializerModifier.java @@ -7,10 +7,13 @@ import com.fasterxml.jackson.databind.type.*; /** - * Abstract class that defines API for objects that can be registered (for {@link BeanSerializerFactory} - * to participate in constructing {@link BeanSerializer} instances. - * This is typically done by modules that want alter some aspects of serialization - * process; and is preferable to sub-classing of {@link BeanSerializerFactory}. + * Abstract class that defines API for objects that can be registered + * (via {@code ObjectMapper} configuration process, + * using {@link com.fasterxml.jackson.databind.cfg.MapperBuilder}) + * to participate in constructing {@link JsonSerializer} instances + * (including but not limited to {@link BeanSerializer}s). + * This is typically done by modules that want alter some aspects of + * the typical serialization process. *

    * Sequence in which callback methods are called is as follows: *

      @@ -26,14 +29,18 @@ * to be modified (including possibly replacing builder itself if necessary) *
    1. Once all bean information has been determined, * factory creates default {@link BeanSerializer} instance and passes - * it to modifiers using {@link #modifySerializer}, for possible - * modification or replacement (by any {@link com.fasterxml.jackson.databind.JsonSerializer} instance) + * it to modifiers using {@link #modifySerializer} (or type-specic alternative + * {@code modifyXxxSerializer()} method), for possible + * modification or replacement (by any {@link com.fasterxml.jackson.databind.JsonSerializer} + * instance) *
    *

    * Default method implementations are "no-op"s, meaning that methods are implemented * but have no effect. + *

    + * NOTE: In Jackson 2.x was named {@code BeanSerializerModifier} */ -public abstract class BeanSerializerModifier +public abstract class ValueSerializerModifier { /** * Method called by {@link BeanSerializerFactory} with tentative set @@ -96,9 +103,9 @@ public JsonSerializer modifySerializer(SerializationConfig config, } /* - /********************************************************** + /********************************************************************** /* Callback methods for other types - /********************************************************** + /********************************************************************** */ /** diff --git a/src/test/java/com/fasterxml/jackson/databind/deser/TestCustomDeserializers.java b/src/test/java/com/fasterxml/jackson/databind/deser/TestCustomDeserializers.java index 3dfa8ac9ad..cd862af451 100644 --- a/src/test/java/com/fasterxml/jackson/databind/deser/TestCustomDeserializers.java +++ b/src/test/java/com/fasterxml/jackson/databind/deser/TestCustomDeserializers.java @@ -260,7 +260,7 @@ public DelegatingModuleImpl() { public void setupModule(SetupContext context) { super.setupModule(context); - context.addDeserializerModifier(new BeanDeserializerModifier() { + context.addDeserializerModifier(new ValueDeserializerModifier() { @Override public JsonDeserializer modifyDeserializer(DeserializationConfig config, BeanDescription beanDesc, JsonDeserializer deserializer) { @@ -494,7 +494,7 @@ public void testModifyingCustomDeserializer() throws Exception { ObjectMapper mapper = jsonMapperBuilder() .addModule(new SimpleModule() - .setDeserializerModifier(new BeanDeserializerModifier() { + .setDeserializerModifier(new ValueDeserializerModifier() { @Override public JsonDeserializer modifyDeserializer(DeserializationConfig config, BeanDescription beanDesc, JsonDeserializer deserializer) { diff --git a/src/test/java/com/fasterxml/jackson/databind/deser/bean/TestBeanDeserializer.java b/src/test/java/com/fasterxml/jackson/databind/deser/bean/TestBeanDeserializer.java index eb68851332..cc85b5f851 100644 --- a/src/test/java/com/fasterxml/jackson/databind/deser/bean/TestBeanDeserializer.java +++ b/src/test/java/com/fasterxml/jackson/databind/deser/bean/TestBeanDeserializer.java @@ -9,7 +9,7 @@ import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.databind.deser.BeanDeserializerBuilder; -import com.fasterxml.jackson.databind.deser.BeanDeserializerModifier; +import com.fasterxml.jackson.databind.deser.ValueDeserializerModifier; import com.fasterxml.jackson.databind.deser.SettableBeanProperty; import com.fasterxml.jackson.databind.deser.std.StdDeserializer; import com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer; @@ -39,9 +39,9 @@ public Bean(String a, String b) { static class ModuleImpl extends SimpleModule { - protected BeanDeserializerModifier modifier; + protected ValueDeserializerModifier modifier; - public ModuleImpl(BeanDeserializerModifier modifier) + public ModuleImpl(ValueDeserializerModifier modifier) { super("test", Version.unknownVersion()); this.modifier = modifier; @@ -57,7 +57,7 @@ public void setupModule(SetupContext context) } } - static class RemovingModifier extends BeanDeserializerModifier + static class RemovingModifier extends ValueDeserializerModifier { private final String _removedProperty; @@ -71,7 +71,7 @@ public BeanDeserializerBuilder updateBuilder(DeserializationConfig config, } } - static class ReplacingModifier extends BeanDeserializerModifier + static class ReplacingModifier extends ValueDeserializerModifier { private final JsonDeserializer _deserializer; @@ -122,7 +122,7 @@ public JsonDeserializer createContextual(DeserializationContext ctxt, return this; } } - public class Issue476DeserializerModifier extends BeanDeserializerModifier { + public class Issue476DeserializerModifier extends ValueDeserializerModifier { @Override public JsonDeserializer modifyDeserializer(DeserializationConfig config, BeanDescription beanDesc, JsonDeserializer deserializer) { @@ -196,7 +196,7 @@ public Issue1912SubBean deserialize(JsonParser p, DeserializationContext ctxt) } } - public static class Issue1912UseAddOrReplacePropertyDeserializerModifier extends BeanDeserializerModifier + public static class Issue1912UseAddOrReplacePropertyDeserializerModifier extends ValueDeserializerModifier { @Override public JsonDeserializer modifyDeserializer(DeserializationConfig config, BeanDescription beanDesc, JsonDeserializer deserializer) { @@ -236,7 +236,7 @@ public void setupModule(SetupContext context) { enum EnumABC { A, B, C; } - static class ArrayDeserializerModifier extends BeanDeserializerModifier { + static class ArrayDeserializerModifier extends ValueDeserializerModifier { @Override public JsonDeserializer modifyArrayDeserializer(DeserializationConfig config, ArrayType valueType, BeanDescription beanDesc, JsonDeserializer deserializer) { @@ -249,7 +249,7 @@ public JsonDeserializer modifyArrayDeserializer(DeserializationConfig config, } } - static class CollectionDeserializerModifier extends BeanDeserializerModifier { + static class CollectionDeserializerModifier extends ValueDeserializerModifier { @Override public JsonDeserializer modifyCollectionDeserializer(DeserializationConfig config, CollectionType valueType, BeanDescription beanDesc, JsonDeserializer deserializer) { @@ -264,7 +264,7 @@ public JsonDeserializer modifyCollectionDeserializer(DeserializationConfig co } } - static class MapDeserializerModifier extends BeanDeserializerModifier { + static class MapDeserializerModifier extends ValueDeserializerModifier { @Override public JsonDeserializer modifyMapDeserializer(DeserializationConfig config, MapType valueType, BeanDescription beanDesc, JsonDeserializer deserializer) { @@ -279,7 +279,7 @@ public JsonDeserializer modifyMapDeserializer(DeserializationConfig config, M } } - static class EnumDeserializerModifier extends BeanDeserializerModifier { + static class EnumDeserializerModifier extends ValueDeserializerModifier { @Override public JsonDeserializer modifyEnumDeserializer(DeserializationConfig config, JavaType valueType, BeanDescription beanDesc, JsonDeserializer deserializer) { @@ -292,7 +292,7 @@ public JsonDeserializer modifyEnumDeserializer(DeserializationConfig config, } } - static class KeyDeserializerModifier extends BeanDeserializerModifier { + static class KeyDeserializerModifier extends ValueDeserializerModifier { @Override public KeyDeserializer modifyKeyDeserializer(DeserializationConfig config, JavaType valueType, KeyDeserializer kd) { @@ -442,7 +442,7 @@ public void testModifyStdScalarDeserializer() throws Exception { ObjectMapper mapper = jsonMapperBuilder() .addModule(new SimpleModule("test") - .setDeserializerModifier(new BeanDeserializerModifier() { + .setDeserializerModifier(new ValueDeserializerModifier() { @Override public JsonDeserializer modifyDeserializer(DeserializationConfig config, BeanDescription beanDesc, JsonDeserializer deser) { diff --git a/src/test/java/com/fasterxml/jackson/databind/module/TestCustomEnumKeyDeserializer.java b/src/test/java/com/fasterxml/jackson/databind/module/TestCustomEnumKeyDeserializer.java index cf5be41b75..ffd23a13d5 100644 --- a/src/test/java/com/fasterxml/jackson/databind/module/TestCustomEnumKeyDeserializer.java +++ b/src/test/java/com/fasterxml/jackson/databind/module/TestCustomEnumKeyDeserializer.java @@ -11,7 +11,7 @@ import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.databind.deser.BeanDeserializerModifier; +import com.fasterxml.jackson.databind.deser.ValueDeserializerModifier; import com.fasterxml.jackson.databind.deser.std.StdDeserializer; import com.fasterxml.jackson.databind.exc.InvalidFormatException; import com.fasterxml.jackson.databind.node.ObjectNode; @@ -228,7 +228,7 @@ public SuperTypeEnum deserialize(JsonParser p, DeserializationContext deserializ public void testCustomEnumValueAndKeyViaModifier() throws IOException { SimpleModule module = new SimpleModule(); - module.setDeserializerModifier(new BeanDeserializerModifier() { + module.setDeserializerModifier(new ValueDeserializerModifier() { @Override public JsonDeserializer modifyEnumDeserializer(DeserializationConfig config, final JavaType type, BeanDescription beanDesc, diff --git a/src/test/java/com/fasterxml/jackson/databind/ser/BeanSerializerModifier1612Test.java b/src/test/java/com/fasterxml/jackson/databind/ser/ValueSerializerModifier1612Test.java similarity index 94% rename from src/test/java/com/fasterxml/jackson/databind/ser/BeanSerializerModifier1612Test.java rename to src/test/java/com/fasterxml/jackson/databind/ser/ValueSerializerModifier1612Test.java index 5b96400d2f..2ef602228b 100644 --- a/src/test/java/com/fasterxml/jackson/databind/ser/BeanSerializerModifier1612Test.java +++ b/src/test/java/com/fasterxml/jackson/databind/ser/ValueSerializerModifier1612Test.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.databind.exc.InvalidDefinitionException; import com.fasterxml.jackson.databind.module.SimpleModule; -public class BeanSerializerModifier1612Test extends BaseMapTest +public class ValueSerializerModifier1612Test extends BaseMapTest { @JsonPropertyOrder({ "a", "b", "c" }) static class Bean1612 { @@ -23,7 +23,7 @@ public Bean1612(Integer a, Integer b, Double c) { } } - static class Modifier1612 extends BeanSerializerModifier { + static class Modifier1612 extends ValueSerializerModifier { @Override public BeanSerializerBuilder updateBuilder(SerializationConfig config, BeanDescription beanDesc, BeanSerializerBuilder builder) { diff --git a/src/test/java/com/fasterxml/jackson/databind/ser/BeanSerializerModifierTest.java b/src/test/java/com/fasterxml/jackson/databind/ser/ValueSerializerModifierTest.java similarity index 93% rename from src/test/java/com/fasterxml/jackson/databind/ser/BeanSerializerModifierTest.java rename to src/test/java/com/fasterxml/jackson/databind/ser/ValueSerializerModifierTest.java index 6d76ffb799..dfd350621e 100644 --- a/src/test/java/com/fasterxml/jackson/databind/ser/BeanSerializerModifierTest.java +++ b/src/test/java/com/fasterxml/jackson/databind/ser/ValueSerializerModifierTest.java @@ -20,13 +20,13 @@ * construction of {@link BeanSerializer} instances. */ @SuppressWarnings("serial") -public class BeanSerializerModifierTest extends BaseMapTest +public class ValueSerializerModifierTest extends BaseMapTest { static class SerializerModifierModule extends SimpleModule { - protected BeanSerializerModifier modifier; + protected ValueSerializerModifier modifier; - public SerializerModifierModule(BeanSerializerModifier modifier) + public SerializerModifierModule(ValueSerializerModifier modifier) { super("test", Version.unknownVersion()); this.modifier = modifier; @@ -48,7 +48,7 @@ static class Bean { public String a = "a"; } - static class RemovingModifier extends BeanSerializerModifier + static class RemovingModifier extends ValueSerializerModifier { private final String _removedProperty; @@ -69,7 +69,7 @@ public List changeProperties(SerializationConfig config, Bea } } - static class ReorderingModifier extends BeanSerializerModifier + static class ReorderingModifier extends ValueSerializerModifier { @Override public List orderProperties(SerializationConfig config, BeanDescription beanDesc, List beanProperties) @@ -82,7 +82,7 @@ public List orderProperties(SerializationConfig config, Bean } } - static class ReplacingModifier extends BeanSerializerModifier + static class ReplacingModifier extends ValueSerializerModifier { private final JsonSerializer _serializer; @@ -95,7 +95,7 @@ public JsonSerializer modifySerializer(SerializationConfig config, BeanDescri } } - static class BuilderModifier extends BeanSerializerModifier + static class BuilderModifier extends ValueSerializerModifier { private final JsonSerializer _serializer; @@ -147,7 +147,7 @@ static class EmptyBean { public String name = "foo"; } - static class EmptyBeanModifier extends BeanSerializerModifier + static class EmptyBeanModifier extends ValueSerializerModifier { @Override public List changeProperties(SerializationConfig config, @@ -171,7 +171,7 @@ public List changeProperties(SerializationConfig config, } // [Issue#539]: use post-modifier - static class EmptyBeanModifier539 extends BeanSerializerModifier + static class EmptyBeanModifier539 extends ValueSerializerModifier { @Override public List changeProperties(SerializationConfig config, @@ -188,7 +188,7 @@ public JsonSerializer modifySerializer(SerializationConfig config, } // [databind#120], arrays, collections, maps - static class ArraySerializerModifier extends BeanSerializerModifier { + static class ArraySerializerModifier extends ValueSerializerModifier { @Override public JsonSerializer modifyArraySerializer(SerializationConfig config, ArrayType valueType, BeanDescription beanDesc, JsonSerializer serializer) { @@ -200,7 +200,7 @@ public JsonSerializer modifyArraySerializer(SerializationConfig config, } } - static class CollectionSerializerModifier extends BeanSerializerModifier { + static class CollectionSerializerModifier extends ValueSerializerModifier { @Override public JsonSerializer modifyCollectionSerializer(SerializationConfig config, CollectionType valueType, BeanDescription beanDesc, JsonSerializer serializer) { @@ -212,7 +212,7 @@ public JsonSerializer modifyCollectionSerializer(SerializationConfig config, } } - static class MapSerializerModifier extends BeanSerializerModifier { + static class MapSerializerModifier extends ValueSerializerModifier { @Override public JsonSerializer modifyMapSerializer(SerializationConfig config, MapType valueType, BeanDescription beanDesc, JsonSerializer serializer) { @@ -224,7 +224,7 @@ public JsonSerializer modifyMapSerializer(SerializationConfig config, } } - static class EnumSerializerModifier extends BeanSerializerModifier { + static class EnumSerializerModifier extends ValueSerializerModifier { @Override public JsonSerializer modifyEnumSerializer(SerializationConfig config, JavaType valueType, BeanDescription beanDesc, JsonSerializer serializer) { @@ -236,7 +236,7 @@ public JsonSerializer modifyEnumSerializer(SerializationConfig config, } } - static class KeySerializerModifier extends BeanSerializerModifier { + static class KeySerializerModifier extends ValueSerializerModifier { @Override public JsonSerializer modifyKeySerializer(SerializationConfig config, JavaType valueType, BeanDescription beanDesc, JsonSerializer serializer) {