com.fasterxml.jackson.databind.ser.impl

## Class StringCollectionSerializer

- java.lang.Object
- - com.fasterxml.jackson.databind.JsonSerializer<T>
  - - com.fasterxml.jackson.databind.ser.std.StdSerializer<T>
    - - com.fasterxml.jackson.databind.ser.std.StaticListSerializerBase<Collection<String>>
      - - com.fasterxml.jackson.databind.ser.impl.StringCollectionSerializer

- All Implemented Interfaces:
    JsonFormatVisitable, SchemaAware, ContextualSerializer

      public class StringCollectionSerializer
      extends StaticListSerializerBase<Collection<String>>
      implements ContextualSerializer

  Efficient implement for serializing `Collection`s that contain Strings. The only complexity is due to possibility that serializer for `String` may be overridde; because of this, logic is needed to ensure that the default serializer is in use to use fastest mode, or if not, to defer to custom String serializer.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.JsonSerializer

      `JsonSerializer.None`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected JsonSerializer<String>` | `_serializer`
    `static StringCollectionSerializer` | `instance`

    - ### Fields inherited from class com.fasterxml.jackson.databind.ser.std.StdSerializer

      `_handledType`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `StringCollectionSerializer()`
    `protected` | `StringCollectionSerializer(JsonSerializer<?> ser)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `acceptContentVisitor(JsonArrayFormatVisitor visitor)`
    `protected JsonNode` | `contentSchema()`
    `JsonSerializer<?>` | `createContextual(SerializerProvider provider, BeanProperty property)` Method called to see if a different (or differently configured) serializer is needed to serialize values of specified property.
    `void` | `serialize(Collection<String> value, JsonGenerator jgen, SerializerProvider provider)` Method that can be called to ask implementation to serialize values of type this serializer handles.
    `void` | `serializeWithType(Collection<String> value, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)` 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.

    - ### Methods inherited from class com.fasterxml.jackson.databind.ser.std.StaticListSerializerBase

      `acceptJsonFormatVisitor, getSchema, isEmpty`

    - ### Methods inherited from class com.fasterxml.jackson.databind.ser.std.StdSerializer

      `createObjectNode, createSchemaNode, createSchemaNode, findConvertingContentSerializer, getSchema, handledType, isDefaultSerializer, wrapAndThrow, wrapAndThrow`

    - ### Methods inherited from class com.fasterxml.jackson.databind.JsonSerializer

      `getDelegatee, isUnwrappingSerializer, replaceDelegatee, unwrappingSerializer, usesObjectId`

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

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

- - ### Field Detail

    - #### instance

          public static final StringCollectionSerializer instance

    - #### _serializer

          protected final JsonSerializer<String> _serializer

  - ### Constructor Detail

    - #### StringCollectionSerializer

          protected StringCollectionSerializer()

    - #### StringCollectionSerializer

          protected StringCollectionSerializer(JsonSerializer<?> ser)

  - ### Method Detail

    - #### contentSchema

          protected JsonNode contentSchema()

      Specified by:
        `contentSchema` in class `StaticListSerializerBase<Collection<String>>`

    - #### acceptContentVisitor

          protected void acceptContentVisitor(JsonArrayFormatVisitor visitor)
                                       throws JsonMappingException

      Specified by:
        `acceptContentVisitor` in class `StaticListSerializerBase<Collection<String>>`
      Throws:
        `JsonMappingException`

    - #### createContextual

          public JsonSerializer<?> createContextual(SerializerProvider provider,
                                           BeanProperty property)
                                             throws JsonMappingException

      Description copied from interface: `ContextualSerializer`
      Method called to see if a different (or differently configured) serializer is needed to serialize values of specified property. 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.
      Specified by:
        `createContextual` in interface `ContextualSerializer`
      Parameters:
        `provider` - Serializer provider to use for accessing config, other serializers
        `property` - Method or field that represents the property (and is used to access value to serialize). Should be available; but there may be cases where caller can not provide it and null is passed instead (in which case impls usually pass 'this' serializer as is)
      Returns:
        Serializer to use for serializing values of specified property; may be this instance or a new instance.
      Throws:
        `JsonMappingException`

    - #### serialize

          public void serialize(Collection<String> value,
                       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 `StdSerializer<Collection<String>>`
      Parameters:
        `value` - 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`

    - #### serializeWithType

          public void serializeWithType(Collection<String> value,
                               JsonGenerator jgen,
                               SerializerProvider provider,
                               TypeSerializer typeSer)
                                 throws IOException,
                                        JsonGenerationException

      Description copied from class: `JsonSerializer`
      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 `UnsupportedOperationException` to indicate that proper type handling needs to be implemented.

      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, jgen);
            serialize(value, jgen, provider);
            typeSer.writeTypeSuffixForScalar(value, jgen);

      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.``
      Overrides:
        `serializeWithType` in class `JsonSerializer<Collection<String>>`
      Parameters:
        `value` - 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.
        `typeSer` - Type serializer to use for including type information
      Throws:
        `IOException`
        `JsonGenerationException`

Copyright © 2012-2013 FasterXML. All Rights Reserved.