EnumSerializer (Jackson JSON Processor)
Date: 2013-07-14

org.codehaus.jackson.map.ser.std

## Class EnumSerializer

- java.lang.Object
- - org.codehaus.jackson.map.JsonSerializer<T>
  - - org.codehaus.jackson.map.ser.std.SerializerBase<T>
    - - org.codehaus.jackson.map.ser.std.ScalarSerializerBase<Enum<?>>
      - - org.codehaus.jackson.map.ser.std.EnumSerializer

- All Implemented Interfaces:
    SchemaAware
  Direct Known Subclasses:
    EnumSerializer

      public class EnumSerializer
      extends ScalarSerializerBase<Enum<?>>

  Standard serializer used for `Enum` types.

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

  Author:
    tatu

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.codehaus.jackson.map.JsonSerializer

      `JsonSerializer.None`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected EnumValues` | `_values` This map contains pre-resolved values (since there are ways to customize actual String constants to use) to use as serializations.

    - ### Fields inherited from class org.codehaus.jackson.map.ser.std.SerializerBase

      `_handledType`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `EnumSerializer(EnumValues v)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static EnumSerializer` | `construct(Class<Enum<?>> enumClass, SerializationConfig config, BasicBeanDescription beanDesc)`
    `EnumValues` | `getEnumValues()`
    `JsonNode` | `getSchema(SerializerProvider provider, Type typeHint)` Note: since Jackson 1.9, default implementation claims type is "string"
    `void` | `serialize(Enum<?> en, JsonGenerator jgen, SerializerProvider provider)` Method that can be called to ask implementation to serialize values of type this serializer handles.

    - ### Methods inherited from class org.codehaus.jackson.map.ser.std.ScalarSerializerBase

      `serializeWithType`

    - ### Methods inherited from class org.codehaus.jackson.map.ser.std.SerializerBase

      `createObjectNode, createSchemaNode, createSchemaNode, handledType, isDefaultSerializer, wrapAndThrow, wrapAndThrow, wrapAndThrow, wrapAndThrow`

    - ### Methods inherited from class org.codehaus.jackson.map.JsonSerializer

      `isUnwrappingSerializer, unwrappingSerializer`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### _values

          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.

  - ### Constructor Detail

    - #### EnumSerializer

          public EnumSerializer(EnumValues v)

  - ### Method Detail

    - #### construct

          public static EnumSerializer construct(Class<Enum<?>> enumClass,
                                 SerializationConfig config,
                                 BasicBeanDescription beanDesc)

    - #### serialize

          public final void serialize(Enum<?> en,
                       JsonGenerator jgen,
                       SerializerProvider provider)
                               throws IOException,
                                      JsonGenerationException

      Description copied from class: `JsonSerializer`
      Method that can be called to ask implementation to serialize values of type this serializer handles.
      Specified by:
        `serialize` in class `SerializerBase<Enum<?>>`
      Parameters:
        `en` - Value to serialize; can not be null.
        `jgen` - Generator used to output resulting Json content
        `provider` - Provider that can be used to get serializers for serializing Objects value contains, if any.
      Throws:
        `IOException`
        `JsonGenerationException`

    - #### getSchema

          public JsonNode getSchema(SerializerProvider provider,
                           Type typeHint)

      Description copied from class: `SerializerBase`
      Note: since Jackson 1.9, default implementation claims type is "string"
      Specified by:
        `getSchema` in interface `SchemaAware`
      Overrides:
        `getSchema` in class `ScalarSerializerBase<Enum<?>>`
      Parameters:
        `provider` - The serializer provider.
        `typeHint` - A hint about the type.
      Returns:
        Json-schema for this serializer.

    - #### getEnumValues

          public EnumValues getEnumValues()