Class StdTypeResolverBuilder

    • Field Detail

      • _idType

        protected com.fasterxml.jackson.annotation.JsonTypeInfo.Id _idType
      • _includeAs

        protected com.fasterxml.jackson.annotation.JsonTypeInfo.As _includeAs
      • _typeProperty

        protected java.lang.String _typeProperty
      • _typeIdVisible

        protected boolean _typeIdVisible
        Whether type id should be exposed to deserializers or not
      • _requireTypeIdForSubtypes

        protected java.lang.Boolean _requireTypeIdForSubtypes
        Boolean value configured through JsonTypeInfo.requireTypeIdForSubtypes(). If this value is not null, this value should override the global configuration of MapperFeature.REQUIRE_TYPE_ID_FOR_SUBTYPES.
        Since:
        2.16 (backported from Jackson 3.0)
      • _defaultImpl

        protected java.lang.Class<?> _defaultImpl
        Default class to use in case type information is not available or is broken.
    • Constructor Detail

      • StdTypeResolverBuilder

        public StdTypeResolverBuilder()
      • StdTypeResolverBuilder

        protected StdTypeResolverBuilder​(com.fasterxml.jackson.annotation.JsonTypeInfo.Id idType,
                                         com.fasterxml.jackson.annotation.JsonTypeInfo.As idAs,
                                         java.lang.String propName)
        Since:
        2.9
      • StdTypeResolverBuilder

        protected StdTypeResolverBuilder​(StdTypeResolverBuilder base,
                                         java.lang.Class<?> defaultImpl)
        Copy-constructor
        Since:
        2.13
      • StdTypeResolverBuilder

        public StdTypeResolverBuilder​(com.fasterxml.jackson.annotation.JsonTypeInfo.Value settings)
        Since:
        2.16
    • Method Detail

      • init

        public StdTypeResolverBuilder init​(com.fasterxml.jackson.annotation.JsonTypeInfo.Id idType,
                                           TypeIdResolver idRes)
        Description copied from interface: TypeResolverBuilder
        Initialization method that is called right after constructing the builder instance.
        Specified by:
        init in interface TypeResolverBuilder<StdTypeResolverBuilder>
        Parameters:
        idType - Which type metadata is used
        idRes - (optional) Custom type id resolver used, if any
        Returns:
        Resulting builder instance (usually this builder, but not necessarily)
      • init

        public StdTypeResolverBuilder init​(com.fasterxml.jackson.annotation.JsonTypeInfo.Value settings,
                                           TypeIdResolver idRes)
        Description copied from interface: TypeResolverBuilder
        Initialization method that is called right after constructing the builder instance, in cases where information could not be passed directly (for example when instantiated for an annotation)

        NOTE: This method is abstract in Jackson 3.0, at the moment of writing.

        Specified by:
        init in interface TypeResolverBuilder<StdTypeResolverBuilder>
        Parameters:
        settings - Configuration settings to apply.
        Returns:
        Resulting builder instance (usually this builder, but not necessarily)
      • inclusion

        public StdTypeResolverBuilder inclusion​(com.fasterxml.jackson.annotation.JsonTypeInfo.As includeAs)
        Description copied from interface: TypeResolverBuilder
        Method for specifying mechanism to use for including type metadata in JSON. If not explicitly called, setting defaults to JsonTypeInfo.As.PROPERTY.
        Specified by:
        inclusion in interface TypeResolverBuilder<StdTypeResolverBuilder>
        Parameters:
        includeAs - Mechanism used for including type metadata in JSON
        Returns:
        Resulting builder instance (usually this builder, but may be a newly constructed instance for immutable builders}
      • typeProperty

        public StdTypeResolverBuilder typeProperty​(java.lang.String typeIdPropName)
        Method for constructing an instance with specified type property name (property name to use for type id when using "as-property" inclusion).
        Specified by:
        typeProperty in interface TypeResolverBuilder<StdTypeResolverBuilder>
        Parameters:
        typeIdPropName - Name of JSON property to use for including type information
        Returns:
        Resulting builder instance (usually this builder, but may be a newly constructed instance for immutable builders}
      • defaultImpl

        public StdTypeResolverBuilder defaultImpl​(java.lang.Class<?> defaultImpl)
        Description copied from interface: TypeResolverBuilder
        Method for specifying default implementation to use if type id is either not available, or cannot be resolved.
        Specified by:
        defaultImpl in interface TypeResolverBuilder<StdTypeResolverBuilder>
        Returns:
        Resulting builder instance (usually this builder, but may be a newly constructed instance for immutable builders}
      • _propName

        protected java.lang.String _propName​(java.lang.String propName,
                                             com.fasterxml.jackson.annotation.JsonTypeInfo.Id idType)
        Since:
        2.16; non-static since 2.17
      • getTypeProperty

        public java.lang.String getTypeProperty()
      • isTypeIdVisible

        public boolean isTypeIdVisible()
      • idResolver

        protected TypeIdResolver idResolver​(MapperConfig<?> config,
                                            JavaType baseType,
                                            PolymorphicTypeValidator subtypeValidator,
                                            java.util.Collection<NamedType> subtypes,
                                            boolean forSer,
                                            boolean forDeser)
        Helper method that will either return configured custom type id resolver, or construct a standard resolver given configuration.
      • verifyBaseTypeValidity

        protected PolymorphicTypeValidator verifyBaseTypeValidity​(MapperConfig<?> config,
                                                                  JavaType baseType)
        Helper method called to check that base type is valid regarding possible constraints on basetype/subtype combinations allowed for polymorphic type handling. Currently limits are verified for class name - based methods only.
        Since:
        2.10
      • allowPrimitiveTypes

        protected boolean allowPrimitiveTypes​(MapperConfig<?> config,
                                              JavaType baseType)
        Overridable helper method that is called to determine whether type serializers and type deserializers may be created even if base type is Java primitive type. Default implementation simply returns false (since primitive types can not be sub-classed, are never polymorphic) but custom implementations may change the logic for some special cases.
        Parameters:
        config - Currently active configuration
        baseType - Primitive base type for property being handled
        Returns:
        True if type (de)serializer may be created even if base type is Java primitive type; false if not
        Since:
        2.11.1
      • _strictTypeIdHandling

        protected boolean _strictTypeIdHandling​(DeserializationConfig config,
                                                JavaType baseType)
        Determines whether strict type ID handling should be used for this type or not. This will be enabld as configured by JsonTypeInfo.requireTypeIdForSubtypes() unless its value is OptBoolean.DEFAULT. In case the value of JsonTypeInfo.requireTypeIdForSubtypes() is OptBoolean.DEFAULT, this will be enabled when either the type has type resolver annotations or if MapperFeature.REQUIRE_TYPE_ID_FOR_SUBTYPES is enabled.
        Parameters:
        config - the deserialization configuration to use
        baseType - the base type to check for type resolver annotations
        Returns:
        true if the class has type resolver annotations, or the strict handling feature is enabled, false otherwise.
        Since:
        2.15