public class IonAnnotationTypeResolverBuilder extends Object implements com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder<IonAnnotationTypeResolverBuilder>
TypeResolverBuilder
which produces TypeSerializer
s and TypeDeserializer
s that use
Ion type annotations to communicate type metadata. Jackson polymorphism, the Ion way.
This TypeResolverBuilder expects to be initialized with a functional TypeIdResolver
, and will serialize
type information (and deserialize to something other than the default type) when it resolves the provided
JavaType
to a non-null type identifier, and vice versa.
Constructor and Description |
---|
IonAnnotationTypeResolverBuilder() |
Modifier and Type | Method and Description |
---|---|
com.fasterxml.jackson.databind.jsontype.TypeDeserializer |
buildTypeDeserializer(com.fasterxml.jackson.databind.DeserializationConfig config,
com.fasterxml.jackson.databind.JavaType baseType,
Collection<com.fasterxml.jackson.databind.jsontype.NamedType> subtypes)
Creates a Jackson
TypeDeserializer . |
com.fasterxml.jackson.databind.jsontype.TypeSerializer |
buildTypeSerializer(com.fasterxml.jackson.databind.SerializationConfig config,
com.fasterxml.jackson.databind.JavaType baseType,
Collection<com.fasterxml.jackson.databind.jsontype.NamedType> subtypes)
Creates a Jackson
TypeSerializer . |
IonAnnotationTypeResolverBuilder |
defaultImpl(Class<?> di) |
Class<?> |
getDefaultImpl() |
IonAnnotationTypeResolverBuilder |
inclusion(com.fasterxml.jackson.annotation.JsonTypeInfo.As includeAs) |
IonAnnotationTypeResolverBuilder |
init(com.fasterxml.jackson.annotation.JsonTypeInfo.Id idType,
com.fasterxml.jackson.databind.jsontype.TypeIdResolver res) |
IonAnnotationTypeResolverBuilder |
typeIdVisibility(boolean isVisible) |
IonAnnotationTypeResolverBuilder |
typeProperty(String propName) |
public Class<?> getDefaultImpl()
getDefaultImpl
in interface com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder<IonAnnotationTypeResolverBuilder>
public com.fasterxml.jackson.databind.jsontype.TypeSerializer buildTypeSerializer(com.fasterxml.jackson.databind.SerializationConfig config, com.fasterxml.jackson.databind.JavaType baseType, Collection<com.fasterxml.jackson.databind.jsontype.NamedType> subtypes)
TypeSerializer
. Note that while Jackson type serializers are responsible for writing
opening and closing metadata for types *in addition* to any type information, they are not involved with writing
actual object data.buildTypeSerializer
in interface com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder<IonAnnotationTypeResolverBuilder>
config
- baseType
- subtypes
- public com.fasterxml.jackson.databind.jsontype.TypeDeserializer buildTypeDeserializer(com.fasterxml.jackson.databind.DeserializationConfig config, com.fasterxml.jackson.databind.JavaType baseType, Collection<com.fasterxml.jackson.databind.jsontype.NamedType> subtypes)
TypeDeserializer
. Unlike type serializers, deserializers are responsible for
*all* steps of value deserialization: read type information, find the actual object deserializer, and run it.buildTypeDeserializer
in interface com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder<IonAnnotationTypeResolverBuilder>
config
- baseType
- subtypes
- public IonAnnotationTypeResolverBuilder init(com.fasterxml.jackson.annotation.JsonTypeInfo.Id idType, com.fasterxml.jackson.databind.jsontype.TypeIdResolver res)
init
in interface com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder<IonAnnotationTypeResolverBuilder>
public IonAnnotationTypeResolverBuilder inclusion(com.fasterxml.jackson.annotation.JsonTypeInfo.As includeAs)
inclusion
in interface com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder<IonAnnotationTypeResolverBuilder>
public IonAnnotationTypeResolverBuilder typeProperty(String propName)
typeProperty
in interface com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder<IonAnnotationTypeResolverBuilder>
public IonAnnotationTypeResolverBuilder defaultImpl(Class<?> di)
defaultImpl
in interface com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder<IonAnnotationTypeResolverBuilder>
public IonAnnotationTypeResolverBuilder typeIdVisibility(boolean isVisible)
typeIdVisibility
in interface com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder<IonAnnotationTypeResolverBuilder>
Copyright © 2020 FasterXML. All rights reserved.