Data.smali
.class public Lcom/google/api/client/util/Data;
.super Ljava/lang/Object;
# static fields
.field public static final a:Ljava/lang/Boolean;
.field public static final b:Ljava/lang/String;
.field public static final c:Ljava/lang/Character;
.field public static final d:Ljava/lang/Byte;
.field public static final e:Ljava/lang/Short;
.field public static final f:Ljava/lang/Integer;
.field public static final g:Ljava/lang/Float;
.field public static final h:Ljava/lang/Long;
.field public static final i:Ljava/lang/Double;
.field public static final j:Ljava/math/BigInteger;
.field public static final k:Ljava/math/BigDecimal;
.field public static final l:Lcom/google/api/client/util/DateTime;
.field private static final m:Ljava/util/concurrent/ConcurrentHashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/ConcurrentHashMap<",
"Ljava/lang/Class<",
"*>;",
"Ljava/lang/Object;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 5
new-instance v0, Ljava/lang/Boolean;
const/4 v1, 0x1
invoke-direct {v0, v1}, Ljava/lang/Boolean;-><init>(Z)V
sput-object v0, Lcom/google/api/client/util/Data;->a:Ljava/lang/Boolean;
new-instance v0, Ljava/lang/String;
invoke-direct {v0}, Ljava/lang/String;-><init>()V
sput-object v0, Lcom/google/api/client/util/Data;->b:Ljava/lang/String;
new-instance v0, Ljava/lang/Character;
const/4 v1, 0x0
invoke-direct {v0, v1}, Ljava/lang/Character;-><init>(C)V
sput-object v0, Lcom/google/api/client/util/Data;->c:Ljava/lang/Character;
new-instance v0, Ljava/lang/Byte;
invoke-direct {v0, v1}, Ljava/lang/Byte;-><init>(B)V
sput-object v0, Lcom/google/api/client/util/Data;->d:Ljava/lang/Byte;
new-instance v0, Ljava/lang/Short;
invoke-direct {v0, v1}, Ljava/lang/Short;-><init>(S)V
sput-object v0, Lcom/google/api/client/util/Data;->e:Ljava/lang/Short;
new-instance v0, Ljava/lang/Integer;
invoke-direct {v0, v1}, Ljava/lang/Integer;-><init>(I)V
sput-object v0, Lcom/google/api/client/util/Data;->f:Ljava/lang/Integer;
new-instance v0, Ljava/lang/Float;
const/4 v1, 0x0
invoke-direct {v0, v1}, Ljava/lang/Float;-><init>(F)V
sput-object v0, Lcom/google/api/client/util/Data;->g:Ljava/lang/Float;
new-instance v0, Ljava/lang/Long;
const-wide/16 v1, 0x0
invoke-direct {v0, v1, v2}, Ljava/lang/Long;-><init>(J)V
sput-object v0, Lcom/google/api/client/util/Data;->h:Ljava/lang/Long;
new-instance v0, Ljava/lang/Double;
const-wide/16 v3, 0x0
invoke-direct {v0, v3, v4}, Ljava/lang/Double;-><init>(D)V
sput-object v0, Lcom/google/api/client/util/Data;->i:Ljava/lang/Double;
new-instance v0, Ljava/math/BigInteger;
const-string v3, "0"
invoke-direct {v0, v3}, Ljava/math/BigInteger;-><init>(Ljava/lang/String;)V
sput-object v0, Lcom/google/api/client/util/Data;->j:Ljava/math/BigInteger;
new-instance v0, Ljava/math/BigDecimal;
invoke-direct {v0, v3}, Ljava/math/BigDecimal;-><init>(Ljava/lang/String;)V
sput-object v0, Lcom/google/api/client/util/Data;->k:Ljava/math/BigDecimal;
new-instance v0, Lcom/google/api/client/util/DateTime;
invoke-direct {v0, v1, v2}, Lcom/google/api/client/util/DateTime;-><init>(J)V
sput-object v0, Lcom/google/api/client/util/Data;->l:Lcom/google/api/client/util/DateTime;
new-instance v0, Ljava/util/concurrent/ConcurrentHashMap;
invoke-direct {v0}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V
sput-object v0, Lcom/google/api/client/util/Data;->m:Ljava/util/concurrent/ConcurrentHashMap;
const-class v1, Ljava/lang/Boolean;
sget-object v2, Lcom/google/api/client/util/Data;->a:Ljava/lang/Boolean;
invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/ConcurrentHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
sget-object v0, Lcom/google/api/client/util/Data;->m:Ljava/util/concurrent/ConcurrentHashMap;
const-class v1, Ljava/lang/String;
sget-object v2, Lcom/google/api/client/util/Data;->b:Ljava/lang/String;
invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/ConcurrentHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
sget-object v0, Lcom/google/api/client/util/Data;->m:Ljava/util/concurrent/ConcurrentHashMap;
const-class v1, Ljava/lang/Character;
sget-object v2, Lcom/google/api/client/util/Data;->c:Ljava/lang/Character;
invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/ConcurrentHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
sget-object v0, Lcom/google/api/client/util/Data;->m:Ljava/util/concurrent/ConcurrentHashMap;
const-class v1, Ljava/lang/Byte;
sget-object v2, Lcom/google/api/client/util/Data;->d:Ljava/lang/Byte;
invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/ConcurrentHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
sget-object v0, Lcom/google/api/client/util/Data;->m:Ljava/util/concurrent/ConcurrentHashMap;
const-class v1, Ljava/lang/Short;
sget-object v2, Lcom/google/api/client/util/Data;->e:Ljava/lang/Short;
invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/ConcurrentHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
sget-object v0, Lcom/google/api/client/util/Data;->m:Ljava/util/concurrent/ConcurrentHashMap;
const-class v1, Ljava/lang/Integer;
sget-object v2, Lcom/google/api/client/util/Data;->f:Ljava/lang/Integer;
invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/ConcurrentHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
sget-object v0, Lcom/google/api/client/util/Data;->m:Ljava/util/concurrent/ConcurrentHashMap;
const-class v1, Ljava/lang/Float;
sget-object v2, Lcom/google/api/client/util/Data;->g:Ljava/lang/Float;
invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/ConcurrentHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
sget-object v0, Lcom/google/api/client/util/Data;->m:Ljava/util/concurrent/ConcurrentHashMap;
const-class v1, Ljava/lang/Long;
sget-object v2, Lcom/google/api/client/util/Data;->h:Ljava/lang/Long;
invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/ConcurrentHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
sget-object v0, Lcom/google/api/client/util/Data;->m:Ljava/util/concurrent/ConcurrentHashMap;
const-class v1, Ljava/lang/Double;
sget-object v2, Lcom/google/api/client/util/Data;->i:Ljava/lang/Double;
invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/ConcurrentHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
sget-object v0, Lcom/google/api/client/util/Data;->m:Ljava/util/concurrent/ConcurrentHashMap;
const-class v1, Ljava/math/BigInteger;
sget-object v2, Lcom/google/api/client/util/Data;->j:Ljava/math/BigInteger;
invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/ConcurrentHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
sget-object v0, Lcom/google/api/client/util/Data;->m:Ljava/util/concurrent/ConcurrentHashMap;
const-class v1, Ljava/math/BigDecimal;
sget-object v2, Lcom/google/api/client/util/Data;->k:Ljava/math/BigDecimal;
invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/ConcurrentHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
sget-object v0, Lcom/google/api/client/util/Data;->m:Ljava/util/concurrent/ConcurrentHashMap;
const-class v1, Lcom/google/api/client/util/DateTime;
sget-object v2, Lcom/google/api/client/util/Data;->l:Lcom/google/api/client/util/DateTime;
invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/ConcurrentHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
return-void
.end method
.method public static a(Ljava/lang/Object;)Ljava/lang/Object;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(TT;)TT;"
}
.end annotation
if-eqz p0, :cond_5d
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
invoke-static {v0}, Lcom/google/api/client/util/Data;->e(Ljava/lang/reflect/Type;)Z
move-result v0
if-eqz v0, :cond_d
goto :goto_5d
:cond_d
instance-of v0, p0, Lcom/google/api/client/util/GenericData;
if-eqz v0, :cond_18
check-cast p0, Lcom/google/api/client/util/GenericData;
invoke-virtual {p0}, Lcom/google/api/client/util/GenericData;->b()Lcom/google/api/client/util/GenericData;
move-result-object p0
return-object p0
:cond_18
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Class;->isArray()Z
move-result v1
if-eqz v1, :cond_2f
invoke-virtual {v0}, Ljava/lang/Class;->getComponentType()Ljava/lang/Class;
move-result-object v0
invoke-static {p0}, Ljava/lang/reflect/Array;->getLength(Ljava/lang/Object;)I
move-result v1
invoke-static {v0, v1}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;I)Ljava/lang/Object;
move-result-object v0
goto :goto_59
:cond_2f
instance-of v1, p0, Lcom/google/api/client/util/ArrayMap;
if-eqz v1, :cond_3b
move-object v0, p0
check-cast v0, Lcom/google/api/client/util/ArrayMap;
invoke-virtual {v0}, Lcom/google/api/client/util/ArrayMap;->b()Lcom/google/api/client/util/ArrayMap;
move-result-object v0
goto :goto_59
:cond_3b
const-string v1, "java.util.Arrays$ArrayList"
invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_55
check-cast p0, Ljava/util/List;
invoke-interface {p0}, Ljava/util/List;->toArray()[Ljava/lang/Object;
move-result-object p0
invoke-static {p0, p0}, Lcom/google/api/client/util/Data;->c(Ljava/lang/Object;Ljava/lang/Object;)V
invoke-static {p0}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object p0
return-object p0
:cond_55
invoke-static {v0}, Lcom/google/api/client/util/Types;->m(Ljava/lang/Class;)Ljava/lang/Object;
move-result-object v0
:goto_59
invoke-static {p0, v0}, Lcom/google/api/client/util/Data;->c(Ljava/lang/Object;Ljava/lang/Object;)V
return-object v0
:cond_5d
:goto_5d
return-object p0
.end method
.method private static b(Ljava/lang/Class;)Ljava/lang/Object;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)",
"Ljava/lang/Object;"
}
.end annotation
invoke-virtual {p0}, Ljava/lang/Class;->isArray()Z
move-result v0
const/4 v1, 0x1
const/4 v2, 0x0
if-eqz v0, :cond_1a
:cond_8
invoke-virtual {p0}, Ljava/lang/Class;->getComponentType()Ljava/lang/Class;
move-result-object p0
add-int/2addr v2, v1
invoke-virtual {p0}, Ljava/lang/Class;->isArray()Z
move-result v0
if-nez v0, :cond_8
new-array v0, v2, [I
invoke-static {p0, v0}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;
move-result-object p0
return-object p0
:cond_1a
invoke-virtual {p0}, Ljava/lang/Class;->isEnum()Z
move-result v0
if-eqz v0, :cond_37
invoke-static {p0}, Lcom/google/api/client/util/ClassInfo;->e(Ljava/lang/Class;)Lcom/google/api/client/util/ClassInfo;
move-result-object v0
const/4 v3, 0x0
invoke-virtual {v0, v3}, Lcom/google/api/client/util/ClassInfo;->b(Ljava/lang/String;)Lcom/google/api/client/util/FieldInfo;
move-result-object v0
new-array v1, v1, [Ljava/lang/Object;
aput-object p0, v1, v2
const-string p0, "enum missing constant with @NullValue annotation: %s"
invoke-static {v0, p0, v1}, Lcom/google/api/client/util/Preconditions;->f(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
invoke-virtual {v0}, Lcom/google/api/client/util/FieldInfo;->a()Ljava/lang/Enum;
move-result-object p0
return-object p0
:cond_37
invoke-static {p0}, Lcom/google/api/client/util/Types;->m(Ljava/lang/Class;)Ljava/lang/Object;
move-result-object p0
return-object p0
.end method
.method public static c(Ljava/lang/Object;Ljava/lang/Object;)V
.registers 7
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
const/4 v2, 0x1
const/4 v3, 0x0
if-ne v0, v1, :cond_e
const/4 v1, 0x1
goto :goto_f
:cond_e
const/4 v1, 0x0
:goto_f
invoke-static {v1}, Lcom/google/api/client/util/Preconditions;->a(Z)V
invoke-virtual {v0}, Ljava/lang/Class;->isArray()Z
move-result v1
if-eqz v1, :cond_44
invoke-static {p0}, Ljava/lang/reflect/Array;->getLength(Ljava/lang/Object;)I
move-result v0
invoke-static {p1}, Ljava/lang/reflect/Array;->getLength(Ljava/lang/Object;)I
move-result v1
if-ne v0, v1, :cond_23
goto :goto_24
:cond_23
const/4 v2, 0x0
:goto_24
invoke-static {v2}, Lcom/google/api/client/util/Preconditions;->a(Z)V
invoke-static {p0}, Lcom/google/api/client/util/Types;->l(Ljava/lang/Object;)Ljava/lang/Iterable;
move-result-object p0
invoke-interface {p0}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator;
move-result-object p0
:goto_2f
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_10f
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
add-int/lit8 v1, v3, 0x1
invoke-static {v0}, Lcom/google/api/client/util/Data;->a(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
invoke-static {p1, v3, v0}, Ljava/lang/reflect/Array;->set(Ljava/lang/Object;ILjava/lang/Object;)V
move v3, v1
goto :goto_2f
:cond_44
const-class v1, Ljava/util/Collection;
invoke-virtual {v1, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v1
if-eqz v1, :cond_78
check-cast p0, Ljava/util/Collection;
const-class v1, Ljava/util/ArrayList;
invoke-virtual {v1, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_60
move-object v0, p1
check-cast v0, Ljava/util/ArrayList;
invoke-interface {p0}, Ljava/util/Collection;->size()I
move-result v1
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->ensureCapacity(I)V
:cond_60
check-cast p1, Ljava/util/Collection;
invoke-interface {p0}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;
move-result-object p0
:goto_66
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_10f
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
invoke-static {v0}, Lcom/google/api/client/util/Data;->a(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
invoke-interface {p1, v0}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
goto :goto_66
:cond_78
const-class v1, Lcom/google/api/client/util/GenericData;
invoke-virtual {v1, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v1
if-nez v1, :cond_d1
const-class v2, Ljava/util/Map;
invoke-virtual {v2, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v2
if-nez v2, :cond_89
goto :goto_d1
:cond_89
const-class v1, Lcom/google/api/client/util/ArrayMap;
invoke-virtual {v1, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_a9
check-cast p1, Lcom/google/api/client/util/ArrayMap;
check-cast p0, Lcom/google/api/client/util/ArrayMap;
invoke-virtual {p0}, Lcom/google/api/client/util/ArrayMap;->size()I
move-result v0
:goto_99
if-ge v3, v0, :cond_10f
invoke-virtual {p0, v3}, Lcom/google/api/client/util/ArrayMap;->i(I)Ljava/lang/Object;
move-result-object v1
invoke-static {v1}, Lcom/google/api/client/util/Data;->a(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
invoke-virtual {p1, v3, v1}, Lcom/google/api/client/util/ArrayMap;->m(ILjava/lang/Object;)Ljava/lang/Object;
add-int/lit8 v3, v3, 0x1
goto :goto_99
:cond_a9
check-cast p1, Ljava/util/Map;
check-cast p0, Ljava/util/Map;
invoke-interface {p0}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object p0
invoke-interface {p0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object p0
:goto_b5
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_10f
invoke-interface {p0}, 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
invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v0
invoke-static {v0}, Lcom/google/api/client/util/Data;->a(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
invoke-interface {p1, v1, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_b5
:cond_d1
:goto_d1
if-eqz v1, :cond_d9
move-object v0, p0
check-cast v0, Lcom/google/api/client/util/GenericData;
iget-object v0, v0, Lcom/google/api/client/util/GenericData;->g:Lcom/google/api/client/util/ClassInfo;
goto :goto_dd
:cond_d9
invoke-static {v0}, Lcom/google/api/client/util/ClassInfo;->e(Ljava/lang/Class;)Lcom/google/api/client/util/ClassInfo;
move-result-object v0
:goto_dd
iget-object v2, v0, Lcom/google/api/client/util/ClassInfo;->c:Ljava/util/List;
invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v2
:cond_e3
:goto_e3
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-eqz v3, :cond_10f
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v3
check-cast v3, Ljava/lang/String;
invoke-virtual {v0, v3}, Lcom/google/api/client/util/ClassInfo;->b(Ljava/lang/String;)Lcom/google/api/client/util/FieldInfo;
move-result-object v3
invoke-virtual {v3}, Lcom/google/api/client/util/FieldInfo;->h()Z
move-result v4
if-nez v4, :cond_e3
if-eqz v1, :cond_101
invoke-virtual {v3}, Lcom/google/api/client/util/FieldInfo;->i()Z
move-result v4
if-nez v4, :cond_e3
:cond_101
invoke-virtual {v3, p0}, Lcom/google/api/client/util/FieldInfo;->g(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v4
if-eqz v4, :cond_e3
invoke-static {v4}, Lcom/google/api/client/util/Data;->a(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v4
invoke-virtual {v3, p1, v4}, Lcom/google/api/client/util/FieldInfo;->m(Ljava/lang/Object;Ljava/lang/Object;)V
goto :goto_e3
:cond_10f
return-void
.end method
.method public static d(Ljava/lang/Object;)Z
.registers 3
if-eqz p0, :cond_10
sget-object v0, Lcom/google/api/client/util/Data;->m:Ljava/util/concurrent/ConcurrentHashMap;
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/util/concurrent/ConcurrentHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
if-ne p0, v0, :cond_10
const/4 p0, 0x1
goto :goto_11
:cond_10
const/4 p0, 0x0
:goto_11
return p0
.end method
.method public static e(Ljava/lang/reflect/Type;)Z
.registers 3
instance-of v0, p0, Ljava/lang/reflect/WildcardType;
if-eqz v0, :cond_a
check-cast p0, Ljava/lang/reflect/WildcardType;
invoke-static {p0}, Lcom/google/api/client/util/Types;->c(Ljava/lang/reflect/WildcardType;)Ljava/lang/reflect/Type;
move-result-object p0
:cond_a
instance-of v0, p0, Ljava/lang/Class;
const/4 v1, 0x0
if-nez v0, :cond_10
return v1
:cond_10
check-cast p0, Ljava/lang/Class;
invoke-virtual {p0}, Ljava/lang/Class;->isPrimitive()Z
move-result v0
if-nez v0, :cond_48
const-class v0, Ljava/lang/Character;
if-eq p0, v0, :cond_48
const-class v0, Ljava/lang/String;
if-eq p0, v0, :cond_48
const-class v0, Ljava/lang/Integer;
if-eq p0, v0, :cond_48
const-class v0, Ljava/lang/Long;
if-eq p0, v0, :cond_48
const-class v0, Ljava/lang/Short;
if-eq p0, v0, :cond_48
const-class v0, Ljava/lang/Byte;
if-eq p0, v0, :cond_48
const-class v0, Ljava/lang/Float;
if-eq p0, v0, :cond_48
const-class v0, Ljava/lang/Double;
if-eq p0, v0, :cond_48
const-class v0, Ljava/math/BigInteger;
if-eq p0, v0, :cond_48
const-class v0, Ljava/math/BigDecimal;
if-eq p0, v0, :cond_48
const-class v0, Lcom/google/api/client/util/DateTime;
if-eq p0, v0, :cond_48
const-class v0, Ljava/lang/Boolean;
if-ne p0, v0, :cond_49
:cond_48
const/4 v1, 0x1
:cond_49
return v1
.end method
.method public static f(Ljava/lang/Object;)Z
.registers 1
if-eqz p0, :cond_f
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object p0
invoke-static {p0}, Lcom/google/api/client/util/Data;->e(Ljava/lang/reflect/Type;)Z
move-result p0
if-eqz p0, :cond_d
goto :goto_f
:cond_d
const/4 p0, 0x0
goto :goto_10
:cond_f
:goto_f
const/4 p0, 0x1
:goto_10
return p0
.end method
.method public static g(Ljava/lang/Object;)Ljava/util/Map;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Object;",
")",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/lang/Object;",
">;"
}
.end annotation
if-eqz p0, :cond_17
invoke-static {p0}, Lcom/google/api/client/util/Data;->d(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_9
goto :goto_17
:cond_9
instance-of v0, p0, Ljava/util/Map;
if-eqz v0, :cond_10
check-cast p0, Ljava/util/Map;
return-object p0
:cond_10
new-instance v0, Lcom/google/api/client/util/DataMap;
const/4 v1, 0x0
invoke-direct {v0, p0, v1}, Lcom/google/api/client/util/DataMap;-><init>(Ljava/lang/Object;Z)V
return-object v0
:cond_17
:goto_17
invoke-static {}, Ljava/util/Collections;->emptyMap()Ljava/util/Map;
move-result-object p0
return-object p0
.end method
.method public static h(Ljava/lang/reflect/Type;)Ljava/util/Collection;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/reflect/Type;",
")",
"Ljava/util/Collection<",
"Ljava/lang/Object;",
">;"
}
.end annotation
instance-of v0, p0, Ljava/lang/reflect/WildcardType;
if-eqz v0, :cond_a
check-cast p0, Ljava/lang/reflect/WildcardType;
invoke-static {p0}, Lcom/google/api/client/util/Types;->c(Ljava/lang/reflect/WildcardType;)Ljava/lang/reflect/Type;
move-result-object p0
:cond_a
instance-of v0, p0, Ljava/lang/reflect/ParameterizedType;
if-eqz v0, :cond_14
check-cast p0, Ljava/lang/reflect/ParameterizedType;
invoke-interface {p0}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type;
move-result-object p0
:cond_14
instance-of v0, p0, Ljava/lang/Class;
if-eqz v0, :cond_1c
move-object v0, p0
check-cast v0, Ljava/lang/Class;
goto :goto_1d
:cond_1c
const/4 v0, 0x0
:goto_1d
if-eqz p0, :cond_70
instance-of v1, p0, Ljava/lang/reflect/GenericArrayType;
if-nez v1, :cond_70
if-eqz v0, :cond_34
invoke-virtual {v0}, Ljava/lang/Class;->isArray()Z
move-result v1
if-nez v1, :cond_70
const-class v1, Ljava/util/ArrayList;
invoke-virtual {v0, v1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v1
if-eqz v1, :cond_34
goto :goto_70
:cond_34
if-eqz v0, :cond_59
const-class p0, Ljava/util/HashSet;
invoke-virtual {v0, p0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result p0
if-eqz p0, :cond_44
new-instance p0, Ljava/util/HashSet;
invoke-direct {p0}, Ljava/util/HashSet;-><init>()V
return-object p0
:cond_44
const-class p0, Ljava/util/TreeSet;
invoke-virtual {v0, p0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result p0
if-eqz p0, :cond_52
new-instance p0, Ljava/util/TreeSet;
invoke-direct {p0}, Ljava/util/TreeSet;-><init>()V
return-object p0
:cond_52
invoke-static {v0}, Lcom/google/api/client/util/Types;->m(Ljava/lang/Class;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Ljava/util/Collection;
return-object p0
:cond_59
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "unable to create new instance of type: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
:cond_70
:goto_70
new-instance p0, Ljava/util/ArrayList;
invoke-direct {p0}, Ljava/util/ArrayList;-><init>()V
return-object p0
.end method
.method public static i(Ljava/lang/Class;)Ljava/util/Map;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/lang/Object;",
">;"
}
.end annotation
if-eqz p0, :cond_20
const-class v0, Lcom/google/api/client/util/ArrayMap;
invoke-virtual {p0, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_b
goto :goto_20
:cond_b
const-class v0, Ljava/util/TreeMap;
invoke-virtual {p0, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_19
new-instance p0, Ljava/util/TreeMap;
invoke-direct {p0}, Ljava/util/TreeMap;-><init>()V
return-object p0
:cond_19
invoke-static {p0}, Lcom/google/api/client/util/Types;->m(Ljava/lang/Class;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Ljava/util/Map;
return-object p0
:cond_20
:goto_20
invoke-static {}, Lcom/google/api/client/util/ArrayMap;->d()Lcom/google/api/client/util/ArrayMap;
move-result-object p0
return-object p0
.end method
.method public static j(Ljava/lang/Class;)Ljava/lang/Object;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class<",
"TT;>;)TT;"
}
.end annotation
sget-object v0, Lcom/google/api/client/util/Data;->m:Ljava/util/concurrent/ConcurrentHashMap;
invoke-virtual {v0, p0}, Ljava/util/concurrent/ConcurrentHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
if-nez v0, :cond_16
invoke-static {p0}, Lcom/google/api/client/util/Data;->b(Ljava/lang/Class;)Ljava/lang/Object;
move-result-object v0
sget-object v1, Lcom/google/api/client/util/Data;->m:Ljava/util/concurrent/ConcurrentHashMap;
invoke-virtual {v1, p0, v0}, Ljava/util/concurrent/ConcurrentHashMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
if-nez p0, :cond_15
goto :goto_16
:cond_15
move-object v0, p0
:cond_16
:goto_16
return-object v0
.end method
.method public static k(Ljava/lang/reflect/Type;Ljava/lang/String;)Ljava/lang/Object;
.registers 6
instance-of v0, p0, Ljava/lang/Class;
const/4 v1, 0x0
if-eqz v0, :cond_9
move-object v0, p0
check-cast v0, Ljava/lang/Class;
goto :goto_a
:cond_9
move-object v0, v1
:goto_a
if-eqz p0, :cond_e
if-eqz v0, :cond_bd
:cond_e
const-class v2, Ljava/lang/Void;
if-ne v0, v2, :cond_13
return-object v1
:cond_13
if-eqz p1, :cond_11d
if-eqz v0, :cond_11d
const-class v1, Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v1
if-eqz v1, :cond_21
goto/16 :goto_11d
:cond_21
const-class v1, Ljava/lang/Character;
const/4 v2, 0x0
const/4 v3, 0x1
if-eq v0, v1, :cond_f7
sget-object v1, Ljava/lang/Character;->TYPE:Ljava/lang/Class;
if-ne v0, v1, :cond_2d
goto/16 :goto_f7
:cond_2d
const-class v1, Ljava/lang/Boolean;
if-eq v0, v1, :cond_f2
sget-object v1, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;
if-ne v0, v1, :cond_37
goto/16 :goto_f2
:cond_37
const-class v1, Ljava/lang/Byte;
if-eq v0, v1, :cond_ed
sget-object v1, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;
if-ne v0, v1, :cond_41
goto/16 :goto_ed
:cond_41
const-class v1, Ljava/lang/Short;
if-eq v0, v1, :cond_e8
sget-object v1, Ljava/lang/Short;->TYPE:Ljava/lang/Class;
if-ne v0, v1, :cond_4b
goto/16 :goto_e8
:cond_4b
const-class v1, Ljava/lang/Integer;
if-eq v0, v1, :cond_e3
sget-object v1, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
if-ne v0, v1, :cond_55
goto/16 :goto_e3
:cond_55
const-class v1, Ljava/lang/Long;
if-eq v0, v1, :cond_de
sget-object v1, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
if-ne v0, v1, :cond_5f
goto/16 :goto_de
:cond_5f
const-class v1, Ljava/lang/Float;
if-eq v0, v1, :cond_d9
sget-object v1, Ljava/lang/Float;->TYPE:Ljava/lang/Class;
if-ne v0, v1, :cond_68
goto :goto_d9
:cond_68
const-class v1, Ljava/lang/Double;
if-eq v0, v1, :cond_d4
sget-object v1, Ljava/lang/Double;->TYPE:Ljava/lang/Class;
if-ne v0, v1, :cond_71
goto :goto_d4
:cond_71
const-class v1, Lcom/google/api/client/util/DateTime;
if-ne v0, v1, :cond_7a
invoke-static {p1}, Lcom/google/api/client/util/DateTime;->b(Ljava/lang/String;)Lcom/google/api/client/util/DateTime;
move-result-object p0
return-object p0
:cond_7a
const-class v1, Ljava/math/BigInteger;
if-ne v0, v1, :cond_84
new-instance p0, Ljava/math/BigInteger;
invoke-direct {p0, p1}, Ljava/math/BigInteger;-><init>(Ljava/lang/String;)V
return-object p0
:cond_84
const-class v1, Ljava/math/BigDecimal;
if-ne v0, v1, :cond_8e
new-instance p0, Ljava/math/BigDecimal;
invoke-direct {p0, p1}, Ljava/math/BigDecimal;-><init>(Ljava/lang/String;)V
return-object p0
:cond_8e
invoke-virtual {v0}, Ljava/lang/Class;->isEnum()Z
move-result v1
if-eqz v1, :cond_bd
invoke-static {v0}, Lcom/google/api/client/util/ClassInfo;->e(Ljava/lang/Class;)Lcom/google/api/client/util/ClassInfo;
move-result-object p0
iget-object p0, p0, Lcom/google/api/client/util/ClassInfo;->c:Ljava/util/List;
invoke-interface {p0, p1}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
move-result p0
if-eqz p0, :cond_ad
invoke-static {v0}, Lcom/google/api/client/util/ClassInfo;->e(Ljava/lang/Class;)Lcom/google/api/client/util/ClassInfo;
move-result-object p0
invoke-virtual {p0, p1}, Lcom/google/api/client/util/ClassInfo;->b(Ljava/lang/String;)Lcom/google/api/client/util/FieldInfo;
move-result-object p0
invoke-virtual {p0}, Lcom/google/api/client/util/FieldInfo;->a()Ljava/lang/Enum;
move-result-object p0
return-object p0
:cond_ad
new-instance p0, Ljava/lang/IllegalArgumentException;
new-array v0, v3, [Ljava/lang/Object;
aput-object p1, v0, v2
const-string p1, "given enum name %s not part of enumeration"
invoke-static {p1, v0}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object p1
invoke-direct {p0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p0
:cond_bd
new-instance p1, Ljava/lang/IllegalArgumentException;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "expected primitive class, but got: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {p1, p0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
:cond_d4
:goto_d4
invoke-static {p1}, Ljava/lang/Double;->valueOf(Ljava/lang/String;)Ljava/lang/Double;
move-result-object p0
return-object p0
:cond_d9
:goto_d9
invoke-static {p1}, Ljava/lang/Float;->valueOf(Ljava/lang/String;)Ljava/lang/Float;
move-result-object p0
return-object p0
:cond_de
:goto_de
invoke-static {p1}, Ljava/lang/Long;->valueOf(Ljava/lang/String;)Ljava/lang/Long;
move-result-object p0
return-object p0
:cond_e3
:goto_e3
invoke-static {p1}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;
move-result-object p0
return-object p0
:cond_e8
:goto_e8
invoke-static {p1}, Ljava/lang/Short;->valueOf(Ljava/lang/String;)Ljava/lang/Short;
move-result-object p0
return-object p0
:cond_ed
:goto_ed
invoke-static {p1}, Ljava/lang/Byte;->valueOf(Ljava/lang/String;)Ljava/lang/Byte;
move-result-object p0
return-object p0
:cond_f2
:goto_f2
invoke-static {p1}, Ljava/lang/Boolean;->valueOf(Ljava/lang/String;)Ljava/lang/Boolean;
move-result-object p0
return-object p0
:cond_f7
:goto_f7
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result p0
if-ne p0, v3, :cond_106
invoke-virtual {p1, v2}, Ljava/lang/String;->charAt(I)C
move-result p0
invoke-static {p0}, Ljava/lang/Character;->valueOf(C)Ljava/lang/Character;
move-result-object p0
return-object p0
:cond_106
new-instance p0, Ljava/lang/IllegalArgumentException;
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "expected type Character/char but got "
invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {p0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p0
:cond_11d
:goto_11d
return-object p1
.end method
.method public static l(Ljava/util/List;Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Ljava/lang/reflect/Type;",
">;",
"Ljava/lang/reflect/Type;",
")",
"Ljava/lang/reflect/Type;"
}
.end annotation
instance-of v0, p1, Ljava/lang/reflect/WildcardType;
if-eqz v0, :cond_a
check-cast p1, Ljava/lang/reflect/WildcardType;
invoke-static {p1}, Lcom/google/api/client/util/Types;->c(Ljava/lang/reflect/WildcardType;)Ljava/lang/reflect/Type;
move-result-object p1
:cond_a
:goto_a
instance-of v0, p1, Ljava/lang/reflect/TypeVariable;
if-eqz v0, :cond_27
move-object v0, p1
check-cast v0, Ljava/lang/reflect/TypeVariable;
invoke-static {p0, v0}, Lcom/google/api/client/util/Types;->n(Ljava/util/List;Ljava/lang/reflect/TypeVariable;)Ljava/lang/reflect/Type;
move-result-object v0
if-eqz v0, :cond_18
move-object p1, v0
:cond_18
nop
instance-of v0, p1, Ljava/lang/reflect/TypeVariable;
if-eqz v0, :cond_a
check-cast p1, Ljava/lang/reflect/TypeVariable;
invoke-interface {p1}, Ljava/lang/reflect/TypeVariable;->getBounds()[Ljava/lang/reflect/Type;
move-result-object p1
const/4 v0, 0x0
aget-object p1, p1, v0
goto :goto_a
:cond_27
return-object p1
.end method