// 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.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.JsonFormatTypes; import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper; 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.std.ArraySerializerBase; import com.fasterxml.jackson.databind.type.TypeFactory; import java.io.IOException; import java.lang.reflect.Type; public class StringArraySerializer extends ArraySerializerBase implements ContextualSerializer { private static final JavaType VALUE_TYPE = TypeFactory.defaultInstance().uncheckedSimpleType(java/lang/String); public static final StringArraySerializer instance = new StringArraySerializer(); protected final JsonSerializer _elementSerializer; protected StringArraySerializer() { super([Ljava/lang/String;); _elementSerializer = null; } public StringArraySerializer(StringArraySerializer stringarrayserializer, BeanProperty beanproperty, JsonSerializer jsonserializer, Boolean boolean1) { super(stringarrayserializer, beanproperty, boolean1); _elementSerializer = jsonserializer; } private void serializeContentsSlow(String as[], JsonGenerator jsongenerator, SerializerProvider serializerprovider, JsonSerializer jsonserializer) throws IOException { int i = 0; int j = as.length; while (i < j) { if (as[i] == null) { serializerprovider.defaultSerializeNull(jsongenerator); } else { jsonserializer.serialize(as[i], jsongenerator, serializerprovider); } i++; } } public JsonSerializer _withResolved(BeanProperty beanproperty, Boolean boolean1) { return new StringArraySerializer(this, beanproperty, _elementSerializer, boolean1); } public ContainerSerializer _withValueTypeSerializer(TypeSerializer typeserializer) { return this; } public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper jsonformatvisitorwrapper, JavaType javatype) throws JsonMappingException { if (jsonformatvisitorwrapper != null) { jsonformatvisitorwrapper = jsonformatvisitorwrapper.expectArrayFormat(javatype); if (jsonformatvisitorwrapper != null) { jsonformatvisitorwrapper.itemsFormat(JsonFormatTypes.STRING); } } } public JsonSerializer createContextual(SerializerProvider serializerprovider, BeanProperty beanproperty) throws JsonMappingException { Object obj1 = null; com.fasterxml.jackson.annotation.JsonFormat.Value value = null; Object obj3 = null; Object obj2 = obj3; if (beanproperty != null) { obj1 = serializerprovider.getAnnotationIntrospector(); obj2 = beanproperty.getMember(); JsonSerializer jsonserializer = value; if (obj2 != null) { Object obj4 = ((AnnotationIntrospector) (obj1)).findContentSerializer(((com.fasterxml.jackson.databind.introspect.Annotated) (obj2))); jsonserializer = value; if (obj4 != null) { jsonserializer = serializerprovider.serializerInstance(((com.fasterxml.jackson.databind.introspect.Annotated) (obj2)), obj4); } } value = beanproperty.findFormatOverrides(((AnnotationIntrospector) (obj1))); obj1 = jsonserializer; obj2 = obj3; if (value != null) { obj2 = value.getFeature(com.fasterxml.jackson.annotation.JsonFormat.Feature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED); obj1 = jsonserializer; } } Object obj = obj1; if (obj1 == null) { obj = _elementSerializer; } obj = findConvertingContentSerializer(serializerprovider, beanproperty, ((JsonSerializer) (obj))); if (obj == null) { serializerprovider = serializerprovider.findValueSerializer(java/lang/String, beanproperty); } else { serializerprovider = serializerprovider.handleSecondaryContextualization(((JsonSerializer) (obj)), beanproperty); } obj = serializerprovider; if (isDefaultSerializer(serializerprovider)) { obj = null; } if (obj == _elementSerializer && obj2 == _unwrapSingle) { return this; } else { return new StringArraySerializer(this, beanproperty, ((JsonSerializer) (obj)), ((Boolean) (obj2))); } } public JsonSerializer getContentSerializer() { return _elementSerializer; } public JavaType getContentType() { return VALUE_TYPE; } public JsonNode getSchema(SerializerProvider serializerprovider, Type type) { return createSchemaNode("array", true).set("items", createSchemaNode("string")); } public volatile boolean hasSingleElement(Object obj) { return hasSingleElement((String[])obj); } public boolean hasSingleElement(String as[]) { return as.length == 1; } public volatile boolean isEmpty(SerializerProvider serializerprovider, Object obj) { return isEmpty(serializerprovider, (String[])obj); } public boolean isEmpty(SerializerProvider serializerprovider, String as[]) { return as == null || as.length == 0; } public volatile void serialize(Object obj, JsonGenerator jsongenerator, SerializerProvider serializerprovider) throws IOException { serialize((String[])obj, jsongenerator, serializerprovider); } public final void serialize(String as[], JsonGenerator jsongenerator, SerializerProvider serializerprovider) throws IOException { int i = as.length; if (i == 1 && (_unwrapSingle == null && serializerprovider.isEnabled(SerializationFeature.WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED) || _unwrapSingle == Boolean.TRUE)) { serializeContents(as, jsongenerator, serializerprovider); return; } else { jsongenerator.writeStartArray(i); serializeContents(as, jsongenerator, serializerprovider); jsongenerator.writeEndArray(); return; } } public volatile void serializeContents(Object obj, JsonGenerator jsongenerator, SerializerProvider serializerprovider) throws IOException { serializeContents((String[])obj, jsongenerator, serializerprovider); } public void serializeContents(String as[], JsonGenerator jsongenerator, SerializerProvider serializerprovider) throws IOException { int j = as.length; if (j != 0) { if (_elementSerializer != null) { serializeContentsSlow(as, jsongenerator, serializerprovider, _elementSerializer); return; } int i = 0; while (i < j) { if (as[i] == null) { jsongenerator.writeNull(); } else { jsongenerator.writeString(as[i]); } i++; } } } }