DateTimeType.smali
.class public Lcom/j256/ormlite/field/types/DateTimeType;
.super Lcom/j256/ormlite/field/types/BaseDataType;
.source "SourceFile"
# static fields
.field private static final associatedClassNames:[Ljava/lang/String;
.field private static dateTimeClass:Ljava/lang/Class;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.end field
.field private static getMillisMethod:Ljava/lang/reflect/Method;
.field private static millisConstructor:Ljava/lang/reflect/Constructor;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/reflect/Constructor<",
"*>;"
}
.end annotation
.end field
.field private static final singleTon:Lcom/j256/ormlite/field/types/DateTimeType;
# direct methods
.method public static constructor <clinit>()V
.registers 1
.line 1
new-instance v0, Lcom/j256/ormlite/field/types/DateTimeType;
invoke-direct {v0}, Lcom/j256/ormlite/field/types/DateTimeType;-><init>()V
sput-object v0, Lcom/j256/ormlite/field/types/DateTimeType;->singleTon:Lcom/j256/ormlite/field/types/DateTimeType;
const/4 v0, 0x0
.line 2
sput-object v0, Lcom/j256/ormlite/field/types/DateTimeType;->dateTimeClass:Ljava/lang/Class;
.line 3
sput-object v0, Lcom/j256/ormlite/field/types/DateTimeType;->getMillisMethod:Ljava/lang/reflect/Method;
.line 4
sput-object v0, Lcom/j256/ormlite/field/types/DateTimeType;->millisConstructor:Ljava/lang/reflect/Constructor;
const-string v0, "org.joda.time.DateTime"
.line 5
filled-new-array {v0}, [Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/j256/ormlite/field/types/DateTimeType;->associatedClassNames:[Ljava/lang/String;
return-void
.end method
.method private constructor <init>()V
.registers 2
.line 1
sget-object v0, Lcom/j256/ormlite/field/SqlType;->LONG:Lcom/j256/ormlite/field/SqlType;
invoke-direct {p0, v0}, Lcom/j256/ormlite/field/types/BaseDataType;-><init>(Lcom/j256/ormlite/field/SqlType;)V
return-void
.end method
.method public constructor <init>(Lcom/j256/ormlite/field/SqlType;[Ljava/lang/Class;)V
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/j256/ormlite/field/SqlType;",
"[",
"Ljava/lang/Class<",
"*>;)V"
}
.end annotation
.line 2
invoke-direct {p0, p1, p2}, Lcom/j256/ormlite/field/types/BaseDataType;-><init>(Lcom/j256/ormlite/field/SqlType;[Ljava/lang/Class;)V
return-void
.end method
.method private createInstance(Ljava/lang/Long;)Ljava/lang/Object;
.registers 7
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/sql/SQLException;
}
.end annotation
.line 1
:try_start_0
sget-object v0, Lcom/j256/ormlite/field/types/DateTimeType;->millisConstructor:Ljava/lang/reflect/Constructor;
const/4 v1, 0x0
const/4 v2, 0x1
if-nez v0, :cond_16
.line 2
invoke-direct {p0}, Lcom/j256/ormlite/field/types/DateTimeType;->getDateTimeClass()Ljava/lang/Class;
move-result-object v0
new-array v3, v2, [Ljava/lang/Class;
.line 3
sget-object v4, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v4, v3, v1
invoke-virtual {v0, v3}, Ljava/lang/Class;->getConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
move-result-object v0
sput-object v0, Lcom/j256/ormlite/field/types/DateTimeType;->millisConstructor:Ljava/lang/reflect/Constructor;
.line 4
:cond_16
sget-object v0, Lcom/j256/ormlite/field/types/DateTimeType;->millisConstructor:Ljava/lang/reflect/Constructor;
new-array v2, v2, [Ljava/lang/Object;
aput-object p1, v2, v1
invoke-virtual {v0, v2}, Ljava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
:try_end_20
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_20} :catch_21
return-object p1
:catch_21
move-exception p1
const-string v0, "Could not use reflection to construct a Joda DateTime"
.line 5
invoke-static {v0, p1}, Lcom/j256/ormlite/misc/SqlExceptionUtil;->create(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/sql/SQLException;
move-result-object p1
throw p1
.end method
.method private extractMillis(Ljava/lang/Object;)Ljava/lang/Long;
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/sql/SQLException;
}
.end annotation
.line 1
:try_start_0
sget-object v0, Lcom/j256/ormlite/field/types/DateTimeType;->getMillisMethod:Ljava/lang/reflect/Method;
const/4 v1, 0x0
if-nez v0, :cond_13
.line 2
invoke-direct {p0}, Lcom/j256/ormlite/field/types/DateTimeType;->getDateTimeClass()Ljava/lang/Class;
move-result-object v0
const-string v2, "getMillis"
new-array v3, v1, [Ljava/lang/Class;
.line 3
invoke-virtual {v0, v2, v3}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v0
sput-object v0, Lcom/j256/ormlite/field/types/DateTimeType;->getMillisMethod:Ljava/lang/reflect/Method;
:cond_13
if-nez p1, :cond_17
const/4 p1, 0x0
return-object p1
.line 4
:cond_17
sget-object v0, Lcom/j256/ormlite/field/types/DateTimeType;->getMillisMethod:Ljava/lang/reflect/Method;
new-array v1, v1, [Ljava/lang/Object;
invoke-virtual {v0, p1, v1}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Long;
:try_end_21
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_21} :catch_22
return-object v0
:catch_22
move-exception v0
.line 5
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Could not use reflection to get millis from Joda DateTime: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-static {p1, v0}, Lcom/j256/ormlite/misc/SqlExceptionUtil;->create(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/sql/SQLException;
move-result-object p1
throw p1
.end method
.method private getDateTimeClass()Ljava/lang/Class;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/ClassNotFoundException;
}
.end annotation
.line 1
sget-object v0, Lcom/j256/ormlite/field/types/DateTimeType;->dateTimeClass:Ljava/lang/Class;
if-nez v0, :cond_c
const-string v0, "org.joda.time.DateTime"
.line 2
invoke-static {v0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v0
sput-object v0, Lcom/j256/ormlite/field/types/DateTimeType;->dateTimeClass:Ljava/lang/Class;
.line 3
:cond_c
sget-object v0, Lcom/j256/ormlite/field/types/DateTimeType;->dateTimeClass:Ljava/lang/Class;
return-object v0
.end method
.method public static getSingleton()Lcom/j256/ormlite/field/types/DateTimeType;
.registers 1
sget-object v0, Lcom/j256/ormlite/field/types/DateTimeType;->singleTon:Lcom/j256/ormlite/field/types/DateTimeType;
return-object v0
.end method
# virtual methods
.method public getAssociatedClassNames()[Ljava/lang/String;
.registers 2
sget-object v0, Lcom/j256/ormlite/field/types/DateTimeType;->associatedClassNames:[Ljava/lang/String;
return-object v0
.end method
.method public getPrimaryClass()Ljava/lang/Class;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
:try_start_0
invoke-direct {p0}, Lcom/j256/ormlite/field/types/DateTimeType;->getDateTimeClass()Ljava/lang/Class;
move-result-object v0
:try_end_4
.catch Ljava/lang/ClassNotFoundException; {:try_start_0 .. :try_end_4} :catch_5
return-object v0
:catch_5
const/4 v0, 0x0
return-object v0
.end method
.method public isAppropriateId()Z
.registers 2
const/4 v0, 0x0
return v0
.end method
.method public isEscapedValue()Z
.registers 2
const/4 v0, 0x0
return v0
.end method
.method public isValidForVersion()Z
.registers 2
const/4 v0, 0x1
return v0
.end method
.method public javaToSqlArg(Lcom/j256/ormlite/field/FieldType;Ljava/lang/Object;)Ljava/lang/Object;
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/sql/SQLException;
}
.end annotation
invoke-direct {p0, p2}, Lcom/j256/ormlite/field/types/DateTimeType;->extractMillis(Ljava/lang/Object;)Ljava/lang/Long;
move-result-object p1
return-object p1
.end method
.method public moveToNextValue(Ljava/lang/Object;)Ljava/lang/Object;
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/sql/SQLException;
}
.end annotation
.line 1
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v0
if-nez p1, :cond_f
.line 2
invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object p1
invoke-direct {p0, p1}, Lcom/j256/ormlite/field/types/DateTimeType;->createInstance(Ljava/lang/Long;)Ljava/lang/Object;
move-result-object p1
return-object p1
.line 3
:cond_f
invoke-direct {p0, p1}, Lcom/j256/ormlite/field/types/DateTimeType;->extractMillis(Ljava/lang/Object;)Ljava/lang/Long;
move-result-object p1
.line 4
invoke-virtual {p1}, Ljava/lang/Long;->longValue()J
move-result-wide v2
cmp-long p1, v0, v2
if-nez p1, :cond_27
const-wide/16 v2, 0x1
add-long/2addr v0, v2
.line 5
invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object p1
invoke-direct {p0, p1}, Lcom/j256/ormlite/field/types/DateTimeType;->createInstance(Ljava/lang/Long;)Ljava/lang/Object;
move-result-object p1
return-object p1
.line 6
:cond_27
invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object p1
invoke-direct {p0, p1}, Lcom/j256/ormlite/field/types/DateTimeType;->createInstance(Ljava/lang/Long;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public parseDefaultString(Lcom/j256/ormlite/field/FieldType;Ljava/lang/String;)Ljava/lang/Object;
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/sql/SQLException;
}
.end annotation
.line 1
:try_start_0
invoke-static {p2}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v0
invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object p1
:try_end_8
.catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_8} :catch_9
return-object p1
:catch_9
move-exception v0
.line 2
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Problems with field "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string p1, " parsing default DateTime value: "
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-static {p1, v0}, Lcom/j256/ormlite/misc/SqlExceptionUtil;->create(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/sql/SQLException;
move-result-object p1
throw p1
.end method
.method public resultToSqlArg(Lcom/j256/ormlite/field/FieldType;Lcom/j256/ormlite/support/DatabaseResults;I)Ljava/lang/Object;
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/sql/SQLException;
}
.end annotation
invoke-interface {p2, p3}, Lcom/j256/ormlite/support/DatabaseResults;->getLong(I)J
move-result-wide p1
invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object p1
return-object p1
.end method
.method public sqlArgToJava(Lcom/j256/ormlite/field/FieldType;Ljava/lang/Object;I)Ljava/lang/Object;
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/sql/SQLException;
}
.end annotation
check-cast p2, Ljava/lang/Long;
invoke-direct {p0, p2}, Lcom/j256/ormlite/field/types/DateTimeType;->createInstance(Ljava/lang/Long;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method