Class OptionalHandlerFactory
- java.lang.Object
-
- com.fasterxml.jackson.databind.ext.OptionalHandlerFactory
-
- All Implemented Interfaces:
java.io.Serializable
public class OptionalHandlerFactory extends java.lang.Object implements java.io.SerializableHelper 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).
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private static Java7Handlers_jdk7Helperprivate static java.lang.Class<?>CLASS_DOM_DOCUMENTprivate static java.lang.Class<?>CLASS_DOM_NODEprivate static java.lang.StringDESERIALIZER_FOR_DOM_DOCUMENTprivate static java.lang.StringDESERIALIZER_FOR_DOM_NODEprivate static java.lang.StringDESERIALIZERS_FOR_JAVAX_XMLstatic OptionalHandlerFactoryinstanceprivate static java.lang.StringPACKAGE_PREFIX_JAVAX_XMLprivate static java.lang.StringSERIALIZER_FOR_DOM_NODEprivate static java.lang.StringSERIALIZERS_FOR_JAVAX_XMLprivate static longserialVersionUID
-
Constructor Summary
Constructors Modifier Constructor Description protectedOptionalHandlerFactory()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description JsonDeserializer<?>findDeserializer(JavaType type, DeserializationConfig config, BeanDescription beanDesc)JsonSerializer<?>findSerializer(SerializationConfig config, JavaType type, BeanDescription beanDesc)booleanhasDeserializerFor(java.lang.Class<?> valueType)private booleanhasSuperClassStartingWith(java.lang.Class<?> rawType, java.lang.String prefix)Since 2.7 we only need to check for class extension, as all implemented types are classes, not interfaces.private java.lang.Objectinstantiate(java.lang.String className)
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
PACKAGE_PREFIX_JAVAX_XML
private static final java.lang.String PACKAGE_PREFIX_JAVAX_XML
- See Also:
- Constant Field Values
-
SERIALIZERS_FOR_JAVAX_XML
private static final java.lang.String SERIALIZERS_FOR_JAVAX_XML
- See Also:
- Constant Field Values
-
DESERIALIZERS_FOR_JAVAX_XML
private static final java.lang.String DESERIALIZERS_FOR_JAVAX_XML
- See Also:
- Constant Field Values
-
SERIALIZER_FOR_DOM_NODE
private static final java.lang.String SERIALIZER_FOR_DOM_NODE
- See Also:
- Constant Field Values
-
DESERIALIZER_FOR_DOM_DOCUMENT
private static final java.lang.String DESERIALIZER_FOR_DOM_DOCUMENT
- See Also:
- Constant Field Values
-
DESERIALIZER_FOR_DOM_NODE
private static final java.lang.String DESERIALIZER_FOR_DOM_NODE
- See Also:
- Constant Field Values
-
CLASS_DOM_NODE
private static final java.lang.Class<?> CLASS_DOM_NODE
-
CLASS_DOM_DOCUMENT
private static final java.lang.Class<?> CLASS_DOM_DOCUMENT
-
_jdk7Helper
private static final Java7Handlers _jdk7Helper
-
instance
public static final OptionalHandlerFactory instance
-
-
Method Detail
-
findSerializer
public JsonSerializer<?> findSerializer(SerializationConfig config, JavaType type, BeanDescription beanDesc)
-
findDeserializer
public JsonDeserializer<?> findDeserializer(JavaType type, DeserializationConfig config, BeanDescription beanDesc) throws JsonMappingException
- Throws:
JsonMappingException
-
hasDeserializerFor
public boolean hasDeserializerFor(java.lang.Class<?> valueType)
-
instantiate
private java.lang.Object instantiate(java.lang.String className)
-
hasSuperClassStartingWith
private boolean hasSuperClassStartingWith(java.lang.Class<?> rawType, java.lang.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
-
-