com.fasterxml.jackson.databind.jsontype.impl

## Class TypeSerializerBase

- java.lang.Object
- - com.fasterxml.jackson.databind.jsontype.TypeSerializer
  - - com.fasterxml.jackson.databind.jsontype.impl.TypeSerializerBase

Direct Known Subclasses:
  AsArrayTypeSerializer, AsExternalTypeSerializer, AsWrapperTypeSerializer

    public abstract class TypeSerializerBase
    extends TypeSerializer

### Field Summary

Fields
`protected TypeIdResolver` `_idResolver`
`protected BeanProperty` `_property`

### Constructor Summary

Constructors
`protected` `TypeSerializerBase(TypeIdResolver idRes, BeanProperty property)`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`protected void` `_generateTypeId(com.fasterxml.jackson.core.type.WritableTypeId idMetadata)` Helper method that will generate type id to use, if not already passed.
`String` `getPropertyName()` Name of property that contains type information, if property-based inclusion is used.
`TypeIdResolver` `getTypeIdResolver()` Accessor for object that handles conversions between types and matching type ids.
`abstract JsonTypeInfo.As` `getTypeInclusion()` Accessor for type information inclusion method that serializer uses; indicates how type information is embedded in resulting JSON.
`protected void` `handleMissingId(Object value)`
`protected String` `idFromValue(Object value)`
`protected String` `idFromValueAndType(Object value, Class<?> type)`
`com.fasterxml.jackson.core.type.WritableTypeId` `writeTypePrefix(com.fasterxml.jackson.core.JsonGenerator g, com.fasterxml.jackson.core.type.WritableTypeId idMetadata)` Method called to write initial part of type information for given value, along with possible wrapping to use: details are specified by `typeId` argument.
`com.fasterxml.jackson.core.type.WritableTypeId` `writeTypeSuffix(com.fasterxml.jackson.core.JsonGenerator g, com.fasterxml.jackson.core.type.WritableTypeId idMetadata)` Method that should be called after `TypeSerializer.writeTypePrefix(JsonGenerator, WritableTypeId)` and matching value write have been called, passing `WritableTypeId` returned.

### Methods inherited from class com.fasterxml.jackson.databind.jsontype.TypeSerializer

`_writeLegacySuffix, forProperty, typeId, typeId, typeId, writeCustomTypePrefixForArray, writeCustomTypePrefixForObject, writeCustomTypePrefixForScalar, writeCustomTypeSuffixForArray, writeCustomTypeSuffixForObject, writeCustomTypeSuffixForScalar, writeTypePrefixForArray, writeTypePrefixForArray, writeTypePrefixForObject, writeTypePrefixForObject, writeTypePrefixForScalar, writeTypePrefixForScalar, writeTypeSuffixForArray, writeTypeSuffixForObject, writeTypeSuffixForScalar`

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

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

### Field Detail

#### _idResolver

    protected final TypeIdResolver _idResolver

#### _property

    protected final BeanProperty _property

### Constructor Detail

#### TypeSerializerBase

    protected TypeSerializerBase(TypeIdResolver idRes,
                                 BeanProperty property)

### Method Detail

#### getTypeInclusion

    public abstract JsonTypeInfo.As getTypeInclusion()

Description copied from class: `TypeSerializer`
Accessor for type information inclusion method that serializer uses; indicates how type information is embedded in resulting JSON.

Specified by:
  `getTypeInclusion` in class `TypeSerializer`

#### getPropertyName

    public String getPropertyName()

Description copied from class: `TypeSerializer`
Name of property that contains type information, if property-based inclusion is used.

Specified by:
  `getPropertyName` in class `TypeSerializer`

#### getTypeIdResolver

    public TypeIdResolver getTypeIdResolver()

Description copied from class: `TypeSerializer`
Accessor for object that handles conversions between types and matching type ids.

Specified by:
  `getTypeIdResolver` in class `TypeSerializer`

#### writeTypePrefix

    public com.fasterxml.jackson.core.type.WritableTypeId writeTypePrefix(com.fasterxml.jackson.core.JsonGenerator g,
                                                                          com.fasterxml.jackson.core.type.WritableTypeId idMetadata)
                                                                   throws IOException

Description copied from class: `TypeSerializer`
Method called to write initial part of type information for given value, along with possible wrapping to use: details are specified by `typeId` argument. Note that for structured types (Object, Array), this call will add necessary start token so it should NOT be explicitly written, unlike with non-type-id value writes.

See `TypeSerializer.writeTypeSuffix(JsonGenerator, WritableTypeId)` for a complete example of typical usage.

Specified by:
  `writeTypePrefix` in class `TypeSerializer`
Parameters:
  `g` - Generator to use for outputting type id and possible wrapping
  `idMetadata` - Details of what type id is to be written, how.
Throws:
  `IOException`

#### writeTypeSuffix

    public com.fasterxml.jackson.core.type.WritableTypeId writeTypeSuffix(com.fasterxml.jackson.core.JsonGenerator g,
                                                                          com.fasterxml.jackson.core.type.WritableTypeId idMetadata)
                                                                   throws IOException

Description copied from class: `TypeSerializer`
Method that should be called after `TypeSerializer.writeTypePrefix(JsonGenerator, WritableTypeId)` and matching value write have been called, passing `WritableTypeId` returned. Usual idiom is:

     // Indicator generator that type identifier may be needed; generator may write
     // one as suggested, modify information, or take some other action
     // NOTE! For Object/Array types, this will ALSO write start marker!
     WritableTypeId typeIdDef = typeSer.writeTypePrefix(gen,
              typeSer.typeId(value, JsonToken.START_OBJECT));

     // serializing actual value for which TypeId may have been written... like
     // NOTE: do NOT write START_OBJECT before OR END_OBJECT after:
     g.writeStringField("message", "Hello, world!"

     // matching type suffix call to let generator chance to add suffix, if any
     // NOTE! For Object/Array types, this will ALSO write end marker!
     typeSer.writeTypeSuffix(gen, typeIdDef);

Specified by:
  `writeTypeSuffix` in class `TypeSerializer`
Throws:
  `IOException`

#### _generateTypeId

    protected void _generateTypeId(com.fasterxml.jackson.core.type.WritableTypeId idMetadata)

Helper method that will generate type id to use, if not already passed.

Since:
  2.9

#### idFromValue

    protected String idFromValue(Object value)

#### idFromValueAndType

    protected String idFromValueAndType(Object value,
                                        Class<?> type)

#### handleMissingId

    protected void handleMissingId(Object value)