Top Description Fields Constructors Methods
com.fasterxml.jackson.databind.ext

public Class OptionalHandlerFactory

extends Object
implements Serializable
Class Inheritance
All Implemented Interfaces
java.io.Serializable
Imports
java.util.HashMap, .Map, com.fasterxml.jackson.databind.*, com.fasterxml.jackson.databind.deser.Deserializers, com.fasterxml.jackson.databind.ser.Serializers, com.fasterxml.jackson.databind.ser.std.DateSerializer, com.fasterxml.jackson.databind.util.ClassUtil, .ExceptionUtil

Helper class used for isolating details of handling optional+external types (javax.xml classes) from standard factories that offer them.

Note that 2.7 changed handling to slightly less dynamic, to avoid having to traverse class hierarchy, which turned to be a performance issue in certain cases. Since DOM classes are assumed to exist on all Java 1.6 environments (yes, even on Android/GAE), this part could be simplified by slightly less dynamic lookups.

Also with 2.7 we are supporting JDK 1.7/Java 7 type(s).

Field Summary

Modifier and TypeField and Description
private static final Java7Handlers
private final Map<String, String>
private final Map<String, Object>
private static final Class<?>
private static final Class<?>
private static final String
private static final String
private static final String
private static final String
private static final String
private static final String
private static final String
private static final String
public static final OptionalHandlerFactory
private static final String
private static final String
private static final String
private static final long

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
private boolean
_IsXOfY(Class<?> valueType, Class<?> expType)

public JsonDeserializer<?>
public JsonSerializer<?>
public boolean
hasDeserializerFor(Class<?> valueType)

private boolean
hasSuperClassStartingWith(Class<?> rawType, String prefix)

Since 2.7 we only need to check for class extension, as all implemented types are classes, not interfaces.

private Object
instantiate(String className, JavaType valueType)

private Object
instantiate(Class<?> handlerClass, JavaType valueType)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

_jdk7Helperback to summary
private static final Java7Handlers _jdk7Helper
_sqlDeserializersback to summary
private final Map<String, String> _sqlDeserializers
_sqlSerializersback to summary
private final Map<String, Object> _sqlSerializers
CLASS_DOM_DOCUMENTback to summary
private static final Class<?> CLASS_DOM_DOCUMENT
CLASS_DOM_NODEback to summary
private static final Class<?> CLASS_DOM_NODE
CLS_NAME_JAVA_SQL_BLOBback to summary
private static final String CLS_NAME_JAVA_SQL_BLOB
CLS_NAME_JAVA_SQL_DATEback to summary
private static final String CLS_NAME_JAVA_SQL_DATE
CLS_NAME_JAVA_SQL_SERIALBLOBback to summary
private static final String CLS_NAME_JAVA_SQL_SERIALBLOB
CLS_NAME_JAVA_SQL_TIMEback to summary
private static final String CLS_NAME_JAVA_SQL_TIME
CLS_NAME_JAVA_SQL_TIMESTAMPback to summary
private static final String CLS_NAME_JAVA_SQL_TIMESTAMP
DESERIALIZER_FOR_DOM_DOCUMENTback to summary
private static final String DESERIALIZER_FOR_DOM_DOCUMENT
DESERIALIZER_FOR_DOM_NODEback to summary
private static final String DESERIALIZER_FOR_DOM_NODE
DESERIALIZERS_FOR_JAVAX_XMLback to summary
private static final String DESERIALIZERS_FOR_JAVAX_XML
instanceback to summary
public static final OptionalHandlerFactory instance
PACKAGE_PREFIX_JAVAX_XMLback to summary
private static final String PACKAGE_PREFIX_JAVAX_XML
SERIALIZER_FOR_DOM_NODEback to summary
private static final String SERIALIZER_FOR_DOM_NODE
SERIALIZERS_FOR_JAVAX_XMLback to summary
private static final String SERIALIZERS_FOR_JAVAX_XML
serialVersionUIDback to summary
private static final long serialVersionUID

Constructor Detail

OptionalHandlerFactoryback to summary
protected OptionalHandlerFactory()

Method Detail

_IsXOfYback to summary
private boolean _IsXOfY(Class<?> valueType, Class<?> expType)
findDeserializerback to summary
public JsonDeserializer<?> findDeserializer(JavaType type, DeserializationConfig config, BeanDescription beanDesc) throws JsonMappingException
findSerializerback to summary
public JsonSerializer<?> findSerializer(SerializationConfig config, JavaType type, BeanDescription beanDesc)
hasDeserializerForback to summary
public boolean hasDeserializerFor(Class<?> valueType)
hasSuperClassStartingWithback to summary
private boolean hasSuperClassStartingWith(Class<?> rawType, String prefix)

Since 2.7 we only need to check for class extension, as all implemented types are classes, not interfaces. This has performance implications for some cases, as we do not need to go over interfaces implemented, just superclasses

Since
2.7
instantiateback to summary
private Object instantiate(String className, JavaType valueType)
instantiateback to summary
private Object instantiate(Class<?> handlerClass, JavaType valueType)