Class DeserializerProvider

    • Constructor Detail

      • DeserializerProvider

        protected DeserializerProvider()
    • Method Detail

      • withFactory

        public abstract DeserializerProvider withFactory​(DeserializerFactory factory)
        Method that sub-classes need to override, to ensure that fluent-factory methods will produce proper sub-type.
        Since:
        1.9
      • withAdditionalDeserializers

        public abstract DeserializerProvider withAdditionalDeserializers​(Deserializers d)
        Method that is to configure DeserializerFactory that provider has to use specified deserializer provider, with highest precedence (that is, additional providers have higher precedence than default one or previously added ones)
        Since:
        1.7
      • withValueInstantiators

        public abstract DeserializerProvider withValueInstantiators​(ValueInstantiators instantiators)
        Method that will construct a new instance with specified additional value instantiators (i.e. does NOT replace existing ones)
        Since:
        1.9
      • findTypedValueDeserializer

        public abstract JsonDeserializer<Object> findTypedValueDeserializer​(DeserializationConfig config,
                                                                            JavaType type,
                                                                            BeanProperty property)
                                                                     throws JsonMappingException
        Method called to locate deserializer for given type, as well as matching type deserializer (if one is needed); and if type deserializer is needed, construct a "wrapped" deserializer that can extract and use type information for calling actual deserializer.

        Since this method is only called for root elements, no referral information is taken.

        Throws:
        JsonMappingException
        Since:
        1.5
      • hasValueDeserializerFor

        public abstract boolean hasValueDeserializerFor​(DeserializationConfig config,
                                                        JavaType type)
        Method called to find out whether provider would be able to find a deserializer for given type, using a root reference (i.e. not through fields or membership in an array or collection)
      • mapAbstractType

        public abstract JavaType mapAbstractType​(DeserializationConfig config,
                                                 JavaType type)
                                          throws JsonMappingException
        Method that can be called to try to resolve an abstract type (interface, abstract class) into a concrete type, or at least something "more concrete" (abstract class instead of interface). Will either return passed type, or a more specific type.
        Throws:
        JsonMappingException
        Since:
        1.9
      • cachedDeserializersCount

        public abstract int cachedDeserializersCount()
        Method that can be used to determine how many deserializers this provider is caching currently (if it does caching: default implementation does) Exact count depends on what kind of deserializers get cached; default implementation caches only dynamically constructed deserializers, but not eagerly constructed standard deserializers (which is different from how serializer provider works).

        The main use case for this method is to allow conditional flushing of deserializer cache, if certain number of entries is reached.

        Since:
        1.4
      • flushCachedDeserializers

        public abstract void flushCachedDeserializers()
        Method that will drop all dynamically constructed deserializers (ones that are counted as result value for cachedDeserializersCount()). This can be used to remove memory usage (in case some deserializers are only used once or so), or to force re-construction of deserializers after configuration changes for mapper than owns the provider.
        Since:
        1.4