public void createMetaTableIfNotExists(@Nonnull AndroidDatabase androidDatabase) { if (!AndroidBaseManager.tableExists(androidDatabase.getDatabaseWrapper(), DBToolsMetaData.TABLE)) { AndroidBaseManager.executeSql(androidDatabase.getDatabaseWrapper(), DBToolsMetaData.CREATE_TABLE); } }
public static void executeSql(@NonNull AndroidDatabase androidDatabase, @NonNull String sql) { executeSql(androidDatabase.getDatabaseWrapper(), sql); }
public void detachDatabase(@Nonnull AndroidDatabase db, @Nonnull String databaseToDetach) { db.getDatabaseWrapper().detachDatabase(databaseToDetach); }
public static boolean tableExists(@NonNull AndroidDatabase androidDatabase, @NonNull String tableName) { return tableExists(androidDatabase.getDatabaseWrapper(), tableName); }
public void copyTableData(@Nonnull AndroidDatabase targetDatabase, String sourceTableName, String targetTableName) { targetDatabase.getDatabaseWrapper().execSQL(String.format(MERGE_INSERT_QUERY, targetTableName, sourceTableName)); }
@Nonnull public DatabaseWrapper<? super AndroidBaseRecord, ? super DBToolsContentValues<?>> getReadableDatabase(@Nonnull String databaseName) { connectDatabase(databaseName); AndroidDatabase db = getDatabase(databaseName); if (db != null) { return db.getDatabaseWrapper(); } throw new IllegalStateException("Unable to get SQLiteDatabase for database [" + databaseName + "]"); }
@Nonnull public DatabaseWrapper<? super AndroidBaseRecord, ? super DBToolsContentValues<?>> getWritableDatabase(@Nonnull String databaseName) { connectDatabase(databaseName); AndroidDatabase db = getDatabase(databaseName); if (db != null) { return db.getDatabaseWrapper(); } throw new IllegalStateException("Unable to get SQLiteDatabase for database [" + databaseName + "]"); }
private boolean isDatabaseAlreadyOpen(@Nonnull AndroidDatabase androidDatabase) { DatabaseWrapper database = androidDatabase.getDatabaseWrapper(); return database != null && database.getDatabase() != null && database.isOpen(); }
@Nonnull private List<String> findTableNames(@Nullable AndroidDatabase database, @Nullable String attachedDatabaseName) { if (database == null) { return new ArrayList<>(); } List<String> tableNames; // prepare query String attachedDbPrefix; if (attachedDatabaseName != null && !attachedDatabaseName.trim().isEmpty()) { attachedDbPrefix = attachedDatabaseName + "."; } else { attachedDbPrefix = ""; } String query = String.format(TABLE_NAMES_QUERY, attachedDbPrefix); Cursor tableNamesCursor = database.getDatabaseWrapper().rawQuery(query, null); if (tableNamesCursor != null) { tableNames = new ArrayList<>(tableNamesCursor.getCount()); if (tableNamesCursor.moveToFirst()) { do { tableNames.add(tableNamesCursor.getString(0)); } while (tableNamesCursor.moveToNext()); } tableNamesCursor.close(); } else { tableNames = new ArrayList<>(); } return tableNames; }
public int findViewVersion(@Nonnull AndroidDatabase androidDatabase) { createMetaTableIfNotExists(androidDatabase); String[] selectionArgs = new String[]{getViewVersionKey(androidDatabase)}; String textValue = AndroidBaseManager.findValueByRawQuery(androidDatabase.getDatabaseWrapper(), String.class, FIND_VERSION, selectionArgs, "-1"); int value = -1; try { value = Integer.parseInt(textValue); } catch (Exception e) { log.e(TAG, "Cannot parse database view version", e); } return value; }
public boolean openDatabase(@Nonnull AndroidDatabase androidDatabase) { DatabaseWrapper wrapper = androidDatabase.getDatabaseWrapper(); if (wrapper == null) { wrapper = createNewDatabaseWrapper(androidDatabase); androidDatabase.setDatabaseWrapper(wrapper); } return wrapper.isOpen(); }
private void updateDatabaseMetaViewVersion(@Nonnull AndroidDatabase androidDatabase, int version) { createMetaTableIfNotExists(androidDatabase); int currentVersion = findViewVersion(androidDatabase); String keyName = getViewVersionKey(androidDatabase); String table = DBToolsMetaData.TABLE; DBToolsContentValues<?> contentValues = androidDatabase.getDatabaseWrapper().newContentValues(); contentValues.put(DBToolsMetaData.C_KEY, keyName); contentValues.put(DBToolsMetaData.C_VALUE, version); if (currentVersion != -1) { String selection = DBToolsMetaData.KEY_SELECTION; String[] whereArgs = new String[]{keyName}; androidDatabase.getDatabaseWrapper().update(table, contentValues, selection, whereArgs); } else { androidDatabase.getDatabaseWrapper().insert(table, null, contentValues); } }
public void dropMainViews(@javax.annotation.Nonnull AndroidDatabase androidDatabase) { DatabaseWrapper database = androidDatabase.getDatabaseWrapper(); database.beginTransaction(); // Views AndroidBaseManager.dropTable(database, org.dbtools.sample.model.database.main.individualview.IndividualViewManager.DROP_VIEW); database.setTransactionSuccessful(); database.endTransaction(); }
public void createMainViews(@javax.annotation.Nonnull AndroidDatabase androidDatabase) { DatabaseWrapper database = androidDatabase.getDatabaseWrapper(); database.beginTransaction(); // Views AndroidBaseManager.createTable(database, org.dbtools.sample.model.database.main.individualview.IndividualViewManager.CREATE_VIEW); database.setTransactionSuccessful(); database.endTransaction(); }
@Override public void subscribe(@NonNull SingleEmitter<Boolean> e) throws Exception { e.onSuccess(tableExists(androidDatabase.getDatabaseWrapper(), tableName)); } });
public void createMainViews(@javax.annotation.Nonnull AndroidDatabase androidDatabase) { DatabaseWrapper database = androidDatabase.getDatabaseWrapper(); database.beginTransaction(); // Views AndroidBaseManager.createTable(database, org.dbtools.sample.model.database.main.individualview.IndividualViewManager.CREATE_VIEW); database.setTransactionSuccessful(); database.endTransaction(); }
public void dropMainViews(@javax.annotation.Nonnull AndroidDatabase androidDatabase) { DatabaseWrapper database = androidDatabase.getDatabaseWrapper(); database.beginTransaction(); // Views AndroidBaseManager.dropTable(database, org.dbtools.sample.model.database.main.individualview.IndividualViewManager.DROP_VIEW); database.setTransactionSuccessful(); database.endTransaction(); }
public void createMainTables(@javax.annotation.Nonnull AndroidDatabase androidDatabase) { DatabaseWrapper database = androidDatabase.getDatabaseWrapper(); database.beginTransaction(); // Enum Tables // Tables AndroidBaseManager.createTable(database, org.dbtools.sample.model.database.main.individual.IndividualConst.CREATE_TABLE); AndroidBaseManager.createTable(database, org.dbtools.sample.model.database.main.individualdata.IndividualDataConst.CREATE_TABLE); database.setTransactionSuccessful(); database.endTransaction(); }
public void createMainTables(@javax.annotation.Nonnull AndroidDatabase androidDatabase) { DatabaseWrapper database = androidDatabase.getDatabaseWrapper(); database.beginTransaction(); // Enum Tables // Tables AndroidBaseManager.createTable(database, org.dbtools.sample.model.database.main.individual.IndividualConst.CREATE_TABLE); AndroidBaseManager.createTable(database, org.dbtools.sample.model.database.main.individualdata.IndividualDataConst.CREATE_TABLE); database.setTransactionSuccessful(); database.endTransaction(); }
public void attachDatabases(@Nonnull AndroidDatabase db) { for (AndroidDatabase toDb : db.getAttachedDatabases()) { db.getDatabaseWrapper().attachDatabase(toDb.getPath(), toDb.getName(), toDb.getPassword()); } }