// 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.ser.std; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.BeanProperty; import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable; import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper; import com.fasterxml.jackson.databind.jsonschema.SchemaAware; import com.fasterxml.jackson.databind.jsontype.TypeSerializer; import com.fasterxml.jackson.databind.ser.ContextualSerializer; import com.fasterxml.jackson.databind.ser.ResolvableSerializer; import com.fasterxml.jackson.databind.util.Converter; import java.io.IOException; import java.lang.reflect.Type; // Referenced classes of package com.fasterxml.jackson.databind.ser.std: // StdSerializer public class StdDelegatingSerializer extends StdSerializer implements ContextualSerializer, ResolvableSerializer, JsonFormatVisitable, SchemaAware { protected final Converter _converter; protected final JsonSerializer _delegateSerializer; protected final JavaType _delegateType; public StdDelegatingSerializer(Converter converter) { super(java/lang/Object); _converter = converter; _delegateType = null; _delegateSerializer = null; } public StdDelegatingSerializer(Converter converter, JavaType javatype, JsonSerializer jsonserializer) { super(javatype); _converter = converter; _delegateType = javatype; _delegateSerializer = jsonserializer; } public StdDelegatingSerializer(Class class1, Converter converter) { super(class1, false); _converter = converter; _delegateType = null; _delegateSerializer = null; } protected JsonSerializer _findSerializer(Object obj, SerializerProvider serializerprovider) throws JsonMappingException { return serializerprovider.findValueSerializer(obj.getClass()); } public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper jsonformatvisitorwrapper, JavaType javatype) throws JsonMappingException { if (_delegateSerializer != null) { _delegateSerializer.acceptJsonFormatVisitor(jsonformatvisitorwrapper, javatype); } } protected Object convertValue(Object obj) { return _converter.convert(obj); } public JsonSerializer createContextual(SerializerProvider serializerprovider, BeanProperty beanproperty) throws JsonMappingException { JsonSerializer jsonserializer2 = _delegateSerializer; JavaType javatype2 = _delegateType; JsonSerializer jsonserializer1 = jsonserializer2; JavaType javatype1 = javatype2; if (jsonserializer2 == null) { JavaType javatype = javatype2; if (javatype2 == null) { javatype = _converter.getOutputType(serializerprovider.getTypeFactory()); } jsonserializer1 = jsonserializer2; javatype1 = javatype; if (!javatype.isJavaLangObject()) { jsonserializer1 = serializerprovider.findValueSerializer(javatype); javatype1 = javatype; } } JsonSerializer jsonserializer = jsonserializer1; if (jsonserializer1 instanceof ContextualSerializer) { jsonserializer = serializerprovider.handleSecondaryContextualization(jsonserializer1, beanproperty); } if (jsonserializer == _delegateSerializer && javatype1 == _delegateType) { return this; } else { return withDelegate(_converter, javatype1, jsonserializer); } } protected Converter getConverter() { return _converter; } public JsonSerializer getDelegatee() { return _delegateSerializer; } public JsonNode getSchema(SerializerProvider serializerprovider, Type type) throws JsonMappingException { if (_delegateSerializer instanceof SchemaAware) { return ((SchemaAware)_delegateSerializer).getSchema(serializerprovider, type); } else { return super.getSchema(serializerprovider, type); } } public JsonNode getSchema(SerializerProvider serializerprovider, Type type, boolean flag) throws JsonMappingException { if (_delegateSerializer instanceof SchemaAware) { return ((SchemaAware)_delegateSerializer).getSchema(serializerprovider, type, flag); } else { return super.getSchema(serializerprovider, type); } } public boolean isEmpty(SerializerProvider serializerprovider, Object obj) { Object obj1 = convertValue(obj); if (_delegateSerializer == null) { return obj == null; } else { return _delegateSerializer.isEmpty(serializerprovider, obj1); } } public boolean isEmpty(Object obj) { return isEmpty(null, obj); } public void resolve(SerializerProvider serializerprovider) throws JsonMappingException { if (_delegateSerializer != null && (_delegateSerializer instanceof ResolvableSerializer)) { ((ResolvableSerializer)_delegateSerializer).resolve(serializerprovider); } } public void serialize(Object obj, JsonGenerator jsongenerator, SerializerProvider serializerprovider) throws IOException { Object obj1 = convertValue(obj); if (obj1 == null) { serializerprovider.defaultSerializeNull(jsongenerator); return; } JsonSerializer jsonserializer = _delegateSerializer; obj = jsonserializer; if (jsonserializer == null) { obj = _findSerializer(obj1, serializerprovider); } ((JsonSerializer) (obj)).serialize(obj1, jsongenerator, serializerprovider); } public void serializeWithType(Object obj, JsonGenerator jsongenerator, SerializerProvider serializerprovider, TypeSerializer typeserializer) throws IOException { Object obj1 = convertValue(obj); JsonSerializer jsonserializer1 = _delegateSerializer; JsonSerializer jsonserializer = jsonserializer1; if (jsonserializer1 == null) { jsonserializer = _findSerializer(obj, serializerprovider); } jsonserializer.serializeWithType(obj1, jsongenerator, serializerprovider, typeserializer); } protected StdDelegatingSerializer withDelegate(Converter converter, JavaType javatype, JsonSerializer jsonserializer) { if (getClass() != com/fasterxml/jackson/databind/ser/std/StdDelegatingSerializer) { throw new IllegalStateException((new StringBuilder()).append("Sub-class ").append(getClass().getName()).append(" must override 'withDelegate'").toString()); } else { return new StdDelegatingSerializer(converter, javatype, jsonserializer); } } }