.class public final Lcom/fasterxml/jackson/databind/deser/std/StringArrayDeserializer; .super Lcom/fasterxml/jackson/databind/deser/std/StdDeserializer; .source "StringArrayDeserializer.java" # interfaces .implements Lcom/fasterxml/jackson/databind/deser/ContextualDeserializer; # annotations .annotation runtime Lcom/fasterxml/jackson/databind/annotation/JacksonStdImpl; .end annotation .annotation system Ldalvik/annotation/Signature; value = { "Lcom/fasterxml/jackson/databind/deser/std/StdDeserializer<", "[", "Ljava/lang/String;", ">;", "Lcom/fasterxml/jackson/databind/deser/ContextualDeserializer;" } .end annotation # static fields .field public static final instance:Lcom/fasterxml/jackson/databind/deser/std/StringArrayDeserializer; .field private static final serialVersionUID:J = 0x2L # instance fields .field public _elementDeserializer:Lcom/fasterxml/jackson/databind/JsonDeserializer; .annotation system Ldalvik/annotation/Signature; value = { "Lcom/fasterxml/jackson/databind/JsonDeserializer<", "Ljava/lang/String;", ">;" } .end annotation .end field .field public final _unwrapSingle:Ljava/lang/Boolean; # direct methods .method public static constructor ()V .locals 1 .line 1 new-instance v0, Lcom/fasterxml/jackson/databind/deser/std/StringArrayDeserializer; invoke-direct {v0}, Lcom/fasterxml/jackson/databind/deser/std/StringArrayDeserializer;->()V sput-object v0, Lcom/fasterxml/jackson/databind/deser/std/StringArrayDeserializer;->instance:Lcom/fasterxml/jackson/databind/deser/std/StringArrayDeserializer; return-void .end method .method public constructor ()V .locals 1 const/4 v0, 0x0 .line 1 invoke-direct {p0, v0, v0}, Lcom/fasterxml/jackson/databind/deser/std/StringArrayDeserializer;->(Lcom/fasterxml/jackson/databind/JsonDeserializer;Ljava/lang/Boolean;)V return-void .end method .method public constructor (Lcom/fasterxml/jackson/databind/JsonDeserializer;Ljava/lang/Boolean;)V .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/fasterxml/jackson/databind/JsonDeserializer<", "*>;", "Ljava/lang/Boolean;", ")V" } .end annotation .line 2 const-class v0, [Ljava/lang/String; invoke-direct {p0, v0}, Lcom/fasterxml/jackson/databind/deser/std/StdDeserializer;->(Ljava/lang/Class;)V .line 3 iput-object p1, p0, Lcom/fasterxml/jackson/databind/deser/std/StringArrayDeserializer;->_elementDeserializer:Lcom/fasterxml/jackson/databind/JsonDeserializer; .line 4 iput-object p2, p0, Lcom/fasterxml/jackson/databind/deser/std/StringArrayDeserializer;->_unwrapSingle:Ljava/lang/Boolean; return-void .end method .method private final handleNonArray(Lcom/fasterxml/jackson/core/JsonParser;Lcom/fasterxml/jackson/databind/DeserializationContext;)[Ljava/lang/String; .locals 4 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 1 iget-object v0, p0, Lcom/fasterxml/jackson/databind/deser/std/StringArrayDeserializer;->_unwrapSingle:Ljava/lang/Boolean; sget-object v1, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean; const/4 v2, 0x0 const/4 v3, 0x1 if-eq v0, v1, :cond_1 if-nez v0, :cond_0 sget-object v0, Lcom/fasterxml/jackson/databind/DeserializationFeature;->ACCEPT_SINGLE_VALUE_AS_ARRAY:Lcom/fasterxml/jackson/databind/DeserializationFeature; invoke-virtual {p2, v0}, Lcom/fasterxml/jackson/databind/DeserializationContext;->isEnabled(Lcom/fasterxml/jackson/databind/DeserializationFeature;)Z move-result v0 if-eqz v0, :cond_0 goto :goto_0 :cond_0 move v0, v2 goto :goto_1 :cond_1 :goto_0 move v0, v3 :goto_1 const/4 v1, 0x0 if-eqz v0, :cond_3 new-array v0, v3, [Ljava/lang/String; .line 2 sget-object v3, Lcom/fasterxml/jackson/core/JsonToken;->VALUE_NULL:Lcom/fasterxml/jackson/core/JsonToken; invoke-virtual {p1, v3}, Lcom/fasterxml/jackson/core/JsonParser;->hasToken(Lcom/fasterxml/jackson/core/JsonToken;)Z move-result v3 if-eqz v3, :cond_2 goto :goto_2 :cond_2 invoke-virtual {p0, p1, p2}, Lcom/fasterxml/jackson/databind/deser/std/StdDeserializer;->_parseString(Lcom/fasterxml/jackson/core/JsonParser;Lcom/fasterxml/jackson/databind/DeserializationContext;)Ljava/lang/String; move-result-object v1 :goto_2 aput-object v1, v0, v2 return-object v0 .line 3 :cond_3 sget-object v0, Lcom/fasterxml/jackson/core/JsonToken;->VALUE_STRING:Lcom/fasterxml/jackson/core/JsonToken; invoke-virtual {p1, v0}, Lcom/fasterxml/jackson/core/JsonParser;->hasToken(Lcom/fasterxml/jackson/core/JsonToken;)Z move-result v0 if-eqz v0, :cond_4 sget-object v0, Lcom/fasterxml/jackson/databind/DeserializationFeature;->ACCEPT_EMPTY_STRING_AS_NULL_OBJECT:Lcom/fasterxml/jackson/databind/DeserializationFeature; invoke-virtual {p2, v0}, Lcom/fasterxml/jackson/databind/DeserializationContext;->isEnabled(Lcom/fasterxml/jackson/databind/DeserializationFeature;)Z move-result v0 if-eqz v0, :cond_4 .line 4 invoke-virtual {p1}, Lcom/fasterxml/jackson/core/JsonParser;->getText()Ljava/lang/String; move-result-object p1 .line 5 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result p1 if-nez p1, :cond_4 return-object v1 .line 6 :cond_4 iget-object p1, p0, Lcom/fasterxml/jackson/databind/deser/std/StdDeserializer;->_valueClass:Ljava/lang/Class; invoke-virtual {p2, p1}, Lcom/fasterxml/jackson/databind/DeserializationContext;->mappingException(Ljava/lang/Class;)Lcom/fasterxml/jackson/databind/JsonMappingException; move-result-object p1 throw p1 .end method # virtual methods .method public final _deserializeCustom(Lcom/fasterxml/jackson/core/JsonParser;Lcom/fasterxml/jackson/databind/DeserializationContext;)[Ljava/lang/String; .locals 8 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 1 const-class v0, Ljava/lang/String; invoke-virtual {p2}, Lcom/fasterxml/jackson/databind/DeserializationContext;->leaseObjectBuffer()Lcom/fasterxml/jackson/databind/util/ObjectBuffer; move-result-object v1 .line 2 invoke-virtual {v1}, Lcom/fasterxml/jackson/databind/util/ObjectBuffer;->resetAndStart()[Ljava/lang/Object; move-result-object v2 .line 3 iget-object v3, p0, Lcom/fasterxml/jackson/databind/deser/std/StringArrayDeserializer;->_elementDeserializer:Lcom/fasterxml/jackson/databind/JsonDeserializer; const/4 v4, 0x0 move v5, v4 .line 4 :goto_0 :try_start_0 invoke-virtual {p1}, Lcom/fasterxml/jackson/core/JsonParser;->nextTextValue()Ljava/lang/String; move-result-object v6 if-nez v6, :cond_2 .line 5 invoke-virtual {p1}, Lcom/fasterxml/jackson/core/JsonParser;->getCurrentToken()Lcom/fasterxml/jackson/core/JsonToken; move-result-object v6 .line 6 sget-object v7, Lcom/fasterxml/jackson/core/JsonToken;->END_ARRAY:Lcom/fasterxml/jackson/core/JsonToken; :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_1 if-ne v6, v7, :cond_0 .line 7 invoke-virtual {v1, v2, v5, v0}, Lcom/fasterxml/jackson/databind/util/ObjectBuffer;->completeAndClearBuffer([Ljava/lang/Object;ILjava/lang/Class;)[Ljava/lang/Object; move-result-object p1 check-cast p1, [Ljava/lang/String; .line 8 invoke-virtual {p2, v1}, Lcom/fasterxml/jackson/databind/DeserializationContext;->returnObjectBuffer(Lcom/fasterxml/jackson/databind/util/ObjectBuffer;)V return-object p1 .line 9 :cond_0 :try_start_1 sget-object v7, Lcom/fasterxml/jackson/core/JsonToken;->VALUE_NULL:Lcom/fasterxml/jackson/core/JsonToken; if-ne v6, v7, :cond_1 invoke-virtual {v3, p2}, Lcom/fasterxml/jackson/databind/JsonDeserializer;->getNullValue(Lcom/fasterxml/jackson/databind/DeserializationContext;)Ljava/lang/Object; move-result-object v6 :goto_1 check-cast v6, Ljava/lang/String; goto :goto_2 :cond_1 invoke-virtual {v3, p1, p2}, Lcom/fasterxml/jackson/databind/JsonDeserializer;->deserialize(Lcom/fasterxml/jackson/core/JsonParser;Lcom/fasterxml/jackson/databind/DeserializationContext;)Ljava/lang/Object; move-result-object v6 goto :goto_1 .line 10 :cond_2 invoke-virtual {v3, p1, p2}, Lcom/fasterxml/jackson/databind/JsonDeserializer;->deserialize(Lcom/fasterxml/jackson/core/JsonParser;Lcom/fasterxml/jackson/databind/DeserializationContext;)Ljava/lang/Object; move-result-object v6 check-cast v6, Ljava/lang/String; .line 11 :goto_2 array-length v7, v2 if-lt v5, v7, :cond_3 .line 12 invoke-virtual {v1, v2}, Lcom/fasterxml/jackson/databind/util/ObjectBuffer;->appendCompletedChunk([Ljava/lang/Object;)[Ljava/lang/Object; move-result-object v2 :try_end_1 .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_1 move v5, v4 :cond_3 add-int/lit8 v7, v5, 0x1 .line 13 :try_start_2 aput-object v6, v2, v5 :try_end_2 .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2} :catch_0 move v5, v7 goto :goto_0 :catch_0 move-exception p1 move v5, v7 goto :goto_3 :catch_1 move-exception p1 .line 14 :goto_3 invoke-static {p1, v0, v5}, Lcom/fasterxml/jackson/databind/JsonMappingException;->wrapWithPath(Ljava/lang/Throwable;Ljava/lang/Object;I)Lcom/fasterxml/jackson/databind/JsonMappingException; move-result-object p1 throw p1 .end method .method public createContextual(Lcom/fasterxml/jackson/databind/DeserializationContext;Lcom/fasterxml/jackson/databind/BeanProperty;)Lcom/fasterxml/jackson/databind/JsonDeserializer; .locals 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/fasterxml/jackson/databind/DeserializationContext;", "Lcom/fasterxml/jackson/databind/BeanProperty;", ")", "Lcom/fasterxml/jackson/databind/JsonDeserializer<", "*>;" } .end annotation .annotation system Ldalvik/annotation/Throws; value = { Lcom/fasterxml/jackson/databind/JsonMappingException; } .end annotation .line 1 iget-object v0, p0, Lcom/fasterxml/jackson/databind/deser/std/StringArrayDeserializer;->_elementDeserializer:Lcom/fasterxml/jackson/databind/JsonDeserializer; .line 2 invoke-virtual {p0, p1, p2, v0}, Lcom/fasterxml/jackson/databind/deser/std/StdDeserializer;->findConvertingContentDeserializer(Lcom/fasterxml/jackson/databind/DeserializationContext;Lcom/fasterxml/jackson/databind/BeanProperty;Lcom/fasterxml/jackson/databind/JsonDeserializer;)Lcom/fasterxml/jackson/databind/JsonDeserializer; move-result-object v0 .line 3 const-class v1, Ljava/lang/String; invoke-virtual {p1, v1}, Lcom/fasterxml/jackson/databind/DeserializationContext;->constructType(Ljava/lang/Class;)Lcom/fasterxml/jackson/databind/JavaType; move-result-object v1 if-nez v0, :cond_0 .line 4 invoke-virtual {p1, v1, p2}, Lcom/fasterxml/jackson/databind/DeserializationContext;->findContextualValueDeserializer(Lcom/fasterxml/jackson/databind/JavaType;Lcom/fasterxml/jackson/databind/BeanProperty;)Lcom/fasterxml/jackson/databind/JsonDeserializer; move-result-object v0 goto :goto_0 .line 5 :cond_0 invoke-virtual {p1, v0, p2, v1}, Lcom/fasterxml/jackson/databind/DeserializationContext;->handleSecondaryContextualization(Lcom/fasterxml/jackson/databind/JsonDeserializer;Lcom/fasterxml/jackson/databind/BeanProperty;Lcom/fasterxml/jackson/databind/JavaType;)Lcom/fasterxml/jackson/databind/JsonDeserializer; move-result-object v0 .line 6 :goto_0 const-class v1, [Ljava/lang/String; sget-object v2, Lcom/fasterxml/jackson/annotation/JsonFormat$Feature;->ACCEPT_SINGLE_VALUE_AS_ARRAY:Lcom/fasterxml/jackson/annotation/JsonFormat$Feature; invoke-virtual {p0, p1, p2, v1, v2}, Lcom/fasterxml/jackson/databind/deser/std/StdDeserializer;->findFormatFeature(Lcom/fasterxml/jackson/databind/DeserializationContext;Lcom/fasterxml/jackson/databind/BeanProperty;Ljava/lang/Class;Lcom/fasterxml/jackson/annotation/JsonFormat$Feature;)Ljava/lang/Boolean; move-result-object p1 if-eqz v0, :cond_1 .line 7 invoke-virtual {p0, v0}, Lcom/fasterxml/jackson/databind/deser/std/StdDeserializer;->isDefaultDeserializer(Lcom/fasterxml/jackson/databind/JsonDeserializer;)Z move-result p2 if-eqz p2, :cond_1 const/4 v0, 0x0 .line 8 :cond_1 iget-object p2, p0, Lcom/fasterxml/jackson/databind/deser/std/StringArrayDeserializer;->_elementDeserializer:Lcom/fasterxml/jackson/databind/JsonDeserializer; if-ne p2, v0, :cond_2 iget-object p2, p0, Lcom/fasterxml/jackson/databind/deser/std/StringArrayDeserializer;->_unwrapSingle:Ljava/lang/Boolean; if-ne p2, p1, :cond_2 return-object p0 .line 9 :cond_2 new-instance p2, Lcom/fasterxml/jackson/databind/deser/std/StringArrayDeserializer; invoke-direct {p2, v0, p1}, Lcom/fasterxml/jackson/databind/deser/std/StringArrayDeserializer;->(Lcom/fasterxml/jackson/databind/JsonDeserializer;Ljava/lang/Boolean;)V return-object p2 .end method .method public bridge synthetic deserialize(Lcom/fasterxml/jackson/core/JsonParser;Lcom/fasterxml/jackson/databind/DeserializationContext;)Ljava/lang/Object; .locals 0 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException;, Lcom/fasterxml/jackson/core/JsonProcessingException; } .end annotation .line 1 invoke-virtual {p0, p1, p2}, Lcom/fasterxml/jackson/databind/deser/std/StringArrayDeserializer;->deserialize(Lcom/fasterxml/jackson/core/JsonParser;Lcom/fasterxml/jackson/databind/DeserializationContext;)[Ljava/lang/String; move-result-object p1 return-object p1 .end method .method public deserialize(Lcom/fasterxml/jackson/core/JsonParser;Lcom/fasterxml/jackson/databind/DeserializationContext;)[Ljava/lang/String; .locals 7 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 2 invoke-virtual {p1}, Lcom/fasterxml/jackson/core/JsonParser;->isExpectedStartArrayToken()Z move-result v0 if-nez v0, :cond_0 .line 3 invoke-direct {p0, p1, p2}, Lcom/fasterxml/jackson/databind/deser/std/StringArrayDeserializer;->handleNonArray(Lcom/fasterxml/jackson/core/JsonParser;Lcom/fasterxml/jackson/databind/DeserializationContext;)[Ljava/lang/String; move-result-object p1 return-object p1 .line 4 :cond_0 iget-object v0, p0, Lcom/fasterxml/jackson/databind/deser/std/StringArrayDeserializer;->_elementDeserializer:Lcom/fasterxml/jackson/databind/JsonDeserializer; if-eqz v0, :cond_1 .line 5 invoke-virtual {p0, p1, p2}, Lcom/fasterxml/jackson/databind/deser/std/StringArrayDeserializer;->_deserializeCustom(Lcom/fasterxml/jackson/core/JsonParser;Lcom/fasterxml/jackson/databind/DeserializationContext;)[Ljava/lang/String; move-result-object p1 return-object p1 .line 6 :cond_1 invoke-virtual {p2}, Lcom/fasterxml/jackson/databind/DeserializationContext;->leaseObjectBuffer()Lcom/fasterxml/jackson/databind/util/ObjectBuffer; move-result-object v0 .line 7 invoke-virtual {v0}, Lcom/fasterxml/jackson/databind/util/ObjectBuffer;->resetAndStart()[Ljava/lang/Object; move-result-object v1 const/4 v2, 0x0 move v3, v2 .line 8 :goto_0 :try_start_0 invoke-virtual {p1}, Lcom/fasterxml/jackson/core/JsonParser;->nextTextValue()Ljava/lang/String; move-result-object v4 if-nez v4, :cond_3 .line 9 invoke-virtual {p1}, Lcom/fasterxml/jackson/core/JsonParser;->getCurrentToken()Lcom/fasterxml/jackson/core/JsonToken; move-result-object v5 .line 10 sget-object v6, Lcom/fasterxml/jackson/core/JsonToken;->END_ARRAY:Lcom/fasterxml/jackson/core/JsonToken; :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_1 if-ne v5, v6, :cond_2 .line 11 const-class p1, Ljava/lang/String; invoke-virtual {v0, v1, v3, p1}, Lcom/fasterxml/jackson/databind/util/ObjectBuffer;->completeAndClearBuffer([Ljava/lang/Object;ILjava/lang/Class;)[Ljava/lang/Object; move-result-object p1 check-cast p1, [Ljava/lang/String; .line 12 invoke-virtual {p2, v0}, Lcom/fasterxml/jackson/databind/DeserializationContext;->returnObjectBuffer(Lcom/fasterxml/jackson/databind/util/ObjectBuffer;)V return-object p1 .line 13 :cond_2 :try_start_1 sget-object v6, Lcom/fasterxml/jackson/core/JsonToken;->VALUE_NULL:Lcom/fasterxml/jackson/core/JsonToken; if-eq v5, v6, :cond_3 .line 14 invoke-virtual {p0, p1, p2}, Lcom/fasterxml/jackson/databind/deser/std/StdDeserializer;->_parseString(Lcom/fasterxml/jackson/core/JsonParser;Lcom/fasterxml/jackson/databind/DeserializationContext;)Ljava/lang/String; move-result-object v4 .line 15 :cond_3 array-length v5, v1 if-lt v3, v5, :cond_4 .line 16 invoke-virtual {v0, v1}, Lcom/fasterxml/jackson/databind/util/ObjectBuffer;->appendCompletedChunk([Ljava/lang/Object;)[Ljava/lang/Object; move-result-object v1 :try_end_1 .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_1 move v3, v2 :cond_4 add-int/lit8 v5, v3, 0x1 .line 17 :try_start_2 aput-object v4, v1, v3 :try_end_2 .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2} :catch_0 move v3, v5 goto :goto_0 :catch_0 move-exception p1 move v3, v5 goto :goto_1 :catch_1 move-exception p1 .line 18 :goto_1 invoke-virtual {v0}, Lcom/fasterxml/jackson/databind/util/ObjectBuffer;->bufferedSize()I move-result p2 add-int/2addr p2, v3 invoke-static {p1, v1, p2}, Lcom/fasterxml/jackson/databind/JsonMappingException;->wrapWithPath(Ljava/lang/Throwable;Ljava/lang/Object;I)Lcom/fasterxml/jackson/databind/JsonMappingException; move-result-object p1 throw p1 .end method .method public deserializeWithType(Lcom/fasterxml/jackson/core/JsonParser;Lcom/fasterxml/jackson/databind/DeserializationContext;Lcom/fasterxml/jackson/databind/jsontype/TypeDeserializer;)Ljava/lang/Object; .locals 0 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 1 invoke-virtual {p3, p1, p2}, Lcom/fasterxml/jackson/databind/jsontype/TypeDeserializer;->deserializeTypedFromArray(Lcom/fasterxml/jackson/core/JsonParser;Lcom/fasterxml/jackson/databind/DeserializationContext;)Ljava/lang/Object; move-result-object p1 return-object p1 .end method