.class public final Landroidx/room/Room; .super Ljava/lang/Object; .source "Room.kt" # annotations .annotation runtime Lkotlin/Metadata; d1 = { "\u0000.\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\u0008\u0002\n\u0002\u0010\u000e\n\u0002\u0008\u0003\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0008\u0007\u0008\u00c6\u0002\u0018\u00002\u00020\u0001B\u0007\u0008\u0002\u00a2\u0006\u0002\u0010\u0002J8\u0010\u0007\u001a\u0008\u0012\u0004\u0012\u0002H\t0\u0008\"\u0008\u0008\u0000\u0010\t*\u00020\n2\u0006\u0010\u000b\u001a\u00020\u000c2\u000c\u0010\r\u001a\u0008\u0012\u0004\u0012\u0002H\t0\u000e2\u0008\u0010\u000f\u001a\u0004\u0018\u00010\u0004H\u0007J/\u0010\u0010\u001a\u0002H\t\"\u0004\u0008\u0000\u0010\t\"\u0004\u0008\u0001\u0010\u00112\u000c\u0010\r\u001a\u0008\u0012\u0004\u0012\u0002H\u00110\u000e2\u0006\u0010\u0012\u001a\u00020\u0004H\u0007\u00a2\u0006\u0002\u0010\u0013J.\u0010\u0014\u001a\u0008\u0012\u0004\u0012\u0002H\t0\u0008\"\u0008\u0008\u0000\u0010\t*\u00020\n2\u0006\u0010\u000b\u001a\u00020\u000c2\u000c\u0010\r\u001a\u0008\u0012\u0004\u0012\u0002H\t0\u000eH\u0007R\u000e\u0010\u0003\u001a\u00020\u0004X\u0082T\u00a2\u0006\u0002\n\u0000R\u000e\u0010\u0005\u001a\u00020\u0004X\u0080T\u00a2\u0006\u0002\n\u0000R\u000e\u0010\u0006\u001a\u00020\u0004X\u0086T\u00a2\u0006\u0002\n\u0000\u00a8\u0006\u0015" } d2 = { "Landroidx/room/Room;", "", "()V", "CURSOR_CONV_SUFFIX", "", "LOG_TAG", "MASTER_TABLE_NAME", "databaseBuilder", "Landroidx/room/RoomDatabase$Builder;", "T", "Landroidx/room/RoomDatabase;", "context", "Landroid/content/Context;", "klass", "Ljava/lang/Class;", "name", "getGeneratedImplementation", "C", "suffix", "(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;", "inMemoryDatabaseBuilder", "room-runtime_release" } k = 0x1 mv = { 0x1, 0x7, 0x1 } xi = 0x30 .end annotation # static fields .field private static final CURSOR_CONV_SUFFIX:Ljava/lang/String; = "_CursorConverter" .field public static final INSTANCE:Landroidx/room/Room; .field public static final LOG_TAG:Ljava/lang/String; = "ROOM" .field public static final MASTER_TABLE_NAME:Ljava/lang/String; = "room_master_table" # direct methods .method static constructor ()V .locals 1 new-instance v0, Landroidx/room/Room; invoke-direct {v0}, Landroidx/room/Room;->()V sput-object v0, Landroidx/room/Room;->INSTANCE:Landroidx/room/Room; return-void .end method .method private constructor ()V .locals 0 .line 24 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method public static final databaseBuilder(Landroid/content/Context;Ljava/lang/Class;Ljava/lang/String;)Landroidx/room/RoomDatabase$Builder; .locals 2 .annotation system Ldalvik/annotation/Signature; value = { "(", "Landroid/content/Context;", "Ljava/lang/Class<", "TT;>;", "Ljava/lang/String;", ")", "Landroidx/room/RoomDatabase$Builder<", "TT;>;" } .end annotation .annotation runtime Lkotlin/jvm/JvmStatic; .end annotation const-string v0, "context" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const-string v0, "klass" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 109 move-object v0, p2 check-cast v0, Ljava/lang/CharSequence; const/4 v1, 0x1 if-eqz v0, :cond_1 invoke-static {v0}, Lkotlin/text/StringsKt;->isBlank(Ljava/lang/CharSequence;)Z move-result v0 if-eqz v0, :cond_0 goto :goto_0 :cond_0 const/4 v0, 0x0 goto :goto_1 :cond_1 :goto_0 move v0, v1 :goto_1 xor-int/2addr v0, v1 if-eqz v0, :cond_2 .line 114 new-instance v0, Landroidx/room/RoomDatabase$Builder; invoke-direct {v0, p0, p1, p2}, Landroidx/room/RoomDatabase$Builder;->(Landroid/content/Context;Ljava/lang/Class;Ljava/lang/String;)V return-object v0 .line 109 :cond_2 new-instance p0, Ljava/lang/IllegalArgumentException; const-string p1, "Cannot build a database with null or empty name. If you are trying to create an in memory database, use Room.inMemoryDatabaseBuilder" invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {p0, p1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p0 .end method .method public static final getGeneratedImplementation(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object; .locals 11 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "TC;>;", "Ljava/lang/String;", ")TT;" } .end annotation .annotation runtime Lkotlin/jvm/JvmStatic; .end annotation const-string v0, ".canonicalName" const-string v1, "klass" invoke-static {p0, v1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const-string v1, "suffix" invoke-static {p1, v1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 42 invoke-virtual {p0}, Ljava/lang/Class;->getPackage()Ljava/lang/Package; move-result-object v1 invoke-static {v1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;)V invoke-virtual {v1}, Ljava/lang/Package;->getName()Ljava/lang/String; move-result-object v1 .line 43 invoke-virtual {p0}, Ljava/lang/Class;->getCanonicalName()Ljava/lang/String; move-result-object v2 invoke-static {v2}, Lkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;)V const-string v3, "fullPackage" .line 45 invoke-static {v1, v3}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V move-object v3, v1 check-cast v3, Ljava/lang/CharSequence; invoke-interface {v3}, Ljava/lang/CharSequence;->length()I move-result v3 const/4 v4, 0x1 if-nez v3, :cond_0 goto :goto_0 :cond_0 invoke-virtual {v1}, Ljava/lang/String;->length()I move-result v3 add-int/2addr v3, v4 invoke-virtual {v2, v3}, Ljava/lang/String;->substring(I)Ljava/lang/String; move-result-object v2 const-string v3, "this as java.lang.String).substring(startIndex)" invoke-static {v2, v3}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V :goto_0 move-object v5, v2 .line 46 new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V const/16 v6, 0x2e const/16 v7, 0x5f const/4 v8, 0x0 const/4 v9, 0x4 const/4 v10, 0x0 invoke-static/range {v5 .. v10}, Lkotlin/text/StringsKt;->replace$default(Ljava/lang/String;CCZILjava/lang/Object;)Ljava/lang/String; move-result-object v3 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 .line 48 :try_start_0 move-object v2, v1 check-cast v2, Ljava/lang/CharSequence; invoke-interface {v2}, Ljava/lang/CharSequence;->length()I move-result v2 if-nez v2, :cond_1 move-object v1, p1 goto :goto_1 .line 51 :cond_1 new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 const/16 v2, 0x2e invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 .line 54 :goto_1 invoke-virtual {p0}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader; move-result-object v2 .line 53 invoke-static {v1, v4, v2}, Ljava/lang/Class;->forName(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class; move-result-object v1 const-string v2, "null cannot be cast to non-null type java.lang.Class" invoke-static {v1, v2}, Lkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;Ljava/lang/String;)V .line 56 invoke-virtual {v1}, Ljava/lang/Class;->newInstance()Ljava/lang/Object; move-result-object p0 :try_end_0 .catch Ljava/lang/ClassNotFoundException; {:try_start_0 .. :try_end_0} :catch_2 .catch Ljava/lang/IllegalAccessException; {:try_start_0 .. :try_end_0} :catch_1 .catch Ljava/lang/InstantiationException; {:try_start_0 .. :try_end_0} :catch_0 return-object p0 .line 67 :catch_0 new-instance p1, Ljava/lang/RuntimeException; .line 68 new-instance v1, Ljava/lang/StringBuilder; const-string v2, "Failed to create an instance of " invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 .line 67 invoke-direct {p1, p0}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V throw p1 .line 63 :catch_1 new-instance p1, Ljava/lang/RuntimeException; .line 64 new-instance v1, Ljava/lang/StringBuilder; const-string v2, "Cannot access the constructor " invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 .line 63 invoke-direct {p1, p0}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V throw p1 .line 58 :catch_2 new-instance v0, Ljava/lang/RuntimeException; .line 59 new-instance v1, Ljava/lang/StringBuilder; const-string v2, "Cannot find implementation for " invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p0}, Ljava/lang/Class;->getCanonicalName()Ljava/lang/String; move-result-object p0 invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 const-string v1, ". " invoke-virtual {p0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 const-string p1, " does not exist" invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 .line 58 invoke-direct {v0, p0}, Ljava/lang/RuntimeException;->(Ljava/lang/String;)V throw v0 .end method .method public static final inMemoryDatabaseBuilder(Landroid/content/Context;Ljava/lang/Class;)Landroidx/room/RoomDatabase$Builder; .locals 2 .annotation system Ldalvik/annotation/Signature; value = { "(", "Landroid/content/Context;", "Ljava/lang/Class<", "TT;>;)", "Landroidx/room/RoomDatabase$Builder<", "TT;>;" } .end annotation .annotation runtime Lkotlin/jvm/JvmStatic; .end annotation const-string v0, "context" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const-string v0, "klass" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 89 new-instance v0, Landroidx/room/RoomDatabase$Builder; const/4 v1, 0x0 invoke-direct {v0, p0, p1, v1}, Landroidx/room/RoomDatabase$Builder;->(Landroid/content/Context;Ljava/lang/Class;Ljava/lang/String;)V return-object v0 .end method