MappedQueryForFieldEq.smali
.class public Lcom/j256/ormlite/stmt/mapped/MappedQueryForFieldEq;
.super Lcom/j256/ormlite/stmt/mapped/BaseMappedQuery;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
"ID:",
"Ljava/lang/Object;",
">",
"Lcom/j256/ormlite/stmt/mapped/BaseMappedQuery<",
"TT;TID;>;"
}
.end annotation
# instance fields
.field private final label:Ljava/lang/String;
# direct methods
.method public constructor <init>(Lcom/j256/ormlite/table/TableInfo;Ljava/lang/String;[Lcom/j256/ormlite/field/FieldType;[Lcom/j256/ormlite/field/FieldType;Ljava/lang/String;)V
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/j256/ormlite/table/TableInfo<",
"TT;TID;>;",
"Ljava/lang/String;",
"[",
"Lcom/j256/ormlite/field/FieldType;",
"[",
"Lcom/j256/ormlite/field/FieldType;",
"Ljava/lang/String;",
")V"
}
.end annotation
.line 1
invoke-direct {p0, p1, p2, p3, p4}, Lcom/j256/ormlite/stmt/mapped/BaseMappedQuery;-><init>(Lcom/j256/ormlite/table/TableInfo;Ljava/lang/String;[Lcom/j256/ormlite/field/FieldType;[Lcom/j256/ormlite/field/FieldType;)V
.line 2
iput-object p5, p0, Lcom/j256/ormlite/stmt/mapped/MappedQueryForFieldEq;->label:Ljava/lang/String;
return-void
.end method
.method public static build(Lcom/j256/ormlite/db/DatabaseType;Lcom/j256/ormlite/table/TableInfo;Lcom/j256/ormlite/field/FieldType;)Lcom/j256/ormlite/stmt/mapped/MappedQueryForFieldEq;
.registers 9
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
"ID:",
"Ljava/lang/Object;",
">(",
"Lcom/j256/ormlite/db/DatabaseType;",
"Lcom/j256/ormlite/table/TableInfo<",
"TT;TID;>;",
"Lcom/j256/ormlite/field/FieldType;",
")",
"Lcom/j256/ormlite/stmt/mapped/MappedQueryForFieldEq<",
"TT;TID;>;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/sql/SQLException;
}
.end annotation
if-nez p2, :cond_25
.line 1
invoke-virtual {p1}, Lcom/j256/ormlite/table/TableInfo;->getIdField()Lcom/j256/ormlite/field/FieldType;
move-result-object p2
if-eqz p2, :cond_9
goto :goto_25
.line 2
:cond_9
new-instance p0, Ljava/sql/SQLException;
const-string p2, "Cannot query-for-id with "
.line 3
invoke-static {p2}, Landroid/support/v4/media/c;->c(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object p2
.line 4
invoke-virtual {p1}, Lcom/j256/ormlite/table/TableInfo;->getDataClass()Ljava/lang/Class;
move-result-object p1
invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string p1, " because it doesn\'t have an id field"
invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {p0, p1}, Ljava/sql/SQLException;-><init>(Ljava/lang/String;)V
throw p0
.line 5
:cond_25
:goto_25
invoke-static {p0, p1, p2}, Lcom/j256/ormlite/stmt/mapped/MappedQueryForFieldEq;->buildStatement(Lcom/j256/ormlite/db/DatabaseType;Lcom/j256/ormlite/table/TableInfo;Lcom/j256/ormlite/field/FieldType;)Ljava/lang/String;
move-result-object v2
.line 6
new-instance p0, Lcom/j256/ormlite/stmt/mapped/MappedQueryForFieldEq;
const/4 v0, 0x1
new-array v3, v0, [Lcom/j256/ormlite/field/FieldType;
const/4 v0, 0x0
aput-object p2, v3, v0
invoke-virtual {p1}, Lcom/j256/ormlite/table/TableInfo;->getFieldTypes()[Lcom/j256/ormlite/field/FieldType;
move-result-object v4
const-string v5, "query-for-id"
move-object v0, p0
move-object v1, p1
invoke-direct/range {v0 .. v5}, Lcom/j256/ormlite/stmt/mapped/MappedQueryForFieldEq;-><init>(Lcom/j256/ormlite/table/TableInfo;Ljava/lang/String;[Lcom/j256/ormlite/field/FieldType;[Lcom/j256/ormlite/field/FieldType;Ljava/lang/String;)V
return-object p0
.end method
.method public static buildStatement(Lcom/j256/ormlite/db/DatabaseType;Lcom/j256/ormlite/table/TableInfo;Lcom/j256/ormlite/field/FieldType;)Ljava/lang/String;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
"ID:",
"Ljava/lang/Object;",
">(",
"Lcom/j256/ormlite/db/DatabaseType;",
"Lcom/j256/ormlite/table/TableInfo<",
"TT;TID;>;",
"Lcom/j256/ormlite/field/FieldType;",
")",
"Ljava/lang/String;"
}
.end annotation
.line 1
new-instance v0, Ljava/lang/StringBuilder;
const/16 v1, 0x40
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(I)V
.line 2
invoke-virtual {p1}, Lcom/j256/ormlite/table/TableInfo;->getTableName()Ljava/lang/String;
move-result-object p1
const-string v1, "SELECT * FROM "
invoke-static {p0, v0, v1, p1}, Lcom/j256/ormlite/stmt/mapped/BaseMappedStatement;->appendTableName(Lcom/j256/ormlite/db/DatabaseType;Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)V
const/4 p1, 0x0
.line 3
invoke-static {p0, p2, v0, p1}, Lcom/j256/ormlite/stmt/mapped/BaseMappedStatement;->appendWhereFieldEq(Lcom/j256/ormlite/db/DatabaseType;Lcom/j256/ormlite/field/FieldType;Ljava/lang/StringBuilder;Ljava/util/List;)V
.line 4
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method private logArgs([Ljava/lang/Object;)V
.registers 5
.line 1
array-length v0, p1
if-lez v0, :cond_c
.line 2
sget-object v0, Lcom/j256/ormlite/stmt/mapped/BaseMappedStatement;->logger:Lcom/j256/ormlite/logger/Logger;
iget-object v1, p0, Lcom/j256/ormlite/stmt/mapped/MappedQueryForFieldEq;->label:Ljava/lang/String;
const-string v2, "{} arguments: {}"
invoke-virtual {v0, v2, v1, p1}, Lcom/j256/ormlite/logger/Logger;->trace(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
:cond_c
return-void
.end method
# virtual methods
.method public execute(Lcom/j256/ormlite/support/DatabaseConnection;Ljava/lang/Object;Lcom/j256/ormlite/dao/ObjectCache;)Ljava/lang/Object;
.registers 12
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/j256/ormlite/support/DatabaseConnection;",
"TID;",
"Lcom/j256/ormlite/dao/ObjectCache;",
")TT;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/sql/SQLException;
}
.end annotation
if-eqz p3, :cond_b
.line 1
iget-object v0, p0, Lcom/j256/ormlite/stmt/mapped/BaseMappedStatement;->clazz:Ljava/lang/Class;
invoke-interface {p3, v0, p2}, Lcom/j256/ormlite/dao/ObjectCache;->get(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
if-eqz v0, :cond_b
return-object v0
:cond_b
const/4 v0, 0x1
new-array v7, v0, [Ljava/lang/Object;
const/4 v1, 0x0
.line 2
invoke-virtual {p0, p2}, Lcom/j256/ormlite/stmt/mapped/BaseMappedStatement;->convertIdToFieldObject(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p2
aput-object p2, v7, v1
.line 3
iget-object v2, p0, Lcom/j256/ormlite/stmt/mapped/BaseMappedStatement;->statement:Ljava/lang/String;
iget-object v4, p0, Lcom/j256/ormlite/stmt/mapped/BaseMappedStatement;->argFieldTypes:[Lcom/j256/ormlite/field/FieldType;
move-object v1, p1
move-object v3, v7
move-object v5, p0
move-object v6, p3
invoke-interface/range {v1 .. v6}, Lcom/j256/ormlite/support/DatabaseConnection;->queryForOne(Ljava/lang/String;[Ljava/lang/Object;[Lcom/j256/ormlite/field/FieldType;Lcom/j256/ormlite/stmt/GenericRowMapper;Lcom/j256/ormlite/dao/ObjectCache;)Ljava/lang/Object;
move-result-object p1
if-nez p1, :cond_33
.line 4
sget-object p2, Lcom/j256/ormlite/stmt/mapped/BaseMappedStatement;->logger:Lcom/j256/ormlite/logger/Logger;
iget-object p3, p0, Lcom/j256/ormlite/stmt/mapped/MappedQueryForFieldEq;->label:Ljava/lang/String;
iget-object v1, p0, Lcom/j256/ormlite/stmt/mapped/BaseMappedStatement;->statement:Ljava/lang/String;
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
const-string v2, "{} using \'{}\' and {} args, got no results"
invoke-virtual {p2, v2, p3, v1, v0}, Lcom/j256/ormlite/logger/Logger;->debug(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
goto :goto_46
.line 5
:cond_33
sget-object p2, Lcom/j256/ormlite/support/DatabaseConnection;->MORE_THAN_ONE:Ljava/lang/Object;
if-eq p1, p2, :cond_4a
.line 6
sget-object p2, Lcom/j256/ormlite/stmt/mapped/BaseMappedStatement;->logger:Lcom/j256/ormlite/logger/Logger;
iget-object p3, p0, Lcom/j256/ormlite/stmt/mapped/MappedQueryForFieldEq;->label:Ljava/lang/String;
iget-object v1, p0, Lcom/j256/ormlite/stmt/mapped/BaseMappedStatement;->statement:Ljava/lang/String;
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
const-string v2, "{} using \'{}\' and {} args, got 1 result"
invoke-virtual {p2, v2, p3, v1, v0}, Lcom/j256/ormlite/logger/Logger;->debug(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
.line 7
:goto_46
invoke-direct {p0, v7}, Lcom/j256/ormlite/stmt/mapped/MappedQueryForFieldEq;->logArgs([Ljava/lang/Object;)V
return-object p1
.line 8
:cond_4a
sget-object p1, Lcom/j256/ormlite/stmt/mapped/BaseMappedStatement;->logger:Lcom/j256/ormlite/logger/Logger;
iget-object p2, p0, Lcom/j256/ormlite/stmt/mapped/MappedQueryForFieldEq;->label:Ljava/lang/String;
iget-object p3, p0, Lcom/j256/ormlite/stmt/mapped/BaseMappedStatement;->statement:Ljava/lang/String;
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
const-string v1, "{} using \'{}\' and {} args, got >1 results"
invoke-virtual {p1, v1, p2, p3, v0}, Lcom/j256/ormlite/logger/Logger;->error(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
.line 9
invoke-direct {p0, v7}, Lcom/j256/ormlite/stmt/mapped/MappedQueryForFieldEq;->logArgs([Ljava/lang/Object;)V
.line 10
new-instance p1, Ljava/sql/SQLException;
new-instance p2, Ljava/lang/StringBuilder;
invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
iget-object p3, p0, Lcom/j256/ormlite/stmt/mapped/MappedQueryForFieldEq;->label:Ljava/lang/String;
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p3, " got more than 1 result: "
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object p3, p0, Lcom/j256/ormlite/stmt/mapped/BaseMappedStatement;->statement:Ljava/lang/String;
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Ljava/sql/SQLException;-><init>(Ljava/lang/String;)V
throw p1
.end method