package com.fasterxml.jackson.databind.deser;

import com.fasterxml.jackson.databind.*;

Add-on interface that KeyDeserializers can implement to get a callback that can be used to create contextual instances of key deserializer to use for handling Map keys of supported type. This can be useful for key deserializers that can be configured by annotations, or should otherwise have differing behavior depending on what kind of Map property keys are being deserialized.
/** * Add-on interface that {@link KeyDeserializer}s can implement to get a callback * that can be used to create contextual instances of key deserializer to use for * handling Map keys of supported type. This can be useful * for key deserializers that can be configured by annotations, or should otherwise * have differing behavior depending on what kind of Map property keys are being deserialized. */
public interface ContextualKeyDeserializer {
Method called to see if a different (or differently configured) key deserializer is needed to deserialize keys of specified Map 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.
Params:
  • ctxt – Deserialization context to access configuration, additional deserializers that may be needed by this deserializer
  • property – Method, field or constructor parameter that declared Map for which contextual instance will be used. Will not be available when deserializing root-level Map value; otherwise should not be null.
Returns:Key deserializer to use for deserializing keys specified Map property, may be this instance or a new instance.
/** * Method called to see if a different (or differently configured) key deserializer * is needed to deserialize keys of specified Map property. * Note that instance that this method is called on is typically shared one and * as a result method should <b>NOT</b> 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 * deserializers that may be needed by this deserializer * @param property Method, field or constructor parameter that declared Map for which * contextual instance will be used. Will not be available when deserializing root-level * Map value; otherwise should not be null. * * @return Key deserializer to use for deserializing keys specified Map property, * may be this instance or a new instance. */
public KeyDeserializer createContextual(DeserializationContext ctxt, BeanProperty property) throws JsonMappingException; }