ClassUtil.smali
.class public Lcom/litesuits/orm/db/utils/ClassUtil;
.super Ljava/lang/Object;
.source "ClassUtil.java"
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 22
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static getDefaultPrimiticeValue(Ljava/lang/Class;)Ljava/lang/Object;
.registers 3
.param p0, "clazz" # Ljava/lang/Class;
.line 79
invoke-virtual {p0}, Ljava/lang/Class;->isPrimitive()Z
move-result v0
if-eqz v0, :cond_15
.line 80
sget-object v0, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;
const/4 v1, 0x0
if-ne p0, v0, :cond_10
invoke-static {v1}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v0
goto :goto_14
:cond_10
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
:goto_14
return-object v0
.line 82
:cond_15
const/4 v0, 0x0
return-object v0
.end method
.method public static isArray(Ljava/lang/Class;)Z
.registers 2
.param p0, "claxx" # Ljava/lang/Class;
.line 90
invoke-virtual {p0}, Ljava/lang/Class;->isArray()Z
move-result v0
return v0
.end method
.method public static isBaseDataType(Ljava/lang/Class;)Z
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)Z"
}
.end annotation
.line 30
.local p0, "clazz":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
invoke-virtual {p0}, Ljava/lang/Class;->isPrimitive()Z
move-result v0
if-nez v0, :cond_69
const-class v0, Ljava/lang/String;
invoke-virtual {p0, v0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_69
const-class v0, Ljava/lang/Boolean;
invoke-virtual {p0, v0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_69
const-class v0, Ljava/lang/Integer;
invoke-virtual {p0, v0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_69
const-class v0, Ljava/lang/Long;
invoke-virtual {p0, v0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_69
const-class v0, Ljava/lang/Float;
invoke-virtual {p0, v0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_69
const-class v0, Ljava/lang/Double;
invoke-virtual {p0, v0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_69
const-class v0, Ljava/lang/Byte;
invoke-virtual {p0, v0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_69
const-class v0, Ljava/lang/Character;
invoke-virtual {p0, v0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_69
const-class v0, Ljava/lang/Short;
invoke-virtual {p0, v0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_69
const-class v0, Ljava/util/Date;
invoke-virtual {p0, v0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_69
const-class v0, [B
invoke-virtual {p0, v0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_69
const-class v0, [Ljava/lang/Byte;
invoke-virtual {p0, v0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_67
goto :goto_69
:cond_67
const/4 v0, 0x0
goto :goto_6a
:cond_69
:goto_69
const/4 v0, 0x1
:goto_6a
return v0
.end method
.method public static isCollection(Ljava/lang/Class;)Z
.registers 2
.param p0, "claxx" # Ljava/lang/Class;
.line 86
const-class v0, Ljava/util/Collection;
invoke-virtual {v0, p0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v0
return v0
.end method
.method public static newArray(Ljava/lang/Class;I)Ljava/lang/Object;
.registers 3
.param p1, "size" # I
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;I)",
"Ljava/lang/Object;"
}
.end annotation
.line 74
.local p0, "claxx":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
invoke-static {p0, p1}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;I)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public static newCollection(Ljava/lang/Class;)Ljava/lang/Object;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)",
"Ljava/lang/Object;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/IllegalAccessException;,
Ljava/lang/InstantiationException;
}
.end annotation
.line 61
.local p0, "claxx":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
invoke-virtual {p0}, Ljava/lang/Class;->newInstance()Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public static newCollectionForField(Ljava/lang/reflect/Field;)Ljava/lang/Object;
.registers 3
.param p0, "field" # Ljava/lang/reflect/Field;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/IllegalAccessException;,
Ljava/lang/InstantiationException;
}
.end annotation
.line 65
const-class v0, Lcom/litesuits/orm/db/annotation/MapCollection;
invoke-virtual {p0, v0}, Ljava/lang/reflect/Field;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v0
check-cast v0, Lcom/litesuits/orm/db/annotation/MapCollection;
.line 66
.local v0, "coll":Lcom/litesuits/orm/db/annotation/MapCollection;
if-nez v0, :cond_13
.line 67
invoke-virtual {p0}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Class;->newInstance()Ljava/lang/Object;
move-result-object v1
return-object v1
.line 69
:cond_13
invoke-interface {v0}, Lcom/litesuits/orm/db/annotation/MapCollection;->value()Ljava/lang/Class;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Class;->newInstance()Ljava/lang/Object;
move-result-object v1
return-object v1
.end method
.method public static newInstance(Ljava/lang/Class;)Ljava/lang/Object;
.registers 11
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class<",
"TT;>;)TT;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/IllegalAccessException;,
Ljava/lang/reflect/InvocationTargetException;,
Ljava/lang/InstantiationException;
}
.end annotation
.line 42
.local p0, "claxx":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
invoke-virtual {p0}, Ljava/lang/Class;->getDeclaredConstructors()[Ljava/lang/reflect/Constructor;
move-result-object v0
.line 43
.local v0, "cons":[Ljava/lang/reflect/Constructor;, "[Ljava/lang/reflect/Constructor<*>;"
move-object v1, v0
.local v1, "arr$":[Ljava/lang/reflect/Constructor;
array-length v2, v1
.local v2, "len$":I
const/4 v3, 0x0
.local v3, "i$":I
if-ge v3, v2, :cond_38
aget-object v4, v1, v3
.line 44
.local v4, "c":Ljava/lang/reflect/Constructor;, "Ljava/lang/reflect/Constructor<*>;"
invoke-virtual {v4}, Ljava/lang/reflect/Constructor;->getParameterTypes()[Ljava/lang/Class;
move-result-object v5
.line 45
.local v5, "cls":[Ljava/lang/Class;
array-length v6, v5
const/4 v7, 0x1
if-nez v6, :cond_1e
.line 46
invoke-virtual {v4, v7}, Ljava/lang/reflect/Constructor;->setAccessible(Z)V
.line 47
const/4 v6, 0x0
new-array v6, v6, [Ljava/lang/Object;
invoke-virtual {v4, v6}, Ljava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v6
return-object v6
.line 49
:cond_1e
array-length v6, v5
new-array v6, v6, [Ljava/lang/Object;
.line 50
.local v6, "objs":[Ljava/lang/Object;
const/4 v8, 0x0
.local v8, "i":I
:goto_22
array-length v9, v5
if-ge v8, v9, :cond_30
.line 51
aget-object v9, v5, v8
invoke-static {v9}, Lcom/litesuits/orm/db/utils/ClassUtil;->getDefaultPrimiticeValue(Ljava/lang/Class;)Ljava/lang/Object;
move-result-object v9
aput-object v9, v6, v8
.line 50
add-int/lit8 v8, v8, 0x1
goto :goto_22
.line 53
.end local v8 # "i":I
:cond_30
invoke-virtual {v4, v7}, Ljava/lang/reflect/Constructor;->setAccessible(Z)V
.line 54
invoke-virtual {v4, v6}, Ljava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v7
return-object v7
.line 57
.end local v1 # "arr$":[Ljava/lang/reflect/Constructor;
.end local v2 # "len$":I
.end local v3 # "i$":I
.end local v4 # "c":Ljava/lang/reflect/Constructor;, "Ljava/lang/reflect/Constructor<*>;"
.end local v5 # "cls":[Ljava/lang/Class;
.end local v6 # "objs":[Ljava/lang/Object;
:cond_38
const/4 v1, 0x0
return-object v1
.end method