com.fasterxml.jackson.databind.ser.impl

## Class IndexedStringListSerializer

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

All Implemented Interfaces:
  JsonFormatVisitable, SchemaAware, ContextualSerializer, Serializable

    public final class IndexedStringListSerializer
    extends StaticListSerializerBase<List<String>>

Efficient implement for serializing `List`s that contains Strings and are random-accessible. 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.

See Also:
  Serialized Form

### Nested Class Summary

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

`JsonSerializer.None`

### Field Summary

Fields
`static IndexedStringListSerializer` `instance`

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

`_unwrapSingle`

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

`_handledType`

### Constructor Summary

Constructors
`protected` `IndexedStringListSerializer()`
`` `IndexedStringListSerializer(IndexedStringListSerializer src, Boolean unwrapSingle)`

### Method Summary

All Methods Instance Methods Concrete Methods
`JsonSerializer<?>` `_withResolved(BeanProperty prop, Boolean unwrapSingle)`
`protected void` `acceptContentVisitor(JsonArrayFormatVisitor visitor)`
`protected JsonNode` `contentSchema()`
`void` `serialize(List<String> value, com.fasterxml.jackson.core.JsonGenerator g, SerializerProvider provider)` Method that can be called to ask implementation to serialize values of type this serializer handles.
`void` `serializeWithType(List<String> value, com.fasterxml.jackson.core.JsonGenerator g, 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, createContextual, getSchema, isEmpty`

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

`_neitherNull, _nonEmpty, createSchemaNode, createSchemaNode, findAnnotatedContentSerializer, findContextualConvertingSerializer, findConvertingContentSerializer, findFormatFeature, findFormatOverrides, findIncludeOverrides, findPropertyFilter, getSchema, handledType, isDefaultSerializer, visitArrayFormat, visitArrayFormat, visitFloatFormat, visitIntFormat, visitIntFormat, visitStringFormat, visitStringFormat, wrapAndThrow, wrapAndThrow`

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

`getDelegatee, isEmpty, isUnwrappingSerializer, properties, replaceDelegatee, unwrappingSerializer, usesObjectId, withFilterId, withIgnoredProperties`

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

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

### Field Detail

#### instance

    public static final IndexedStringListSerializer instance

### Constructor Detail

#### IndexedStringListSerializer

    protected IndexedStringListSerializer()

#### IndexedStringListSerializer

    public IndexedStringListSerializer(IndexedStringListSerializer src,
                                       Boolean unwrapSingle)

### Method Detail

#### _withResolved

    public JsonSerializer<?> _withResolved(BeanProperty prop,
                                           Boolean unwrapSingle)

Specified by:
  `_withResolved` in class `StaticListSerializerBase<List<String>>`

#### contentSchema

    protected JsonNode contentSchema()

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

#### acceptContentVisitor

    protected void acceptContentVisitor(JsonArrayFormatVisitor visitor)
                                 throws JsonMappingException

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

#### serialize

    public void serialize(List<String> value,
                          com.fasterxml.jackson.core.JsonGenerator g,
                          SerializerProvider provider)
                   throws IOException

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<List<String>>`
Parameters:
  `value` - Value to serialize; can not be null.
  `g` - 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`

#### serializeWithType

    public void serializeWithType(List<String> value,
                                  com.fasterxml.jackson.core.JsonGenerator g,
                                  SerializerProvider provider,
                                  TypeSerializer typeSer)
                           throws IOException

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, 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.

Specified by:
  `serializeWithType` in class `StaticListSerializerBase<List<String>>`
Parameters:
  `value` - Value to serialize; can not be null.
  `g` - 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`