package com.fasterxml.jackson.dataformat.xml.deser;
import java.io.IOException;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.deser.DefaultDeserializationContext;
import com.fasterxml.jackson.databind.deser.DeserializerCache;
import com.fasterxml.jackson.databind.deser.DeserializerFactory;
public class XmlDeserializationContext
extends DefaultDeserializationContext
{
private static final long serialVersionUID = 1L;
public XmlDeserializationContext(DeserializerFactory df) {
super(df, null);
}
private XmlDeserializationContext(XmlDeserializationContext src,
DeserializationConfig config, JsonParser p, InjectableValues values) {
super(src, config, p, values);
}
private XmlDeserializationContext(XmlDeserializationContext src) { super(src); }
private XmlDeserializationContext(XmlDeserializationContext src, DeserializerFactory factory) {
super(src, factory);
}
private XmlDeserializationContext(XmlDeserializationContext src, DeserializationConfig config) {
super(src, config);
}
@Override
public XmlDeserializationContext copy() {
return new XmlDeserializationContext(this);
}
@Override
public DefaultDeserializationContext createInstance(DeserializationConfig config,
JsonParser p, InjectableValues values) {
return new XmlDeserializationContext(this, config, p, values);
}
@Override
public DefaultDeserializationContext createDummyInstance(DeserializationConfig config) {
return new XmlDeserializationContext(this, config);
}
@Override
public DefaultDeserializationContext with(DeserializerFactory factory) {
return new XmlDeserializationContext(this, factory);
}
@Override
public Object readRootValue(JsonParser p, JavaType valueType,
JsonDeserializer<Object> deser, Object valueToUpdate)
throws IOException
{
if (_config.useRootWrapping()) {
return _unwrapAndDeserialize(p, valueType, deser, valueToUpdate);
}
if (valueToUpdate == null) {
return deser.deserialize(p, this);
}
return deser.deserialize(p, this, valueToUpdate);
}
@Override
public String (JsonParser p, JsonDeserializer<?> deser,
Class<?> scalarType)
throws IOException
{
String text = "";
while (p.nextToken() == JsonToken.FIELD_NAME) {
final String propName = p.currentName();
JsonToken t = p.nextToken();
if (t == JsonToken.VALUE_STRING) {
if (propName.equals("")) {
text = p.getText();
}
} else {
p.skipChildren();
}
}
return text;
}
}