![JAR search and dependency download from the Maven repository](/logo.png)
org.codehaus.jackson.map.DeserializationContext Maven / Gradle / Ivy
Go to download
Data Mapper package is a high-performance data binding package
built on Jackson JSON processor
package org.codehaus.jackson.map;
import java.io.IOException;
import java.util.*;
import org.codehaus.jackson.*;
import org.codehaus.jackson.map.util.ArrayBuilders;
import org.codehaus.jackson.map.util.ObjectBuffer;
import org.codehaus.jackson.type.JavaType;
/**
* Context for deserialization process. Used to allow passing in configuration
* settings and reusable temporary objects (scrap arrays, containers).
*/
public abstract class DeserializationContext
{
protected final DeserializationConfig _config;
protected DeserializationContext(DeserializationConfig config)
{
_config = config;
}
/*
/************************************************************
/* Configuration methods
/************************************************************
*/
/**
* Method for accessing configuration setting object for
* currently active deserialization.
*/
public DeserializationConfig getConfig() { return _config; }
/**
* Returns provider that can be used for dynamically locating
* other deserializers during runtime.
*
* @since 1.5
*/
public DeserializerProvider getDeserializerProvider() {
// will be overridden by impl class
return null;
}
/**
* Convenience method for checking whether specified on/off
* feature is enabled
*/
public boolean isEnabled(DeserializationConfig.Feature feat) {
return _config.isEnabled(feat);
}
/**
* Convenience method for accessing the default Base64 encoding
* used for decoding base64 encoded binary content.
* Same as calling:
*
* getConfig().getBase64Variant();
*
*/
public Base64Variant getBase64Variant() {
return _config.getBase64Variant();
}
/**
* Accessor for getting access to the underlying JSON parser used
* for deserialization.
*/
public abstract JsonParser getParser();
/*
//////////////////////////////////////////////////////////////
// Methods for accessing reusable/recyclable helper objects
//////////////////////////////////////////////////////////////
*/
/**
* Method that can be used to get access to a reusable ObjectBuffer,
* useful for efficiently constructing Object arrays and Lists.
* Note that leased buffers should be returned once deserializer
* is done, to allow for reuse during same round of deserialization.
*/
public abstract ObjectBuffer leaseObjectBuffer();
/**
* Method to call to return object buffer previously leased with
* {@link #leaseObjectBuffer}.
*
* @param buf Returned object buffer
*/
public abstract void returnObjectBuffer(ObjectBuffer buf);
/**
* Method for accessing object useful for building arrays of
* primitive types (such as int[]).
*/
public abstract ArrayBuilders getArrayBuilders();
/*
//////////////////////////////////////////////////////////////
// Parsing methods that may use reusable/-cyclable objects
//////////////////////////////////////////////////////////////
*/
public abstract java.util.Date parseDate(String dateStr)
throws IllegalArgumentException;
public abstract Calendar constructCalendar(Date d);
/*
//////////////////////////////////////////////////////////////
// Methods for problem handling, reporting
//////////////////////////////////////////////////////////////
*/
/**
* Method deserializers can call to inform configured {@link DeserializationProblemHandler}s
* of an unrecognized property.
*
* @return True if there was a configured problem handler that was able to handle the
* proble
*
* @since 1.5
*/
public abstract boolean handleUnknownProperty(JsonParser jp, JsonDeserializer> deser, Object instanceOrClass, String propName)
throws IOException, JsonProcessingException;
/**
* Helper method for constructing generic mapping exception for specified type
*/
public abstract JsonMappingException mappingException(Class> targetClass);
/**
* Helper method for constructing instantiation exception for specified type,
* to indicate problem with physically constructing instance of
* specified class (missing constructor, exception from constructor)
*/
public abstract JsonMappingException instantiationException(Class> instClass, Exception e);
public abstract JsonMappingException instantiationException(Class> instClass, String msg);
/**
* Helper method for constructing exception to indicate that input JSON
* String was not in recognized format for deserializing into given type.
*/
public abstract JsonMappingException weirdStringException(Class> instClass, String msg);
/**
* Helper method for constructing exception to indicate that input JSON
* Number was not suitable for deserializing into given type.
*/
public abstract JsonMappingException weirdNumberException(Class> instClass, String msg);
/**
* Helper method for constructing exception to indicate that given JSON
* Object field name was not in format to be able to deserialize specified
* key type.
*/
public abstract JsonMappingException weirdKeyException(Class> keyClass, String keyValue, String msg);
/**
* Helper method for indicating that the current token was expected to be another
* token.
*/
public abstract JsonMappingException wrongTokenException(JsonParser jp, JsonToken expToken, String msg);
/**
* Helper method for constructing exception to indicate that JSON Object
* field name did not map to a known property of type being
* deserialized.
*
* @param instanceOrClass Either value being populated (if one has been
* instantiated), or Class that indicates type that would be (or
* have been) instantiated
*/
public abstract JsonMappingException unknownFieldException(Object instanceOrClass, String fieldName);
/**
* Helper method for constructing exception to indicate that given
* type id (parsed from JSON) could not be converted to a Java type.
*
* @since 1.5
*/
public abstract JsonMappingException unknownTypeException(JavaType baseType, String id);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy