Top Description Fields Constructors Methods
tools.jackson.databind.ser.jdk

public Class EnumSerializer

extends StdScalarSerializer<Enum<?>>
Class Inheritance
Annotations
@JacksonStdImpl
Imports
java.util.LinkedHashSet, .Objects, .Set, com.fasterxml.jackson.annotation.JsonFormat, .JsonFormat.Shape, tools.jackson.core.*, tools.jackson.databind.*, tools.jackson.databind.annotation.JacksonStdImpl, tools.jackson.databind.cfg.EnumFeature, tools.jackson.databind.introspect.AnnotatedClass, .EnumNamingStrategyFactory, tools.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper, .JsonStringFormatVisitor, tools.jackson.databind.ser.std.StdScalarSerializer, tools.jackson.databind.util.EnumValues

Standard serializer used for java.lang.Enum types.

Based on StdScalarSerializer since the JSON value is scalar (String).

Field Summary

Modifier and TypeField and Description
protected final Boolean
_serializeAsIndex

Flag that is set if we statically know serialization choice between index and textual format (null if it needs to be dynamically checked).

protected final EnumValues
_values

This map contains pre-resolved values (since there are ways to customize actual String constants to use) to use as serializations.

protected final EnumValues
_valuesByEnumNaming

Map with key as converted property class defined implementation of EnumNamingStrategy and with value as Enum names collected using Enum.name().

protected final EnumValues
_valuesByToString

Map that contains pre-resolved values for Enum#toString to use for serialization, while respecting com.fasterxml.jackson.annotation.JsonProperty and tools.jackson.databind.cfg.EnumFeature#WRITE_ENUMS_TO_LOWERCASE.

Constructor Summary

AccessConstructor and Description
public
EnumSerializer(EnumValues v, Boolean serializeAsIndex, EnumValues valuesByEnumNaming, EnumValues valuesByToString)

Method Summary

Modifier and TypeMethod and Description
protected static Boolean
_isShapeWrittenUsingIndex(Class<?> enumClass, JsonFormat.Value format, boolean fromClass, Boolean defaultValue)

Helper method called to check whether serialization should be done using index (number) or not.

protected final boolean
public void
public static EnumSerializer
construct(Class<?> enumClass, SerializationConfig config, BeanDescription beanDesc, JsonFormat.Value format)

Factory method used by tools.jackson.databind.ser.BasicSerializerFactory for constructing serializer instance of Enum types.

protected static EnumValues
constructEnumNamingStrategyValues(SerializationConfig config, Class<Enum<?>> enumClass, AnnotatedClass annotatedClass)

Factory method used to resolve an instance of EnumValues with EnumNamingStrategy applied for the target class.

public ValueSerializer<?>
createContextual(SerializationContext ctxt, BeanProperty property)

Overrides tools.jackson.databind.ValueSerializer.createContextual.

To support some level of per-property configuration, we will need to make things contextual.

public EnumValues
public final void
serialize(Enum<?> en, JsonGenerator g, SerializationContext ctxt)

Implements abstract tools.jackson.databind.ser.std.StdSerializer.serialize.

Method that can be called to ask implementation to serialize values of type this serializer handles.

Inherited from tools.jackson.databind.ser.std.StdScalarSerializer:
serializeWithType

Field Detail

_serializeAsIndexback to summary
protected final Boolean _serializeAsIndex

Flag that is set if we statically know serialization choice between index and textual format (null if it needs to be dynamically checked).

_valuesback to summary
protected final EnumValues _values

This map contains pre-resolved values (since there are ways to customize actual String constants to use) to use as serializations.

_valuesByEnumNamingback to summary
protected final EnumValues _valuesByEnumNaming

Map with key as converted property class defined implementation of EnumNamingStrategy and with value as Enum names collected using Enum.name().

_valuesByToStringback to summary
protected final EnumValues _valuesByToString

Map that contains pre-resolved values for Enum#toString to use for serialization, while respecting com.fasterxml.jackson.annotation.JsonProperty and tools.jackson.databind.cfg.EnumFeature#WRITE_ENUMS_TO_LOWERCASE.

Constructor Detail

EnumSerializerback to summary
public EnumSerializer(EnumValues v, Boolean serializeAsIndex, EnumValues valuesByEnumNaming, EnumValues valuesByToString)

Method Detail

_isShapeWrittenUsingIndexback to summary
protected static Boolean _isShapeWrittenUsingIndex(Class<?> enumClass, JsonFormat.Value format, boolean fromClass, Boolean defaultValue)

Helper method called to check whether serialization should be done using index (number) or not.

_serializeAsIndexback to summary
protected final boolean _serializeAsIndex(SerializationContext ctxt)
acceptJsonFormatVisitorback to summary
public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType typeHint)

Overrides tools.jackson.databind.ser.std.StdScalarSerializer.acceptJsonFormatVisitor.

Implements tools.jackson.databind.jsonFormatVisitors.JsonFormatVisitable.acceptJsonFormatVisitor.

Doc from tools.jackson.databind.ser.std.StdSerializer.acceptJsonFormatVisitor.

Default implementation specifies no format. This behavior is usually overriden by custom serializers.

Annotations
@Override
constructback to summary
public static EnumSerializer construct(Class<?> enumClass, SerializationConfig config, BeanDescription beanDesc, JsonFormat.Value format)

Factory method used by tools.jackson.databind.ser.BasicSerializerFactory for constructing serializer instance of Enum types.

Annotations
@SuppressWarnings:unchecked
constructEnumNamingStrategyValuesback to summary
protected static EnumValues constructEnumNamingStrategyValues(SerializationConfig config, Class<Enum<?>> enumClass, AnnotatedClass annotatedClass)

Factory method used to resolve an instance of EnumValues with EnumNamingStrategy applied for the target class.

createContextualback to summary
public ValueSerializer<?> createContextual(SerializationContext ctxt, BeanProperty property)

Overrides tools.jackson.databind.ValueSerializer.createContextual.

To support some level of per-property configuration, we will need to make things contextual. We are limited to "textual vs index" choice here, however.

Annotations
@Override
getEnumValuesback to summary
public EnumValues getEnumValues()
serializeback to summary
public final void serialize(Enum<?> en, JsonGenerator g, SerializationContext ctxt) throws JacksonException

Implements abstract tools.jackson.databind.ser.std.StdSerializer.serialize.

Doc from tools.jackson.databind.ValueSerializer.serialize.

Method that can be called to ask implementation to serialize values of type this serializer handles.

Annotations
@Override