// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package com.fasterxml.jackson.databind.deser.std; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.BeanProperty; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.deser.ContextualDeserializer; import com.fasterxml.jackson.databind.deser.ResolvableDeserializer; import com.fasterxml.jackson.databind.jsontype.TypeDeserializer; import com.fasterxml.jackson.databind.util.Converter; import java.io.IOException; // Referenced classes of package com.fasterxml.jackson.databind.deser.std: // StdDeserializer public class StdDelegatingDeserializer extends StdDeserializer implements ContextualDeserializer, ResolvableDeserializer { private static final long serialVersionUID = 1L; protected final Converter _converter; protected final JsonDeserializer _delegateDeserializer; protected final JavaType _delegateType; protected StdDelegatingDeserializer(StdDelegatingDeserializer stddelegatingdeserializer) { super(stddelegatingdeserializer); _converter = stddelegatingdeserializer._converter; _delegateType = stddelegatingdeserializer._delegateType; _delegateDeserializer = stddelegatingdeserializer._delegateDeserializer; } public StdDelegatingDeserializer(Converter converter) { super(java/lang/Object); _converter = converter; _delegateType = null; _delegateDeserializer = null; } public StdDelegatingDeserializer(Converter converter, JavaType javatype, JsonDeserializer jsondeserializer) { super(javatype); _converter = converter; _delegateType = javatype; _delegateDeserializer = jsondeserializer; } protected Object _handleIncompatibleUpdateValue(JsonParser jsonparser, DeserializationContext deserializationcontext, Object obj) throws IOException { throw new UnsupportedOperationException(String.format((new StringBuilder()).append("Can not update object of type %s (using deserializer for type %s)").append(obj.getClass().getName()).toString(), new Object[] { _delegateType })); } protected Object convertValue(Object obj) { return _converter.convert(obj); } public JsonDeserializer createContextual(DeserializationContext deserializationcontext, BeanProperty beanproperty) throws JsonMappingException { if (_delegateDeserializer != null) { beanproperty = deserializationcontext.handleSecondaryContextualization(_delegateDeserializer, beanproperty, _delegateType); deserializationcontext = this; if (beanproperty != _delegateDeserializer) { deserializationcontext = withDelegate(_converter, _delegateType, beanproperty); } return deserializationcontext; } else { JavaType javatype = _converter.getInputType(deserializationcontext.getTypeFactory()); return withDelegate(_converter, javatype, deserializationcontext.findContextualValueDeserializer(javatype, beanproperty)); } } public Object deserialize(JsonParser jsonparser, DeserializationContext deserializationcontext) throws IOException { jsonparser = ((JsonParser) (_delegateDeserializer.deserialize(jsonparser, deserializationcontext))); if (jsonparser == null) { return null; } else { return convertValue(jsonparser); } } public Object deserialize(JsonParser jsonparser, DeserializationContext deserializationcontext, Object obj) throws IOException { if (_delegateType.getRawClass().isAssignableFrom(obj.getClass())) { return _delegateDeserializer.deserialize(jsonparser, deserializationcontext, obj); } else { return _handleIncompatibleUpdateValue(jsonparser, deserializationcontext, obj); } } public Object deserializeWithType(JsonParser jsonparser, DeserializationContext deserializationcontext, TypeDeserializer typedeserializer) throws IOException { jsonparser = ((JsonParser) (_delegateDeserializer.deserializeWithType(jsonparser, deserializationcontext, typedeserializer))); if (jsonparser == null) { return null; } else { return convertValue(jsonparser); } } public JsonDeserializer getDelegatee() { return _delegateDeserializer; } public Class handledType() { return _delegateDeserializer.handledType(); } public void resolve(DeserializationContext deserializationcontext) throws JsonMappingException { if (_delegateDeserializer != null && (_delegateDeserializer instanceof ResolvableDeserializer)) { ((ResolvableDeserializer)_delegateDeserializer).resolve(deserializationcontext); } } protected StdDelegatingDeserializer withDelegate(Converter converter, JavaType javatype, JsonDeserializer jsondeserializer) { if (getClass() != com/fasterxml/jackson/databind/deser/std/StdDelegatingDeserializer) { throw new IllegalStateException((new StringBuilder()).append("Sub-class ").append(getClass().getName()).append(" must override 'withDelegate'").toString()); } else { return new StdDelegatingDeserializer(converter, javatype, jsondeserializer); } } }