Converter, and then this delegate value is serialized by Jackson.
Note that although types may be related, they must not be same; trying to do this will result in an exception.
| Modifier and Type | Field and Description |
|---|---|
| protected final Converter | |
| protected final ValueSerializer | _delegateSerializer
Underlying serializer for type |
| protected final JavaType | _delegateType
Fully resolved delegate type, with generic information if any available. |
| protected PropertySerializerMap | _dynamicValueSerializers
If delegate serializer needs to be accessed dynamically (non-final type, static type not forced), this data structure helps with efficient lookups. |
| protected final BeanProperty |
| Access | Constructor and Description |
|---|---|
| public | |
| public <T> | |
| public | StdDelegatingSerializer(Converter<Object, ?> converter, JavaType delegateType, ValueSerializer<?> delegateSerializer, BeanProperty prop)
|
| Modifier and Type | Method and Description |
|---|---|
| protected ValueSerializer | _findSerializer(Object value, SerializationContext ctxt)
Helper method used for locating serializer to use in dynamic use case, where
actual type value gets converted to is not specified beyond basic
|
| public void | acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType typeHint)
Overrides tools. Implements tools. Default implementation specifies no format. |
| protected Object | Returns: Result of conversionValue to convert value)Method called to convert from source Java value into delegate value (which will be serialized using standard Jackson serializer for delegate type)
The default implementation uses configured |
| public ValueSerializer | createContextual(SerializationContext ctxt, BeanProperty property)
Overrides tools. Method called to see if a different (or differently configured) serializer is needed to serialize values of specified property (or, for root values, in which case `null` is passed). |
| public Converter | |
| public ValueSerializer | getDelegatee()
Overrides tools. Accessor that can be used to determine if this serializer uses another serializer for actual serialization, by delegating calls. |
| public boolean | isEmpty(SerializationContext ctxt, Object value)
Overrides tools. Method called to check whether given serializable value is considered "empty" value (for purposes of suppressing serialization of empty values). |
| public void | resolve(SerializationContext ctxt)
Overrides tools. Method called after |
| public void | serialize(Object value, JsonGenerator gen, SerializationContext ctxt)
Implements abstract tools. Method that can be called to ask implementation to serialize values of type this serializer handles. |
| public void | serializeWithType(Object value, JsonGenerator gen, SerializationContext ctxt, TypeSerializer typeSer)
Overrides tools. Method that can be called to ask implementation to serialize values of type this serializer handles, using specified type serializer for embedding necessary type information. |
| protected StdDelegatingSerializer | withDelegate(Converter<Object, ?> converter, JavaType delegateType, ValueSerializer<?> delegateSerializer, BeanProperty prop)
Method used for creating resolved contextual instances. |
| _converter | back to summary |
|---|---|
| protected final Converter<Object, ?> _converter | |
| _delegateSerializer | back to summary |
|---|---|
| protected final ValueSerializer<Object> _delegateSerializer Underlying serializer for type | |
| _delegateType | back to summary |
|---|---|
| protected final JavaType _delegateType Fully resolved delegate type, with generic information if any available. | |
| _dynamicValueSerializers | back to summary |
|---|---|
| protected PropertySerializerMap _dynamicValueSerializers If delegate serializer needs to be accessed dynamically (non-final type, static type not forced), this data structure helps with efficient lookups.
| |
| _property | back to summary |
|---|---|
| protected final BeanProperty _property | |
| StdDelegatingSerializer | back to summary |
|---|---|
public StdDelegatingSerializer(Converter<?, ?> converter)
| |
| StdDelegatingSerializer | back to summary |
|---|---|
public <T> StdDelegatingSerializer(Class<T> cls, Converter<T, ?> converter)
| |
| StdDelegatingSerializer | back to summary |
|---|---|
public StdDelegatingSerializer(Converter<Object, ?> converter, JavaType delegateType, ValueSerializer<?> delegateSerializer, BeanProperty prop)
| |
| _findSerializer | back to summary |
|---|---|
| protected ValueSerializer Helper method used for locating serializer to use in dynamic use case, where
actual type value gets converted to is not specified beyond basic
| |
| acceptJsonFormatVisitor | back to summary |
|---|---|
| public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType typeHint) Overrides tools. Implements tools. Doc from tools. Default implementation specifies no format. This behavior is usually overriden by custom serializers.
| |
| convertValue | back to summary |
|---|---|
| protected Object convertValue(SerializationContext ctxt, Object value) Method called to convert from source Java value into delegate value (which will be serialized using standard Jackson serializer for delegate type)
The default implementation uses configured | |
| createContextual | back to summary |
|---|---|
| public ValueSerializer Overrides tools. Doc from tools. Method called to see if a different (or differently configured) serializer is needed to serialize values of specified property (or, for root values, in which case `null` is passed). Note that instance that this method is called on is typically shared one and as a result method should NOT modify this instance but rather construct and return a new instance. This instance should only be returned as-is, in case it is already suitable for use. Note that method is only called once per POJO property, and for the first usage as root value serializer; it is not called for every serialization, as doing that would have significant performance impact; most serializers cache contextual instances for future use.
| |
| getConverter | back to summary |
|---|---|
| public Converter | |
| getDelegatee | back to summary |
|---|---|
| public ValueSerializer Overrides tools. Doc from tools. Accessor that can be used to determine if this serializer uses another serializer for actual serialization, by delegating calls. If so, will return immediate delegate (which itself may delegate to further serializers); otherwise will return null.
| |
| isEmpty | back to summary |
|---|---|
| public boolean isEmpty(SerializationContext ctxt, Object value) Overrides tools. Doc from tools. Method called to check whether given serializable value is considered "empty" value (for purposes of suppressing serialization of empty values). Default implementation will consider only null values to be empty.
| |
| resolve | back to summary |
|---|---|
| public void resolve(SerializationContext ctxt) Overrides tools. Doc from tools. Method called after Note that this method does NOT return serializer, since resolution is not allowed to change actual serializer to use.
| |
| serialize | back to summary |
|---|---|
| public void serialize(Object value, JsonGenerator gen, SerializationContext ctxt) throws JacksonException Implements abstract tools. Doc from tools. Method that can be called to ask implementation to serialize values of type this serializer handles.
| |
| serializeWithType | back to summary |
|---|---|
| public void serializeWithType(Object value, JsonGenerator gen, SerializationContext ctxt, TypeSerializer typeSer) throws JacksonException Overrides tools. Doc from tools. Method that can be called to ask implementation to serialize values of type this serializer handles, using specified type serializer for embedding necessary type information.
Default implementation will throw For simple datatypes written as a single scalar value (JSON String, Number, Boolean), implementation would look like: // note: method to call depends on whether this type is serialized as JSON scalar, object or Array! typeSer.writeTypePrefixForScalar(value, gen); serialize(value, gen, provider); typeSer.writeTypeSuffixForScalar(value, gen);and implementations for type serialized as JSON Arrays or Objects would differ slightly, as START-ARRAY/END-ARRAY and
START-OBJECT/END-OBJECT pairs
need to be properly handled with respect to serializing of contents.
| |
| withDelegate | back to summary |
|---|---|
| protected StdDelegatingSerializer withDelegate(Converter<Object, ?> converter, JavaType delegateType, ValueSerializer<?> delegateSerializer, BeanProperty prop) Method used for creating resolved contextual instances. Must be overridden when sub-classing. | |