
org.testifyproject.fasterxml.jackson.databind.deser.ContextualDeserializer Maven / Gradle / Ivy
package org.testifyproject.testifyproject.fasterxml.jackson.databind.org.testifyproject.testifyprojectser;
import org.testifyproject.testifyproject.fasterxml.jackson.databind.*;
/**
* Add-on interface that {@link JsonDeserializer}s can implement to get a callback
* that can be used to create contextual (context-org.testifyproject.testifyprojectpendent) instances of
* org.testifyproject.testifyprojectserializer to use for handling properties of supported type.
* This can be useful
* for org.testifyproject.testifyprojectserializers that can be configured by annotations, or should otherwise
* have differing behavior org.testifyproject.testifyprojectpending on what kind of property is being org.testifyproject.testifyprojectserialized.
*
* Note that in cases where org.testifyproject.testifyprojectserializer needs both contextualization and
* resolution -- that is, implements both this interface and {@link ResolvableDeserializer}
* -- resolution via {@link ResolvableDeserializer} occurs first, and contextual
* resolution (via this interface) later on.
*/
public interface ContextualDeserializer
{
/**
* Method called to see if a different (or differently configured) org.testifyproject.testifyprojectserializer
* is needed to org.testifyproject.testifyprojectserialize values of specified property.
* Note that instance that this method is called on is typically shared one and
* as a result method should NOT modify this instance but rather construct
* and return a new instance. This instance should only be returned as-is, in case
* it is already suitable for use.
*
* @param ctxt Deserialization context to access configuration, additional
* org.testifyproject.testifyprojectserializers that may be needed by this org.testifyproject.testifyprojectserializer
* @param property Method, field or constructor parameter that represents the property
* (and is used to assign org.testifyproject.testifyprojectserialized value).
* Should be available; but there may be cases where caller can not provide it and
* null is passed instead (in which case impls usually pass 'this' org.testifyproject.testifyprojectserializer as is)
*
* @return Deserializer to use for org.testifyproject.testifyprojectserializing values of specified property;
* may be this instance or a new instance.
*
* @throws JsonMappingException
*/
public JsonDeserializer> createContextual(DeserializationContext ctxt,
BeanProperty property)
throws JsonMappingException;
}