.class public Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer; .super Lcom/fasterxml/jackson/databind/KeyDeserializer; .source "StdKeyDeserializer.java" # interfaces .implements Ljava/io/Serializable; # annotations .annotation runtime Lcom/fasterxml/jackson/databind/annotation/JacksonStdImpl; .end annotation .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$StringFactoryKeyDeserializer;, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$StringCtorKeyDeserializer;, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$EnumKD;, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$DelegatingKD;, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$StringKD; } .end annotation # static fields .field public static final TYPE_BOOLEAN:I = 0x1 .field public static final TYPE_BYTE:I = 0x2 .field public static final TYPE_CALENDAR:I = 0xb .field public static final TYPE_CHAR:I = 0x4 .field public static final TYPE_CLASS:I = 0xf .field public static final TYPE_CURRENCY:I = 0x10 .field public static final TYPE_DATE:I = 0xa .field public static final TYPE_DOUBLE:I = 0x8 .field public static final TYPE_FLOAT:I = 0x7 .field public static final TYPE_INT:I = 0x5 .field public static final TYPE_LOCALE:I = 0x9 .field public static final TYPE_LONG:I = 0x6 .field public static final TYPE_SHORT:I = 0x3 .field public static final TYPE_URI:I = 0xd .field public static final TYPE_URL:I = 0xe .field public static final TYPE_UUID:I = 0xc .field private static final serialVersionUID:J = 0x1L # instance fields .field public final _deser:Lcom/fasterxml/jackson/databind/deser/std/FromStringDeserializer; .annotation system Ldalvik/annotation/Signature; value = { "Lcom/fasterxml/jackson/databind/deser/std/FromStringDeserializer<", "*>;" } .end annotation .end field .field public final _keyClass:Ljava/lang/Class; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/lang/Class<", "*>;" } .end annotation .end field .field public final _kind:I # direct methods .method public constructor (ILjava/lang/Class;)V .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(I", "Ljava/lang/Class<", "*>;)V" } .end annotation const/4 v0, 0x0 .line 1 invoke-direct {p0, p1, p2, v0}, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->(ILjava/lang/Class;Lcom/fasterxml/jackson/databind/deser/std/FromStringDeserializer;)V return-void .end method .method public constructor (ILjava/lang/Class;Lcom/fasterxml/jackson/databind/deser/std/FromStringDeserializer;)V .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(I", "Ljava/lang/Class<", "*>;", "Lcom/fasterxml/jackson/databind/deser/std/FromStringDeserializer<", "*>;)V" } .end annotation .line 2 invoke-direct {p0}, Lcom/fasterxml/jackson/databind/KeyDeserializer;->()V .line 3 iput p1, p0, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->_kind:I .line 4 iput-object p2, p0, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->_keyClass:Ljava/lang/Class; .line 5 iput-object p3, p0, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->_deser:Lcom/fasterxml/jackson/databind/deser/std/FromStringDeserializer; return-void .end method .method public static forType(Ljava/lang/Class;)Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer; .locals 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;)", "Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;" } .end annotation .line 1 const-class v0, Ljava/lang/String; if-eq p0, v0, :cond_11 const-class v0, Ljava/lang/Object; if-ne p0, v0, :cond_0 goto/16 :goto_1 .line 2 :cond_0 const-class v0, Ljava/util/UUID; if-ne p0, v0, :cond_1 const/16 v0, 0xc goto :goto_0 .line 3 :cond_1 const-class v0, Ljava/lang/Integer; if-ne p0, v0, :cond_2 const/4 v0, 0x5 goto :goto_0 .line 4 :cond_2 const-class v0, Ljava/lang/Long; if-ne p0, v0, :cond_3 const/4 v0, 0x6 goto :goto_0 .line 5 :cond_3 const-class v0, Ljava/util/Date; if-ne p0, v0, :cond_4 const/16 v0, 0xa goto :goto_0 .line 6 :cond_4 const-class v0, Ljava/util/Calendar; if-ne p0, v0, :cond_5 const/16 v0, 0xb goto :goto_0 .line 7 :cond_5 const-class v0, Ljava/lang/Boolean; if-ne p0, v0, :cond_6 const/4 v0, 0x1 goto :goto_0 .line 8 :cond_6 const-class v0, Ljava/lang/Byte; if-ne p0, v0, :cond_7 const/4 v0, 0x2 goto :goto_0 .line 9 :cond_7 const-class v0, Ljava/lang/Character; if-ne p0, v0, :cond_8 const/4 v0, 0x4 goto :goto_0 .line 10 :cond_8 const-class v0, Ljava/lang/Short; if-ne p0, v0, :cond_9 const/4 v0, 0x3 goto :goto_0 .line 11 :cond_9 const-class v0, Ljava/lang/Float; if-ne p0, v0, :cond_a const/4 v0, 0x7 goto :goto_0 .line 12 :cond_a const-class v0, Ljava/lang/Double; if-ne p0, v0, :cond_b const/16 v0, 0x8 goto :goto_0 .line 13 :cond_b const-class v0, Ljava/net/URI; if-ne p0, v0, :cond_c const/16 v0, 0xd goto :goto_0 .line 14 :cond_c const-class v0, Ljava/net/URL; if-ne p0, v0, :cond_d const/16 v0, 0xe goto :goto_0 .line 15 :cond_d const-class v0, Ljava/lang/Class; if-ne p0, v0, :cond_e const/16 v0, 0xf .line 16 :goto_0 new-instance v1, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer; invoke-direct {v1, v0, p0}, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->(ILjava/lang/Class;)V return-object v1 .line 17 :cond_e const-class v0, Ljava/util/Locale; if-ne p0, v0, :cond_f .line 18 const-class v0, Ljava/util/Locale; invoke-static {v0}, Lcom/fasterxml/jackson/databind/deser/std/FromStringDeserializer;->findDeserializer(Ljava/lang/Class;)Lcom/fasterxml/jackson/databind/deser/std/FromStringDeserializer$Std; move-result-object v0 .line 19 new-instance v1, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer; const/16 v2, 0x9 invoke-direct {v1, v2, p0, v0}, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->(ILjava/lang/Class;Lcom/fasterxml/jackson/databind/deser/std/FromStringDeserializer;)V return-object v1 .line 20 :cond_f const-class v0, Ljava/util/Currency; if-ne p0, v0, :cond_10 .line 21 const-class v0, Ljava/util/Currency; invoke-static {v0}, Lcom/fasterxml/jackson/databind/deser/std/FromStringDeserializer;->findDeserializer(Ljava/lang/Class;)Lcom/fasterxml/jackson/databind/deser/std/FromStringDeserializer$Std; move-result-object v0 .line 22 new-instance v1, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer; const/16 v2, 0x10 invoke-direct {v1, v2, p0, v0}, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->(ILjava/lang/Class;Lcom/fasterxml/jackson/databind/deser/std/FromStringDeserializer;)V return-object v1 :cond_10 const/4 p0, 0x0 return-object p0 .line 23 :cond_11 :goto_1 invoke-static {p0}, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$StringKD;->forType(Ljava/lang/Class;)Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer$StringKD; move-result-object p0 return-object p0 .end method # virtual methods .method public _parse(Ljava/lang/String;Lcom/fasterxml/jackson/databind/DeserializationContext;)Ljava/lang/Object; .locals 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/Exception; } .end annotation .line 1 iget v0, p0, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->_kind:I const/4 v1, 0x0 packed-switch v0, :pswitch_data_0 return-object v1 .line 2 :pswitch_0 :try_start_0 iget-object v0, p0, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->_deser:Lcom/fasterxml/jackson/databind/deser/std/FromStringDeserializer; invoke-virtual {v0, p1, p2}, Lcom/fasterxml/jackson/databind/deser/std/FromStringDeserializer;->_deserialize(Ljava/lang/String;Lcom/fasterxml/jackson/databind/DeserializationContext;)Ljava/lang/Object; move-result-object p1 :try_end_0 .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 return-object p1 .line 3 :catch_0 iget-object v0, p0, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->_keyClass:Ljava/lang/Class; const-string v1, "unable to parse key as currency" invoke-virtual {p2, v0, p1, v1}, Lcom/fasterxml/jackson/databind/DeserializationContext;->weirdKeyException(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonMappingException; move-result-object p1 throw p1 .line 4 :pswitch_1 :try_start_1 invoke-virtual {p2, p1}, Lcom/fasterxml/jackson/databind/DeserializationContext;->findClass(Ljava/lang/String;)Ljava/lang/Class; move-result-object p1 :try_end_1 .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_1 return-object p1 .line 5 :catch_1 iget-object v0, p0, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->_keyClass:Ljava/lang/Class; const-string v1, "unable to parse key as Class" invoke-virtual {p2, v0, p1, v1}, Lcom/fasterxml/jackson/databind/DeserializationContext;->weirdKeyException(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonMappingException; move-result-object p1 throw p1 .line 6 :pswitch_2 new-instance p2, Ljava/net/URL; invoke-direct {p2, p1}, Ljava/net/URL;->(Ljava/lang/String;)V return-object p2 .line 7 :pswitch_3 invoke-static {p1}, Ljava/net/URI;->create(Ljava/lang/String;)Ljava/net/URI; move-result-object p1 return-object p1 .line 8 :pswitch_4 invoke-static {p1}, Ljava/util/UUID;->fromString(Ljava/lang/String;)Ljava/util/UUID; move-result-object p1 return-object p1 .line 9 :pswitch_5 invoke-virtual {p2, p1}, Lcom/fasterxml/jackson/databind/DeserializationContext;->parseDate(Ljava/lang/String;)Ljava/util/Date; move-result-object p1 if-nez p1, :cond_0 goto :goto_0 .line 10 :cond_0 invoke-virtual {p2, p1}, Lcom/fasterxml/jackson/databind/DeserializationContext;->constructCalendar(Ljava/util/Date;)Ljava/util/Calendar; move-result-object v1 :goto_0 return-object v1 .line 11 :pswitch_6 invoke-virtual {p2, p1}, Lcom/fasterxml/jackson/databind/DeserializationContext;->parseDate(Ljava/lang/String;)Ljava/util/Date; move-result-object p1 return-object p1 .line 12 :pswitch_7 :try_start_2 iget-object v0, p0, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->_deser:Lcom/fasterxml/jackson/databind/deser/std/FromStringDeserializer; invoke-virtual {v0, p1, p2}, Lcom/fasterxml/jackson/databind/deser/std/FromStringDeserializer;->_deserialize(Ljava/lang/String;Lcom/fasterxml/jackson/databind/DeserializationContext;)Ljava/lang/Object; move-result-object p1 :try_end_2 .catch Ljava/io/IOException; {:try_start_2 .. :try_end_2} :catch_2 return-object p1 .line 13 :catch_2 iget-object v0, p0, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->_keyClass:Ljava/lang/Class; const-string v1, "unable to parse key as locale" invoke-virtual {p2, v0, p1, v1}, Lcom/fasterxml/jackson/databind/DeserializationContext;->weirdKeyException(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonMappingException; move-result-object p1 throw p1 .line 14 :pswitch_8 invoke-virtual {p0, p1}, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->_parseDouble(Ljava/lang/String;)D move-result-wide p1 invoke-static {p1, p2}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double; move-result-object p1 return-object p1 .line 15 :pswitch_9 invoke-virtual {p0, p1}, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->_parseDouble(Ljava/lang/String;)D move-result-wide p1 double-to-float p1, p1 invoke-static {p1}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float; move-result-object p1 return-object p1 .line 16 :pswitch_a invoke-virtual {p0, p1}, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->_parseLong(Ljava/lang/String;)J move-result-wide p1 invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; move-result-object p1 return-object p1 .line 17 :pswitch_b invoke-virtual {p0, p1}, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->_parseInt(Ljava/lang/String;)I move-result p1 invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p1 return-object p1 .line 18 :pswitch_c invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v0 const/4 v1, 0x1 if-ne v0, v1, :cond_1 const/4 p2, 0x0 .line 19 invoke-virtual {p1, p2}, Ljava/lang/String;->charAt(I)C move-result p1 invoke-static {p1}, Ljava/lang/Character;->valueOf(C)Ljava/lang/Character; move-result-object p1 return-object p1 .line 20 :cond_1 iget-object v0, p0, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->_keyClass:Ljava/lang/Class; const-string v1, "can only convert 1-character Strings" invoke-virtual {p2, v0, p1, v1}, Lcom/fasterxml/jackson/databind/DeserializationContext;->weirdKeyException(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonMappingException; move-result-object p1 throw p1 .line 21 :pswitch_d invoke-virtual {p0, p1}, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->_parseInt(Ljava/lang/String;)I move-result v0 const/16 v1, -0x8000 if-lt v0, v1, :cond_2 const/16 v1, 0x7fff if-gt v0, v1, :cond_2 int-to-short p1, v0 .line 22 invoke-static {p1}, Ljava/lang/Short;->valueOf(S)Ljava/lang/Short; move-result-object p1 return-object p1 .line 23 :cond_2 iget-object v0, p0, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->_keyClass:Ljava/lang/Class; const-string v1, "overflow, value can not be represented as 16-bit value" invoke-virtual {p2, v0, p1, v1}, Lcom/fasterxml/jackson/databind/DeserializationContext;->weirdKeyException(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonMappingException; move-result-object p1 throw p1 .line 24 :pswitch_e invoke-virtual {p0, p1}, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->_parseInt(Ljava/lang/String;)I move-result v0 const/16 v1, -0x80 if-lt v0, v1, :cond_3 const/16 v1, 0xff if-gt v0, v1, :cond_3 int-to-byte p1, v0 .line 25 invoke-static {p1}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte; move-result-object p1 return-object p1 .line 26 :cond_3 iget-object v0, p0, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->_keyClass:Ljava/lang/Class; const-string v1, "overflow, value can not be represented as 8-bit value" invoke-virtual {p2, v0, p1, v1}, Lcom/fasterxml/jackson/databind/DeserializationContext;->weirdKeyException(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonMappingException; move-result-object p1 throw p1 :pswitch_f const-string v0, "true" .line 27 invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_4 .line 28 sget-object p1, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean; return-object p1 :cond_4 const-string v0, "false" .line 29 invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_5 .line 30 sget-object p1, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean; return-object p1 .line 31 :cond_5 iget-object v0, p0, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->_keyClass:Ljava/lang/Class; const-string v1, "value not \'true\' or \'false\'" invoke-virtual {p2, v0, p1, v1}, Lcom/fasterxml/jackson/databind/DeserializationContext;->weirdKeyException(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonMappingException; move-result-object p1 throw p1 :pswitch_data_0 .packed-switch 0x1 :pswitch_f :pswitch_e :pswitch_d :pswitch_c :pswitch_b :pswitch_a :pswitch_9 :pswitch_8 :pswitch_7 :pswitch_6 :pswitch_5 :pswitch_4 :pswitch_3 :pswitch_2 :pswitch_1 :pswitch_0 .end packed-switch .end method .method public _parseDouble(Ljava/lang/String;)D .locals 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/IllegalArgumentException; } .end annotation .line 1 invoke-static {p1}, Lcom/fasterxml/jackson/core/io/NumberInput;->parseDouble(Ljava/lang/String;)D move-result-wide v0 return-wide v0 .end method .method public _parseInt(Ljava/lang/String;)I .locals 0 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/IllegalArgumentException; } .end annotation .line 1 invoke-static {p1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result p1 return p1 .end method .method public _parseLong(Ljava/lang/String;)J .locals 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/IllegalArgumentException; } .end annotation .line 1 invoke-static {p1}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J move-result-wide v0 return-wide v0 .end method .method public deserializeKey(Ljava/lang/String;Lcom/fasterxml/jackson/databind/DeserializationContext;)Ljava/lang/Object; .locals 3 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const/4 v0, 0x0 if-nez p1, :cond_0 return-object v0 .line 1 :cond_0 :try_start_0 invoke-virtual {p0, p1, p2}, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->_parse(Ljava/lang/String;Lcom/fasterxml/jackson/databind/DeserializationContext;)Ljava/lang/Object; move-result-object v1 :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 if-eqz v1, :cond_1 return-object v1 .line 2 :cond_1 iget-object v1, p0, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->_keyClass:Ljava/lang/Class; invoke-virtual {v1}, Ljava/lang/Class;->isEnum()Z move-result v1 if-eqz v1, :cond_2 invoke-virtual {p2}, Lcom/fasterxml/jackson/databind/DeserializationContext;->getConfig()Lcom/fasterxml/jackson/databind/DeserializationConfig; move-result-object v1 sget-object v2, Lcom/fasterxml/jackson/databind/DeserializationFeature;->READ_UNKNOWN_ENUM_VALUES_AS_NULL:Lcom/fasterxml/jackson/databind/DeserializationFeature; invoke-virtual {v1, v2}, Lcom/fasterxml/jackson/databind/DeserializationConfig;->isEnabled(Lcom/fasterxml/jackson/databind/DeserializationFeature;)Z move-result v1 if-eqz v1, :cond_2 return-object v0 .line 3 :cond_2 iget-object v0, p0, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->_keyClass:Ljava/lang/Class; const-string v1, "not a valid representation" invoke-virtual {p2, v0, p1, v1}, Lcom/fasterxml/jackson/databind/DeserializationContext;->weirdKeyException(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonMappingException; move-result-object p1 throw p1 :catch_0 move-exception v0 .line 4 iget-object v1, p0, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->_keyClass:Ljava/lang/Class; const-string v2, "not a valid representation: " invoke-static {v2}, Landroid/support/v4/media/d;->a(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String; move-result-object v0 invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-virtual {p2, v1, p1, v0}, Lcom/fasterxml/jackson/databind/DeserializationContext;->weirdKeyException(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonMappingException; move-result-object p1 throw p1 .end method .method public getKeyClass()Ljava/lang/Class; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "()", "Ljava/lang/Class<", "*>;" } .end annotation .line 1 iget-object v0, p0, Lcom/fasterxml/jackson/databind/deser/std/StdKeyDeserializer;->_keyClass:Ljava/lang/Class; return-object v0 .end method