// 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.AnnotationIntrospector; 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.SerializationFeature; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonArrayFormatVisitor; import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper; import com.fasterxml.jackson.databind.jsonschema.JsonSchema; import com.fasterxml.jackson.databind.jsonschema.SchemaAware; import com.fasterxml.jackson.databind.jsontype.TypeSerializer; import com.fasterxml.jackson.databind.node.ObjectNode; import com.fasterxml.jackson.databind.ser.ContainerSerializer; import com.fasterxml.jackson.databind.ser.ContextualSerializer; import com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap; import java.io.IOException; import java.lang.reflect.Type; public abstract class AsArraySerializerBase extends ContainerSerializer implements ContextualSerializer { protected PropertySerializerMap _dynamicSerializers; protected final JsonSerializer _elementSerializer; protected final JavaType _elementType; protected final BeanProperty _property; protected final boolean _staticTyping; protected final Boolean _unwrapSingle; protected final TypeSerializer _valueTypeSerializer; protected AsArraySerializerBase(AsArraySerializerBase asarrayserializerbase, BeanProperty beanproperty, TypeSerializer typeserializer, JsonSerializer jsonserializer) { this(asarrayserializerbase, beanproperty, typeserializer, jsonserializer, asarrayserializerbase._unwrapSingle); } protected AsArraySerializerBase(AsArraySerializerBase asarrayserializerbase, BeanProperty beanproperty, TypeSerializer typeserializer, JsonSerializer jsonserializer, Boolean boolean1) { super(asarrayserializerbase); _elementType = asarrayserializerbase._elementType; _staticTyping = asarrayserializerbase._staticTyping; _valueTypeSerializer = typeserializer; _property = beanproperty; _elementSerializer = jsonserializer; _dynamicSerializers = asarrayserializerbase._dynamicSerializers; _unwrapSingle = boolean1; } protected AsArraySerializerBase(Class class1, JavaType javatype, boolean flag, TypeSerializer typeserializer, BeanProperty beanproperty, JsonSerializer jsonserializer) { label0: { boolean flag1 = false; super(class1, false); _elementType = javatype; if (!flag) { flag = flag1; if (javatype == null) { break label0; } flag = flag1; if (!javatype.isFinal()) { break label0; } } flag = true; } _staticTyping = flag; _valueTypeSerializer = typeserializer; _property = beanproperty; _elementSerializer = jsonserializer; _dynamicSerializers = PropertySerializerMap.emptyForProperties(); _unwrapSingle = null; } protected AsArraySerializerBase(Class class1, JavaType javatype, boolean flag, TypeSerializer typeserializer, JsonSerializer jsonserializer) { label0: { boolean flag1 = false; super(class1, false); _elementType = javatype; if (!flag) { flag = flag1; if (javatype == null) { break label0; } flag = flag1; if (!javatype.isFinal()) { break label0; } } flag = true; } _staticTyping = flag; _valueTypeSerializer = typeserializer; _property = null; _elementSerializer = jsonserializer; _dynamicSerializers = PropertySerializerMap.emptyForProperties(); _unwrapSingle = null; } protected final JsonSerializer _findAndAddDynamic(PropertySerializerMap propertyserializermap, JavaType javatype, SerializerProvider serializerprovider) throws JsonMappingException { javatype = propertyserializermap.findAndAddSecondarySerializer(javatype, serializerprovider, _property); if (propertyserializermap != ((com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.SerializerAndMapResult) (javatype)).map) { _dynamicSerializers = ((com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.SerializerAndMapResult) (javatype)).map; } return ((com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.SerializerAndMapResult) (javatype)).serializer; } protected final JsonSerializer _findAndAddDynamic(PropertySerializerMap propertyserializermap, Class class1, SerializerProvider serializerprovider) throws JsonMappingException { class1 = propertyserializermap.findAndAddSecondarySerializer(class1, serializerprovider, _property); if (propertyserializermap != ((com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.SerializerAndMapResult) (class1)).map) { _dynamicSerializers = ((com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.SerializerAndMapResult) (class1)).map; } return ((com.fasterxml.jackson.databind.ser.impl.PropertySerializerMap.SerializerAndMapResult) (class1)).serializer; } public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper jsonformatvisitorwrapper, JavaType javatype) throws JsonMappingException { if (jsonformatvisitorwrapper == null) { javatype = null; } else { javatype = jsonformatvisitorwrapper.expectArrayFormat(javatype); } if (javatype != null) { JsonSerializer jsonserializer1 = _elementSerializer; JsonSerializer jsonserializer = jsonserializer1; if (jsonserializer1 == null) { jsonserializer = jsonformatvisitorwrapper.getProvider().findValueSerializer(_elementType, _property); } javatype.itemsFormat(jsonserializer, _elementType); } } public JsonSerializer createContextual(SerializerProvider serializerprovider, BeanProperty beanproperty) throws JsonMappingException { Object obj1; TypeSerializer typeserializer; Object obj2; Object obj = _valueTypeSerializer; typeserializer = ((TypeSerializer) (obj)); if (obj != null) { typeserializer = ((TypeSerializer) (obj)).forProperty(beanproperty); } obj1 = null; com.fasterxml.jackson.annotation.JsonFormat.Value value = null; Object obj3 = null; obj2 = obj3; if (beanproperty != null) { obj1 = serializerprovider.getAnnotationIntrospector(); obj2 = beanproperty.getMember(); obj = value; if (obj2 != null) { Object obj4 = ((AnnotationIntrospector) (obj1)).findContentSerializer(((com.fasterxml.jackson.databind.introspect.Annotated) (obj2))); obj = value; if (obj4 != null) { obj = serializerprovider.serializerInstance(((com.fasterxml.jackson.databind.introspect.Annotated) (obj2)), obj4); } } value = beanproperty.findFormatOverrides(((AnnotationIntrospector) (obj1))); obj1 = obj; obj2 = obj3; if (value != null) { obj2 = value.getFeature(com.fasterxml.jackson.annotation.JsonFormat.Feature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED); obj1 = obj; } } obj = obj1; if (obj1 == null) { obj = _elementSerializer; } obj1 = findConvertingContentSerializer(serializerprovider, beanproperty, ((JsonSerializer) (obj))); if (obj1 != null) goto _L2; else goto _L1 _L1: JsonSerializer jsonserializer; label0: { jsonserializer = ((JsonSerializer) (obj1)); if (_elementType == null) { break label0; } if (!_staticTyping || _elementType.getRawClass() == java/lang/Object) { jsonserializer = ((JsonSerializer) (obj1)); if (!hasContentTypeAnnotation(serializerprovider, beanproperty)) { break label0; } } jsonserializer = serializerprovider.findValueSerializer(_elementType, beanproperty); } _L4: label1: { if (jsonserializer == _elementSerializer && beanproperty == _property && _valueTypeSerializer == typeserializer) { serializerprovider = this; if (_unwrapSingle == obj2) { break label1; } } serializerprovider = withResolved(beanproperty, typeserializer, jsonserializer, ((Boolean) (obj2))); } return serializerprovider; _L2: jsonserializer = serializerprovider.handleSecondaryContextualization(((JsonSerializer) (obj1)), beanproperty); if (true) goto _L4; else goto _L3 _L3: } public JsonSerializer getContentSerializer() { return _elementSerializer; } public JavaType getContentType() { return _elementType; } public JsonNode getSchema(SerializerProvider serializerprovider, Type type) throws JsonMappingException { ObjectNode objectnode = createSchemaNode("array", true); Object obj1 = _elementType; if (obj1 != null) { Object obj = null; type = obj; if (((JavaType) (obj1)).getRawClass() != java/lang/Object) { obj1 = serializerprovider.findValueSerializer(((JavaType) (obj1)), _property); type = obj; if (obj1 instanceof SchemaAware) { type = ((SchemaAware)obj1).getSchema(serializerprovider, null); } } serializerprovider = type; if (type == null) { serializerprovider = JsonSchema.getDefaultSchemaNode(); } objectnode.set("items", serializerprovider); } return objectnode; } public void serialize(Object obj, JsonGenerator jsongenerator, SerializerProvider serializerprovider) throws IOException { if (serializerprovider.isEnabled(SerializationFeature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED) && hasSingleElement(obj)) { serializeContents(obj, jsongenerator, serializerprovider); return; } else { jsongenerator.writeStartArray(); jsongenerator.setCurrentValue(obj); serializeContents(obj, jsongenerator, serializerprovider); jsongenerator.writeEndArray(); return; } } protected abstract void serializeContents(Object obj, JsonGenerator jsongenerator, SerializerProvider serializerprovider) throws IOException; public void serializeWithType(Object obj, JsonGenerator jsongenerator, SerializerProvider serializerprovider, TypeSerializer typeserializer) throws IOException { typeserializer.writeTypePrefixForArray(obj, jsongenerator); jsongenerator.setCurrentValue(obj); serializeContents(obj, jsongenerator, serializerprovider); typeserializer.writeTypeSuffixForArray(obj, jsongenerator); } public final AsArraySerializerBase withResolved(BeanProperty beanproperty, TypeSerializer typeserializer, JsonSerializer jsonserializer) { return withResolved(beanproperty, typeserializer, jsonserializer, _unwrapSingle); } public abstract AsArraySerializerBase withResolved(BeanProperty beanproperty, TypeSerializer typeserializer, JsonSerializer jsonserializer, Boolean boolean1); }