.class public final Landroidx/room/Room; .super Ljava/lang/Object; .source "SourceFile" # 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 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 const/4 v0, 0x1 if-eqz p2, :cond_1 .line 109 invoke-static {p2}, Lkotlin/text/StringsKt;->isBlank(Ljava/lang/CharSequence;)Z move-result v1 if-eqz v1, :cond_0 goto :goto_0 :cond_0 const/4 v1, 0x0 goto :goto_1 :cond_1 :goto_0 move v1, v0 :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 10 .annotation build Landroidx/annotation/RestrictTo; value = { .enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY_GROUP:Landroidx/annotation/RestrictTo$Scope; } .end annotation .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "TC;>;", "Ljava/lang/String;", ")TT;" } .end annotation const-string v0, "klass" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V const-string v0, "suffix" invoke-static {p1, v0}, 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 v0 invoke-static {v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;)V invoke-virtual {v0}, Ljava/lang/Package;->getName()Ljava/lang/String; move-result-object v0 .line 43 invoke-virtual {p0}, Ljava/lang/Class;->getCanonicalName()Ljava/lang/String; move-result-object v1 invoke-static {v1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;)V const-string v2, "fullPackage" .line 45 invoke-static {v0, v2}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V invoke-interface {v0}, Ljava/lang/CharSequence;->length()I move-result v2 const/4 v3, 0x1 if-nez v2, :cond_0 :goto_0 move-object v4, v1 goto :goto_1 :cond_0 invoke-virtual {v0}, Ljava/lang/String;->length()I move-result v2 add-int/2addr v2, v3 invoke-virtual {v1, v2}, Ljava/lang/String;->substring(I)Ljava/lang/String; move-result-object v1 const-string v2, "this as java.lang.String).substring(startIndex)" invoke-static {v1, v2}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V goto :goto_0 .line 46 :goto_1 new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V const/16 v5, 0x2e const/16 v6, 0x5f const/4 v7, 0x0 const/4 v8, 0x4 const/4 v9, 0x0 invoke-static/range {v4 .. v9}, Lkotlin/text/StringsKt;->replace$default(Ljava/lang/String;CCZILjava/lang/Object;)Ljava/lang/String; move-result-object v2 invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 .line 48 :try_start_0 invoke-interface {v0}, Ljava/lang/CharSequence;->length()I move-result v1 if-nez v1, :cond_1 move-object v0, p1 goto :goto_2 .line 51 :cond_1 new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const/16 v0, 0x2e invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 .line 54 :goto_2 invoke-virtual {p0}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader; move-result-object v1 .line 53 invoke-static {v0, v3, v1}, Ljava/lang/Class;->forName(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class; move-result-object v0 const-string v1, "null cannot be cast to non-null type java.lang.Class" invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;Ljava/lang/String;)V const/4 v1, 0x0 new-array v2, v1, [Ljava/lang/Class; .line 56 invoke-virtual {v0, v2}, Ljava/lang/Class;->getDeclaredConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor; move-result-object v0 new-array v1, v1, [Ljava/lang/Object; invoke-virtual {v0, v1}, Ljava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)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 v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V const-string v1, "Failed to create an instance of " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {p0}, Ljava/lang/Class;->getCanonicalName()Ljava/lang/String; move-result-object p0 invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0}, 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 v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V const-string v1, "Cannot access the constructor " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {p0}, Ljava/lang/Class;->getCanonicalName()Ljava/lang/String; move-result-object p0 invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0}, 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; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V const-string v2, "Cannot find implementation for " invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; 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; const-string p0, ". " invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string p0, " does not exist" invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1}, 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 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