CascadeSQLiteImpl.smali

.class public final Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;
.super Lcom/litesuits/orm/LiteOrm;
.source "CascadeSQLiteImpl.java"


# static fields
.field public static final TAG:Ljava/lang/String;

.field public static final TYPE_DELETE:I = 0x3

.field public static final TYPE_INSERT:I = 0x1

.field public static final TYPE_UPDATE:I = 0x2


# direct methods
.method static constructor <clinit>()V
    .registers 1

    .line 28
    const-class v0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;

    invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;

    move-result-object v0

    sput-object v0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->TAG:Ljava/lang/String;

    return-void
.end method

.method protected constructor <init>(Lcom/litesuits/orm/LiteOrm;)V
    .registers 2
    .param p1, "dataBase"    # Lcom/litesuits/orm/LiteOrm;

    .line 31
    invoke-direct {p0, p1}, Lcom/litesuits/orm/LiteOrm;-><init>(Lcom/litesuits/orm/LiteOrm;)V

    .line 32
    return-void
.end method

.method private constructor <init>(Lcom/litesuits/orm/db/DataBaseConfig;)V
    .registers 2
    .param p1, "config"    # Lcom/litesuits/orm/db/DataBaseConfig;

    .line 35
    invoke-direct {p0, p1}, Lcom/litesuits/orm/LiteOrm;-><init>(Lcom/litesuits/orm/db/DataBaseConfig;)V

    .line 36
    return-void
.end method

.method static synthetic access$000(Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;)J
    .registers 6
    .param p0, "x0"    # Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;
    .param p1, "x1"    # Ljava/lang/Object;
    .param p2, "x2"    # Landroid/database/sqlite/SQLiteDatabase;
    .param p3, "x3"    # Ljava/util/HashMap;
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation

    .line 26
    invoke-direct {p0, p1, p2, p3}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->checkTableAndSaveRecursive(Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;)J

    move-result-wide v0

    return-wide v0
.end method

.method static synthetic access$100(Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;)Lcom/litesuits/orm/db/TableManager;
    .registers 2
    .param p0, "x0"    # Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;

    .line 26
    iget-object v0, p0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->mTableManager:Lcom/litesuits/orm/db/TableManager;

    return-object v0
.end method

.method static synthetic access$200(Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;Lcom/litesuits/orm/db/assit/SQLStatement;Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;)J
    .registers 7
    .param p0, "x0"    # Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;
    .param p1, "x1"    # Lcom/litesuits/orm/db/assit/SQLStatement;
    .param p2, "x2"    # Ljava/lang/Object;
    .param p3, "x3"    # Landroid/database/sqlite/SQLiteDatabase;
    .param p4, "x4"    # Ljava/util/HashMap;
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation

    .line 26
    invoke-direct {p0, p1, p2, p3, p4}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->insertRecursive(Lcom/litesuits/orm/db/assit/SQLStatement;Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;)J

    move-result-wide v0

    return-wide v0
.end method

.method static synthetic access$300(Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;)Lcom/litesuits/orm/db/TableManager;
    .registers 2
    .param p0, "x0"    # Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;

    .line 26
    iget-object v0, p0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->mTableManager:Lcom/litesuits/orm/db/TableManager;

    return-object v0
.end method

.method static synthetic access$400(Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;Lcom/litesuits/orm/db/assit/SQLStatement;Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;)I
    .registers 6
    .param p0, "x0"    # Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;
    .param p1, "x1"    # Lcom/litesuits/orm/db/assit/SQLStatement;
    .param p2, "x2"    # Ljava/lang/Object;
    .param p3, "x3"    # Landroid/database/sqlite/SQLiteDatabase;
    .param p4, "x4"    # Ljava/util/HashMap;
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation

    .line 26
    invoke-direct {p0, p1, p2, p3, p4}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->updateRecursive(Lcom/litesuits/orm/db/assit/SQLStatement;Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;)I

    move-result v0

    return v0
.end method

.method static synthetic access$500(Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;)I
    .registers 5
    .param p0, "x0"    # Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;
    .param p1, "x1"    # Ljava/lang/Object;
    .param p2, "x2"    # Landroid/database/sqlite/SQLiteDatabase;
    .param p3, "x3"    # Ljava/util/HashMap;
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation

    .line 26
    invoke-direct {p0, p1, p2, p3}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->checkTableAndDeleteRecursive(Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;)I

    move-result v0

    return v0
.end method

.method static synthetic access$600(Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;)Lcom/litesuits/orm/db/TableManager;
    .registers 2
    .param p0, "x0"    # Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;

    .line 26
    iget-object v0, p0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->mTableManager:Lcom/litesuits/orm/db/TableManager;

    return-object v0
.end method

.method static synthetic access$700(Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;)Lcom/litesuits/orm/db/TableManager;
    .registers 2
    .param p0, "x0"    # Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;

    .line 26
    iget-object v0, p0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->mTableManager:Lcom/litesuits/orm/db/TableManager;

    return-object v0
.end method

.method static synthetic access$800(Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;)Lcom/litesuits/orm/db/TableManager;
    .registers 2
    .param p0, "x0"    # Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;

    .line 26
    iget-object v0, p0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->mTableManager:Lcom/litesuits/orm/db/TableManager;

    return-object v0
.end method

.method static synthetic access$900(Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;Lcom/litesuits/orm/db/assit/SQLStatement;Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;)I
    .registers 6
    .param p0, "x0"    # Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;
    .param p1, "x1"    # Lcom/litesuits/orm/db/assit/SQLStatement;
    .param p2, "x2"    # Ljava/lang/Object;
    .param p3, "x3"    # Landroid/database/sqlite/SQLiteDatabase;
    .param p4, "x4"    # Ljava/util/HashMap;
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation

    .line 26
    invoke-direct {p0, p1, p2, p3, p4}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->deleteRecursive(Lcom/litesuits/orm/db/assit/SQLStatement;Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;)I

    move-result v0

    return v0
.end method

.method private checkTableAndDeleteRecursive(Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;)I
    .registers 7
    .param p1, "obj1"    # Ljava/lang/Object;
    .param p2, "db"    # Landroid/database/sqlite/SQLiteDatabase;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/Object;",
            "Landroid/database/sqlite/SQLiteDatabase;",
            "Ljava/util/HashMap<",
            "Ljava/lang/String;",
            "Ljava/lang/Integer;",
            ">;)I"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation

    .line 830
    .local p3, "handleMap":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Integer;>;"
    invoke-static {p1}, Lcom/litesuits/orm/db/TableManager;->getTable(Ljava/lang/Object;)Lcom/litesuits/orm/db/model/EntityTable;

    move-result-object v0

    .line 831
    .local v0, "table":Lcom/litesuits/orm/db/model/EntityTable;
    iget-object v1, p0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->mTableManager:Lcom/litesuits/orm/db/TableManager;

    iget-object v2, v0, Lcom/litesuits/orm/db/model/EntityTable;->name:Ljava/lang/String;

    invoke-virtual {v1, v2}, Lcom/litesuits/orm/db/TableManager;->isSQLTableCreated(Ljava/lang/String;)Z

    move-result v1

    if-eqz v1, :cond_17

    .line 832
    invoke-static {p1}, Lcom/litesuits/orm/db/assit/SQLBuilder;->buildDeleteSql(Ljava/lang/Object;)Lcom/litesuits/orm/db/assit/SQLStatement;

    move-result-object v1

    invoke-direct {p0, v1, p1, p2, p3}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->deleteRecursive(Lcom/litesuits/orm/db/assit/SQLStatement;Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;)I

    move-result v1

    return v1

    .line 834
    :cond_17
    const/4 v1, -0x1

    return v1
.end method

.method private checkTableAndQuery(Ljava/lang/Class;Lcom/litesuits/orm/db/assit/QueryBuilder;)Ljava/util/ArrayList;
    .registers 16
    .param p2, "builder"    # Lcom/litesuits/orm/db/assit/QueryBuilder;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/lang/Class<",
            "TT;>;",
            "Lcom/litesuits/orm/db/assit/QueryBuilder;",
            ")",
            "Ljava/util/ArrayList<",
            "TT;>;"
        }
    .end annotation

    .line 340
    .local p1, "claxx":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->acquireReference()V

    .line 341
    new-instance v0, Ljava/util/ArrayList;

    invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V

    .line 343
    .local v0, "list":Ljava/util/ArrayList;, "Ljava/util/ArrayList<TT;>;"
    const/4 v1, 0x0

    :try_start_9
    invoke-static {p1, v1}, Lcom/litesuits/orm/db/TableManager;->getTable(Ljava/lang/Class;Z)Lcom/litesuits/orm/db/model/EntityTable;

    move-result-object v1

    move-object v7, v1

    .line 344
    .local v7, "table":Lcom/litesuits/orm/db/model/EntityTable;
    iget-object v1, p0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->mTableManager:Lcom/litesuits/orm/db/TableManager;

    iget-object v2, v7, Lcom/litesuits/orm/db/model/EntityTable;->name:Ljava/lang/String;

    invoke-virtual {v1, v2}, Lcom/litesuits/orm/db/TableManager;->isSQLTableCreated(Ljava/lang/String;)Z

    move-result v1

    if-eqz v1, :cond_55

    .line 345
    new-instance v1, Ljava/util/HashMap;

    invoke-direct {v1}, Ljava/util/HashMap;-><init>()V

    move-object v8, v1

    .line 346
    .local v8, "entityMap":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Object;>;"
    new-instance v1, Ljava/util/HashMap;

    invoke-direct {v1}, Ljava/util/HashMap;-><init>()V

    move-object v9, v1

    .line 347
    .local v9, "queryMap":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Integer;>;"
    iget-object v1, p0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->mHelper:Lcom/litesuits/orm/db/assit/SQLiteHelper;

    invoke-virtual {v1}, Lcom/litesuits/orm/db/assit/SQLiteHelper;->getReadableDatabase()Landroid/database/sqlite/SQLiteDatabase;

    move-result-object v1

    move-object v10, v1

    .line 348
    .local v10, "db":Landroid/database/sqlite/SQLiteDatabase;
    invoke-virtual {p2}, Lcom/litesuits/orm/db/assit/QueryBuilder;->createStatement()Lcom/litesuits/orm/db/assit/SQLStatement;

    move-result-object v11

    new-instance v12, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl$5;

    move-object v1, v12

    move-object v2, p0

    move-object v3, p1

    move-object v4, v7

    move-object v5, v0

    move-object v6, v8

    invoke-direct/range {v1 .. v6}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl$5;-><init>(Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;Ljava/lang/Class;Lcom/litesuits/orm/db/model/EntityTable;Ljava/util/ArrayList;Ljava/util/HashMap;)V

    invoke-static {v10, v11, v12}, Lcom/litesuits/orm/db/assit/Querier;->doQuery(Landroid/database/sqlite/SQLiteDatabase;Lcom/litesuits/orm/db/assit/SQLStatement;Lcom/litesuits/orm/db/assit/Querier$CursorParser;)Ljava/lang/Object;

    .line 357
    invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;

    move-result-object v1

    .local v1, "i$":Ljava/util/Iterator;
    :goto_41
    invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z

    move-result v2

    if-eqz v2, :cond_55

    invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v2

    .line 358
    .local v2, "t":Ljava/lang/Object;, "TT;"
    invoke-direct {p0, v2, v10, v9, v8}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->queryForMappingRecursive(Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;Ljava/util/HashMap;)V
    :try_end_4e
    .catch Ljava/lang/Exception; {:try_start_9 .. :try_end_4e} :catch_51
    .catchall {:try_start_9 .. :try_end_4e} :catchall_4f

    .line 359
    .end local v2    # "t":Ljava/lang/Object;, "TT;"
    goto :goto_41

    .line 364
    .end local v1    # "i$":Ljava/util/Iterator;
    .end local v7    # "table":Lcom/litesuits/orm/db/model/EntityTable;
    .end local v8    # "entityMap":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Object;>;"
    .end local v9    # "queryMap":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Integer;>;"
    .end local v10    # "db":Landroid/database/sqlite/SQLiteDatabase;
    :catchall_4f
    move-exception v1

    goto :goto_5a

    .line 361
    :catch_51
    move-exception v1

    .line 362
    .local v1, "e":Ljava/lang/Exception;
    :try_start_52
    invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
    :try_end_55
    .catchall {:try_start_52 .. :try_end_55} :catchall_4f

    .line 364
    .end local v1    # "e":Ljava/lang/Exception;
    :cond_55
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    .line 365
    nop

    .line 366
    return-object v0

    .line 364
    :goto_5a
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    goto :goto_5f

    :goto_5e
    throw v1

    :goto_5f
    goto :goto_5e
.end method

.method private checkTableAndSaveRecursive(Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;)J
    .registers 6
    .param p1, "obj1"    # Ljava/lang/Object;
    .param p2, "db"    # Landroid/database/sqlite/SQLiteDatabase;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/Object;",
            "Landroid/database/sqlite/SQLiteDatabase;",
            "Ljava/util/HashMap<",
            "Ljava/lang/String;",
            "Ljava/lang/Integer;",
            ">;)J"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation

    .line 816
    .local p3, "handleMap":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Integer;>;"
    iget-object v0, p0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->mTableManager:Lcom/litesuits/orm/db/TableManager;

    invoke-virtual {v0, p2, p1}, Lcom/litesuits/orm/db/TableManager;->checkOrCreateTable(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/Object;)Lcom/litesuits/orm/db/model/EntityTable;

    .line 817
    invoke-static {p1}, Lcom/litesuits/orm/db/assit/SQLBuilder;->buildReplaceSql(Ljava/lang/Object;)Lcom/litesuits/orm/db/assit/SQLStatement;

    move-result-object v0

    invoke-direct {p0, v0, p1, p2, p3}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->insertRecursive(Lcom/litesuits/orm/db/assit/SQLStatement;Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;)J

    move-result-wide v0

    return-wide v0
.end method

.method private deleteCollectionIfTableHasCreated(Ljava/util/Collection;)I
    .registers 8
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/util/Collection<",
            "TT;>;)I"
        }
    .end annotation

    .line 632
    .local p1, "collection":Ljava/util/Collection;, "Ljava/util/Collection<TT;>;"
    invoke-static {p1}, Lcom/litesuits/orm/db/assit/Checker;->isEmpty(Ljava/util/Collection;)Z

    move-result v0

    if-nez v0, :cond_34

    .line 633
    invoke-interface {p1}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;

    move-result-object v0

    .line 634
    .local v0, "iterator":Ljava/util/Iterator;, "Ljava/util/Iterator<TT;>;"
    invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    .line 635
    .local v1, "entity":Ljava/lang/Object;
    invoke-static {v1}, Lcom/litesuits/orm/db/TableManager;->getTable(Ljava/lang/Object;)Lcom/litesuits/orm/db/model/EntityTable;

    move-result-object v2

    .line 636
    .local v2, "table":Lcom/litesuits/orm/db/model/EntityTable;
    iget-object v3, p0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->mTableManager:Lcom/litesuits/orm/db/TableManager;

    iget-object v4, v2, Lcom/litesuits/orm/db/model/EntityTable;->name:Ljava/lang/String;

    invoke-virtual {v3, v4}, Lcom/litesuits/orm/db/TableManager;->isSQLTableCreated(Ljava/lang/String;)Z

    move-result v3

    if-eqz v3, :cond_34

    .line 637
    iget-object v3, p0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->mHelper:Lcom/litesuits/orm/db/assit/SQLiteHelper;

    invoke-virtual {v3}, Lcom/litesuits/orm/db/assit/SQLiteHelper;->getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;

    move-result-object v3

    .line 638
    .local v3, "db":Landroid/database/sqlite/SQLiteDatabase;
    new-instance v4, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl$12;

    invoke-direct {v4, p0, v1, v0, p1}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl$12;-><init>(Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;Ljava/lang/Object;Ljava/util/Iterator;Ljava/util/Collection;)V

    invoke-static {v3, v4}, Lcom/litesuits/orm/db/assit/Transaction;->execute(Landroid/database/sqlite/SQLiteDatabase;Lcom/litesuits/orm/db/assit/Transaction$Worker;)Ljava/lang/Object;

    move-result-object v4

    check-cast v4, Ljava/lang/Integer;

    .line 657
    .local v4, "rowID":Ljava/lang/Integer;
    if-eqz v4, :cond_34

    .line 658
    invoke-virtual {v4}, Ljava/lang/Integer;->intValue()I

    move-result v5

    return v5

    .line 662
    .end local v0    # "iterator":Ljava/util/Iterator;, "Ljava/util/Iterator<TT;>;"
    .end local v1    # "entity":Ljava/lang/Object;
    .end local v2    # "table":Lcom/litesuits/orm/db/model/EntityTable;
    .end local v3    # "db":Landroid/database/sqlite/SQLiteDatabase;
    .end local v4    # "rowID":Ljava/lang/Integer;
    :cond_34
    const/4 v0, -0x1

    return v0
.end method

.method private deleteRecursive(Lcom/litesuits/orm/db/assit/SQLStatement;Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;)I
    .registers 14
    .param p1, "stmt"    # Lcom/litesuits/orm/db/assit/SQLStatement;
    .param p2, "obj1"    # Ljava/lang/Object;
    .param p3, "db"    # Landroid/database/sqlite/SQLiteDatabase;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/litesuits/orm/db/assit/SQLStatement;",
            "Ljava/lang/Object;",
            "Landroid/database/sqlite/SQLiteDatabase;",
            "Ljava/util/HashMap<",
            "Ljava/lang/String;",
            "Ljava/lang/Integer;",
            ">;)I"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation

    .line 762
    .local p4, "handleMap":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Integer;>;"
    invoke-static {p2}, Lcom/litesuits/orm/db/TableManager;->getTable(Ljava/lang/Object;)Lcom/litesuits/orm/db/model/EntityTable;

    move-result-object v0

    .line 763
    .local v0, "table1":Lcom/litesuits/orm/db/model/EntityTable;
    iget-object v1, v0, Lcom/litesuits/orm/db/model/EntityTable;->key:Lcom/litesuits/orm/db/model/Primarykey;

    iget-object v1, v1, Lcom/litesuits/orm/db/model/Primarykey;->field:Ljava/lang/reflect/Field;

    invoke-static {v1, p2}, Lcom/litesuits/orm/db/utils/FieldUtil;->get(Ljava/lang/reflect/Field;Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v1

    .line 766
    .local v1, "key1":Ljava/lang/Object;
    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    iget-object v3, v0, Lcom/litesuits/orm/db/model/EntityTable;->name:Ljava/lang/String;

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {p4, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v2

    if-eqz v2, :cond_25

    .line 767
    const/4 v2, -0x1

    return v2

    .line 770
    :cond_25
    invoke-virtual {p1, p3}, Lcom/litesuits/orm/db/assit/SQLStatement;->execDelete(Landroid/database/sqlite/SQLiteDatabase;)I

    move-result v8

    .line 771
    .local v8, "rowID":I
    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    iget-object v3, v0, Lcom/litesuits/orm/db/model/EntityTable;->name:Ljava/lang/String;

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    const/4 v3, 0x1

    invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v3

    invoke-virtual {p4, v2, v3}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 774
    const/4 v6, 0x0

    move-object v2, p0

    move-object v3, v1

    move-object v4, p2

    move-object v5, p3

    move-object v7, p4

    invoke-direct/range {v2 .. v7}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->handleMapping(Ljava/lang/Object;Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;ZLjava/util/HashMap;)V

    .line 775
    return v8
.end method

.method public static getDeleteStatementArgs(Ljava/lang/Object;)[Ljava/lang/Object;
    .registers 8
    .param p0, "entity"    # Ljava/lang/Object;
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/IllegalAccessException;
        }
    .end annotation

    .line 669
    invoke-static {p0}, Lcom/litesuits/orm/db/TableManager;->getTable(Ljava/lang/Object;)Lcom/litesuits/orm/db/model/EntityTable;

    move-result-object v0

    .line 670
    .local v0, "table":Lcom/litesuits/orm/db/model/EntityTable;
    iget-object v1, v0, Lcom/litesuits/orm/db/model/EntityTable;->key:Lcom/litesuits/orm/db/model/Primarykey;

    if-eqz v1, :cond_1b

    .line 671
    const/4 v1, 0x1

    new-array v1, v1, [Ljava/lang/String;

    const/4 v2, 0x0

    iget-object v3, v0, Lcom/litesuits/orm/db/model/EntityTable;->key:Lcom/litesuits/orm/db/model/Primarykey;

    iget-object v3, v3, Lcom/litesuits/orm/db/model/Primarykey;->field:Ljava/lang/reflect/Field;

    invoke-static {v3, p0}, Lcom/litesuits/orm/db/utils/FieldUtil;->get(Ljava/lang/reflect/Field;Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v3

    invoke-static {v3}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v3

    aput-object v3, v1, v2

    return-object v1

    .line 672
    :cond_1b
    iget-object v1, v0, Lcom/litesuits/orm/db/model/EntityTable;->pmap:Ljava/util/LinkedHashMap;

    invoke-static {v1}, Lcom/litesuits/orm/db/assit/Checker;->isEmpty(Ljava/util/Map;)Z

    move-result v1

    if-nez v1, :cond_4f

    .line 673
    iget-object v1, v0, Lcom/litesuits/orm/db/model/EntityTable;->pmap:Ljava/util/LinkedHashMap;

    invoke-virtual {v1}, Ljava/util/LinkedHashMap;->size()I

    move-result v1

    new-array v1, v1, [Ljava/lang/Object;

    .line 674
    .local v1, "args":[Ljava/lang/Object;
    const/4 v2, 0x0

    .line 675
    .local v2, "i":I
    iget-object v3, v0, Lcom/litesuits/orm/db/model/EntityTable;->pmap:Ljava/util/LinkedHashMap;

    invoke-virtual {v3}, Ljava/util/LinkedHashMap;->values()Ljava/util/Collection;

    move-result-object v3

    invoke-interface {v3}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;

    move-result-object v3

    .local v3, "i$":Ljava/util/Iterator;
    :goto_36
    invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z

    move-result v4

    if-eqz v4, :cond_4e

    invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v4

    check-cast v4, Lcom/litesuits/orm/db/model/Property;

    .line 676
    .local v4, "p":Lcom/litesuits/orm/db/model/Property;
    add-int/lit8 v5, v2, 0x1

    .end local v2    # "i":I
    .local v5, "i":I
    iget-object v6, v4, Lcom/litesuits/orm/db/model/Property;->field:Ljava/lang/reflect/Field;

    invoke-static {v6, p0}, Lcom/litesuits/orm/db/utils/FieldUtil;->get(Ljava/lang/reflect/Field;Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v6

    aput-object v6, v1, v2

    .line 677
    .end local v4    # "p":Lcom/litesuits/orm/db/model/Property;
    move v2, v5

    goto :goto_36

    .line 678
    .end local v3    # "i$":Ljava/util/Iterator;
    .end local v5    # "i":I
    .restart local v2    # "i":I
    :cond_4e
    return-object v1

    .line 680
    .end local v1    # "args":[Ljava/lang/Object;
    .end local v2    # "i":I
    :cond_4f
    const/4 v1, 0x0

    return-object v1
.end method

.method private handleEntityRecursive(ILcom/litesuits/orm/db/assit/SQLStatement;Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;)J
    .registers 21
    .param p1, "type"    # I
    .param p2, "stmt"    # Lcom/litesuits/orm/db/assit/SQLStatement;
    .param p3, "obj1"    # Ljava/lang/Object;
    .param p4, "db"    # Landroid/database/sqlite/SQLiteDatabase;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(I",
            "Lcom/litesuits/orm/db/assit/SQLStatement;",
            "Ljava/lang/Object;",
            "Landroid/database/sqlite/SQLiteDatabase;",
            "Ljava/util/HashMap<",
            "Ljava/lang/String;",
            "Ljava/lang/Integer;",
            ">;)J"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation

    .line 697
    .local p5, "handleMap":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Integer;>;"
    move/from16 v0, p1

    move-object/from16 v1, p2

    move-object/from16 v8, p3

    move-object/from16 v9, p4

    move-object/from16 v10, p5

    invoke-static/range {p3 .. p3}, Lcom/litesuits/orm/db/TableManager;->getTable(Ljava/lang/Object;)Lcom/litesuits/orm/db/model/EntityTable;

    move-result-object v11

    .line 698
    .local v11, "table1":Lcom/litesuits/orm/db/model/EntityTable;
    iget-object v2, v11, Lcom/litesuits/orm/db/model/EntityTable;->key:Lcom/litesuits/orm/db/model/Primarykey;

    iget-object v2, v2, Lcom/litesuits/orm/db/model/Primarykey;->field:Ljava/lang/reflect/Field;

    invoke-static {v2, v8}, Lcom/litesuits/orm/db/utils/FieldUtil;->get(Ljava/lang/reflect/Field;Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v2

    .line 701
    .local v2, "key1":Ljava/lang/Object;
    new-instance v3, Ljava/lang/StringBuilder;

    invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V

    iget-object v4, v11, Lcom/litesuits/orm/db/model/EntityTable;->name:Ljava/lang/String;

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    invoke-virtual {v10, v3}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v3

    if-eqz v3, :cond_30

    .line 702
    const-wide/16 v3, -0x1

    return-wide v3

    .line 705
    :cond_30
    const-wide/16 v3, -0x1

    .line 706
    .local v3, "rowID":J
    const/4 v5, 0x3

    const/4 v6, 0x1

    if-eq v0, v6, :cond_4e

    const/4 v7, 0x2

    if-eq v0, v7, :cond_46

    if-eq v0, v5, :cond_3e

    move-object v12, v2

    move-wide v13, v3

    goto :goto_5c

    .line 715
    :cond_3e
    invoke-virtual {v1, v9}, Lcom/litesuits/orm/db/assit/SQLStatement;->execDelete(Landroid/database/sqlite/SQLiteDatabase;)I

    move-result v7

    int-to-long v3, v7

    .line 716
    move-object v12, v2

    move-wide v13, v3

    goto :goto_5c

    .line 712
    :cond_46
    invoke-virtual {v1, v9}, Lcom/litesuits/orm/db/assit/SQLStatement;->execUpdate(Landroid/database/sqlite/SQLiteDatabase;)I

    move-result v7

    int-to-long v3, v7

    .line 713
    move-object v12, v2

    move-wide v13, v3

    goto :goto_5c

    .line 708
    :cond_4e
    invoke-virtual {v1, v9, v8}, Lcom/litesuits/orm/db/assit/SQLStatement;->execInsert(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/Object;)J

    move-result-wide v3

    .line 709
    iget-object v7, v11, Lcom/litesuits/orm/db/model/EntityTable;->key:Lcom/litesuits/orm/db/model/Primarykey;

    iget-object v7, v7, Lcom/litesuits/orm/db/model/Primarykey;->field:Ljava/lang/reflect/Field;

    invoke-static {v7, v8}, Lcom/litesuits/orm/db/utils/FieldUtil;->get(Ljava/lang/reflect/Field;Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v2

    .line 710
    move-object v12, v2

    move-wide v13, v3

    .line 720
    .end local v2    # "key1":Ljava/lang/Object;
    .end local v3    # "rowID":J
    .local v12, "key1":Ljava/lang/Object;
    .local v13, "rowID":J
    :goto_5c
    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    iget-object v3, v11, Lcom/litesuits/orm/db/model/EntityTable;->name:Ljava/lang/String;

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v3

    invoke-virtual {v10, v2, v3}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 722
    if-eq v0, v5, :cond_77

    goto :goto_79

    :cond_77
    const/4 v2, 0x0

    const/4 v6, 0x0

    .line 723
    .local v6, "insertNew":Z
    :goto_79
    move-object v2, p0

    move-object v3, v12

    move-object/from16 v4, p3

    move-object/from16 v5, p4

    move-object/from16 v7, p5

    invoke-direct/range {v2 .. v7}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->handleMapping(Ljava/lang/Object;Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;ZLjava/util/HashMap;)V

    .line 724
    return-wide v13
.end method

.method private handleMapToMany(Lcom/litesuits/orm/db/model/EntityTable;Lcom/litesuits/orm/db/model/EntityTable;Ljava/lang/Object;Ljava/util/Collection;Landroid/database/sqlite/SQLiteDatabase;ZLjava/util/HashMap;)V
    .registers 13
    .param p1, "table1"    # Lcom/litesuits/orm/db/model/EntityTable;
    .param p2, "table2"    # Lcom/litesuits/orm/db/model/EntityTable;
    .param p3, "key1"    # Ljava/lang/Object;
    .param p4, "coll"    # Ljava/util/Collection;
    .param p5, "db"    # Landroid/database/sqlite/SQLiteDatabase;
    .param p6, "insertNew"    # Z
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/litesuits/orm/db/model/EntityTable;",
            "Lcom/litesuits/orm/db/model/EntityTable;",
            "Ljava/lang/Object;",
            "Ljava/util/Collection;",
            "Landroid/database/sqlite/SQLiteDatabase;",
            "Z",
            "Ljava/util/HashMap<",
            "Ljava/lang/String;",
            "Ljava/lang/Integer;",
            ">;)V"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation

    .line 916
    .local p7, "handleMap":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Integer;>;"
    if-eqz p4, :cond_1c

    .line 921
    invoke-interface {p4}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;

    move-result-object v0

    .local v0, "i$":Ljava/util/Iterator;
    :goto_6
    invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_1c

    invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    .line 922
    .local v1, "obj2":Ljava/lang/Object;
    if-eqz v1, :cond_1b

    .line 924
    if-eqz p6, :cond_18

    .line 926
    invoke-direct {p0, v1, p5, p7}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->checkTableAndSaveRecursive(Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;)J

    goto :goto_1b

    .line 929
    :cond_18
    invoke-direct {p0, v1, p5, p7}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->checkTableAndDeleteRecursive(Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;)I

    .line 950
    .end local v1    # "obj2":Ljava/lang/Object;
    :cond_1b
    :goto_1b
    goto :goto_6

    .line 953
    .end local v0    # "i$":Ljava/util/Iterator;
    :cond_1c
    invoke-static {p1, p2}, Lcom/litesuits/orm/db/TableManager;->getMapTableName(Lcom/litesuits/orm/db/model/EntityTable;Lcom/litesuits/orm/db/model/EntityTable;)Ljava/lang/String;

    move-result-object v0

    .line 956
    .local v0, "tableName":Ljava/lang/String;
    iget-object v1, p0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->mTableManager:Lcom/litesuits/orm/db/TableManager;

    iget-object v2, p1, Lcom/litesuits/orm/db/model/EntityTable;->name:Ljava/lang/String;

    iget-object v3, p2, Lcom/litesuits/orm/db/model/EntityTable;->name:Ljava/lang/String;

    invoke-virtual {v1, p5, v0, v2, v3}, Lcom/litesuits/orm/db/TableManager;->checkOrCreateMappingTable(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V

    .line 957
    invoke-static {v0, p3, p1}, Lcom/litesuits/orm/db/assit/SQLBuilder;->buildMappingDeleteSql(Ljava/lang/String;Ljava/lang/Object;Lcom/litesuits/orm/db/model/EntityTable;)Lcom/litesuits/orm/db/assit/SQLStatement;

    move-result-object v1

    .line 958
    .local v1, "delSql":Lcom/litesuits/orm/db/assit/SQLStatement;
    invoke-virtual {v1, p5}, Lcom/litesuits/orm/db/assit/SQLStatement;->execDelete(Landroid/database/sqlite/SQLiteDatabase;)I

    .line 962
    if-eqz p6, :cond_56

    invoke-static {p4}, Lcom/litesuits/orm/db/assit/Checker;->isEmpty(Ljava/util/Collection;)Z

    move-result v2

    if-nez v2, :cond_56

    .line 963
    invoke-static {p3, p1, p2, p4}, Lcom/litesuits/orm/db/assit/SQLBuilder;->buildMappingToManySql(Ljava/lang/Object;Lcom/litesuits/orm/db/model/EntityTable;Lcom/litesuits/orm/db/model/EntityTable;Ljava/util/Collection;)Ljava/util/ArrayList;

    move-result-object v2

    .line 964
    .local v2, "sqlList":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Lcom/litesuits/orm/db/assit/SQLStatement;>;"
    invoke-static {v2}, Lcom/litesuits/orm/db/assit/Checker;->isEmpty(Ljava/util/Collection;)Z

    move-result v3

    if-nez v3, :cond_56

    .line 965
    invoke-virtual {v2}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;

    move-result-object v3

    .local v3, "i$":Ljava/util/Iterator;
    :goto_46
    invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z

    move-result v4

    if-eqz v4, :cond_56

    invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v4

    check-cast v4, Lcom/litesuits/orm/db/assit/SQLStatement;

    .line 966
    .local v4, "sql":Lcom/litesuits/orm/db/assit/SQLStatement;
    invoke-virtual {v4, p5}, Lcom/litesuits/orm/db/assit/SQLStatement;->execInsert(Landroid/database/sqlite/SQLiteDatabase;)J

    .line 967
    .end local v4    # "sql":Lcom/litesuits/orm/db/assit/SQLStatement;
    goto :goto_46

    .line 981
    .end local v2    # "sqlList":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Lcom/litesuits/orm/db/assit/SQLStatement;>;"
    .end local v3    # "i$":Ljava/util/Iterator;
    :cond_56
    return-void
.end method

.method private handleMapToOne(Lcom/litesuits/orm/db/model/EntityTable;Lcom/litesuits/orm/db/model/EntityTable;Ljava/lang/Object;Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;ZLjava/util/HashMap;)V
    .registers 12
    .param p1, "table1"    # Lcom/litesuits/orm/db/model/EntityTable;
    .param p2, "table2"    # Lcom/litesuits/orm/db/model/EntityTable;
    .param p3, "key1"    # Ljava/lang/Object;
    .param p4, "obj2"    # Ljava/lang/Object;
    .param p5, "db"    # Landroid/database/sqlite/SQLiteDatabase;
    .param p6, "insertNew"    # Z
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/litesuits/orm/db/model/EntityTable;",
            "Lcom/litesuits/orm/db/model/EntityTable;",
            "Ljava/lang/Object;",
            "Ljava/lang/Object;",
            "Landroid/database/sqlite/SQLiteDatabase;",
            "Z",
            "Ljava/util/HashMap<",
            "Ljava/lang/String;",
            "Ljava/lang/Integer;",
            ">;)V"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation

    .line 880
    .local p7, "handleMap":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Integer;>;"
    if-eqz p4, :cond_b

    .line 882
    if-eqz p6, :cond_8

    .line 884
    invoke-direct {p0, p4, p5, p7}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->checkTableAndSaveRecursive(Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;)J

    goto :goto_b

    .line 887
    :cond_8
    invoke-direct {p0, p4, p5, p7}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->checkTableAndDeleteRecursive(Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;)I

    .line 891
    :cond_b
    :goto_b
    invoke-static {p1, p2}, Lcom/litesuits/orm/db/TableManager;->getMapTableName(Lcom/litesuits/orm/db/model/EntityTable;Lcom/litesuits/orm/db/model/EntityTable;)Ljava/lang/String;

    move-result-object v0

    .line 894
    .local v0, "mapTableName":Ljava/lang/String;
    iget-object v1, p0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->mTableManager:Lcom/litesuits/orm/db/TableManager;

    iget-object v2, p1, Lcom/litesuits/orm/db/model/EntityTable;->name:Ljava/lang/String;

    iget-object v3, p2, Lcom/litesuits/orm/db/model/EntityTable;->name:Ljava/lang/String;

    invoke-virtual {v1, p5, v0, v2, v3}, Lcom/litesuits/orm/db/TableManager;->checkOrCreateMappingTable(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V

    .line 895
    invoke-static {v0, p3, p1}, Lcom/litesuits/orm/db/assit/SQLBuilder;->buildMappingDeleteSql(Ljava/lang/String;Ljava/lang/Object;Lcom/litesuits/orm/db/model/EntityTable;)Lcom/litesuits/orm/db/assit/SQLStatement;

    move-result-object v1

    .line 896
    .local v1, "st":Lcom/litesuits/orm/db/assit/SQLStatement;
    invoke-virtual {v1, p5}, Lcom/litesuits/orm/db/assit/SQLStatement;->execDelete(Landroid/database/sqlite/SQLiteDatabase;)I

    .line 899
    if-eqz p6, :cond_34

    if-eqz p4, :cond_34

    .line 900
    iget-object v2, p2, Lcom/litesuits/orm/db/model/EntityTable;->key:Lcom/litesuits/orm/db/model/Primarykey;

    iget-object v2, v2, Lcom/litesuits/orm/db/model/Primarykey;->field:Ljava/lang/reflect/Field;

    invoke-static {v2, p4}, Lcom/litesuits/orm/db/utils/FieldUtil;->get(Ljava/lang/reflect/Field;Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v2

    .line 901
    .local v2, "key2":Ljava/lang/Object;
    invoke-static {v0, p3, v2, p1, p2}, Lcom/litesuits/orm/db/assit/SQLBuilder;->buildMappingToOneSql(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Lcom/litesuits/orm/db/model/EntityTable;Lcom/litesuits/orm/db/model/EntityTable;)Lcom/litesuits/orm/db/assit/SQLStatement;

    move-result-object v1

    .line 902
    if-eqz v1, :cond_34

    .line 903
    invoke-virtual {v1, p5}, Lcom/litesuits/orm/db/assit/SQLStatement;->execInsert(Landroid/database/sqlite/SQLiteDatabase;)J

    .line 906
    .end local v2    # "key2":Ljava/lang/Object;
    :cond_34
    return-void
.end method

.method private handleMapping(Ljava/lang/Object;Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;ZLjava/util/HashMap;)V
    .registers 21
    .param p1, "key1"    # Ljava/lang/Object;
    .param p2, "obj1"    # Ljava/lang/Object;
    .param p3, "db"    # Landroid/database/sqlite/SQLiteDatabase;
    .param p4, "insertNew"    # Z
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/Object;",
            "Ljava/lang/Object;",
            "Landroid/database/sqlite/SQLiteDatabase;",
            "Z",
            "Ljava/util/HashMap<",
            "Ljava/lang/String;",
            "Ljava/lang/Integer;",
            ">;)V"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation

    .line 843
    .local p5, "handleMap":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Integer;>;"
    move-object/from16 v0, p2

    invoke-static/range {p2 .. p2}, Lcom/litesuits/orm/db/TableManager;->getTable(Ljava/lang/Object;)Lcom/litesuits/orm/db/model/EntityTable;

    move-result-object v9

    .line 845
    .local v9, "table1":Lcom/litesuits/orm/db/model/EntityTable;
    iget-object v1, v9, Lcom/litesuits/orm/db/model/EntityTable;->mappingList:Ljava/util/ArrayList;

    if-eqz v1, :cond_b8

    .line 846
    iget-object v1, v9, Lcom/litesuits/orm/db/model/EntityTable;->mappingList:Ljava/util/ArrayList;

    invoke-virtual {v1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;

    move-result-object v10

    .local v10, "i$":Ljava/util/Iterator;
    :goto_10
    invoke-interface {v10}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_b8

    invoke-interface {v10}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    move-object v11, v1

    check-cast v11, Lcom/litesuits/orm/db/model/MapProperty;

    .line 847
    .local v11, "map":Lcom/litesuits/orm/db/model/MapProperty;
    invoke-virtual {v11}, Lcom/litesuits/orm/db/model/MapProperty;->isToOne()Z

    move-result v1

    if-eqz v1, :cond_44

    .line 849
    iget-object v1, v11, Lcom/litesuits/orm/db/model/MapProperty;->field:Ljava/lang/reflect/Field;

    invoke-static {v1, v0}, Lcom/litesuits/orm/db/utils/FieldUtil;->get(Ljava/lang/reflect/Field;Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v12

    .line 850
    .local v12, "obj2":Ljava/lang/Object;
    iget-object v1, v11, Lcom/litesuits/orm/db/model/MapProperty;->field:Ljava/lang/reflect/Field;

    invoke-virtual {v1}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class;

    move-result-object v1

    invoke-static {v1}, Lcom/litesuits/orm/db/TableManager;->getTable(Ljava/lang/Class;)Lcom/litesuits/orm/db/model/EntityTable;

    move-result-object v13

    .line 851
    .local v13, "table2":Lcom/litesuits/orm/db/model/EntityTable;
    move-object v1, p0

    move-object v2, v9

    move-object v3, v13

    move-object/from16 v4, p1

    move-object v5, v12

    move-object/from16 v6, p3

    move/from16 v7, p4

    move-object/from16 v8, p5

    invoke-direct/range {v1 .. v8}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->handleMapToOne(Lcom/litesuits/orm/db/model/EntityTable;Lcom/litesuits/orm/db/model/EntityTable;Ljava/lang/Object;Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;ZLjava/util/HashMap;)V

    .end local v12    # "obj2":Ljava/lang/Object;
    .end local v13    # "table2":Lcom/litesuits/orm/db/model/EntityTable;
    goto/16 :goto_b5

    .line 852
    :cond_44
    invoke-virtual {v11}, Lcom/litesuits/orm/db/model/MapProperty;->isToMany()Z

    move-result v1

    if-eqz v1, :cond_b5

    .line 854
    iget-object v1, v11, Lcom/litesuits/orm/db/model/MapProperty;->field:Ljava/lang/reflect/Field;

    invoke-static {v1, v0}, Lcom/litesuits/orm/db/utils/FieldUtil;->get(Ljava/lang/reflect/Field;Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v12

    .line 855
    .local v12, "array":Ljava/lang/Object;
    iget-object v1, v11, Lcom/litesuits/orm/db/model/MapProperty;->field:Ljava/lang/reflect/Field;

    invoke-virtual {v1}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class;

    move-result-object v1

    invoke-static {v1}, Lcom/litesuits/orm/db/utils/ClassUtil;->isCollection(Ljava/lang/Class;)Z

    move-result v1

    if-eqz v1, :cond_78

    .line 856
    iget-object v1, v11, Lcom/litesuits/orm/db/model/MapProperty;->field:Ljava/lang/reflect/Field;

    invoke-static {v1}, Lcom/litesuits/orm/db/utils/FieldUtil;->getGenericType(Ljava/lang/reflect/Field;)Ljava/lang/Class;

    move-result-object v1

    invoke-static {v1}, Lcom/litesuits/orm/db/TableManager;->getTable(Ljava/lang/Class;)Lcom/litesuits/orm/db/model/EntityTable;

    move-result-object v13

    .line 857
    .restart local v13    # "table2":Lcom/litesuits/orm/db/model/EntityTable;
    move-object v5, v12

    check-cast v5, Ljava/util/Collection;

    move-object v1, p0

    move-object v2, v9

    move-object v3, v13

    move-object/from16 v4, p1

    move-object/from16 v6, p3

    move/from16 v7, p4

    move-object/from16 v8, p5

    invoke-direct/range {v1 .. v8}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->handleMapToMany(Lcom/litesuits/orm/db/model/EntityTable;Lcom/litesuits/orm/db/model/EntityTable;Ljava/lang/Object;Ljava/util/Collection;Landroid/database/sqlite/SQLiteDatabase;ZLjava/util/HashMap;)V

    .line 858
    .end local v13    # "table2":Lcom/litesuits/orm/db/model/EntityTable;
    goto :goto_b6

    :cond_78
    iget-object v1, v11, Lcom/litesuits/orm/db/model/MapProperty;->field:Ljava/lang/reflect/Field;

    invoke-virtual {v1}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class;

    move-result-object v1

    invoke-static {v1}, Lcom/litesuits/orm/db/utils/ClassUtil;->isArray(Ljava/lang/Class;)Z

    move-result v1

    if-eqz v1, :cond_ad

    .line 859
    iget-object v1, v11, Lcom/litesuits/orm/db/model/MapProperty;->field:Ljava/lang/reflect/Field;

    invoke-static {v1}, Lcom/litesuits/orm/db/utils/FieldUtil;->getComponentType(Ljava/lang/reflect/Field;)Ljava/lang/Class;

    move-result-object v1

    invoke-static {v1}, Lcom/litesuits/orm/db/TableManager;->getTable(Ljava/lang/Class;)Lcom/litesuits/orm/db/model/EntityTable;

    move-result-object v13

    .line 860
    .restart local v13    # "table2":Lcom/litesuits/orm/db/model/EntityTable;
    const/4 v1, 0x0

    .line 861
    .local v1, "coll":Ljava/util/Collection;, "Ljava/util/Collection<*>;"
    if-eqz v12, :cond_9c

    .line 863
    move-object v2, v12

    check-cast v2, [Ljava/lang/Object;

    check-cast v2, [Ljava/lang/Object;

    invoke-static {v2}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;

    move-result-object v1

    move-object v14, v1

    goto :goto_9d

    .line 861
    :cond_9c
    move-object v14, v1

    .line 865
    .end local v1    # "coll":Ljava/util/Collection;, "Ljava/util/Collection<*>;"
    .local v14, "coll":Ljava/util/Collection;, "Ljava/util/Collection<*>;"
    :goto_9d
    move-object v1, p0

    move-object v2, v9

    move-object v3, v13

    move-object/from16 v4, p1

    move-object v5, v14

    move-object/from16 v6, p3

    move/from16 v7, p4

    move-object/from16 v8, p5

    invoke-direct/range {v1 .. v8}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->handleMapToMany(Lcom/litesuits/orm/db/model/EntityTable;Lcom/litesuits/orm/db/model/EntityTable;Ljava/lang/Object;Ljava/util/Collection;Landroid/database/sqlite/SQLiteDatabase;ZLjava/util/HashMap;)V

    .line 866
    .end local v13    # "table2":Lcom/litesuits/orm/db/model/EntityTable;
    .end local v14    # "coll":Ljava/util/Collection;, "Ljava/util/Collection<*>;"
    goto :goto_b6

    .line 867
    :cond_ad
    new-instance v1, Ljava/lang/RuntimeException;

    const-string v2, "OneToMany and ManyToMany Relation, you must use collection or array object"

    invoke-direct {v1, v2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V

    throw v1

    .line 852
    .end local v12    # "array":Ljava/lang/Object;
    :cond_b5
    :goto_b5
    nop

    .line 870
    .end local v11    # "map":Lcom/litesuits/orm/db/model/MapProperty;
    :goto_b6
    goto/16 :goto_10

    .line 872
    .end local v10    # "i$":Ljava/util/Iterator;
    :cond_b8
    return-void
.end method

.method private insertCollection(Ljava/util/Collection;Lcom/litesuits/orm/db/model/ConflictAlgorithm;)I
    .registers 6
    .param p2, "conflictAlgorithm"    # Lcom/litesuits/orm/db/model/ConflictAlgorithm;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/util/Collection<",
            "TT;>;",
            "Lcom/litesuits/orm/db/model/ConflictAlgorithm;",
            ")I"
        }
    .end annotation

    .line 555
    .local p1, "collection":Ljava/util/Collection;, "Ljava/util/Collection<TT;>;"
    invoke-static {p1}, Lcom/litesuits/orm/db/assit/Checker;->isEmpty(Ljava/util/Collection;)Z

    move-result v0

    if-nez v0, :cond_1e

    .line 556
    iget-object v0, p0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->mHelper:Lcom/litesuits/orm/db/assit/SQLiteHelper;

    invoke-virtual {v0}, Lcom/litesuits/orm/db/assit/SQLiteHelper;->getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;

    move-result-object v0

    .line 557
    .local v0, "db":Landroid/database/sqlite/SQLiteDatabase;
    new-instance v1, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl$10;

    invoke-direct {v1, p0, p1, p2}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl$10;-><init>(Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;Ljava/util/Collection;Lcom/litesuits/orm/db/model/ConflictAlgorithm;)V

    invoke-static {v0, v1}, Lcom/litesuits/orm/db/assit/Transaction;->execute(Landroid/database/sqlite/SQLiteDatabase;Lcom/litesuits/orm/db/assit/Transaction$Worker;)Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/lang/Integer;

    .line 579
    .local v1, "rowID":Ljava/lang/Integer;
    if-eqz v1, :cond_1e

    .line 580
    invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I

    move-result v2

    return v2

    .line 583
    .end local v0    # "db":Landroid/database/sqlite/SQLiteDatabase;
    .end local v1    # "rowID":Ljava/lang/Integer;
    :cond_1e
    const/4 v0, -0x1

    return v0
.end method

.method private insertRecursive(Lcom/litesuits/orm/db/assit/SQLStatement;Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;)J
    .registers 16
    .param p1, "stmt"    # Lcom/litesuits/orm/db/assit/SQLStatement;
    .param p2, "obj1"    # Ljava/lang/Object;
    .param p3, "db"    # Landroid/database/sqlite/SQLiteDatabase;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/litesuits/orm/db/assit/SQLStatement;",
            "Ljava/lang/Object;",
            "Landroid/database/sqlite/SQLiteDatabase;",
            "Ljava/util/HashMap<",
            "Ljava/lang/String;",
            "Ljava/lang/Integer;",
            ">;)J"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation

    .line 787
    .local p4, "handleMap":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Integer;>;"
    invoke-static {p2}, Lcom/litesuits/orm/db/TableManager;->getTable(Ljava/lang/Object;)Lcom/litesuits/orm/db/model/EntityTable;

    move-result-object v0

    .line 788
    .local v0, "table1":Lcom/litesuits/orm/db/model/EntityTable;
    iget-object v1, v0, Lcom/litesuits/orm/db/model/EntityTable;->key:Lcom/litesuits/orm/db/model/Primarykey;

    iget-object v1, v1, Lcom/litesuits/orm/db/model/Primarykey;->field:Ljava/lang/reflect/Field;

    invoke-static {v1, p2}, Lcom/litesuits/orm/db/utils/FieldUtil;->get(Ljava/lang/reflect/Field;Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v1

    .line 791
    .local v1, "key1":Ljava/lang/Object;
    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    iget-object v3, v0, Lcom/litesuits/orm/db/model/EntityTable;->name:Ljava/lang/String;

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {p4, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v2

    if-eqz v2, :cond_26

    .line 792
    const-wide/16 v2, -0x1

    return-wide v2

    .line 795
    :cond_26
    invoke-virtual {p1, p3, p2}, Lcom/litesuits/orm/db/assit/SQLStatement;->execInsert(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/Object;)J

    move-result-wide v2

    .line 796
    .local v2, "rowID":J
    iget-object v4, v0, Lcom/litesuits/orm/db/model/EntityTable;->key:Lcom/litesuits/orm/db/model/Primarykey;

    iget-object v4, v4, Lcom/litesuits/orm/db/model/Primarykey;->field:Ljava/lang/reflect/Field;

    invoke-static {v4, p2}, Lcom/litesuits/orm/db/utils/FieldUtil;->get(Ljava/lang/reflect/Field;Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v1

    .line 797
    new-instance v4, Ljava/lang/StringBuilder;

    invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V

    iget-object v5, v0, Lcom/litesuits/orm/db/model/EntityTable;->name:Ljava/lang/String;

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v4

    const/4 v5, 0x1

    invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v5

    invoke-virtual {p4, v4, v5}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 801
    const/4 v9, 0x1

    move-object v5, p0

    move-object v6, v1

    move-object v7, p2

    move-object v8, p3

    move-object v10, p4

    invoke-direct/range {v5 .. v10}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->handleMapping(Ljava/lang/Object;Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;ZLjava/util/HashMap;)V

    .line 802
    return-wide v2
.end method

.method public static declared-synchronized newInstance(Lcom/litesuits/orm/db/DataBaseConfig;)Lcom/litesuits/orm/LiteOrm;
    .registers 3
    .param p0, "config"    # Lcom/litesuits/orm/db/DataBaseConfig;

    const-class v0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;

    monitor-enter v0

    .line 39
    :try_start_3
    new-instance v1, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;

    invoke-direct {v1, p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;-><init>(Lcom/litesuits/orm/db/DataBaseConfig;)V
    :try_end_8
    .catchall {:try_start_3 .. :try_end_8} :catchall_a

    monitor-exit v0

    return-object v1

    .end local p0    # "config":Lcom/litesuits/orm/db/DataBaseConfig;
    :catchall_a
    move-exception p0

    monitor-exit v0

    throw p0
.end method

.method private queryForMappingRecursive(Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;Ljava/util/HashMap;)V
    .registers 20
    .param p1, "obj1"    # Ljava/lang/Object;
    .param p2, "db"    # Landroid/database/sqlite/SQLiteDatabase;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/Object;",
            "Landroid/database/sqlite/SQLiteDatabase;",
            "Ljava/util/HashMap<",
            "Ljava/lang/String;",
            "Ljava/lang/Integer;",
            ">;",
            "Ljava/util/HashMap<",
            "Ljava/lang/String;",
            "Ljava/lang/Object;",
            ">;)V"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/IllegalAccessException;,
            Ljava/lang/InstantiationException;
        }
    .end annotation

    .line 375
    .local p3, "queryMap":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Integer;>;"
    .local p4, "entityMap":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Object;>;"
    move-object/from16 v8, p3

    invoke-static/range {p1 .. p1}, Lcom/litesuits/orm/db/TableManager;->getTable(Ljava/lang/Object;)Lcom/litesuits/orm/db/model/EntityTable;

    move-result-object v9

    .line 376
    .local v9, "table1":Lcom/litesuits/orm/db/model/EntityTable;
    iget-object v0, v9, Lcom/litesuits/orm/db/model/EntityTable;->key:Lcom/litesuits/orm/db/model/Primarykey;

    move-object/from16 v10, p1

    invoke-static {v0, v10}, Lcom/litesuits/orm/db/utils/FieldUtil;->getAssignedKeyObject(Lcom/litesuits/orm/db/model/Primarykey;Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v11

    .line 377
    .local v11, "key1":Ljava/lang/Object;
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    iget-object v1, v9, Lcom/litesuits/orm/db/model/EntityTable;->name:Ljava/lang/String;

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v12

    .line 378
    .local v12, "key":Ljava/lang/String;
    invoke-virtual {v8, v12}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    if-nez v0, :cond_72

    .line 379
    const/4 v0, 0x1

    invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v0

    invoke-virtual {v8, v12, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 380
    iget-object v0, v9, Lcom/litesuits/orm/db/model/EntityTable;->mappingList:Ljava/util/ArrayList;

    if-eqz v0, :cond_72

    .line 381
    iget-object v0, v9, Lcom/litesuits/orm/db/model/EntityTable;->mappingList:Ljava/util/ArrayList;

    invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;

    move-result-object v13

    .local v13, "i$":Ljava/util/Iterator;
    :goto_37
    invoke-interface {v13}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_72

    invoke-interface {v13}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    move-object v14, v0

    check-cast v14, Lcom/litesuits/orm/db/model/MapProperty;

    .line 382
    .local v14, "mp":Lcom/litesuits/orm/db/model/MapProperty;
    invoke-virtual {v14}, Lcom/litesuits/orm/db/model/MapProperty;->isToOne()Z

    move-result v0

    if-eqz v0, :cond_5b

    .line 383
    iget-object v4, v14, Lcom/litesuits/orm/db/model/MapProperty;->field:Ljava/lang/reflect/Field;

    move-object v0, p0

    move-object v1, v9

    move-object v2, v11

    move-object/from16 v3, p1

    move-object/from16 v5, p2

    move-object/from16 v6, p3

    move-object/from16 v7, p4

    invoke-direct/range {v0 .. v7}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->queryMapToOne(Lcom/litesuits/orm/db/model/EntityTable;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Field;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;Ljava/util/HashMap;)V

    goto :goto_71

    .line 384
    :cond_5b
    invoke-virtual {v14}, Lcom/litesuits/orm/db/model/MapProperty;->isToMany()Z

    move-result v0

    if-eqz v0, :cond_71

    .line 385
    iget-object v4, v14, Lcom/litesuits/orm/db/model/MapProperty;->field:Ljava/lang/reflect/Field;

    move-object v0, p0

    move-object v1, v9

    move-object v2, v11

    move-object/from16 v3, p1

    move-object/from16 v5, p2

    move-object/from16 v6, p3

    move-object/from16 v7, p4

    invoke-direct/range {v0 .. v7}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->queryMapToMany(Lcom/litesuits/orm/db/model/EntityTable;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Field;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;Ljava/util/HashMap;)V

    .line 387
    .end local v14    # "mp":Lcom/litesuits/orm/db/model/MapProperty;
    :cond_71
    :goto_71
    goto :goto_37

    .line 390
    .end local v13    # "i$":Ljava/util/Iterator;
    :cond_72
    return-void
.end method

.method private queryMapToMany(Lcom/litesuits/orm/db/model/EntityTable;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Field;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;Ljava/util/HashMap;)V
    .registers 32
    .param p1, "table1"    # Lcom/litesuits/orm/db/model/EntityTable;
    .param p2, "key1"    # Ljava/lang/Object;
    .param p3, "obj1"    # Ljava/lang/Object;
    .param p4, "field"    # Ljava/lang/reflect/Field;
    .param p5, "db"    # Landroid/database/sqlite/SQLiteDatabase;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/litesuits/orm/db/model/EntityTable;",
            "Ljava/lang/Object;",
            "Ljava/lang/Object;",
            "Ljava/lang/reflect/Field;",
            "Landroid/database/sqlite/SQLiteDatabase;",
            "Ljava/util/HashMap<",
            "Ljava/lang/String;",
            "Ljava/lang/Integer;",
            ">;",
            "Ljava/util/HashMap<",
            "Ljava/lang/String;",
            "Ljava/lang/Object;",
            ">;)V"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/IllegalAccessException;,
            Ljava/lang/InstantiationException;
        }
    .end annotation

    .line 436
    .local p6, "queryMap":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Integer;>;"
    .local p7, "entityMap":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Object;>;"
    move-object/from16 v6, p0

    move-object/from16 v7, p1

    move-object/from16 v8, p3

    move-object/from16 v9, p4

    move-object/from16 v10, p5

    move-object/from16 v11, p7

    const-class v0, Ljava/util/Collection;

    invoke-virtual/range {p4 .. p4}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class;

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z

    move-result v0

    const-string v12, "OneToMany and ManyToMany Relation, you must use collection or array object"

    if-eqz v0, :cond_20

    .line 437
    invoke-static/range {p4 .. p4}, Lcom/litesuits/orm/db/utils/FieldUtil;->getGenericType(Ljava/lang/reflect/Field;)Ljava/lang/Class;

    move-result-object v0

    move-object v13, v0

    .local v0, "class2":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
    goto :goto_2f

    .line 438
    .end local v0    # "class2":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
    :cond_20
    invoke-virtual/range {p4 .. p4}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class;

    move-result-object v0

    invoke-virtual {v0}, Ljava/lang/Class;->isArray()Z

    move-result v0

    if-eqz v0, :cond_166

    .line 439
    invoke-static/range {p4 .. p4}, Lcom/litesuits/orm/db/utils/FieldUtil;->getComponentType(Ljava/lang/reflect/Field;)Ljava/lang/Class;

    move-result-object v0

    move-object v13, v0

    .line 444
    .local v13, "class2":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
    :goto_2f
    invoke-static {v13}, Lcom/litesuits/orm/db/TableManager;->getTable(Ljava/lang/Class;)Lcom/litesuits/orm/db/model/EntityTable;

    move-result-object v14

    .line 445
    .local v14, "table2":Lcom/litesuits/orm/db/model/EntityTable;
    iget-object v0, v6, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->mTableManager:Lcom/litesuits/orm/db/TableManager;

    iget-object v1, v7, Lcom/litesuits/orm/db/model/EntityTable;->name:Ljava/lang/String;

    iget-object v2, v14, Lcom/litesuits/orm/db/model/EntityTable;->name:Ljava/lang/String;

    invoke-virtual {v0, v1, v2}, Lcom/litesuits/orm/db/TableManager;->isSQLMapTableCreated(Ljava/lang/String;Ljava/lang/String;)Z

    move-result v0

    if-eqz v0, :cond_163

    .line 446
    move-object/from16 v15, p2

    invoke-static {v7, v14, v15}, Lcom/litesuits/orm/db/assit/SQLBuilder;->buildQueryRelationSql(Lcom/litesuits/orm/db/model/EntityTable;Lcom/litesuits/orm/db/model/EntityTable;Ljava/lang/Object;)Lcom/litesuits/orm/db/assit/SQLStatement;

    move-result-object v5

    .line 447
    .local v5, "relationSql":Lcom/litesuits/orm/db/assit/SQLStatement;
    new-instance v0, Ljava/util/ArrayList;

    invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V

    move-object v4, v0

    .line 448
    .local v4, "key2List":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/String;>;"
    new-instance v0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl$7;

    invoke-direct {v0, v6, v4, v14}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl$7;-><init>(Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;Ljava/util/ArrayList;Lcom/litesuits/orm/db/model/EntityTable;)V

    invoke-static {v10, v5, v0}, Lcom/litesuits/orm/db/assit/Querier;->doQuery(Landroid/database/sqlite/SQLiteDatabase;Lcom/litesuits/orm/db/assit/SQLStatement;Lcom/litesuits/orm/db/assit/Querier$CursorParser;)Ljava/lang/Object;

    .line 454
    invoke-static {v4}, Lcom/litesuits/orm/db/assit/Checker;->isEmpty(Ljava/util/Collection;)Z

    move-result v0

    if-nez v0, :cond_15c

    .line 455
    new-instance v0, Ljava/util/ArrayList;

    invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V

    move-object v3, v0

    .line 456
    .local v3, "allList2":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/Object;>;"
    invoke-virtual {v4}, Ljava/util/ArrayList;->size()I

    move-result v0

    add-int/lit8 v0, v0, -0x1

    .local v0, "i":I
    :goto_65
    if-ltz v0, :cond_8d

    .line 457
    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    iget-object v2, v14, Lcom/litesuits/orm/db/model/EntityTable;->name:Ljava/lang/String;

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v4, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Ljava/lang/String;

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v11, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v1

    .line 458
    .local v1, "obj2":Ljava/lang/Object;
    if-eqz v1, :cond_8a

    .line 459
    invoke-virtual {v3, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z

    .line 460
    invoke-virtual {v4, v0}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object;

    .line 456
    .end local v1    # "obj2":Ljava/lang/Object;
    :cond_8a
    add-int/lit8 v0, v0, -0x1

    goto :goto_65

    .line 464
    .end local v0    # "i":I
    :cond_8d
    const/4 v0, 0x0

    .restart local v0    # "i":I
    const/4 v1, 0x0

    .line 465
    .local v1, "start":I
    :goto_8f
    invoke-virtual {v4}, Ljava/util/ArrayList;->size()I

    move-result v2

    if-ge v1, v2, :cond_f1

    .line 466
    add-int/lit8 v2, v0, 0x1

    .end local v0    # "i":I
    .local v2, "i":I
    mul-int/lit16 v0, v2, 0x3e7

    .line 467
    .local v0, "next":I
    move/from16 v16, v2

    .end local v2    # "i":I
    .local v16, "i":I
    invoke-virtual {v4}, Ljava/util/ArrayList;->size()I

    move-result v2

    invoke-static {v2, v0}, Ljava/lang/Math;->min(II)I

    move-result v2

    .line 468
    .local v2, "end":I
    invoke-virtual {v4, v1, v2}, Ljava/util/ArrayList;->subList(II)Ljava/util/List;

    move-result-object v7

    .line 469
    .local v7, "subList":Ljava/util/List;, "Ljava/util/List<Ljava/lang/String;>;"
    move/from16 v17, v0

    .line 471
    .end local v1    # "start":I
    .local v17, "start":I
    invoke-static {v13}, Lcom/litesuits/orm/db/assit/QueryBuilder;->create(Ljava/lang/Class;)Lcom/litesuits/orm/db/assit/QueryBuilder;

    move-result-object v1

    move/from16 v18, v0

    .end local v0    # "next":I
    .local v18, "next":I
    iget-object v0, v14, Lcom/litesuits/orm/db/model/EntityTable;->key:Lcom/litesuits/orm/db/model/Primarykey;

    iget-object v0, v0, Lcom/litesuits/orm/db/model/Primarykey;->column:Ljava/lang/String;

    move/from16 v19, v2

    .end local v2    # "end":I
    .local v19, "end":I
    invoke-interface {v7}, Ljava/util/List;->size()I

    move-result v2

    new-array v2, v2, [Ljava/lang/String;

    invoke-interface {v7, v2}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;

    move-result-object v2

    invoke-virtual {v1, v0, v2}, Lcom/litesuits/orm/db/assit/QueryBuilder;->whereIn(Ljava/lang/String;[Ljava/lang/Object;)Lcom/litesuits/orm/db/assit/QueryBuilder;

    move-result-object v0

    invoke-virtual {v0}, Lcom/litesuits/orm/db/assit/QueryBuilder;->createStatement()Lcom/litesuits/orm/db/assit/SQLStatement;

    move-result-object v2

    .line 476
    .local v2, "entitySql":Lcom/litesuits/orm/db/assit/SQLStatement;
    new-instance v1, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl$8;

    move-object v0, v1

    move-object/from16 v20, v7

    move-object v7, v1

    .end local v7    # "subList":Ljava/util/List;, "Ljava/util/List<Ljava/lang/String;>;"
    .local v20, "subList":Ljava/util/List;, "Ljava/util/List<Ljava/lang/String;>;"
    move-object/from16 v1, p0

    move-object v15, v2

    .end local v2    # "entitySql":Lcom/litesuits/orm/db/assit/SQLStatement;
    .local v15, "entitySql":Lcom/litesuits/orm/db/assit/SQLStatement;
    move-object v2, v13

    move-object/from16 v21, v3

    .end local v3    # "allList2":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/Object;>;"
    .local v21, "allList2":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/Object;>;"
    move-object v3, v14

    move-object/from16 v22, v4

    .end local v4    # "key2List":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/String;>;"
    .local v22, "key2List":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/String;>;"
    move-object/from16 v4, v21

    move-object/from16 v23, v5

    .end local v5    # "relationSql":Lcom/litesuits/orm/db/assit/SQLStatement;
    .local v23, "relationSql":Lcom/litesuits/orm/db/assit/SQLStatement;
    move-object/from16 v5, p7

    invoke-direct/range {v0 .. v5}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl$8;-><init>(Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;Ljava/lang/Class;Lcom/litesuits/orm/db/model/EntityTable;Ljava/util/ArrayList;Ljava/util/HashMap;)V

    invoke-static {v10, v15, v7}, Lcom/litesuits/orm/db/assit/Querier;->doQuery(Landroid/database/sqlite/SQLiteDatabase;Lcom/litesuits/orm/db/assit/SQLStatement;Lcom/litesuits/orm/db/assit/Querier$CursorParser;)Ljava/lang/Object;

    .line 485
    .end local v15    # "entitySql":Lcom/litesuits/orm/db/assit/SQLStatement;
    .end local v18    # "next":I
    .end local v20    # "subList":Ljava/util/List;, "Ljava/util/List<Ljava/lang/String;>;"
    move-object/from16 v7, p1

    move-object/from16 v15, p2

    move/from16 v0, v16

    move/from16 v1, v17

    move-object/from16 v3, v21

    move-object/from16 v4, v22

    move-object/from16 v5, v23

    goto :goto_8f

    .line 486
    .end local v16    # "i":I
    .end local v17    # "start":I
    .end local v19    # "end":I
    .end local v21    # "allList2":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/Object;>;"
    .end local v22    # "key2List":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/String;>;"
    .end local v23    # "relationSql":Lcom/litesuits/orm/db/assit/SQLStatement;
    .local v0, "i":I
    .restart local v1    # "start":I
    .restart local v3    # "allList2":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/Object;>;"
    .restart local v4    # "key2List":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/String;>;"
    .restart local v5    # "relationSql":Lcom/litesuits/orm/db/assit/SQLStatement;
    :cond_f1
    move-object/from16 v21, v3

    move-object/from16 v22, v4

    move-object/from16 v23, v5

    .end local v3    # "allList2":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/Object;>;"
    .end local v4    # "key2List":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/String;>;"
    .end local v5    # "relationSql":Lcom/litesuits/orm/db/assit/SQLStatement;
    .restart local v21    # "allList2":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/Object;>;"
    .restart local v22    # "key2List":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/String;>;"
    .restart local v23    # "relationSql":Lcom/litesuits/orm/db/assit/SQLStatement;
    invoke-static/range {v21 .. v21}, Lcom/litesuits/orm/db/assit/Checker;->isEmpty(Ljava/util/Collection;)Z

    move-result v2

    if-nez v2, :cond_157

    .line 487
    const-class v2, Ljava/util/Collection;

    invoke-virtual/range {p4 .. p4}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class;

    move-result-object v3

    invoke-virtual {v2, v3}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z

    move-result v2

    if-eqz v2, :cond_118

    .line 488
    invoke-static/range {p4 .. p4}, Lcom/litesuits/orm/db/utils/ClassUtil;->newCollectionForField(Ljava/lang/reflect/Field;)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Ljava/util/Collection;

    .line 489
    .local v2, "coll":Ljava/util/Collection;
    move-object/from16 v3, v21

    .end local v21    # "allList2":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/Object;>;"
    .restart local v3    # "allList2":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/Object;>;"
    invoke-interface {v2, v3}, Ljava/util/Collection;->addAll(Ljava/util/Collection;)Z

    .line 490
    invoke-static {v9, v8, v2}, Lcom/litesuits/orm/db/utils/FieldUtil;->set(Ljava/lang/reflect/Field;Ljava/lang/Object;Ljava/lang/Object;)V

    .line 491
    .end local v2    # "coll":Ljava/util/Collection;
    goto :goto_138

    .end local v3    # "allList2":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/Object;>;"
    .restart local v21    # "allList2":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/Object;>;"
    :cond_118
    move-object/from16 v3, v21

    .end local v21    # "allList2":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/Object;>;"
    .restart local v3    # "allList2":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/Object;>;"
    invoke-virtual/range {p4 .. p4}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class;

    move-result-object v2

    invoke-virtual {v2}, Ljava/lang/Class;->isArray()Z

    move-result v2

    if-eqz v2, :cond_14f

    .line 492
    invoke-virtual {v3}, Ljava/util/ArrayList;->size()I

    move-result v2

    invoke-static {v13, v2}, Lcom/litesuits/orm/db/utils/ClassUtil;->newArray(Ljava/lang/Class;I)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, [Ljava/lang/Object;

    check-cast v2, [Ljava/lang/Object;

    .line 493
    .local v2, "arrObj":[Ljava/lang/Object;
    invoke-virtual {v3, v2}, Ljava/util/ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;

    move-result-object v2

    .line 494
    invoke-static {v9, v8, v2}, Lcom/litesuits/orm/db/utils/FieldUtil;->set(Ljava/lang/reflect/Field;Ljava/lang/Object;Ljava/lang/Object;)V

    .line 495
    .end local v2    # "arrObj":[Ljava/lang/Object;
    nop

    .line 499
    :goto_138
    invoke-virtual {v3}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;

    move-result-object v2

    .local v2, "i$":Ljava/util/Iterator;
    :goto_13c
    invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z

    move-result v4

    if-eqz v4, :cond_14c

    invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v4

    .line 500
    .local v4, "obj2":Ljava/lang/Object;
    move-object/from16 v5, p6

    invoke-direct {v6, v4, v10, v5, v11}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->queryForMappingRecursive(Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;Ljava/util/HashMap;)V

    .line 501
    .end local v4    # "obj2":Ljava/lang/Object;
    goto :goto_13c

    .line 499
    :cond_14c
    move-object/from16 v5, p6

    goto :goto_165

    .line 496
    .end local v2    # "i$":Ljava/util/Iterator;
    :cond_14f
    move-object/from16 v5, p6

    new-instance v2, Ljava/lang/RuntimeException;

    invoke-direct {v2, v12}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 486
    .end local v3    # "allList2":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/Object;>;"
    .restart local v21    # "allList2":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/Object;>;"
    :cond_157
    move-object/from16 v5, p6

    move-object/from16 v3, v21

    .end local v21    # "allList2":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/Object;>;"
    .restart local v3    # "allList2":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/Object;>;"
    goto :goto_165

    .line 454
    .end local v0    # "i":I
    .end local v1    # "start":I
    .end local v3    # "allList2":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/Object;>;"
    .end local v22    # "key2List":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/String;>;"
    .end local v23    # "relationSql":Lcom/litesuits/orm/db/assit/SQLStatement;
    .local v4, "key2List":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/String;>;"
    .restart local v5    # "relationSql":Lcom/litesuits/orm/db/assit/SQLStatement;
    :cond_15c
    move-object/from16 v22, v4

    move-object/from16 v23, v5

    move-object/from16 v5, p6

    .end local v4    # "key2List":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/String;>;"
    .end local v5    # "relationSql":Lcom/litesuits/orm/db/assit/SQLStatement;
    .restart local v22    # "key2List":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/String;>;"
    .restart local v23    # "relationSql":Lcom/litesuits/orm/db/assit/SQLStatement;
    goto :goto_165

    .line 445
    .end local v22    # "key2List":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/String;>;"
    .end local v23    # "relationSql":Lcom/litesuits/orm/db/assit/SQLStatement;
    :cond_163
    move-object/from16 v5, p6

    .line 505
    :goto_165
    return-void

    .line 441
    .end local v13    # "class2":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
    .end local v14    # "table2":Lcom/litesuits/orm/db/model/EntityTable;
    :cond_166
    move-object/from16 v5, p6

    new-instance v0, Ljava/lang/RuntimeException;

    invoke-direct {v0, v12}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V

    goto :goto_16f

    :goto_16e
    throw v0

    :goto_16f
    goto :goto_16e
.end method

.method private queryMapToOne(Lcom/litesuits/orm/db/model/EntityTable;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Field;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;Ljava/util/HashMap;)V
    .registers 15
    .param p1, "table1"    # Lcom/litesuits/orm/db/model/EntityTable;
    .param p2, "key1"    # Ljava/lang/Object;
    .param p3, "obj1"    # Ljava/lang/Object;
    .param p4, "field"    # Ljava/lang/reflect/Field;
    .param p5, "db"    # Landroid/database/sqlite/SQLiteDatabase;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/litesuits/orm/db/model/EntityTable;",
            "Ljava/lang/Object;",
            "Ljava/lang/Object;",
            "Ljava/lang/reflect/Field;",
            "Landroid/database/sqlite/SQLiteDatabase;",
            "Ljava/util/HashMap<",
            "Ljava/lang/String;",
            "Ljava/lang/Integer;",
            ">;",
            "Ljava/util/HashMap<",
            "Ljava/lang/String;",
            "Ljava/lang/Object;",
            ">;)V"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/IllegalAccessException;,
            Ljava/lang/InstantiationException;
        }
    .end annotation

    .line 399
    .local p6, "queryMap":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Integer;>;"
    .local p7, "entityMap":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Object;>;"
    invoke-virtual {p4}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class;

    move-result-object v0

    invoke-static {v0}, Lcom/litesuits/orm/db/TableManager;->getTable(Ljava/lang/Class;)Lcom/litesuits/orm/db/model/EntityTable;

    move-result-object v0

    .line 400
    .local v0, "table2":Lcom/litesuits/orm/db/model/EntityTable;
    iget-object v1, p0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->mTableManager:Lcom/litesuits/orm/db/TableManager;

    iget-object v2, p1, Lcom/litesuits/orm/db/model/EntityTable;->name:Ljava/lang/String;

    iget-object v3, v0, Lcom/litesuits/orm/db/model/EntityTable;->name:Ljava/lang/String;

    invoke-virtual {v1, v2, v3}, Lcom/litesuits/orm/db/TableManager;->isSQLMapTableCreated(Ljava/lang/String;Ljava/lang/String;)Z

    move-result v1

    if-eqz v1, :cond_5b

    .line 401
    invoke-static {p1, v0, p2}, Lcom/litesuits/orm/db/assit/SQLBuilder;->buildQueryRelationSql(Lcom/litesuits/orm/db/model/EntityTable;Lcom/litesuits/orm/db/model/EntityTable;Ljava/lang/Object;)Lcom/litesuits/orm/db/assit/SQLStatement;

    move-result-object v1

    .line 402
    .local v1, "relationSql":Lcom/litesuits/orm/db/assit/SQLStatement;
    new-instance v2, Lcom/litesuits/orm/db/model/RelationKey;

    invoke-direct {v2}, Lcom/litesuits/orm/db/model/RelationKey;-><init>()V

    .line 403
    .local v2, "relation":Lcom/litesuits/orm/db/model/RelationKey;
    new-instance v3, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl$6;

    invoke-direct {v3, p0, v2, p1, v0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl$6;-><init>(Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;Lcom/litesuits/orm/db/model/RelationKey;Lcom/litesuits/orm/db/model/EntityTable;Lcom/litesuits/orm/db/model/EntityTable;)V

    invoke-static {p5, v1, v3}, Lcom/litesuits/orm/db/assit/Querier;->doQuery(Landroid/database/sqlite/SQLiteDatabase;Lcom/litesuits/orm/db/assit/SQLStatement;Lcom/litesuits/orm/db/assit/Querier$CursorParser;)Ljava/lang/Object;

    .line 411
    invoke-virtual {v2}, Lcom/litesuits/orm/db/model/RelationKey;->isOK()Z

    move-result v3

    if-eqz v3, :cond_5b

    .line 412
    new-instance v3, Ljava/lang/StringBuilder;

    invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V

    iget-object v4, v0, Lcom/litesuits/orm/db/model/EntityTable;->name:Ljava/lang/String;

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget-object v4, v2, Lcom/litesuits/orm/db/model/RelationKey;->key2:Ljava/lang/String;

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    .line 413
    .local v3, "key":Ljava/lang/String;
    invoke-virtual {p7, v3}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v4

    .line 414
    .local v4, "obj2":Ljava/lang/Object;
    if-nez v4, :cond_53

    .line 415
    iget-object v5, v2, Lcom/litesuits/orm/db/model/RelationKey;->key2:Ljava/lang/String;

    invoke-static {v0, v5}, Lcom/litesuits/orm/db/assit/SQLBuilder;->buildQueryMapEntitySql(Lcom/litesuits/orm/db/model/EntityTable;Ljava/lang/Object;)Lcom/litesuits/orm/db/assit/SQLStatement;

    move-result-object v5

    .line 416
    .local v5, "entitySql":Lcom/litesuits/orm/db/assit/SQLStatement;
    iget-object v6, v0, Lcom/litesuits/orm/db/model/EntityTable;->claxx:Ljava/lang/Class;

    invoke-virtual {v5, p5, v6}, Lcom/litesuits/orm/db/assit/SQLStatement;->queryOneEntity(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/Class;)Ljava/lang/Object;

    move-result-object v4

    .line 417
    invoke-virtual {p7, v3, v4}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 419
    .end local v5    # "entitySql":Lcom/litesuits/orm/db/assit/SQLStatement;
    :cond_53
    if-eqz v4, :cond_5b

    .line 420
    invoke-static {p4, p3, v4}, Lcom/litesuits/orm/db/utils/FieldUtil;->set(Ljava/lang/reflect/Field;Ljava/lang/Object;Ljava/lang/Object;)V

    .line 421
    invoke-direct {p0, v4, p5, p6, p7}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->queryForMappingRecursive(Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;Ljava/util/HashMap;)V

    .line 425
    .end local v1    # "relationSql":Lcom/litesuits/orm/db/assit/SQLStatement;
    .end local v2    # "relation":Lcom/litesuits/orm/db/model/RelationKey;
    .end local v3    # "key":Ljava/lang/String;
    .end local v4    # "obj2":Ljava/lang/Object;
    :cond_5b
    return-void
.end method

.method private saveCollection(Ljava/util/Collection;)I
    .registers 5
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/util/Collection<",
            "TT;>;)I"
        }
    .end annotation

    .line 516
    .local p1, "collection":Ljava/util/Collection;, "Ljava/util/Collection<TT;>;"
    invoke-static {p1}, Lcom/litesuits/orm/db/assit/Checker;->isEmpty(Ljava/util/Collection;)Z

    move-result v0

    if-nez v0, :cond_1e

    .line 517
    iget-object v0, p0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->mHelper:Lcom/litesuits/orm/db/assit/SQLiteHelper;

    invoke-virtual {v0}, Lcom/litesuits/orm/db/assit/SQLiteHelper;->getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;

    move-result-object v0

    .line 518
    .local v0, "db":Landroid/database/sqlite/SQLiteDatabase;
    new-instance v1, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl$9;

    invoke-direct {v1, p0, p1}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl$9;-><init>(Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;Ljava/util/Collection;)V

    invoke-static {v0, v1}, Lcom/litesuits/orm/db/assit/Transaction;->execute(Landroid/database/sqlite/SQLiteDatabase;Lcom/litesuits/orm/db/assit/Transaction$Worker;)Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/lang/Integer;

    .line 540
    .local v1, "rowID":Ljava/lang/Integer;
    if-eqz v1, :cond_1e

    .line 541
    invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I

    move-result v2

    return v2

    .line 544
    .end local v0    # "db":Landroid/database/sqlite/SQLiteDatabase;
    .end local v1    # "rowID":Ljava/lang/Integer;
    :cond_1e
    const/4 v0, -0x1

    return v0
.end method

.method private updateCollection(Ljava/util/Collection;Lcom/litesuits/orm/db/model/ColumnsValue;Lcom/litesuits/orm/db/model/ConflictAlgorithm;)I
    .registers 7
    .param p2, "cvs"    # Lcom/litesuits/orm/db/model/ColumnsValue;
    .param p3, "conflictAlgorithm"    # Lcom/litesuits/orm/db/model/ConflictAlgorithm;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/util/Collection<",
            "TT;>;",
            "Lcom/litesuits/orm/db/model/ColumnsValue;",
            "Lcom/litesuits/orm/db/model/ConflictAlgorithm;",
            ")I"
        }
    .end annotation

    .line 595
    .local p1, "collection":Ljava/util/Collection;, "Ljava/util/Collection<TT;>;"
    invoke-static {p1}, Lcom/litesuits/orm/db/assit/Checker;->isEmpty(Ljava/util/Collection;)Z

    move-result v0

    if-nez v0, :cond_1e

    .line 596
    iget-object v0, p0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->mHelper:Lcom/litesuits/orm/db/assit/SQLiteHelper;

    invoke-virtual {v0}, Lcom/litesuits/orm/db/assit/SQLiteHelper;->getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;

    move-result-object v0

    .line 597
    .local v0, "db":Landroid/database/sqlite/SQLiteDatabase;
    new-instance v1, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl$11;

    invoke-direct {v1, p0, p1, p2, p3}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl$11;-><init>(Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;Ljava/util/Collection;Lcom/litesuits/orm/db/model/ColumnsValue;Lcom/litesuits/orm/db/model/ConflictAlgorithm;)V

    invoke-static {v0, v1}, Lcom/litesuits/orm/db/assit/Transaction;->execute(Landroid/database/sqlite/SQLiteDatabase;Lcom/litesuits/orm/db/assit/Transaction$Worker;)Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/lang/Integer;

    .line 618
    .local v1, "rowID":Ljava/lang/Integer;
    if-eqz v1, :cond_1e

    .line 619
    invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I

    move-result v2

    return v2

    .line 622
    .end local v0    # "db":Landroid/database/sqlite/SQLiteDatabase;
    .end local v1    # "rowID":Ljava/lang/Integer;
    :cond_1e
    const/4 v0, -0x1

    return v0
.end method

.method private updateRecursive(Lcom/litesuits/orm/db/assit/SQLStatement;Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;Ljava/util/HashMap;)I
    .registers 15
    .param p1, "stmt"    # Lcom/litesuits/orm/db/assit/SQLStatement;
    .param p2, "obj1"    # Ljava/lang/Object;
    .param p3, "db"    # Landroid/database/sqlite/SQLiteDatabase;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Lcom/litesuits/orm/db/assit/SQLStatement;",
            "Ljava/lang/Object;",
            "Landroid/database/sqlite/SQLiteDatabase;",
            "Ljava/util/HashMap<",
            "Ljava/lang/String;",
            "Ljava/lang/Integer;",
            ">;)I"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation

    .line 736
    .local p4, "handleMap":Ljava/util/HashMap;, "Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Integer;>;"
    invoke-static {p2}, Lcom/litesuits/orm/db/TableManager;->getTable(Ljava/lang/Object;)Lcom/litesuits/orm/db/model/EntityTable;

    move-result-object v0

    .line 737
    .local v0, "table1":Lcom/litesuits/orm/db/model/EntityTable;
    iget-object v1, v0, Lcom/litesuits/orm/db/model/EntityTable;->key:Lcom/litesuits/orm/db/model/Primarykey;

    iget-object v1, v1, Lcom/litesuits/orm/db/model/Primarykey;->field:Ljava/lang/reflect/Field;

    invoke-static {v1, p2}, Lcom/litesuits/orm/db/utils/FieldUtil;->get(Ljava/lang/reflect/Field;Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v1

    .line 740
    .local v1, "key1":Ljava/lang/Object;
    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    iget-object v3, v0, Lcom/litesuits/orm/db/model/EntityTable;->name:Ljava/lang/String;

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {p4, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v2

    if-eqz v2, :cond_25

    .line 741
    const/4 v2, -0x1

    return v2

    .line 744
    :cond_25
    invoke-virtual {p1, p3}, Lcom/litesuits/orm/db/assit/SQLStatement;->execUpdate(Landroid/database/sqlite/SQLiteDatabase;)I

    move-result v2

    .line 745
    .local v2, "rowID":I
    iget-object v3, v0, Lcom/litesuits/orm/db/model/EntityTable;->key:Lcom/litesuits/orm/db/model/Primarykey;

    iget-object v3, v3, Lcom/litesuits/orm/db/model/Primarykey;->field:Ljava/lang/reflect/Field;

    invoke-static {v3, p2}, Lcom/litesuits/orm/db/utils/FieldUtil;->get(Ljava/lang/reflect/Field;Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v1

    .line 746
    new-instance v3, Ljava/lang/StringBuilder;

    invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V

    iget-object v4, v0, Lcom/litesuits/orm/db/model/EntityTable;->name:Ljava/lang/String;

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    const/4 v4, 0x1

    invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v4

    invoke-virtual {p4, v3, v4}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 749
    const/4 v8, 0x1

    move-object v4, p0

    move-object v5, v1

    move-object v6, p2

    move-object v7, p3

    move-object v9, p4

    invoke-direct/range {v4 .. v9}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->handleMapping(Ljava/lang/Object;Ljava/lang/Object;Landroid/database/sqlite/SQLiteDatabase;ZLjava/util/HashMap;)V

    .line 750
    return v2
.end method


# virtual methods
.method public cascade()Lcom/litesuits/orm/LiteOrm;
    .registers 1

    .line 52
    return-object p0
.end method

.method public delete(Lcom/litesuits/orm/db/assit/WhereBuilder;)I
    .registers 7
    .param p1, "where"    # Lcom/litesuits/orm/db/assit/WhereBuilder;

    .line 246
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->acquireReference()V

    .line 248
    :try_start_3
    invoke-virtual {p1}, Lcom/litesuits/orm/db/assit/WhereBuilder;->getTableClass()Ljava/lang/Class;

    move-result-object v0

    invoke-static {v0}, Lcom/litesuits/orm/db/TableManager;->getTable(Ljava/lang/Class;)Lcom/litesuits/orm/db/model/EntityTable;

    move-result-object v0

    .line 249
    .local v0, "table":Lcom/litesuits/orm/db/model/EntityTable;
    invoke-virtual {p1}, Lcom/litesuits/orm/db/assit/WhereBuilder;->getTableClass()Ljava/lang/Class;

    move-result-object v1

    invoke-static {v1}, Lcom/litesuits/orm/db/assit/QueryBuilder;->create(Ljava/lang/Class;)Lcom/litesuits/orm/db/assit/QueryBuilder;

    move-result-object v1

    const/4 v2, 0x1

    new-array v2, v2, [Ljava/lang/String;

    const/4 v3, 0x0

    iget-object v4, v0, Lcom/litesuits/orm/db/model/EntityTable;->key:Lcom/litesuits/orm/db/model/Primarykey;

    iget-object v4, v4, Lcom/litesuits/orm/db/model/Primarykey;->column:Ljava/lang/String;

    aput-object v4, v2, v3

    invoke-virtual {v1, v2}, Lcom/litesuits/orm/db/assit/QueryBuilder;->columns([Ljava/lang/String;)Lcom/litesuits/orm/db/assit/QueryBuilder;

    move-result-object v1

    invoke-virtual {v1, p1}, Lcom/litesuits/orm/db/assit/QueryBuilder;->where(Lcom/litesuits/orm/db/assit/WhereBuilder;)Lcom/litesuits/orm/db/assit/QueryBuilder;

    move-result-object v1

    invoke-virtual {p0, v1}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->query(Lcom/litesuits/orm/db/assit/QueryBuilder;)Ljava/util/ArrayList;

    move-result-object v1

    .line 253
    .local v1, "list":Ljava/util/List;, "Ljava/util/List<*>;"
    invoke-direct {p0, v1}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->deleteCollectionIfTableHasCreated(Ljava/util/Collection;)I
    :try_end_2c
    .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_2c} :catch_30
    .catchall {:try_start_3 .. :try_end_2c} :catchall_2e

    .line 257
    nop

    .end local v0    # "table":Lcom/litesuits/orm/db/model/EntityTable;
    .end local v1    # "list":Ljava/util/List;, "Ljava/util/List<*>;"
    goto :goto_35

    :catchall_2e
    move-exception v0

    goto :goto_3b

    .line 254
    :catch_30
    move-exception v0

    .line 255
    .local v0, "e":Ljava/lang/Exception;
    :try_start_31
    invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
    :try_end_34
    .catchall {:try_start_31 .. :try_end_34} :catchall_2e

    .line 257
    .end local v0    # "e":Ljava/lang/Exception;
    nop

    :goto_35
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    .line 258
    nop

    .line 259
    const/4 v0, -0x1

    return v0

    .line 257
    :goto_3b
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    throw v0
.end method

.method public delete(Ljava/lang/Class;)I
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/lang/Class<",
            "TT;>;)I"
        }
    .end annotation

    .line 212
    .local p1, "claxx":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
    invoke-virtual {p0, p1}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->deleteAll(Ljava/lang/Class;)I

    move-result v0

    return v0
.end method

.method public delete(Ljava/lang/Class;JJLjava/lang/String;)I
    .registers 12
    .param p2, "start"    # J
    .param p4, "end"    # J
    .param p6, "orderAscColumn"    # Ljava/lang/String;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/lang/Class<",
            "TT;>;JJ",
            "Ljava/lang/String;",
            ")I"
        }
    .end annotation

    .line 280
    .local p1, "claxx":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->acquireReference()V

    .line 282
    const-wide/16 v0, 0x0

    cmp-long v2, p2, v0

    if-ltz v2, :cond_5f

    cmp-long v2, p4, p2

    if-ltz v2, :cond_5f

    .line 286
    cmp-long v2, p2, v0

    if-eqz v2, :cond_14

    .line 287
    const-wide/16 v0, 0x1

    sub-long/2addr p2, v0

    .line 289
    :cond_14
    const-wide/32 v0, 0x7fffffff

    cmp-long v2, p4, v0

    if-nez v2, :cond_1e

    const-wide/16 v0, -0x1

    goto :goto_20

    :cond_1e
    sub-long v0, p4, p2

    :goto_20
    move-wide p4, v0

    .line 290
    :try_start_21
    invoke-static {p1}, Lcom/litesuits/orm/db/TableManager;->getTable(Ljava/lang/Class;)Lcom/litesuits/orm/db/model/EntityTable;

    move-result-object v0

    .line 291
    .local v0, "table":Lcom/litesuits/orm/db/model/EntityTable;
    invoke-static {p1}, Lcom/litesuits/orm/db/assit/QueryBuilder;->create(Ljava/lang/Class;)Lcom/litesuits/orm/db/assit/QueryBuilder;

    move-result-object v1

    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v2, p2, p3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    const-string v3, ","

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2, p4, p5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v1, v2}, Lcom/litesuits/orm/db/assit/QueryBuilder;->limit(Ljava/lang/String;)Lcom/litesuits/orm/db/assit/QueryBuilder;

    move-result-object v1

    invoke-virtual {v1, p6}, Lcom/litesuits/orm/db/assit/QueryBuilder;->appendOrderAscBy(Ljava/lang/String;)Lcom/litesuits/orm/db/assit/QueryBuilder;

    move-result-object v1

    const/4 v2, 0x1

    new-array v2, v2, [Ljava/lang/String;

    const/4 v3, 0x0

    iget-object v4, v0, Lcom/litesuits/orm/db/model/EntityTable;->key:Lcom/litesuits/orm/db/model/Primarykey;

    iget-object v4, v4, Lcom/litesuits/orm/db/model/Primarykey;->column:Ljava/lang/String;

    aput-object v4, v2, v3

    invoke-virtual {v1, v2}, Lcom/litesuits/orm/db/assit/QueryBuilder;->columns([Ljava/lang/String;)Lcom/litesuits/orm/db/assit/QueryBuilder;

    move-result-object v1

    invoke-virtual {p0, v1}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->query(Lcom/litesuits/orm/db/assit/QueryBuilder;)Ljava/util/ArrayList;

    move-result-object v1

    .line 296
    .local v1, "list":Ljava/util/List;, "Ljava/util/List<TT;>;"
    invoke-virtual {p0, v1}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->delete(Ljava/util/Collection;)I

    move-result v2
    :try_end_5b
    .catchall {:try_start_21 .. :try_end_5b} :catchall_68

    .line 298
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    return v2

    .line 283
    .end local v0    # "table":Lcom/litesuits/orm/db/model/EntityTable;
    .end local v1    # "list":Ljava/util/List;, "Ljava/util/List<TT;>;"
    :cond_5f
    :try_start_5f
    new-instance v0, Ljava/lang/RuntimeException;

    const-string/jumbo v1, "start must >=0 and smaller than end"

    invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V

    .end local p1    # "claxx":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
    .end local p2    # "start":J
    .end local p4    # "end":J
    .end local p6    # "orderAscColumn":Ljava/lang/String;
    throw v0
    :try_end_68
    .catchall {:try_start_5f .. :try_end_68} :catchall_68

    .line 298
    .restart local p1    # "claxx":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
    .restart local p2    # "start":J
    .restart local p4    # "end":J
    .restart local p6    # "orderAscColumn":Ljava/lang/String;
    :catchall_68
    move-exception v0

    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    throw v0
.end method

.method public delete(Ljava/lang/Class;Lcom/litesuits/orm/db/assit/WhereBuilder;)I
    .registers 8
    .param p2, "where"    # Lcom/litesuits/orm/db/assit/WhereBuilder;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/lang/Class<",
            "TT;>;",
            "Lcom/litesuits/orm/db/assit/WhereBuilder;",
            ")I"
        }
    .end annotation

    .line 231
    .local p1, "claxx":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->acquireReference()V

    .line 233
    :try_start_3
    invoke-static {p1}, Lcom/litesuits/orm/db/TableManager;->getTable(Ljava/lang/Class;)Lcom/litesuits/orm/db/model/EntityTable;

    move-result-object v0

    .line 234
    .local v0, "table":Lcom/litesuits/orm/db/model/EntityTable;
    invoke-static {p1}, Lcom/litesuits/orm/db/assit/QueryBuilder;->create(Ljava/lang/Class;)Lcom/litesuits/orm/db/assit/QueryBuilder;

    move-result-object v1

    const/4 v2, 0x1

    new-array v2, v2, [Ljava/lang/String;

    const/4 v3, 0x0

    iget-object v4, v0, Lcom/litesuits/orm/db/model/EntityTable;->key:Lcom/litesuits/orm/db/model/Primarykey;

    iget-object v4, v4, Lcom/litesuits/orm/db/model/Primarykey;->column:Ljava/lang/String;

    aput-object v4, v2, v3

    invoke-virtual {v1, v2}, Lcom/litesuits/orm/db/assit/QueryBuilder;->columns([Ljava/lang/String;)Lcom/litesuits/orm/db/assit/QueryBuilder;

    move-result-object v1

    invoke-virtual {v1, p2}, Lcom/litesuits/orm/db/assit/QueryBuilder;->where(Lcom/litesuits/orm/db/assit/WhereBuilder;)Lcom/litesuits/orm/db/assit/QueryBuilder;

    move-result-object v1

    invoke-virtual {p0, v1}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->query(Lcom/litesuits/orm/db/assit/QueryBuilder;)Ljava/util/ArrayList;

    move-result-object v1

    .line 235
    .local v1, "list":Ljava/util/List;, "Ljava/util/List<TT;>;"
    invoke-virtual {p0, v1}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->delete(Ljava/util/Collection;)I
    :try_end_24
    .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_24} :catch_28
    .catchall {:try_start_3 .. :try_end_24} :catchall_26

    .line 239
    nop

    .end local v0    # "table":Lcom/litesuits/orm/db/model/EntityTable;
    .end local v1    # "list":Ljava/util/List;, "Ljava/util/List<TT;>;"
    goto :goto_2d

    :catchall_26
    move-exception v0

    goto :goto_33

    .line 236
    :catch_28
    move-exception v0

    .line 237
    .local v0, "e":Ljava/lang/Exception;
    :try_start_29
    invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
    :try_end_2c
    .catchall {:try_start_29 .. :try_end_2c} :catchall_26

    .line 239
    .end local v0    # "e":Ljava/lang/Exception;
    nop

    :goto_2d
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    .line 240
    nop

    .line 241
    const/4 v0, -0x1

    return v0

    .line 239
    :goto_33
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    throw v0
.end method

.method public delete(Ljava/lang/Object;)I
    .registers 5
    .param p1, "entity"    # Ljava/lang/Object;

    .line 189
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->acquireReference()V

    .line 191
    :try_start_3
    iget-object v0, p0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->mHelper:Lcom/litesuits/orm/db/assit/SQLiteHelper;

    invoke-virtual {v0}, Lcom/litesuits/orm/db/assit/SQLiteHelper;->getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;

    move-result-object v0

    .line 192
    .local v0, "db":Landroid/database/sqlite/SQLiteDatabase;
    new-instance v1, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl$4;

    invoke-direct {v1, p0, p1}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl$4;-><init>(Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;Ljava/lang/Object;)V

    invoke-static {v0, v1}, Lcom/litesuits/orm/db/assit/Transaction;->execute(Landroid/database/sqlite/SQLiteDatabase;Lcom/litesuits/orm/db/assit/Transaction$Worker;)Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/lang/Integer;

    .line 199
    .local v1, "rowID":Ljava/lang/Integer;
    if-eqz v1, :cond_1e

    .line 200
    invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I

    move-result v2
    :try_end_1a
    .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_1a} :catch_21
    .catchall {:try_start_3 .. :try_end_1a} :catchall_1f

    .line 205
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    return v2

    .line 199
    .end local v0    # "db":Landroid/database/sqlite/SQLiteDatabase;
    .end local v1    # "rowID":Ljava/lang/Integer;
    :cond_1e
    goto :goto_25

    .line 205
    :catchall_1f
    move-exception v0

    goto :goto_2b

    .line 202
    :catch_21
    move-exception v0

    .line 203
    .local v0, "e":Ljava/lang/Exception;
    :try_start_22
    invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
    :try_end_25
    .catchall {:try_start_22 .. :try_end_25} :catchall_1f

    .line 205
    .end local v0    # "e":Ljava/lang/Exception;
    :goto_25
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    .line 206
    nop

    .line 207
    const/4 v0, -0x1

    return v0

    .line 205
    :goto_2b
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    throw v0
.end method

.method public delete(Ljava/util/Collection;)I
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/util/Collection<",
            "TT;>;)I"
        }
    .end annotation

    .line 218
    .local p1, "collection":Ljava/util/Collection;, "Ljava/util/Collection<TT;>;"
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->acquireReference()V

    .line 220
    :try_start_3
    invoke-direct {p0, p1}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->deleteCollectionIfTableHasCreated(Ljava/util/Collection;)I

    move-result v0
    :try_end_7
    .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_7} :catch_d
    .catchall {:try_start_3 .. :try_end_7} :catchall_b

    .line 224
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    return v0

    :catchall_b
    move-exception v0

    goto :goto_17

    .line 221
    :catch_d
    move-exception v0

    .line 222
    .local v0, "e":Ljava/lang/Exception;
    :try_start_e
    invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
    :try_end_11
    .catchall {:try_start_e .. :try_end_11} :catchall_b

    .line 224
    .end local v0    # "e":Ljava/lang/Exception;
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    .line 225
    nop

    .line 226
    const/4 v0, -0x1

    return v0

    .line 224
    :goto_17
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    throw v0
.end method

.method public deleteAll(Ljava/lang/Class;)I
    .registers 7
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/lang/Class<",
            "TT;>;)I"
        }
    .end annotation

    .line 264
    .local p1, "claxx":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->acquireReference()V

    .line 266
    :try_start_3
    invoke-static {p1}, Lcom/litesuits/orm/db/TableManager;->getTable(Ljava/lang/Class;)Lcom/litesuits/orm/db/model/EntityTable;

    move-result-object v0

    .line 267
    .local v0, "table":Lcom/litesuits/orm/db/model/EntityTable;
    invoke-static {p1}, Lcom/litesuits/orm/db/assit/QueryBuilder;->create(Ljava/lang/Class;)Lcom/litesuits/orm/db/assit/QueryBuilder;

    move-result-object v1

    const/4 v2, 0x1

    new-array v2, v2, [Ljava/lang/String;

    const/4 v3, 0x0

    iget-object v4, v0, Lcom/litesuits/orm/db/model/EntityTable;->key:Lcom/litesuits/orm/db/model/Primarykey;

    iget-object v4, v4, Lcom/litesuits/orm/db/model/Primarykey;->column:Ljava/lang/String;

    aput-object v4, v2, v3

    invoke-virtual {v1, v2}, Lcom/litesuits/orm/db/assit/QueryBuilder;->columns([Ljava/lang/String;)Lcom/litesuits/orm/db/assit/QueryBuilder;

    move-result-object v1

    invoke-virtual {p0, v1}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->query(Lcom/litesuits/orm/db/assit/QueryBuilder;)Ljava/util/ArrayList;

    move-result-object v1

    .line 268
    .local v1, "list":Ljava/util/List;, "Ljava/util/List<TT;>;"
    invoke-virtual {p0, v1}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->delete(Ljava/util/Collection;)I

    move-result v2
    :try_end_21
    .catchall {:try_start_3 .. :try_end_21} :catchall_25

    .line 270
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    return v2

    .end local v0    # "table":Lcom/litesuits/orm/db/model/EntityTable;
    .end local v1    # "list":Ljava/util/List;, "Ljava/util/List<TT;>;"
    :catchall_25
    move-exception v0

    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    throw v0
.end method

.method public insert(Ljava/util/Collection;)I
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/util/Collection<",
            "TT;>;)I"
        }
    .end annotation

    .line 112
    .local p1, "collection":Ljava/util/Collection;, "Ljava/util/Collection<TT;>;"
    const/4 v0, 0x0

    invoke-virtual {p0, p1, v0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->insert(Ljava/util/Collection;Lcom/litesuits/orm/db/model/ConflictAlgorithm;)I

    move-result v0

    return v0
.end method

.method public insert(Ljava/util/Collection;Lcom/litesuits/orm/db/model/ConflictAlgorithm;)I
    .registers 4
    .param p2, "conflictAlgorithm"    # Lcom/litesuits/orm/db/model/ConflictAlgorithm;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/util/Collection<",
            "TT;>;",
            "Lcom/litesuits/orm/db/model/ConflictAlgorithm;",
            ")I"
        }
    .end annotation

    .line 117
    .local p1, "collection":Ljava/util/Collection;, "Ljava/util/Collection<TT;>;"
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->acquireReference()V

    .line 119
    :try_start_3
    invoke-direct {p0, p1, p2}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->insertCollection(Ljava/util/Collection;Lcom/litesuits/orm/db/model/ConflictAlgorithm;)I

    move-result v0
    :try_end_7
    .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_7} :catch_d
    .catchall {:try_start_3 .. :try_end_7} :catchall_b

    .line 123
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    return v0

    :catchall_b
    move-exception v0

    goto :goto_17

    .line 120
    :catch_d
    move-exception v0

    .line 121
    .local v0, "e":Ljava/lang/Exception;
    :try_start_e
    invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
    :try_end_11
    .catchall {:try_start_e .. :try_end_11} :catchall_b

    .line 123
    .end local v0    # "e":Ljava/lang/Exception;
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    .line 124
    nop

    .line 125
    const/4 v0, -0x1

    return v0

    .line 123
    :goto_17
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    throw v0
.end method

.method public insert(Ljava/lang/Object;)J
    .registers 4
    .param p1, "entity"    # Ljava/lang/Object;

    .line 85
    const/4 v0, 0x0

    invoke-virtual {p0, p1, v0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->insert(Ljava/lang/Object;Lcom/litesuits/orm/db/model/ConflictAlgorithm;)J

    move-result-wide v0

    return-wide v0
.end method

.method public insert(Ljava/lang/Object;Lcom/litesuits/orm/db/model/ConflictAlgorithm;)J
    .registers 7
    .param p1, "entity"    # Ljava/lang/Object;
    .param p2, "conflictAlgorithm"    # Lcom/litesuits/orm/db/model/ConflictAlgorithm;

    .line 90
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->acquireReference()V

    .line 92
    const-wide/16 v0, -0x1

    :try_start_5
    iget-object v2, p0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->mHelper:Lcom/litesuits/orm/db/assit/SQLiteHelper;

    invoke-virtual {v2}, Lcom/litesuits/orm/db/assit/SQLiteHelper;->getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;

    move-result-object v2

    .line 93
    .local v2, "db":Landroid/database/sqlite/SQLiteDatabase;
    new-instance v3, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl$2;

    invoke-direct {v3, p0, p1, p2}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl$2;-><init>(Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;Ljava/lang/Object;Lcom/litesuits/orm/db/model/ConflictAlgorithm;)V

    invoke-static {v2, v3}, Lcom/litesuits/orm/db/assit/Transaction;->execute(Landroid/database/sqlite/SQLiteDatabase;Lcom/litesuits/orm/db/assit/Transaction$Worker;)Ljava/lang/Object;

    move-result-object v3

    check-cast v3, Ljava/lang/Long;

    .line 101
    .local v3, "rowID":Ljava/lang/Long;
    if-nez v3, :cond_19

    goto :goto_1d

    :cond_19
    invoke-virtual {v3}, Ljava/lang/Long;->longValue()J

    move-result-wide v0
    :try_end_1d
    .catch Ljava/lang/Exception; {:try_start_5 .. :try_end_1d} :catch_23
    .catchall {:try_start_5 .. :try_end_1d} :catchall_21

    .line 105
    :goto_1d
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    return-wide v0

    .end local v2    # "db":Landroid/database/sqlite/SQLiteDatabase;
    .end local v3    # "rowID":Ljava/lang/Long;
    :catchall_21
    move-exception v0

    goto :goto_2c

    .line 102
    :catch_23
    move-exception v2

    .line 103
    .local v2, "e":Ljava/lang/Exception;
    :try_start_24
    invoke-virtual {v2}, Ljava/lang/Exception;->printStackTrace()V
    :try_end_27
    .catchall {:try_start_24 .. :try_end_27} :catchall_21

    .line 105
    .end local v2    # "e":Ljava/lang/Exception;
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    .line 106
    nop

    .line 107
    return-wide v0

    .line 105
    :goto_2c
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    throw v0
.end method

.method public query(Lcom/litesuits/orm/db/assit/QueryBuilder;)Ljava/util/ArrayList;
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/litesuits/orm/db/assit/QueryBuilder<",
            "TT;>;)",
            "Ljava/util/ArrayList<",
            "TT;>;"
        }
    .end annotation

    .line 309
    .local p1, "qb":Lcom/litesuits/orm/db/assit/QueryBuilder;, "Lcom/litesuits/orm/db/assit/QueryBuilder<TT;>;"
    invoke-virtual {p1}, Lcom/litesuits/orm/db/assit/QueryBuilder;->getQueryClass()Ljava/lang/Class;

    move-result-object v0

    invoke-direct {p0, v0, p1}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->checkTableAndQuery(Ljava/lang/Class;Lcom/litesuits/orm/db/assit/QueryBuilder;)Ljava/util/ArrayList;

    move-result-object v0

    return-object v0
.end method

.method public query(Ljava/lang/Class;)Ljava/util/ArrayList;
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/lang/Class<",
            "TT;>;)",
            "Ljava/util/ArrayList<",
            "TT;>;"
        }
    .end annotation

    .line 304
    .local p1, "claxx":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
    new-instance v0, Lcom/litesuits/orm/db/assit/QueryBuilder;

    invoke-direct {v0, p1}, Lcom/litesuits/orm/db/assit/QueryBuilder;-><init>(Ljava/lang/Class;)V

    invoke-direct {p0, p1, v0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->checkTableAndQuery(Ljava/lang/Class;Lcom/litesuits/orm/db/assit/QueryBuilder;)Ljava/util/ArrayList;

    move-result-object v0

    return-object v0
.end method

.method public queryById(JLjava/lang/Class;)Ljava/lang/Object;
    .registers 5
    .param p1, "id"    # J
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(J",
            "Ljava/lang/Class<",
            "TT;>;)TT;"
        }
    .end annotation

    .line 314
    .local p3, "claxx":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
    invoke-static {p1, p2}, Ljava/lang/String;->valueOf(J)Ljava/lang/String;

    move-result-object v0

    invoke-virtual {p0, v0, p3}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->queryById(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;

    move-result-object v0

    return-object v0
.end method

.method public queryById(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
    .registers 7
    .param p1, "id"    # Ljava/lang/String;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/lang/String;",
            "Ljava/lang/Class<",
            "TT;>;)TT;"
        }
    .end annotation

    .line 319
    .local p2, "claxx":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
    invoke-static {p2}, Lcom/litesuits/orm/db/TableManager;->getTable(Ljava/lang/Class;)Lcom/litesuits/orm/db/model/EntityTable;

    move-result-object v0

    .line 320
    .local v0, "table":Lcom/litesuits/orm/db/model/EntityTable;
    new-instance v1, Lcom/litesuits/orm/db/assit/QueryBuilder;

    invoke-direct {v1, p2}, Lcom/litesuits/orm/db/assit/QueryBuilder;-><init>(Ljava/lang/Class;)V

    iget-object v2, v0, Lcom/litesuits/orm/db/model/EntityTable;->key:Lcom/litesuits/orm/db/model/Primarykey;

    iget-object v2, v2, Lcom/litesuits/orm/db/model/Primarykey;->column:Ljava/lang/String;

    invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v3

    invoke-virtual {v1, v2, v3}, Lcom/litesuits/orm/db/assit/QueryBuilder;->whereEquals(Ljava/lang/String;Ljava/lang/Object;)Lcom/litesuits/orm/db/assit/QueryBuilder;

    move-result-object v1

    invoke-direct {p0, p2, v1}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->checkTableAndQuery(Ljava/lang/Class;Lcom/litesuits/orm/db/assit/QueryBuilder;)Ljava/util/ArrayList;

    move-result-object v1

    .line 322
    .local v1, "list":Ljava/util/ArrayList;, "Ljava/util/ArrayList<TT;>;"
    invoke-static {v1}, Lcom/litesuits/orm/db/assit/Checker;->isEmpty(Ljava/util/Collection;)Z

    move-result v2

    if-nez v2, :cond_25

    .line 323
    const/4 v2, 0x0

    invoke-virtual {v1, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;

    move-result-object v2

    return-object v2

    .line 325
    :cond_25
    const/4 v2, 0x0

    return-object v2
.end method

.method public save(Ljava/util/Collection;)I
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/util/Collection<",
            "TT;>;)I"
        }
    .end annotation

    .line 75
    .local p1, "collection":Ljava/util/Collection;, "Ljava/util/Collection<TT;>;"
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->acquireReference()V

    .line 77
    :try_start_3
    invoke-direct {p0, p1}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->saveCollection(Ljava/util/Collection;)I

    move-result v0
    :try_end_7
    .catchall {:try_start_3 .. :try_end_7} :catchall_b

    .line 79
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    return v0

    :catchall_b
    move-exception v0

    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    throw v0
.end method

.method public save(Ljava/lang/Object;)J
    .registers 6
    .param p1, "entity"    # Ljava/lang/Object;

    .line 57
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->acquireReference()V

    .line 59
    :try_start_3
    iget-object v0, p0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->mHelper:Lcom/litesuits/orm/db/assit/SQLiteHelper;

    invoke-virtual {v0}, Lcom/litesuits/orm/db/assit/SQLiteHelper;->getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;

    move-result-object v0

    .line 60
    .local v0, "db":Landroid/database/sqlite/SQLiteDatabase;
    new-instance v1, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl$1;

    invoke-direct {v1, p0, p1}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl$1;-><init>(Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;Ljava/lang/Object;)V

    invoke-static {v0, v1}, Lcom/litesuits/orm/db/assit/Transaction;->execute(Landroid/database/sqlite/SQLiteDatabase;Lcom/litesuits/orm/db/assit/Transaction$Worker;)Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/lang/Long;

    .line 67
    .local v1, "rowID":Ljava/lang/Long;
    if-nez v1, :cond_19

    const-wide/16 v2, -0x1

    goto :goto_1d

    :cond_19
    invoke-virtual {v1}, Ljava/lang/Long;->longValue()J

    move-result-wide v2
    :try_end_1d
    .catchall {:try_start_3 .. :try_end_1d} :catchall_21

    .line 69
    :goto_1d
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    return-wide v2

    .end local v0    # "db":Landroid/database/sqlite/SQLiteDatabase;
    .end local v1    # "rowID":Ljava/lang/Long;
    :catchall_21
    move-exception v0

    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    throw v0
.end method

.method public single()Lcom/litesuits/orm/LiteOrm;
    .registers 2

    .line 44
    iget-object v0, p0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->otherDatabase:Lcom/litesuits/orm/LiteOrm;

    if-nez v0, :cond_b

    .line 45
    new-instance v0, Lcom/litesuits/orm/db/impl/SingleSQLiteImpl;

    invoke-direct {v0, p0}, Lcom/litesuits/orm/db/impl/SingleSQLiteImpl;-><init>(Lcom/litesuits/orm/LiteOrm;)V

    iput-object v0, p0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->otherDatabase:Lcom/litesuits/orm/LiteOrm;

    .line 47
    :cond_b
    iget-object v0, p0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->otherDatabase:Lcom/litesuits/orm/LiteOrm;

    return-object v0
.end method

.method public update(Ljava/lang/Object;)I
    .registers 3
    .param p1, "entity"    # Ljava/lang/Object;

    .line 130
    const/4 v0, 0x0

    invoke-virtual {p0, p1, v0, v0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->update(Ljava/lang/Object;Lcom/litesuits/orm/db/model/ColumnsValue;Lcom/litesuits/orm/db/model/ConflictAlgorithm;)I

    move-result v0

    return v0
.end method

.method public update(Ljava/lang/Object;Lcom/litesuits/orm/db/model/ColumnsValue;Lcom/litesuits/orm/db/model/ConflictAlgorithm;)I
    .registers 7
    .param p1, "entity"    # Ljava/lang/Object;
    .param p2, "cvs"    # Lcom/litesuits/orm/db/model/ColumnsValue;
    .param p3, "conflictAlgorithm"    # Lcom/litesuits/orm/db/model/ConflictAlgorithm;

    .line 140
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->acquireReference()V

    .line 142
    const/4 v0, -0x1

    :try_start_4
    iget-object v1, p0, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->mHelper:Lcom/litesuits/orm/db/assit/SQLiteHelper;

    invoke-virtual {v1}, Lcom/litesuits/orm/db/assit/SQLiteHelper;->getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;

    move-result-object v1

    .line 143
    .local v1, "db":Landroid/database/sqlite/SQLiteDatabase;
    new-instance v2, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl$3;

    invoke-direct {v2, p0, p1, p2, p3}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl$3;-><init>(Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;Ljava/lang/Object;Lcom/litesuits/orm/db/model/ColumnsValue;Lcom/litesuits/orm/db/model/ConflictAlgorithm;)V

    invoke-static {v1, v2}, Lcom/litesuits/orm/db/assit/Transaction;->execute(Landroid/database/sqlite/SQLiteDatabase;Lcom/litesuits/orm/db/assit/Transaction$Worker;)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Ljava/lang/Integer;

    .line 152
    .local v2, "rowID":Ljava/lang/Integer;
    if-nez v2, :cond_18

    goto :goto_1c

    :cond_18
    invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I

    move-result v0
    :try_end_1c
    .catch Ljava/lang/Exception; {:try_start_4 .. :try_end_1c} :catch_22
    .catchall {:try_start_4 .. :try_end_1c} :catchall_20

    .line 156
    :goto_1c
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    return v0

    .end local v1    # "db":Landroid/database/sqlite/SQLiteDatabase;
    .end local v2    # "rowID":Ljava/lang/Integer;
    :catchall_20
    move-exception v0

    goto :goto_2b

    .line 153
    :catch_22
    move-exception v1

    .line 154
    .local v1, "e":Ljava/lang/Exception;
    :try_start_23
    invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
    :try_end_26
    .catchall {:try_start_23 .. :try_end_26} :catchall_20

    .line 156
    .end local v1    # "e":Ljava/lang/Exception;
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    .line 157
    nop

    .line 158
    return v0

    .line 156
    :goto_2b
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    throw v0
.end method

.method public update(Ljava/lang/Object;Lcom/litesuits/orm/db/model/ConflictAlgorithm;)I
    .registers 4
    .param p1, "entity"    # Ljava/lang/Object;
    .param p2, "conflictAlgorithm"    # Lcom/litesuits/orm/db/model/ConflictAlgorithm;

    .line 135
    const/4 v0, 0x0

    invoke-virtual {p0, p1, v0, p2}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->update(Ljava/lang/Object;Lcom/litesuits/orm/db/model/ColumnsValue;Lcom/litesuits/orm/db/model/ConflictAlgorithm;)I

    move-result v0

    return v0
.end method

.method public update(Ljava/util/Collection;)I
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/util/Collection<",
            "TT;>;)I"
        }
    .end annotation

    .line 163
    .local p1, "collection":Ljava/util/Collection;, "Ljava/util/Collection<TT;>;"
    const/4 v0, 0x0

    invoke-virtual {p0, p1, v0, v0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->update(Ljava/util/Collection;Lcom/litesuits/orm/db/model/ColumnsValue;Lcom/litesuits/orm/db/model/ConflictAlgorithm;)I

    move-result v0

    return v0
.end method

.method public update(Ljava/util/Collection;Lcom/litesuits/orm/db/model/ColumnsValue;Lcom/litesuits/orm/db/model/ConflictAlgorithm;)I
    .registers 5
    .param p2, "cvs"    # Lcom/litesuits/orm/db/model/ColumnsValue;
    .param p3, "conflictAlgorithm"    # Lcom/litesuits/orm/db/model/ConflictAlgorithm;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/util/Collection<",
            "TT;>;",
            "Lcom/litesuits/orm/db/model/ColumnsValue;",
            "Lcom/litesuits/orm/db/model/ConflictAlgorithm;",
            ")I"
        }
    .end annotation

    .line 173
    .local p1, "collection":Ljava/util/Collection;, "Ljava/util/Collection<TT;>;"
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->acquireReference()V

    .line 175
    :try_start_3
    invoke-direct {p0, p1, p2, p3}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->updateCollection(Ljava/util/Collection;Lcom/litesuits/orm/db/model/ColumnsValue;Lcom/litesuits/orm/db/model/ConflictAlgorithm;)I

    move-result v0
    :try_end_7
    .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_7} :catch_d
    .catchall {:try_start_3 .. :try_end_7} :catchall_b

    .line 179
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    return v0

    :catchall_b
    move-exception v0

    goto :goto_17

    .line 176
    :catch_d
    move-exception v0

    .line 177
    .local v0, "e":Ljava/lang/Exception;
    :try_start_e
    invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
    :try_end_11
    .catchall {:try_start_e .. :try_end_11} :catchall_b

    .line 179
    .end local v0    # "e":Ljava/lang/Exception;
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    .line 180
    nop

    .line 181
    const/4 v0, -0x1

    return v0

    .line 179
    :goto_17
    invoke-virtual {p0}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->releaseReference()V

    throw v0
.end method

.method public update(Ljava/util/Collection;Lcom/litesuits/orm/db/model/ConflictAlgorithm;)I
    .registers 4
    .param p2, "conflictAlgorithm"    # Lcom/litesuits/orm/db/model/ConflictAlgorithm;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/util/Collection<",
            "TT;>;",
            "Lcom/litesuits/orm/db/model/ConflictAlgorithm;",
            ")I"
        }
    .end annotation

    .line 168
    .local p1, "collection":Ljava/util/Collection;, "Ljava/util/Collection<TT;>;"
    const/4 v0, 0x0

    invoke-virtual {p0, p1, v0, p2}, Lcom/litesuits/orm/db/impl/CascadeSQLiteImpl;->update(Ljava/util/Collection;Lcom/litesuits/orm/db/model/ColumnsValue;Lcom/litesuits/orm/db/model/ConflictAlgorithm;)I

    move-result v0

    return v0
.end method