package androidx.room; import android.content.Context; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.RestrictTo; import androidx.room.RoomDatabase; import androidx.sqlite.db.SupportSQLiteOpenHelper; import java.io.File; import java.util.List; import java.util.Set; import java.util.concurrent.Executor; public class DatabaseConfiguration { public final boolean allowDestructiveMigrationOnDowngrade; public final boolean allowMainThreadQueries; @Nullable public final List callbacks; @NonNull public final Context context; @Nullable public final String copyFromAssetPath; @Nullable public final File copyFromFile; public final RoomDatabase.JournalMode journalMode; private final Set mMigrationNotRequiredFrom; @NonNull public final RoomDatabase.MigrationContainer migrationContainer; public final boolean multiInstanceInvalidation; @Nullable public final String name; @NonNull public final Executor queryExecutor; public final boolean requireMigration; @NonNull public final SupportSQLiteOpenHelper.Factory sqliteOpenHelperFactory; @NonNull public final Executor transactionExecutor; @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX}) @Deprecated public DatabaseConfiguration(@NonNull Context context, @Nullable String str, @NonNull SupportSQLiteOpenHelper.Factory factory, @NonNull RoomDatabase.MigrationContainer migrationContainer, @Nullable List list, boolean z2, RoomDatabase.JournalMode journalMode, @NonNull Executor executor, @NonNull Executor executor2, boolean z3, boolean z4, boolean z5, @Nullable Set set) { this(context, str, factory, migrationContainer, list, z2, journalMode, executor, executor2, z3, z4, z5, set, null, null); } @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX}) public DatabaseConfiguration(@NonNull Context context, @Nullable String str, @NonNull SupportSQLiteOpenHelper.Factory factory, @NonNull RoomDatabase.MigrationContainer migrationContainer, @Nullable List list, boolean z2, RoomDatabase.JournalMode journalMode, @NonNull Executor executor, @NonNull Executor executor2, boolean z3, boolean z4, boolean z5, @Nullable Set set, @Nullable String str2, @Nullable File file) { this.sqliteOpenHelperFactory = factory; this.context = context; this.name = str; this.migrationContainer = migrationContainer; this.callbacks = list; this.allowMainThreadQueries = z2; this.journalMode = journalMode; this.queryExecutor = executor; this.transactionExecutor = executor2; this.multiInstanceInvalidation = z3; this.requireMigration = z4; this.allowDestructiveMigrationOnDowngrade = z5; this.mMigrationNotRequiredFrom = set; this.copyFromAssetPath = str2; this.copyFromFile = file; } @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX}) @Deprecated public DatabaseConfiguration(@NonNull Context context, @Nullable String str, @NonNull SupportSQLiteOpenHelper.Factory factory, @NonNull RoomDatabase.MigrationContainer migrationContainer, @Nullable List list, boolean z2, RoomDatabase.JournalMode journalMode, @NonNull Executor executor, boolean z3, @Nullable Set set) { this(context, str, factory, migrationContainer, list, z2, journalMode, executor, executor, false, z3, false, set, null, null); } public boolean isMigrationRequired(int i, int i2) { Set set; return (!(i > i2) || !this.allowDestructiveMigrationOnDowngrade) && this.requireMigration && ((set = this.mMigrationNotRequiredFrom) == null || !set.contains(Integer.valueOf(i))); } @Deprecated public boolean isMigrationRequiredFrom(int i) { return isMigrationRequired(i, i + 1); } }