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 Modifier and Type Field Description protected TypeIdResolver
_idResolver
protected BeanProperty
_property
-
Constructor Summary
Constructors Modifier Constructor Description protected
TypeSerializerBase(TypeIdResolver idRes, BeanProperty property)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
_generateTypeId(com.fasterxml.jackson.core.type.WritableTypeId idMetadata)
Helper method that will generate type id to use, if not already passed.java.lang.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 com.fasterxml.jackson.annotation.JsonTypeInfo.As
getTypeInclusion()
Accessor for type information inclusion method that serializer uses; indicates how type information is embedded in resulting JSON.protected void
handleMissingId(java.lang.Object value)
protected java.lang.String
idFromValue(java.lang.Object value)
protected java.lang.String
idFromValueAndType(java.lang.Object value, java.lang.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 afterTypeSerializer.writeTypePrefix(JsonGenerator, WritableTypeId)
and matching value write have been called, passingWritableTypeId
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
-
-
-
-
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 com.fasterxml.jackson.annotation.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 classTypeSerializer
-
getPropertyName
public java.lang.String getPropertyName()
Description copied from class:TypeSerializer
Name of property that contains type information, if property-based inclusion is used.- Specified by:
getPropertyName
in classTypeSerializer
-
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 classTypeSerializer
-
writeTypePrefix
public com.fasterxml.jackson.core.type.WritableTypeId writeTypePrefix(com.fasterxml.jackson.core.JsonGenerator g, com.fasterxml.jackson.core.type.WritableTypeId idMetadata) throws java.io.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 classTypeSerializer
- Parameters:
g
- Generator to use for outputting type id and possible wrappingidMetadata
- Details of what type id is to be written, how.- Throws:
java.io.IOException
-
writeTypeSuffix
public com.fasterxml.jackson.core.type.WritableTypeId writeTypeSuffix(com.fasterxml.jackson.core.JsonGenerator g, com.fasterxml.jackson.core.type.WritableTypeId idMetadata) throws java.io.IOException
Description copied from class:TypeSerializer
Method that should be called afterTypeSerializer.writeTypePrefix(JsonGenerator, WritableTypeId)
and matching value write have been called, passingWritableTypeId
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 classTypeSerializer
- Throws:
java.io.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 java.lang.String idFromValue(java.lang.Object value)
-
idFromValueAndType
protected java.lang.String idFromValueAndType(java.lang.Object value, java.lang.Class<?> type)
-
handleMissingId
protected void handleMissingId(java.lang.Object value)
-
-