// 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.impl; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.io.SerializedString; 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.JsonObjectFormatVisitor; import com.fasterxml.jackson.databind.node.ObjectNode; import com.fasterxml.jackson.databind.ser.BeanPropertyWriter; import com.fasterxml.jackson.databind.util.NameTransformer; import java.util.Iterator; // Referenced classes of package com.fasterxml.jackson.databind.ser.impl: // UnwrappingBeanSerializer, PropertySerializerMap public class UnwrappingBeanPropertyWriter extends BeanPropertyWriter { protected final NameTransformer _nameTransformer; public UnwrappingBeanPropertyWriter(BeanPropertyWriter beanpropertywriter, NameTransformer nametransformer) { super(beanpropertywriter); _nameTransformer = nametransformer; } protected UnwrappingBeanPropertyWriter(UnwrappingBeanPropertyWriter unwrappingbeanpropertywriter, NameTransformer nametransformer, SerializedString serializedstring) { super(unwrappingbeanpropertywriter, serializedstring); _nameTransformer = nametransformer; } protected void _depositSchemaProperty(ObjectNode objectnode, JsonNode jsonnode) { jsonnode = jsonnode.get("properties"); if (jsonnode != null) { java.util.Map.Entry entry; for (Iterator iterator = jsonnode.fields(); iterator.hasNext(); objectnode.set(jsonnode, (JsonNode)entry.getValue())) { entry = (java.util.Map.Entry)iterator.next(); String s = (String)entry.getKey(); jsonnode = s; if (_nameTransformer != null) { jsonnode = _nameTransformer.transform(s); } } } } protected JsonSerializer _findAndAddDynamic(PropertySerializerMap propertyserializermap, Class class1, SerializerProvider serializerprovider) throws JsonMappingException { NameTransformer nametransformer; if (_nonTrivialBaseType != null) { propertyserializermap = serializerprovider.findValueSerializer(serializerprovider.constructSpecializedType(_nonTrivialBaseType, class1), this); } else { propertyserializermap = serializerprovider.findValueSerializer(class1, this); } nametransformer = _nameTransformer; serializerprovider = nametransformer; if (propertyserializermap.isUnwrappingSerializer()) { serializerprovider = NameTransformer.chainedTransformer(nametransformer, ((UnwrappingBeanSerializer)propertyserializermap)._nameTransformer); } propertyserializermap = propertyserializermap.unwrappingSerializer(serializerprovider); _dynamicSerializers = _dynamicSerializers.newWith(class1, propertyserializermap); return propertyserializermap; } protected UnwrappingBeanPropertyWriter _new(NameTransformer nametransformer, SerializedString serializedstring) { return new UnwrappingBeanPropertyWriter(this, nametransformer, serializedstring); } public void assignSerializer(JsonSerializer jsonserializer) { super.assignSerializer(jsonserializer); if (_serializer != null) { NameTransformer nametransformer = _nameTransformer; jsonserializer = nametransformer; if (_serializer.isUnwrappingSerializer()) { jsonserializer = NameTransformer.chainedTransformer(nametransformer, ((UnwrappingBeanSerializer)_serializer)._nameTransformer); } _serializer = _serializer.unwrappingSerializer(jsonserializer); } } public void depositSchemaProperty(JsonObjectFormatVisitor jsonobjectformatvisitor) throws JsonMappingException { final SerializerProvider final_serializerprovider = jsonobjectformatvisitor.getProvider(); JsonSerializer jsonserializer = final_serializerprovider.findValueSerializer(getType(), this).unwrappingSerializer(_nameTransformer); if (jsonserializer.isUnwrappingSerializer()) { jsonserializer.acceptJsonFormatVisitor(new com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper.Base(jsonobjectformatvisitor) { final UnwrappingBeanPropertyWriter this$0; final JsonObjectFormatVisitor val$visitor; public JsonObjectFormatVisitor expectObjectFormat(JavaType javatype) throws JsonMappingException { return visitor; } { this$0 = UnwrappingBeanPropertyWriter.this; visitor = jsonobjectformatvisitor; super(final_serializerprovider); } }, getType()); return; } else { super.depositSchemaProperty(jsonobjectformatvisitor); return; } } public boolean isUnwrapping() { return true; } public volatile BeanPropertyWriter rename(NameTransformer nametransformer) { return rename(nametransformer); } public UnwrappingBeanPropertyWriter rename(NameTransformer nametransformer) { String s = nametransformer.transform(_name.getValue()); return _new(NameTransformer.chainedTransformer(nametransformer, _nameTransformer), new SerializedString(s)); } public void serializeAsField(Object obj, JsonGenerator jsongenerator, SerializerProvider serializerprovider) throws Exception { Object obj1 = get(obj); if (obj1 != null) goto _L2; else goto _L1 _L1: return; _L2: JsonSerializer jsonserializer; JsonSerializer jsonserializer1 = _serializer; jsonserializer = jsonserializer1; if (jsonserializer1 == null) { Class class1 = obj1.getClass(); PropertySerializerMap propertyserializermap = _dynamicSerializers; JsonSerializer jsonserializer2 = propertyserializermap.serializerFor(class1); jsonserializer = jsonserializer2; if (jsonserializer2 == null) { jsonserializer = _findAndAddDynamic(propertyserializermap, class1, serializerprovider); } } if (_suppressableValue == null) { break; /* Loop/switch isn't completed */ } if (MARKER_FOR_EMPTY != _suppressableValue) { break MISSING_BLOCK_LABEL_149; } if (jsonserializer.isEmpty(serializerprovider, obj1)) goto _L1; else goto _L3 _L3: if (obj1 != obj || !_handleSelfReference(obj, jsongenerator, serializerprovider, jsonserializer)) { if (!jsonserializer.isUnwrappingSerializer()) { jsongenerator.writeFieldName(_name); } if (_typeSerializer == null) { jsonserializer.serialize(obj1, jsongenerator, serializerprovider); return; } else { jsonserializer.serializeWithType(obj1, jsongenerator, serializerprovider, _typeSerializer); return; } } continue; /* Loop/switch isn't completed */ if (_suppressableValue.equals(obj1)) { return; } goto _L3 if (true) goto _L1; else goto _L4 _L4: } }