package com.fasterxml.jackson.databind.ser;
import com.fasterxml.jackson.databind.*;
Interface used to indicate serializers that want to do post-processing after construction and being added to SerializerProvider
, but before being used. This is typically used to resolve references to other contained types; for example, bean serializers use this to eagerly find serializers for contained field types. Note that in cases where serializer needs both contextualization and resolution -- that is, implements both this interface and ContextualSerializer
-- resolution via this interface occurs first, and contextual resolution (using ContextualSerializer
) later on.
/**
* Interface used to indicate serializers that want to do post-processing
* after construction and being added to {@link SerializerProvider},
* but before being used. This is typically used to resolve references
* to other contained types; for example, bean serializers use this
* to eagerly find serializers for contained field types.
*<p>
* Note that in cases where serializer needs both contextualization and
* resolution -- that is, implements both this interface and {@link ContextualSerializer}
* -- resolution via this interface occurs first, and contextual
* resolution (using {@link ContextualSerializer}) later on.
*/
public interface ResolvableSerializer
{
Method called after SerializerProvider
has registered the serializer, but before it has returned it to the caller. Called object can then resolve its dependencies to other types, including self-references (direct or indirect).
Note that this method does NOT return serializer, since resolution
is not allowed to change actual serializer to use.
Params: - provider – Provider that has constructed serializer this method
is called on.
/**
* Method called after {@link SerializerProvider} has registered
* the serializer, but before it has returned it to the caller.
* Called object can then resolve its dependencies to other types,
* including self-references (direct or indirect).
*<p>
* Note that this method does NOT return serializer, since resolution
* is not allowed to change actual serializer to use.
*
* @param provider Provider that has constructed serializer this method
* is called on.
*/
public abstract void resolve(SerializerProvider provider)
throws JsonMappingException;
}