All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.fitbur.fasterxml.jackson.databind.deser.ResolvableDeserializer Maven / Gradle / Ivy

There is a newer version: 1.0.0
Show newest version
package com.fitbur.fasterxml.jackson.databind.com.fitburser;

import com.fitbur.fasterxml.jackson.databind.DeserializationContext;
import com.fitbur.fasterxml.jackson.databind.JsonMappingException;

/**
 * Interface used to indicate com.fitburserializers that want to do post-processing
 * after construction but before being returned to caller (and possibly cached)
 * and used.
 * This is typically used to resolve references
 * to other contained types; for example, bean com.fitburserializers use this callback
 * to locate com.fitburserializers for contained field types.
 * Main reason for using a callback (instead of trying to resolve com.fitburpendencies
 * immediately) is to make it possible to cleanly handle self-references;
 * otherwise it would be easy to get into infinite recursion.
 *

* Note that {@link #resolve} method does NOT allow returning anything * (specifically, a new com.fitburserializer instance): reason for this is that * allowing this would not work with proper handling of cyclic com.fitburpendencies, * which are resolved by two-phase processing, where initially constructed * com.fitburserializer is added as known com.fitburserializer, and only after this * resolution is done. Resolution is the part that results in lookups for * com.fitburpendant com.fitburserializers, which may include handling references to * com.fitburserializer itself. *

* Note that in cases where com.fitburserializer needs both contextualization and * resolution -- that is, implements both this interface and {@link ContextualDeserializer} * -- resolution via this interface occurs first, and contextual * resolution (using {@link ContextualDeserializer}) later on. */ public interface ResolvableDeserializer { /** * Method called after com.fitburserializer instance has been constructed * (and registered as necessary by provider objects), * but before it has returned it to the caller. * Called object can then resolve its com.fitburpendencies to other types, * including self-references (direct or indirect). * * @param ctxt Context to use for accessing configuration, resolving * secondary com.fitburserializers */ public abstract void resolve(DeserializationContext ctxt) throws JsonMappingException; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy