ClassUtil.smali
.class public final Lcom/fasterxml/jackson/databind/util/ClassUtil;
.super Ljava/lang/Object;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/fasterxml/jackson/databind/util/ClassUtil$EnumTypeLocator;
}
.end annotation
# direct methods
.method private static _addSuperTypes(Ljava/lang/Class;Ljava/lang/Class;Ljava/util/Collection;Z)V
.registers 9
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class",
"<*>;",
"Ljava/lang/Class",
"<*>;",
"Ljava/util/Collection",
"<",
"Ljava/lang/Class",
"<*>;>;Z)V"
}
.end annotation
const/4 v4, 0x1
if-eq p0, p1, :cond_9
if-eqz p0, :cond_9
const-class v0, Ljava/lang/Object;
if-ne p0, v0, :cond_a
:cond_9
:goto_9
return-void
:cond_a
if-eqz p3, :cond_15
invoke-interface {p2, p0}, Ljava/util/Collection;->contains(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_9
invoke-interface {p2, p0}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
:cond_15
invoke-virtual {p0}, Ljava/lang/Class;->getInterfaces()[Ljava/lang/Class;
move-result-object v1
array-length v2, v1
const/4 v0, 0x0
:goto_1b
if-ge v0, v2, :cond_25
aget-object v3, v1, v0
invoke-static {v3, p1, p2, v4}, Lcom/fasterxml/jackson/databind/util/ClassUtil;->_addSuperTypes(Ljava/lang/Class;Ljava/lang/Class;Ljava/util/Collection;Z)V
add-int/lit8 v0, v0, 0x1
goto :goto_1b
:cond_25
invoke-virtual {p0}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;
move-result-object v0
invoke-static {v0, p1, p2, v4}, Lcom/fasterxml/jackson/databind/util/ClassUtil;->_addSuperTypes(Ljava/lang/Class;Ljava/lang/Class;Ljava/util/Collection;Z)V
goto :goto_9
.end method
.method public static canBeABeanType(Ljava/lang/Class;)Ljava/lang/String;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class",
"<*>;)",
"Ljava/lang/String;"
}
.end annotation
invoke-virtual {p0}, Ljava/lang/Class;->isAnnotation()Z
move-result v0
if-eqz v0, :cond_a
const-string/jumbo v0, "annotation"
:goto_9
return-object v0
:cond_a
invoke-virtual {p0}, Ljava/lang/Class;->isArray()Z
move-result v0
if-eqz v0, :cond_14
const-string/jumbo v0, "array"
goto :goto_9
:cond_14
invoke-virtual {p0}, Ljava/lang/Class;->isEnum()Z
move-result v0
if-eqz v0, :cond_1e
const-string/jumbo v0, "enum"
goto :goto_9
:cond_1e
invoke-virtual {p0}, Ljava/lang/Class;->isPrimitive()Z
move-result v0
if-eqz v0, :cond_28
const-string/jumbo v0, "primitive"
goto :goto_9
:cond_28
const/4 v0, 0x0
goto :goto_9
.end method
.method public static checkAndFixAccess(Ljava/lang/reflect/Member;)V
.registers 6
move-object v0, p0
check-cast v0, Ljava/lang/reflect/AccessibleObject;
const/4 v1, 0x1
:try_start_4
invoke-virtual {v0, v1}, Ljava/lang/reflect/AccessibleObject;->setAccessible(Z)V
:try_end_7
.catch Ljava/lang/SecurityException; {:try_start_4 .. :try_end_7} :catch_8
:cond_7
return-void
:catch_8
move-exception v1
invoke-virtual {v0}, Ljava/lang/reflect/AccessibleObject;->isAccessible()Z
move-result v0
if-nez v0, :cond_7
invoke-interface {p0}, Ljava/lang/reflect/Member;->getDeclaringClass()Ljava/lang/Class;
move-result-object v0
new-instance v2, Ljava/lang/IllegalArgumentException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v4, "Can not access "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v3
const-string/jumbo v4, " (from class "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v0
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string/jumbo v3, "; failed to set access: "
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v1}, Ljava/lang/SecurityException;->getMessage()Ljava/lang/String;
move-result-object v1
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}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v2
.end method
.method public static createInstance(Ljava/lang/Class;Z)Ljava/lang/Object;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class",
"<TT;>;Z)TT;"
}
.end annotation
invoke-static {p0, p1}, Lcom/fasterxml/jackson/databind/util/ClassUtil;->findConstructor(Ljava/lang/Class;Z)Ljava/lang/reflect/Constructor;
move-result-object v0
if-nez v0, :cond_2b
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v2, "Class "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {p0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string/jumbo v2, " has no default (no arg) constructor"
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}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
:cond_2b
const/4 v1, 0x0
:try_start_2c
new-array v1, v1, [Ljava/lang/Object;
invoke-virtual {v0, v1}, Ljava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)Ljava/lang/Object;
:try_end_31
.catch Ljava/lang/Exception; {:try_start_2c .. :try_end_31} :catch_33
move-result-object v0
:goto_32
return-object v0
:catch_33
move-exception v0
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v2, "Failed to instantiate class "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {p0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string/jumbo v2, ", problem: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object 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-static {v0, v1}, Lcom/fasterxml/jackson/databind/util/ClassUtil;->unwrapAndThrowAsIAE(Ljava/lang/Throwable;Ljava/lang/String;)V
const/4 v0, 0x0
goto :goto_32
.end method
.method public static defaultValue(Ljava/lang/Class;)Ljava/lang/Object;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class",
"<*>;)",
"Ljava/lang/Object;"
}
.end annotation
const/4 v1, 0x0
sget-object v0, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
if-ne p0, v0, :cond_a
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
:goto_9
return-object v0
:cond_a
sget-object v0, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
if-ne p0, v0, :cond_15
const-wide/16 v0, 0x0
invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v0
goto :goto_9
:cond_15
sget-object v0, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;
if-ne p0, v0, :cond_1c
sget-object v0, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
goto :goto_9
:cond_1c
sget-object v0, Ljava/lang/Double;->TYPE:Ljava/lang/Class;
if-ne p0, v0, :cond_27
const-wide/16 v0, 0x0
invoke-static {v0, v1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v0
goto :goto_9
:cond_27
sget-object v0, Ljava/lang/Float;->TYPE:Ljava/lang/Class;
if-ne p0, v0, :cond_31
const/4 v0, 0x0
invoke-static {v0}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
move-result-object v0
goto :goto_9
:cond_31
sget-object v0, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;
if-ne p0, v0, :cond_3a
invoke-static {v1}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
move-result-object v0
goto :goto_9
:cond_3a
sget-object v0, Ljava/lang/Short;->TYPE:Ljava/lang/Class;
if-ne p0, v0, :cond_43
invoke-static {v1}, Ljava/lang/Short;->valueOf(S)Ljava/lang/Short;
move-result-object v0
goto :goto_9
:cond_43
sget-object v0, Ljava/lang/Character;->TYPE:Ljava/lang/Class;
if-ne p0, v0, :cond_4c
invoke-static {v1}, Ljava/lang/Character;->valueOf(C)Ljava/lang/Character;
move-result-object v0
goto :goto_9
:cond_4c
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v2, "Class "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {p0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string/jumbo v2, " is not a primitive type"
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}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public static findClass(Ljava/lang/String;)Ljava/lang/Class;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
")",
"Ljava/lang/Class",
"<*>;"
}
.end annotation
const/16 v0, 0x2e
invoke-virtual {p0, v0}, Ljava/lang/String;->indexOf(I)I
move-result v0
if-gez v0, :cond_74
const-string/jumbo v0, "int"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_14
sget-object v0, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
:goto_13
return-object v0
:cond_14
const-string/jumbo v0, "long"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_20
sget-object v0, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
goto :goto_13
:cond_20
const-string/jumbo v0, "float"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_2c
sget-object v0, Ljava/lang/Float;->TYPE:Ljava/lang/Class;
goto :goto_13
:cond_2c
const-string/jumbo v0, "double"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_38
sget-object v0, Ljava/lang/Double;->TYPE:Ljava/lang/Class;
goto :goto_13
:cond_38
const-string/jumbo v0, "boolean"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_44
sget-object v0, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;
goto :goto_13
:cond_44
const-string/jumbo v0, "byte"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_50
sget-object v0, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;
goto :goto_13
:cond_50
const-string/jumbo v0, "char"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_5c
sget-object v0, Ljava/lang/Character;->TYPE:Ljava/lang/Class;
goto :goto_13
:cond_5c
const-string/jumbo v0, "short"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_68
sget-object v0, Ljava/lang/Short;->TYPE:Ljava/lang/Class;
goto :goto_13
:cond_68
const-string/jumbo v0, "void"
invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_74
sget-object v0, Ljava/lang/Void;->TYPE:Ljava/lang/Class;
goto :goto_13
:cond_74
const/4 v0, 0x0
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Thread;->getContextClassLoader()Ljava/lang/ClassLoader;
move-result-object v1
if-eqz v1, :cond_8a
const/4 v0, 0x1
:try_start_80
invoke-static {p0, v0, v1}, Ljava/lang/Class;->forName(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
:try_end_83
.catch Ljava/lang/Exception; {:try_start_80 .. :try_end_83} :catch_85
move-result-object v0
goto :goto_13
:catch_85
move-exception v0
invoke-static {v0}, Lcom/fasterxml/jackson/databind/util/ClassUtil;->getRootCause(Ljava/lang/Throwable;)Ljava/lang/Throwable;
move-result-object v0
:cond_8a
:try_start_8a
invoke-static {p0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
:try_end_8d
.catch Ljava/lang/Exception; {:try_start_8a .. :try_end_8d} :catch_8f
move-result-object v0
goto :goto_13
:catch_8f
move-exception v1
if-nez v0, :cond_96
invoke-static {v1}, Lcom/fasterxml/jackson/databind/util/ClassUtil;->getRootCause(Ljava/lang/Throwable;)Ljava/lang/Throwable;
move-result-object v0
:cond_96
instance-of v1, v0, Ljava/lang/RuntimeException;
if-eqz v1, :cond_9d
check-cast v0, Ljava/lang/RuntimeException;
throw v0
:cond_9d
new-instance v1, Ljava/lang/ClassNotFoundException;
invoke-virtual {v0}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2, v0}, Ljava/lang/ClassNotFoundException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v1
.end method
.method public static findConstructor(Ljava/lang/Class;Z)Ljava/lang/reflect/Constructor;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class",
"<TT;>;Z)",
"Ljava/lang/reflect/Constructor",
"<TT;>;"
}
.end annotation
const/4 v0, 0x0
:try_start_1
new-array v0, v0, [Ljava/lang/Class;
invoke-virtual {p0, v0}, Ljava/lang/Class;->getDeclaredConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
move-result-object v0
if-eqz p1, :cond_d
invoke-static {v0}, Lcom/fasterxml/jackson/databind/util/ClassUtil;->checkAndFixAccess(Ljava/lang/reflect/Member;)V
:cond_c
:goto_c
return-object v0
:cond_d
invoke-virtual {v0}, Ljava/lang/reflect/Constructor;->getModifiers()I
move-result v1
invoke-static {v1}, Ljava/lang/reflect/Modifier;->isPublic(I)Z
move-result v1
if-nez v1, :cond_c
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v2, "Default constructor for "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {p0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string/jumbo v2, " is not accessible (non-public?): not allowed to try modify access via Reflection: can not instantiate type"
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}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_3c
.catch Ljava/lang/NoSuchMethodException; {:try_start_1 .. :try_end_3c} :catch_3c
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_3c} :catch_3f
:catch_3c
move-exception v0
:goto_3d
const/4 v0, 0x0
goto :goto_c
:catch_3f
move-exception v0
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v2, "Failed to find default constructor of class "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {p0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string/jumbo v2, ", problem: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object 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-static {v0, v1}, Lcom/fasterxml/jackson/databind/util/ClassUtil;->unwrapAndThrowAsIAE(Ljava/lang/Throwable;Ljava/lang/String;)V
goto :goto_3d
.end method
.method public static findEnumType(Ljava/lang/Class;)Ljava/lang/Class;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class",
"<*>;)",
"Ljava/lang/Class",
"<+",
"Ljava/lang/Enum",
"<*>;>;"
}
.end annotation
invoke-virtual {p0}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;
move-result-object v0
const-class v1, Ljava/lang/Enum;
if-eq v0, v1, :cond_c
invoke-virtual {p0}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;
move-result-object p0
:cond_c
return-object p0
.end method
.method public static findEnumType(Ljava/lang/Enum;)Ljava/lang/Class;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Enum",
"<*>;)",
"Ljava/lang/Class",
"<+",
"Ljava/lang/Enum",
"<*>;>;"
}
.end annotation
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;
move-result-object v1
const-class v2, Ljava/lang/Enum;
if-eq v1, v2, :cond_10
invoke-virtual {v0}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;
move-result-object v0
:cond_10
return-object v0
.end method
.method public static findEnumType(Ljava/util/EnumMap;)Ljava/lang/Class;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/EnumMap",
"<**>;)",
"Ljava/lang/Class",
"<+",
"Ljava/lang/Enum",
"<*>;>;"
}
.end annotation
invoke-virtual {p0}, Ljava/util/EnumMap;->isEmpty()Z
move-result v0
if-nez v0, :cond_19
invoke-virtual {p0}, Ljava/util/EnumMap;->keySet()Ljava/util/Set;
move-result-object v0
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v0
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Enum;
invoke-static {v0}, Lcom/fasterxml/jackson/databind/util/ClassUtil;->findEnumType(Ljava/lang/Enum;)Ljava/lang/Class;
move-result-object v0
:goto_18
return-object v0
:cond_19
sget-object v0, Lcom/fasterxml/jackson/databind/util/ClassUtil$EnumTypeLocator;->instance:Lcom/fasterxml/jackson/databind/util/ClassUtil$EnumTypeLocator;
invoke-virtual {v0, p0}, Lcom/fasterxml/jackson/databind/util/ClassUtil$EnumTypeLocator;->enumTypeFor(Ljava/util/EnumMap;)Ljava/lang/Class;
move-result-object v0
goto :goto_18
.end method
.method public static findEnumType(Ljava/util/EnumSet;)Ljava/lang/Class;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/EnumSet",
"<*>;)",
"Ljava/lang/Class",
"<+",
"Ljava/lang/Enum",
"<*>;>;"
}
.end annotation
invoke-virtual {p0}, Ljava/util/EnumSet;->isEmpty()Z
move-result v0
if-nez v0, :cond_15
invoke-virtual {p0}, Ljava/util/EnumSet;->iterator()Ljava/util/Iterator;
move-result-object v0
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Enum;
invoke-static {v0}, Lcom/fasterxml/jackson/databind/util/ClassUtil;->findEnumType(Ljava/lang/Enum;)Ljava/lang/Class;
move-result-object v0
:goto_14
return-object v0
:cond_15
sget-object v0, Lcom/fasterxml/jackson/databind/util/ClassUtil$EnumTypeLocator;->instance:Lcom/fasterxml/jackson/databind/util/ClassUtil$EnumTypeLocator;
invoke-virtual {v0, p0}, Lcom/fasterxml/jackson/databind/util/ClassUtil$EnumTypeLocator;->enumTypeFor(Ljava/util/EnumSet;)Ljava/lang/Class;
move-result-object v0
goto :goto_14
.end method
.method public static findSuperTypes(Ljava/lang/Class;Ljava/lang/Class;)Ljava/util/List;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class",
"<*>;",
"Ljava/lang/Class",
"<*>;)",
"Ljava/util/List",
"<",
"Ljava/lang/Class",
"<*>;>;"
}
.end annotation
new-instance v0, Ljava/util/ArrayList;
const/16 v1, 0x8
invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(I)V
invoke-static {p0, p1, v0}, Lcom/fasterxml/jackson/databind/util/ClassUtil;->findSuperTypes(Ljava/lang/Class;Ljava/lang/Class;Ljava/util/List;)Ljava/util/List;
move-result-object v0
return-object v0
.end method
.method public static findSuperTypes(Ljava/lang/Class;Ljava/lang/Class;Ljava/util/List;)Ljava/util/List;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class",
"<*>;",
"Ljava/lang/Class",
"<*>;",
"Ljava/util/List",
"<",
"Ljava/lang/Class",
"<*>;>;)",
"Ljava/util/List",
"<",
"Ljava/lang/Class",
"<*>;>;"
}
.end annotation
const/4 v0, 0x0
invoke-static {p0, p1, p2, v0}, Lcom/fasterxml/jackson/databind/util/ClassUtil;->_addSuperTypes(Ljava/lang/Class;Ljava/lang/Class;Ljava/util/Collection;Z)V
return-object p2
.end method
.method public static getOuterClass(Ljava/lang/Class;)Ljava/lang/Class;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class",
"<*>;)",
"Ljava/lang/Class",
"<*>;"
}
.end annotation
const/4 v0, 0x0
:try_start_1
invoke-virtual {p0}, Ljava/lang/Class;->getEnclosingMethod()Ljava/lang/reflect/Method;
move-result-object v1
if-eqz v1, :cond_8
:cond_7
:goto_7
return-object v0
:cond_8
invoke-virtual {p0}, Ljava/lang/Class;->getModifiers()I
move-result v1
invoke-static {v1}, Ljava/lang/reflect/Modifier;->isStatic(I)Z
move-result v1
if-nez v1, :cond_7
invoke-virtual {p0}, Ljava/lang/Class;->getEnclosingClass()Ljava/lang/Class;
:try_end_15
.catch Ljava/lang/SecurityException; {:try_start_1 .. :try_end_15} :catch_19
.catch Ljava/lang/NullPointerException; {:try_start_1 .. :try_end_15} :catch_17
move-result-object v0
goto :goto_7
:catch_17
move-exception v1
goto :goto_7
:catch_19
move-exception v1
goto :goto_7
.end method
.method public static getRootCause(Ljava/lang/Throwable;)Ljava/lang/Throwable;
.registers 2
:goto_0
invoke-virtual {p0}, Ljava/lang/Throwable;->getCause()Ljava/lang/Throwable;
move-result-object v0
if-eqz v0, :cond_b
invoke-virtual {p0}, Ljava/lang/Throwable;->getCause()Ljava/lang/Throwable;
move-result-object p0
goto :goto_0
:cond_b
return-object p0
.end method
.method public static isCollectionMapOrArray(Ljava/lang/Class;)Z
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class",
"<*>;)Z"
}
.end annotation
const/4 v0, 0x1
invoke-virtual {p0}, Ljava/lang/Class;->isArray()Z
move-result v1
if-eqz v1, :cond_8
:cond_7
:goto_7
return v0
:cond_8
const-class v1, Ljava/util/Collection;
invoke-virtual {v1, p0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v1
if-nez v1, :cond_7
const-class v1, Ljava/util/Map;
invoke-virtual {v1, p0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v1
if-nez v1, :cond_7
const/4 v0, 0x0
goto :goto_7
.end method
.method public static isConcrete(Ljava/lang/Class;)Z
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class",
"<*>;)Z"
}
.end annotation
invoke-virtual {p0}, Ljava/lang/Class;->getModifiers()I
move-result v0
and-int/lit16 v0, v0, 0x600
if-nez v0, :cond_a
const/4 v0, 0x1
:goto_9
return v0
:cond_a
const/4 v0, 0x0
goto :goto_9
.end method
.method public static isJacksonStdImpl(Ljava/lang/Class;)Z
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class",
"<*>;)Z"
}
.end annotation
const-class v0, Lcom/fasterxml/jackson/databind/annotation/JacksonStdImpl;
invoke-virtual {p0, v0}, Ljava/lang/Class;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v0
if-eqz v0, :cond_a
const/4 v0, 0x1
:goto_9
return v0
:cond_a
const/4 v0, 0x0
goto :goto_9
.end method
.method public static isJacksonStdImpl(Ljava/lang/Object;)Z
.registers 2
if-eqz p0, :cond_e
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
invoke-static {v0}, Lcom/fasterxml/jackson/databind/util/ClassUtil;->isJacksonStdImpl(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_e
const/4 v0, 0x1
:goto_d
return v0
:cond_e
const/4 v0, 0x0
goto :goto_d
.end method
.method public static isLocalType(Ljava/lang/Class;Z)Ljava/lang/String;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class",
"<*>;Z)",
"Ljava/lang/String;"
}
.end annotation
:try_start_0
invoke-virtual {p0}, Ljava/lang/Class;->getEnclosingMethod()Ljava/lang/reflect/Method;
move-result-object v0
if-eqz v0, :cond_a
const-string/jumbo v0, "local/anonymous"
:goto_9
return-object v0
:cond_a
if-nez p1, :cond_21
invoke-virtual {p0}, Ljava/lang/Class;->getEnclosingClass()Ljava/lang/Class;
move-result-object v0
if-eqz v0, :cond_21
invoke-virtual {p0}, Ljava/lang/Class;->getModifiers()I
move-result v0
invoke-static {v0}, Ljava/lang/reflect/Modifier;->isStatic(I)Z
move-result v0
if-nez v0, :cond_21
const-string/jumbo v0, "non-static member class"
:try_end_1f
.catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_1f} :catch_23
.catch Ljava/lang/NullPointerException; {:try_start_0 .. :try_end_1f} :catch_20
goto :goto_9
:catch_20
move-exception v0
:cond_21
:goto_21
const/4 v0, 0x0
goto :goto_9
:catch_23
move-exception v0
goto :goto_21
.end method
.method public static isProxyType(Ljava/lang/Class;)Z
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class",
"<*>;)Z"
}
.end annotation
const/4 v0, 0x1
invoke-static {p0}, Ljava/lang/reflect/Proxy;->isProxyClass(Ljava/lang/Class;)Z
move-result v1
if-eqz v1, :cond_8
:cond_7
:goto_7
return v0
:cond_8
invoke-virtual {p0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v1
const-string/jumbo v2, "net.sf.cglib.proxy."
invoke-virtual {v1, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_7
const-string/jumbo v2, "org.hibernate.proxy."
invoke-virtual {v1, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v1
if-nez v1, :cond_7
const/4 v0, 0x0
goto :goto_7
.end method
.method public static throwAsIAE(Ljava/lang/Throwable;)V
.registers 2
invoke-virtual {p0}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-static {p0, v0}, Lcom/fasterxml/jackson/databind/util/ClassUtil;->throwAsIAE(Ljava/lang/Throwable;Ljava/lang/String;)V
return-void
.end method
.method public static throwAsIAE(Ljava/lang/Throwable;Ljava/lang/String;)V
.registers 3
instance-of v0, p0, Ljava/lang/RuntimeException;
if-eqz v0, :cond_7
check-cast p0, Ljava/lang/RuntimeException;
throw p0
:cond_7
instance-of v0, p0, Ljava/lang/Error;
if-eqz v0, :cond_e
check-cast p0, Ljava/lang/Error;
throw p0
:cond_e
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-direct {v0, p1, p0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v0
.end method
.method public static unwrapAndThrowAsIAE(Ljava/lang/Throwable;)V
.registers 2
invoke-static {p0}, Lcom/fasterxml/jackson/databind/util/ClassUtil;->getRootCause(Ljava/lang/Throwable;)Ljava/lang/Throwable;
move-result-object v0
invoke-static {v0}, Lcom/fasterxml/jackson/databind/util/ClassUtil;->throwAsIAE(Ljava/lang/Throwable;)V
return-void
.end method
.method public static unwrapAndThrowAsIAE(Ljava/lang/Throwable;Ljava/lang/String;)V
.registers 3
invoke-static {p0}, Lcom/fasterxml/jackson/databind/util/ClassUtil;->getRootCause(Ljava/lang/Throwable;)Ljava/lang/Throwable;
move-result-object v0
invoke-static {v0, p1}, Lcom/fasterxml/jackson/databind/util/ClassUtil;->throwAsIAE(Ljava/lang/Throwable;Ljava/lang/String;)V
return-void
.end method