use of com.dailystudio.dataobject.query.QueryToken in project devbricks by dailystudio.
the class DatabaseConnectivityDirectSQLiteImpl method onUpdate.
@Override
protected int onUpdate(Query query, DatabaseObject object) {
if (query == null || object == null || object.isEmpty()) {
return 0;
}
if (mOpenHandler == null) {
return 0;
}
final SQLiteDatabase db = mOpenHandler.getWritableDatabase();
if (db == null) {
return 0;
}
final ContentValues values = object.getValues();
if (values == null) {
db.close();
return 0;
}
final Template template = object.getTemplate();
if (template == null) {
db.close();
return 0;
}
final String table = DatabaseObject.classToTable(object.getClass());
if (table == null) {
db.close();
return 0;
}
if (checkOrCreateTable(db, table, object) == false) {
db.close();
return 0;
}
String selection = null;
QueryToken selToken = query.getSelection();
if (selToken != null) {
selection = selToken.toString();
}
int affected = -1;
try {
db.beginTransaction();
affected = db.update(table, object.getValues(), selection, null);
db.setTransactionSuccessful();
} catch (SQLException e) {
Logger.warn("database failure: %s", e.toString());
} finally {
try {
db.endTransaction();
} catch (Exception e) {
Logger.warn("database failure: %s", e.toString());
}
}
db.close();
if (affected <= 0) {
return 0;
}
return affected;
}
Aggregations