zzkt.smali
.class public final Lcom/google/android/gms/internal/firebase_database/zzkt;
.super Ljava/lang/Object;
# static fields
.field private static final zzuv:Ljava/util/concurrent/ConcurrentMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/ConcurrentMap",
"<",
"Ljava/lang/Class",
"<*>;",
"Lcom/google/android/gms/internal/firebase_database/zzku",
"<*>;>;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
new-instance v0, Ljava/util/concurrent/ConcurrentHashMap;
invoke-direct {v0}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V
sput-object v0, Lcom/google/android/gms/internal/firebase_database/zzkt;->zzuv:Ljava/util/concurrent/ConcurrentMap;
return-void
.end method
.method private static zza(Ljava/lang/Class;)Lcom/google/android/gms/internal/firebase_database/zzku;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class",
"<TT;>;)",
"Lcom/google/android/gms/internal/firebase_database/zzku",
"<TT;>;"
}
.end annotation
sget-object v0, Lcom/google/android/gms/internal/firebase_database/zzkt;->zzuv:Ljava/util/concurrent/ConcurrentMap;
invoke-interface {v0, p0}, Ljava/util/concurrent/ConcurrentMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/android/gms/internal/firebase_database/zzku;
if-nez v0, :cond_14
new-instance v0, Lcom/google/android/gms/internal/firebase_database/zzku;
invoke-direct {v0, p0}, Lcom/google/android/gms/internal/firebase_database/zzku;-><init>(Ljava/lang/Class;)V
sget-object v1, Lcom/google/android/gms/internal/firebase_database/zzkt;->zzuv:Ljava/util/concurrent/ConcurrentMap;
invoke-interface {v1, p0, v0}, Ljava/util/concurrent/ConcurrentMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:cond_14
return-object v0
.end method
.method public static zza(Ljava/lang/Object;Lcom/google/firebase/database/h;)Ljava/lang/Object;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Object;",
"Lcom/google/firebase/database/h",
"<TT;>;)TT;"
}
.end annotation
invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Class;->getGenericSuperclass()Ljava/lang/reflect/Type;
move-result-object v1
instance-of v0, v1, Ljava/lang/reflect/ParameterizedType;
if-eqz v0, :cond_4e
move-object v0, v1
check-cast v0, Ljava/lang/reflect/ParameterizedType;
invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type;
move-result-object v2
const-class v3, Lcom/google/firebase/database/h;
invoke-virtual {v2, v3}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_42
new-instance v0, Lcom/google/firebase/database/DatabaseException;
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v2
add-int/lit8 v2, v2, 0x2f
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3, v2}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v2, "Not a direct subclass of GenericTypeIndicator: "
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_42
invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v0
const/4 v1, 0x0
aget-object v0, v0, v1
invoke-static {p0, v0}, Lcom/google/android/gms/internal/firebase_database/zzkt;->zza(Ljava/lang/Object;Ljava/lang/reflect/Type;)Ljava/lang/Object;
move-result-object v0
return-object v0
:cond_4e
new-instance v0, Lcom/google/firebase/database/DatabaseException;
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v2
add-int/lit8 v2, v2, 0x2f
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3, v2}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v2, "Not a direct subclass of GenericTypeIndicator: "
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public static zza(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Object;",
"Ljava/lang/Class",
"<TT;>;)TT;"
}
.end annotation
invoke-static {p0, p1}, Lcom/google/android/gms/internal/firebase_database/zzkt;->zzb(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method private static zza(Ljava/lang/Object;Ljava/lang/reflect/Type;)Ljava/lang/Object;
.registers 10
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Object;",
"Ljava/lang/reflect/Type;",
")TT;"
}
.end annotation
const/4 v1, 0x0
if-nez p0, :cond_5
const/4 v0, 0x0
:cond_4
:goto_4
return-object v0
:cond_5
instance-of v0, p1, Ljava/lang/reflect/ParameterizedType;
if-eqz v0, :cond_12e
check-cast p1, Ljava/lang/reflect/ParameterizedType;
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type;
move-result-object v0
check-cast v0, Ljava/lang/Class;
const-class v2, Ljava/util/List;
invoke-virtual {v2, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v2
if-eqz v2, :cond_6f
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v0
aget-object v1, v0, v1
instance-of v0, p0, Ljava/util/List;
if-eqz v0, :cond_44
check-cast p0, Ljava/util/List;
new-instance v0, Ljava/util/ArrayList;
invoke-interface {p0}, Ljava/util/List;->size()I
move-result v2
invoke-direct {v0, v2}, Ljava/util/ArrayList;-><init>(I)V
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v2
:goto_32
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-eqz v3, :cond_4
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v3
invoke-static {v3, v1}, Lcom/google/android/gms/internal/firebase_database/zzkt;->zza(Ljava/lang/Object;Ljava/lang/reflect/Type;)Ljava/lang/Object;
move-result-object v3
invoke-interface {v0, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_32
:cond_44
new-instance v0, Lcom/google/firebase/database/DatabaseException;
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v2
add-int/lit8 v2, v2, 0x2f
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3, v2}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v2, "Expected a List while deserializing, but got a "
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_6f
const-class v2, Ljava/util/Map;
invoke-virtual {v2, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v2
if-eqz v2, :cond_e5
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v0
aget-object v0, v0, v1
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v1
const/4 v2, 0x1
aget-object v3, v1, v2
const-class v1, Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_b3
new-instance v1, Lcom/google/firebase/database/DatabaseException;
invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v2
add-int/lit8 v2, v2, 0x46
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3, v2}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v2, "Only Maps with string keys are supported, but found Map with key type "
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v1
:cond_b3
invoke-static {p0}, Lcom/google/android/gms/internal/firebase_database/zzkt;->zzj(Ljava/lang/Object;)Ljava/util/Map;
move-result-object v0
new-instance v2, Ljava/util/HashMap;
invoke-direct {v2}, Ljava/util/HashMap;-><init>()V
invoke-interface {v0}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object v0
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v4
:goto_c4
invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_e2
invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/Map$Entry;
invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/String;
invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v0
invoke-static {v0, v3}, Lcom/google/android/gms/internal/firebase_database/zzkt;->zza(Ljava/lang/Object;Ljava/lang/reflect/Type;)Ljava/lang/Object;
move-result-object v0
invoke-virtual {v2, v1, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_c4
:cond_e2
move-object v0, v2
goto/16 :goto_4
:cond_e5
const-class v2, Ljava/util/Collection;
invoke-virtual {v2, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v2
if-eqz v2, :cond_f5
new-instance v0, Lcom/google/firebase/database/DatabaseException;
const-string v1, "Collections are not supported, please use Lists instead"
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_f5
invoke-static {p0}, Lcom/google/android/gms/internal/firebase_database/zzkt;->zzj(Ljava/lang/Object;)Ljava/util/Map;
move-result-object v2
invoke-static {v0}, Lcom/google/android/gms/internal/firebase_database/zzkt;->zza(Ljava/lang/Class;)Lcom/google/android/gms/internal/firebase_database/zzku;
move-result-object v3
new-instance v4, Ljava/util/HashMap;
invoke-direct {v4}, Ljava/util/HashMap;-><init>()V
invoke-static {v3}, Lcom/google/android/gms/internal/firebase_database/zzku;->zza(Lcom/google/android/gms/internal/firebase_database/zzku;)Ljava/lang/Class;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Class;->getTypeParameters()[Ljava/lang/reflect/TypeVariable;
move-result-object v5
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v6
array-length v0, v6
array-length v7, v5
if-eq v0, v7, :cond_11a
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "Mismatched lengths for type variables and actual types"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:cond_11a
move v0, v1
:goto_11b
array-length v1, v5
if-ge v0, v1, :cond_128
aget-object v1, v5, v0
aget-object v7, v6, v0
invoke-virtual {v4, v1, v7}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
add-int/lit8 v0, v0, 0x1
goto :goto_11b
:cond_128
invoke-virtual {v3, v2, v4}, Lcom/google/android/gms/internal/firebase_database/zzku;->zza(Ljava/util/Map;Ljava/util/Map;)Ljava/lang/Object;
move-result-object v0
goto/16 :goto_4
:cond_12e
instance-of v0, p1, Ljava/lang/Class;
if-eqz v0, :cond_13a
check-cast p1, Ljava/lang/Class;
invoke-static {p0, p1}, Lcom/google/android/gms/internal/firebase_database/zzkt;->zzb(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
move-result-object v0
goto/16 :goto_4
:cond_13a
instance-of v0, p1, Ljava/lang/reflect/WildcardType;
if-eqz v0, :cond_146
new-instance v0, Lcom/google/firebase/database/DatabaseException;
const-string v1, "Generic wildcard types are not supported"
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_146
instance-of v0, p1, Ljava/lang/reflect/GenericArrayType;
if-eqz v0, :cond_152
new-instance v0, Lcom/google/firebase/database/DatabaseException;
const-string v1, "Generic Arrays are not supported, please use Lists instead"
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_152
new-instance v0, Ljava/lang/IllegalStateException;
invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v2
add-int/lit8 v2, v2, 0x1a
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3, v2}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v2, "Unknown type encountered: "
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method private static zzb(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Object;",
"Ljava/lang/Class",
"<TT;>;)TT;"
}
.end annotation
if-nez p0, :cond_4
const/4 p0, 0x0
:cond_3
:goto_3
return-object p0
:cond_4
invoke-virtual {p1}, Ljava/lang/Class;->isPrimitive()Z
move-result v0
if-nez v0, :cond_22
const-class v0, Ljava/lang/Number;
invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-nez v0, :cond_22
const-class v0, Ljava/lang/Boolean;
invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-nez v0, :cond_22
const-class v0, Ljava/lang/Character;
invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_24a
:cond_22
const-class v0, Ljava/lang/Integer;
invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-nez v0, :cond_32
sget-object v0, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_b4
:cond_32
instance-of v0, p0, Ljava/lang/Integer;
if-eqz v0, :cond_39
check-cast p0, Ljava/lang/Integer;
goto :goto_3
:cond_39
instance-of v0, p0, Ljava/lang/Long;
if-nez v0, :cond_41
instance-of v0, p0, Ljava/lang/Double;
if-eqz v0, :cond_83
:cond_41
move-object v0, p0
check-cast v0, Ljava/lang/Number;
invoke-virtual {v0}, Ljava/lang/Number;->doubleValue()D
move-result-wide v0
const-wide/high16 v2, -0x3e20000000000000L # -2.147483648E9
cmpl-double v2, v0, v2
if-ltz v2, :cond_62
const-wide v2, 0x41dfffffffc00000L # 2.147483647E9
cmpg-double v2, v0, v2
if-gtz v2, :cond_62
check-cast p0, Ljava/lang/Number;
invoke-virtual {p0}, Ljava/lang/Number;->intValue()I
move-result v0
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p0
goto :goto_3
:cond_62
new-instance v2, Lcom/google/firebase/database/DatabaseException;
const/16 v3, 0x7c
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4, v3}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v3, "Numeric value out of 32-bit integer range: "
invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v0, v1}, Ljava/lang/StringBuilder;->append(D)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, ". Did you mean to use a long or double instead of an int?"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v2, v0}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v2
:cond_83
new-instance v0, Lcom/google/firebase/database/DatabaseException;
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v2
add-int/lit8 v2, v2, 0x29
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3, v2}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v2, "Failed to convert a value of type "
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " to int"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_b4
const-class v0, Ljava/lang/Boolean;
invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-nez v0, :cond_c4
sget-object v0, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;
invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_fd
:cond_c4
instance-of v0, p0, Ljava/lang/Boolean;
if-eqz v0, :cond_cc
check-cast p0, Ljava/lang/Boolean;
goto/16 :goto_3
:cond_cc
new-instance v0, Lcom/google/firebase/database/DatabaseException;
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v2
add-int/lit8 v2, v2, 0x2b
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3, v2}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v2, "Failed to convert value of type "
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " to boolean"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_fd
const-class v0, Ljava/lang/Double;
invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-nez v0, :cond_10d
sget-object v0, Ljava/lang/Double;->TYPE:Ljava/lang/Class;
invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_113
:cond_10d
invoke-static {p0}, Lcom/google/android/gms/internal/firebase_database/zzkt;->zzk(Ljava/lang/Object;)Ljava/lang/Double;
move-result-object p0
goto/16 :goto_3
:cond_113
const-class v0, Ljava/lang/Long;
invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-nez v0, :cond_123
sget-object v0, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_1bd
:cond_123
instance-of v0, p0, Ljava/lang/Integer;
if-eqz v0, :cond_133
check-cast p0, Ljava/lang/Integer;
invoke-virtual {p0}, Ljava/lang/Integer;->longValue()J
move-result-wide v0
invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object p0
goto/16 :goto_3
:cond_133
instance-of v0, p0, Ljava/lang/Long;
if-eqz v0, :cond_13b
check-cast p0, Ljava/lang/Long;
goto/16 :goto_3
:cond_13b
instance-of v0, p0, Ljava/lang/Double;
if-eqz v0, :cond_18c
check-cast p0, Ljava/lang/Double;
invoke-virtual {p0}, Ljava/lang/Double;->doubleValue()D
move-result-wide v0
const-wide/high16 v2, -0x3c20000000000000L # -9.223372036854776E18
cmpl-double v0, v0, v2
if-ltz v0, :cond_15f
invoke-virtual {p0}, Ljava/lang/Double;->doubleValue()D
move-result-wide v0
const-wide/high16 v2, 0x43e0000000000000L # 9.223372036854776E18
cmpg-double v0, v0, v2
if-gtz v0, :cond_15f
invoke-virtual {p0}, Ljava/lang/Double;->longValue()J
move-result-wide v0
invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object p0
goto/16 :goto_3
:cond_15f
new-instance v0, Lcom/google/firebase/database/DatabaseException;
invoke-static {p0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v2
add-int/lit8 v2, v2, 0x59
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3, v2}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v2, "Numeric value out of 64-bit long range: "
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, ". Did you mean to use a double instead of a long?"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_18c
new-instance v0, Lcom/google/firebase/database/DatabaseException;
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v2
add-int/lit8 v2, v2, 0x2a
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3, v2}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v2, "Failed to convert a value of type "
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " to long"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_1bd
const-class v0, Ljava/lang/Float;
invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-nez v0, :cond_1cd
sget-object v0, Ljava/lang/Float;->TYPE:Ljava/lang/Class;
invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_1db
:cond_1cd
invoke-static {p0}, Lcom/google/android/gms/internal/firebase_database/zzkt;->zzk(Ljava/lang/Object;)Ljava/lang/Double;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Double;->floatValue()F
move-result v0
invoke-static {v0}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
move-result-object p0
goto/16 :goto_3
:cond_1db
const-class v0, Ljava/lang/Short;
invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-nez v0, :cond_1eb
sget-object v0, Ljava/lang/Short;->TYPE:Ljava/lang/Class;
invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_1f3
:cond_1eb
new-instance v0, Lcom/google/firebase/database/DatabaseException;
const-string v1, "Deserializing to shorts is not supported"
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_1f3
const-class v0, Ljava/lang/Byte;
invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-nez v0, :cond_203
sget-object v0, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;
invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_20b
:cond_203
new-instance v0, Lcom/google/firebase/database/DatabaseException;
const-string v1, "Deserializing to bytes is not supported"
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_20b
const-class v0, Ljava/lang/Character;
invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-nez v0, :cond_21b
sget-object v0, Ljava/lang/Character;->TYPE:Ljava/lang/Class;
invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_223
:cond_21b
new-instance v0, Lcom/google/firebase/database/DatabaseException;
const-string v1, "Deserializing to char is not supported"
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_223
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v2
add-int/lit8 v2, v2, 0x18
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3, v2}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v2, "Unknown primitive type: "
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
:cond_24a
const-class v0, Ljava/lang/String;
invoke-virtual {v0, p1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_28b
instance-of v0, p0, Ljava/lang/String;
if-eqz v0, :cond_25a
check-cast p0, Ljava/lang/String;
goto/16 :goto_3
:cond_25a
new-instance v0, Lcom/google/firebase/database/DatabaseException;
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v2
add-int/lit8 v2, v2, 0x2a
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3, v2}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v2, "Failed to convert value of type "
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " to String"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_28b
invoke-virtual {p1}, Ljava/lang/Class;->isArray()Z
move-result v0
if-eqz v0, :cond_299
new-instance v0, Lcom/google/firebase/database/DatabaseException;
const-string v1, "Converting to Arrays is not supported, please use Listsinstead"
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_299
invoke-virtual {p1}, Ljava/lang/Class;->getTypeParameters()[Ljava/lang/reflect/TypeVariable;
move-result-object v0
array-length v0, v0
if-lez v0, :cond_2cd
new-instance v0, Lcom/google/firebase/database/DatabaseException;
invoke-virtual {p1}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v2
add-int/lit8 v2, v2, 0x4b
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3, v2}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v2, "Class "
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " has generic type parameters, please use GenericTypeIndicator instead"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_2cd
const-class v0, Ljava/lang/Object;
invoke-virtual {p1, v0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_3
invoke-virtual {p1}, Ljava/lang/Class;->isEnum()Z
move-result v0
if-eqz v0, :cond_2e1
invoke-static {p0, p1}, Lcom/google/android/gms/internal/firebase_database/zzkt;->zzc(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
move-result-object p0
goto/16 :goto_3
:cond_2e1
invoke-static {p1}, Lcom/google/android/gms/internal/firebase_database/zzkt;->zza(Ljava/lang/Class;)Lcom/google/android/gms/internal/firebase_database/zzku;
move-result-object v0
instance-of v1, p0, Ljava/util/Map;
if-eqz v1, :cond_2f7
invoke-static {p0}, Lcom/google/android/gms/internal/firebase_database/zzkt;->zzj(Ljava/lang/Object;)Ljava/util/Map;
move-result-object v1
invoke-static {}, Ljava/util/Collections;->emptyMap()Ljava/util/Map;
move-result-object v2
invoke-virtual {v0, v1, v2}, Lcom/google/android/gms/internal/firebase_database/zzku;->zza(Ljava/util/Map;Ljava/util/Map;)Ljava/lang/Object;
move-result-object p0
goto/16 :goto_3
:cond_2f7
new-instance v0, Lcom/google/firebase/database/DatabaseException;
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v1
invoke-virtual {p1}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v2
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/String;->length()I
move-result v3
add-int/lit8 v3, v3, 0x26
invoke-static {v2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/String;->length()I
move-result v4
add-int/2addr v3, v4
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4, v3}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v3, "Can\'t convert object of type "
invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v3, " to type "
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method static synthetic zzb(Ljava/lang/Object;Ljava/lang/reflect/Type;)Ljava/lang/Object;
.registers 3
invoke-static {p0, p1}, Lcom/google/android/gms/internal/firebase_database/zzkt;->zza(Ljava/lang/Object;Ljava/lang/reflect/Type;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method private static zzc(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Object;",
"Ljava/lang/Class",
"<TT;>;)TT;"
}
.end annotation
instance-of v0, p0, Ljava/lang/String;
if-eqz v0, :cond_4c
check-cast p0, Ljava/lang/String;
:try_start_6
invoke-static {p1, p0}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
:try_end_9
.catch Ljava/lang/IllegalArgumentException; {:try_start_6 .. :try_end_9} :catch_b
move-result-object v0
return-object v0
:catch_b
move-exception v0
new-instance v0, Lcom/google/firebase/database/DatabaseException;
invoke-virtual {p1}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v2
add-int/lit8 v2, v2, 0x2a
invoke-static {p0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/String;->length()I
move-result v3
add-int/2addr v2, v3
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3, v2}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v2, "Could not find enum value of "
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " for value \""
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "\""
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_4c
new-instance v0, Lcom/google/firebase/database/DatabaseException;
invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v2
invoke-static {v2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/String;->length()I
move-result v3
add-int/lit8 v3, v3, 0x39
invoke-static {v2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/String;->length()I
move-result v4
add-int/2addr v3, v4
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4, v3}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v3, "Expected a String while deserializing to enum "
invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v3, " but got a "
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public static zzh(Ljava/lang/Object;)Ljava/lang/Object;
.registers 2
invoke-static {p0}, Lcom/google/android/gms/internal/firebase_database/zzkt;->zzi(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method private static zzi(Ljava/lang/Object;)Ljava/lang/Object;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(TT;)",
"Ljava/lang/Object;"
}
.end annotation
if-nez p0, :cond_4
const/4 p0, 0x0
:cond_3
:goto_3
return-object p0
:cond_4
instance-of v0, p0, Ljava/lang/Number;
if-eqz v0, :cond_53
instance-of v0, p0, Ljava/lang/Float;
if-nez v0, :cond_10
instance-of v0, p0, Ljava/lang/Double;
if-eqz v0, :cond_3b
:cond_10
move-object v0, p0
check-cast v0, Ljava/lang/Number;
invoke-virtual {v0}, Ljava/lang/Number;->doubleValue()D
move-result-wide v0
const-wide/high16 v2, 0x43e0000000000000L # 9.223372036854776E18
cmpg-double v2, v0, v2
if-gtz v2, :cond_36
const-wide/high16 v2, -0x3c20000000000000L # -9.223372036854776E18
cmpl-double v2, v0, v2
if-ltz v2, :cond_36
invoke-static {v0, v1}, Ljava/lang/Math;->floor(D)D
move-result-wide v2
cmpl-double v2, v2, v0
if-nez v2, :cond_36
check-cast p0, Ljava/lang/Number;
invoke-virtual {p0}, Ljava/lang/Number;->longValue()J
move-result-wide v0
invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object p0
goto :goto_3
:cond_36
invoke-static {v0, v1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object p0
goto :goto_3
:cond_3b
instance-of v0, p0, Ljava/lang/Short;
if-eqz v0, :cond_47
new-instance v0, Lcom/google/firebase/database/DatabaseException;
const-string v1, "Shorts are not supported, please use int or long"
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_47
instance-of v0, p0, Ljava/lang/Byte;
if-eqz v0, :cond_3
new-instance v0, Lcom/google/firebase/database/DatabaseException;
const-string v1, "Bytes are not supported, please use int or long"
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_53
instance-of v0, p0, Ljava/lang/String;
if-nez v0, :cond_3
instance-of v0, p0, Ljava/lang/Boolean;
if-nez v0, :cond_3
instance-of v0, p0, Ljava/lang/Character;
if-eqz v0, :cond_67
new-instance v0, Lcom/google/firebase/database/DatabaseException;
const-string v1, "Characters are not supported, please use Strings"
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_67
instance-of v0, p0, Ljava/util/Map;
if-eqz v0, :cond_a7
new-instance v2, Ljava/util/HashMap;
invoke-direct {v2}, Ljava/util/HashMap;-><init>()V
check-cast p0, Ljava/util/Map;
invoke-interface {p0}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object v0
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v3
:goto_7a
invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_a4
invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/Map$Entry;
invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v1
instance-of v4, v1, Ljava/lang/String;
if-eqz v4, :cond_9c
check-cast v1, Ljava/lang/String;
invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v0
invoke-static {v0}, Lcom/google/android/gms/internal/firebase_database/zzkt;->zzi(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
invoke-interface {v2, v1, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_7a
:cond_9c
new-instance v0, Lcom/google/firebase/database/DatabaseException;
const-string v1, "Maps with non-string keys are not supported"
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_a4
move-object p0, v2
goto/16 :goto_3
:cond_a7
instance-of v0, p0, Ljava/util/Collection;
if-eqz v0, :cond_db
instance-of v0, p0, Ljava/util/List;
if-eqz v0, :cond_d3
check-cast p0, Ljava/util/List;
new-instance v0, Ljava/util/ArrayList;
invoke-interface {p0}, Ljava/util/List;->size()I
move-result v1
invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(I)V
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v1
:goto_be
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_d0
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
invoke-static {v2}, Lcom/google/android/gms/internal/firebase_database/zzkt;->zzi(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
invoke-interface {v0, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_be
:cond_d0
move-object p0, v0
goto/16 :goto_3
:cond_d3
new-instance v0, Lcom/google/firebase/database/DatabaseException;
const-string v1, "Serializing Collections is not supported, please use Lists instead"
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_db
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Class;->isArray()Z
move-result v0
if-eqz v0, :cond_ed
new-instance v0, Lcom/google/firebase/database/DatabaseException;
const-string v1, "Serializing Arrays is not supported, please use Lists instead"
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_ed
instance-of v0, p0, Ljava/lang/Enum;
if-eqz v0, :cond_f9
check-cast p0, Ljava/lang/Enum;
invoke-virtual {p0}, Ljava/lang/Enum;->name()Ljava/lang/String;
move-result-object p0
goto/16 :goto_3
:cond_f9
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
invoke-static {v0}, Lcom/google/android/gms/internal/firebase_database/zzkt;->zza(Ljava/lang/Class;)Lcom/google/android/gms/internal/firebase_database/zzku;
move-result-object v0
invoke-virtual {v0, p0}, Lcom/google/android/gms/internal/firebase_database/zzku;->zzm(Ljava/lang/Object;)Ljava/util/Map;
move-result-object p0
goto/16 :goto_3
.end method
.method public static zzi(Ljava/util/Map;)Ljava/util/Map;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/Object;",
">;)",
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/Object;",
">;"
}
.end annotation
invoke-static {p0}, Lcom/google/android/gms/internal/firebase_database/zzkt;->zzi(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
instance-of v1, v0, Ljava/util/Map;
invoke-static {v1}, Lcom/google/android/gms/internal/firebase_database/zzkq;->zzf(Z)V
check-cast v0, Ljava/util/Map;
return-object v0
.end method
.method private static zzj(Ljava/lang/Object;)Ljava/util/Map;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Object;",
")",
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/Object;",
">;"
}
.end annotation
instance-of v0, p0, Ljava/util/Map;
if-eqz v0, :cond_7
check-cast p0, Ljava/util/Map;
return-object p0
:cond_7
new-instance v0, Lcom/google/firebase/database/DatabaseException;
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v2
add-int/lit8 v2, v2, 0x2e
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3, v2}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v2, "Expected a Map while deserializing, but got a "
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method private static zzk(Ljava/lang/Object;)Ljava/lang/Double;
.registers 7
instance-of v0, p0, Ljava/lang/Integer;
if-eqz v0, :cond_f
check-cast p0, Ljava/lang/Integer;
invoke-virtual {p0}, Ljava/lang/Integer;->doubleValue()D
move-result-wide v0
invoke-static {v0, v1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object p0
:goto_e
return-object p0
:cond_f
instance-of v0, p0, Ljava/lang/Long;
if-eqz v0, :cond_5c
move-object v0, p0
check-cast v0, Ljava/lang/Long;
move-object v1, p0
check-cast v1, Ljava/lang/Long;
invoke-virtual {v1}, Ljava/lang/Long;->doubleValue()D
move-result-wide v2
invoke-static {v2, v3}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Double;->longValue()J
move-result-wide v2
invoke-virtual {v0}, Ljava/lang/Long;->longValue()J
move-result-wide v4
cmp-long v0, v2, v4
if-nez v0, :cond_2f
move-object p0, v1
goto :goto_e
:cond_2f
new-instance v0, Lcom/google/firebase/database/DatabaseException;
invoke-static {p0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v2
add-int/lit8 v2, v2, 0x61
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3, v2}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v2, "Loss of precision while converting number to double: "
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, ". Did you mean to use a 64-bit long instead?"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
:cond_5c
instance-of v0, p0, Ljava/lang/Double;
if-eqz v0, :cond_63
check-cast p0, Ljava/lang/Double;
goto :goto_e
:cond_63
new-instance v0, Lcom/google/firebase/database/DatabaseException;
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v2
add-int/lit8 v2, v2, 0x2c
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3, v2}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v2, "Failed to convert a value of type "
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " to double"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/firebase/database/DatabaseException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method static synthetic zzl(Ljava/lang/Object;)Ljava/lang/Object;
.registers 2
invoke-static {p0}, Lcom/google/android/gms/internal/firebase_database/zzkt;->zzi(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method