discord-jadx/app/src/main/java/androidx/room/Room.java

59 lines
2.4 KiB
Java

package androidx.room;
import android.content.Context;
import androidx.annotation.NonNull;
import androidx.room.RoomDatabase;
import c.d.b.a.a;
public class Room {
private static final String CURSOR_CONV_SUFFIX = "_CursorConverter";
public static final String LOG_TAG = "ROOM";
public static final String MASTER_TABLE_NAME = "room_master_table";
@NonNull
public static <T extends RoomDatabase> RoomDatabase.Builder<T> databaseBuilder(@NonNull Context context, @NonNull Class<T> cls, @NonNull String str) {
if (str != null && str.trim().length() != 0) {
return new RoomDatabase.Builder<>(context, cls, str);
}
throw new IllegalArgumentException("Cannot build a database with null or empty name. If you are trying to create an in memory database, use Room.inMemoryDatabaseBuilder");
}
@NonNull
public static <T, C> T getGeneratedImplementation(Class<C> cls, String str) {
String str2;
String name = cls.getPackage().getName();
String canonicalName = cls.getCanonicalName();
if (!name.isEmpty()) {
canonicalName = canonicalName.substring(name.length() + 1);
}
String str3 = canonicalName.replace('.', '_') + str;
try {
if (name.isEmpty()) {
str2 = str3;
} else {
str2 = name + "." + str3;
}
return (T) Class.forName(str2).newInstance();
} catch (ClassNotFoundException unused) {
StringBuilder L = a.L("cannot find implementation for ");
L.append(cls.getCanonicalName());
L.append(". ");
L.append(str3);
L.append(" does not exist");
throw new RuntimeException(L.toString());
} catch (IllegalAccessException unused2) {
StringBuilder L2 = a.L("Cannot access the constructor");
L2.append(cls.getCanonicalName());
throw new RuntimeException(L2.toString());
} catch (InstantiationException unused3) {
StringBuilder L3 = a.L("Failed to create an instance of ");
L3.append(cls.getCanonicalName());
throw new RuntimeException(L3.toString());
}
}
@NonNull
public static <T extends RoomDatabase> RoomDatabase.Builder<T> inMemoryDatabaseBuilder(@NonNull Context context, @NonNull Class<T> cls) {
return new RoomDatabase.Builder<>(context, cls, null);
}
}