public class ExternalTypeHandler
extends java.lang.Object
JsonTypeInfo.As.EXTERNAL_PROPERTY
).
This is needed to store temporary state and buffer tokens, as the structure is
rearranged a bit so that actual type deserializer can resolve type and
finalize deserialization.Modifier and Type | Class and Description |
---|---|
static class |
ExternalTypeHandler.Builder |
private static class |
ExternalTypeHandler.ExtTypedProperty |
Modifier and Type | Field and Description |
---|---|
private java.util.HashMap<java.lang.String,java.lang.Integer> |
_nameToPropertyIndex |
private ExternalTypeHandler.ExtTypedProperty[] |
_properties |
private TokenBuffer[] |
_tokens |
private java.lang.String[] |
_typeIds |
Modifier | Constructor and Description |
---|---|
protected |
ExternalTypeHandler(ExternalTypeHandler.ExtTypedProperty[] properties,
java.util.HashMap<java.lang.String,java.lang.Integer> nameToPropertyIndex,
java.lang.String[] typeIds,
TokenBuffer[] tokens) |
protected |
ExternalTypeHandler(ExternalTypeHandler h) |
Modifier and Type | Method and Description |
---|---|
protected java.lang.Object |
_deserialize(com.fasterxml.jackson.core.JsonParser p,
DeserializationContext ctxt,
int index,
java.lang.String typeId) |
protected void |
_deserializeAndSet(com.fasterxml.jackson.core.JsonParser p,
DeserializationContext ctxt,
java.lang.Object bean,
int index,
java.lang.String typeId) |
java.lang.Object |
complete(com.fasterxml.jackson.core.JsonParser p,
DeserializationContext ctxt,
java.lang.Object bean)
Method called after JSON Object closes, and has to ensure that all external
type ids have been handled.
|
java.lang.Object |
complete(com.fasterxml.jackson.core.JsonParser jp,
DeserializationContext ctxt,
PropertyValueBuffer buffer,
PropertyBasedCreator creator)
Variant called when creation of the POJO involves buffering of creator properties
as well as property-based creator.
|
boolean |
handlePropertyValue(com.fasterxml.jackson.core.JsonParser p,
DeserializationContext ctxt,
java.lang.String propName,
java.lang.Object bean)
Method called to ask handler to handle value of given property,
at point where parser points to the first token of the value.
|
boolean |
handleTypePropertyValue(com.fasterxml.jackson.core.JsonParser jp,
DeserializationContext ctxt,
java.lang.String propName,
java.lang.Object bean)
Method called to see if given property/value pair is an external type
id; and if so handle it.
|
ExternalTypeHandler |
start() |
private final ExternalTypeHandler.ExtTypedProperty[] _properties
private final java.util.HashMap<java.lang.String,java.lang.Integer> _nameToPropertyIndex
private final java.lang.String[] _typeIds
private final TokenBuffer[] _tokens
protected ExternalTypeHandler(ExternalTypeHandler.ExtTypedProperty[] properties, java.util.HashMap<java.lang.String,java.lang.Integer> nameToPropertyIndex, java.lang.String[] typeIds, TokenBuffer[] tokens)
protected ExternalTypeHandler(ExternalTypeHandler h)
public ExternalTypeHandler start()
public boolean handleTypePropertyValue(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt, java.lang.String propName, java.lang.Object bean) throws java.io.IOException
handlePropertyValue(com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.databind.DeserializationContext, java.lang.String, java.lang.Object)
should be called instead.java.io.IOException
public boolean handlePropertyValue(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt, java.lang.String propName, java.lang.Object bean) throws java.io.IOException
java.io.IOException
public java.lang.Object complete(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt, java.lang.Object bean) throws java.io.IOException
java.io.IOException
public java.lang.Object complete(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt, PropertyValueBuffer buffer, PropertyBasedCreator creator) throws java.io.IOException
java.io.IOException
protected final java.lang.Object _deserialize(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt, int index, java.lang.String typeId) throws java.io.IOException
java.io.IOException
protected final void _deserializeAndSet(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt, java.lang.Object bean, int index, java.lang.String typeId) throws java.io.IOException
java.io.IOException