| package org.codehaus.jackson.map; |
| |
| import java.io.IOException; |
| |
| import org.codehaus.jackson.JsonProcessingException; |
| |
| /** |
| * This is the class that can be registered (via |
| * {@link DeserializationConfig} object owner by |
| * {@link ObjectMapper}) to get calledn when a potentially |
| * recoverable problem is encountered during deserialization |
| * process. Handlers can try to resolve the problem, throw |
| * an exception or do nothing. |
| *<p> |
| * Default implementations for all methods implemented minimal |
| * "do nothing" functionality, which is roughly equivalent to |
| * not having a registered listener at all. This allows for |
| * only implemented handler methods one is interested in, without |
| * handling other cases. |
| * |
| * @author tatu |
| */ |
| public abstract class DeserializationProblemHandler |
| { |
| /** |
| * Method called when a Json Map ("Object") entry with an unrecognized |
| * name is encountered. |
| * Content (supposedly) matching the property are accessible via |
| * parser that can be obtained from passed deserialization context. |
| * Handler can also choose to skip the content; if so, it MUST return |
| * true to indicate it did handle property succesfully. |
| * Skipping is usually done like so: |
| *<pre> |
| * ctxt.getParser().skipChildren(); |
| *</pre> |
| *<p> |
| * Note: version 1.2 added new deserialization feature |
| * (<code>DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES</code>). |
| * It will only have effect <b>after</b> handler is called, and only |
| * if handler did <b>not</b> handle the problem. |
| * |
| * @param beanOrClass Either bean instance being deserialized (if one |
| * has been instantiated so far); or Class that indicates type that |
| * will be instantiated (if no instantiation done yet: for example |
| * when bean uses non-default constructors) |
| * |
| * @return True if the problem was succesfully resolved (and content available |
| * used or skipped); false if listen |
| */ |
| public boolean handleUnknownProperty(DeserializationContext ctxt, JsonDeserializer<?> deserializer, |
| Object beanOrClass, String propertyName) |
| throws IOException, JsonProcessingException |
| { |
| return false; |
| } |
| } |