| package org.codehaus.jackson.map; |
| |
| /** |
| * 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. |
| * |
| * @since 1.8 |
| */ |
| 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 <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 config Current deserialization configuration |
| * @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(DeserializationConfig config, |
| BeanProperty property) |
| throws JsonMappingException; |
| } |