Search in sources :

Example 36 with Template

use of com.dailystudio.dataobject.Template in project devbricks by dailystudio.

the class DatabaseConnectivity method onInsert.

@Override
protected int onInsert(DatabaseObject[] objects) {
    if (objects == null) {
        return 0;
    }
    final int count = objects.length;
    if (count <= 0) {
        return 0;
    }
    if (checkProviderPreparation() == false) {
        return 0;
    }
    ContentValues[] values = new ContentValues[count];
    Uri uri = ProviderUriBuilder.buildQueryUri(mAuthority, mObjectClass, getDatabaseVersion());
    if (uri == null) {
        return 0;
    }
    final Template template = objects[0].getTemplate();
    if (template == null) {
        return 0;
    }
    final String table = DatabaseObject.classToTable(mObjectClass);
    if (table == null) {
        return 0;
    }
    final DatabaseObject sample = objects[0];
    uri = ProviderUriBuilder.attachCreateTableParamter(uri, sample.toSQLTableCreationString());
    if (uri == null) {
        return 0;
    }
    for (int i = 0; i < count; i++) {
        values[i] = objects[i].getValues();
    }
    return mContentResovler.bulkInsert(uri, values);
}
Also used : ContentValues(android.content.ContentValues) DatabaseObject(com.dailystudio.dataobject.DatabaseObject) Uri(android.net.Uri) Template(com.dailystudio.dataobject.Template)

Example 37 with Template

use of com.dailystudio.dataobject.Template in project devbricks by dailystudio.

the class DatabaseConnectivity method onInsert.

@Override
protected long onInsert(DatabaseObject object) {
    if (object == null || object.isEmpty()) {
        return 0;
    }
    if (checkProviderPreparation() == false) {
        return 0;
    }
    final ContentValues values = object.getValues();
    if (values == null) {
        return 0;
    }
    Uri uri = ProviderUriBuilder.buildQueryUri(mAuthority, mObjectClass, getDatabaseVersion());
    if (uri == null) {
        return 0;
    }
    final Template template = object.getTemplate();
    if (template == null) {
        return 0;
    }
    final String table = DatabaseObject.classToTable(mObjectClass);
    if (table == null) {
        return 0;
    }
    uri = ProviderUriBuilder.attachCreateTableParamter(uri, object.toSQLTableCreationString());
    if (uri == null) {
        return 0;
    }
    Uri resUri = mContentResovler.insert(uri, values);
    if (resUri == null) {
        return 0;
    }
    ProviderResultUriParser parser = new ProviderResultUriParser(resUri);
    return parser.getRowId();
}
Also used : ContentValues(android.content.ContentValues) Uri(android.net.Uri) Template(com.dailystudio.dataobject.Template)

Example 38 with Template

use of com.dailystudio.dataobject.Template in project devbricks by dailystudio.

the class DatabaseConnectivityDirectSQLiteImpl method onInsert.

@Override
protected long onInsert(DatabaseObject object) {
    if (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;
    }
    long rowId = -1;
    try {
        db.beginTransaction();
        rowId = db.insert(table, object.handleNullProjection(), values);
        db.setTransactionSuccessful();
    } catch (SQLException e) {
        Logger.warn("database failure: %s", e.toString());
    } catch (IllegalStateException 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 (rowId <= 0) {
        return 0;
    }
    return rowId;
}
Also used : ContentValues(android.content.ContentValues) SQLiteDatabase(android.database.sqlite.SQLiteDatabase) SQLException(android.database.SQLException) SQLException(android.database.SQLException) Template(com.dailystudio.dataobject.Template)

Example 39 with Template

use of com.dailystudio.dataobject.Template 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;
}
Also used : ContentValues(android.content.ContentValues) SQLiteDatabase(android.database.sqlite.SQLiteDatabase) SQLException(android.database.SQLException) SQLException(android.database.SQLException) Template(com.dailystudio.dataobject.Template) QueryToken(com.dailystudio.dataobject.query.QueryToken)

Aggregations

Template (com.dailystudio.dataobject.Template)39 Column (com.dailystudio.dataobject.Column)26 DatabaseObject (com.dailystudio.dataobject.DatabaseObject)23 QueryObject (com.dailystudio.dataobject.samples.QueryObject)19 ExpressionToken (com.dailystudio.dataobject.query.ExpressionToken)15 Query (com.dailystudio.dataobject.query.Query)15 ContentValues (android.content.ContentValues)10 Uri (android.net.Uri)10 OrderingToken (com.dailystudio.dataobject.query.OrderingToken)8 Cursor (android.database.Cursor)6 ContentResolver (android.content.ContentResolver)4 SQLException (android.database.SQLException)3 SQLiteDatabase (android.database.sqlite.SQLiteDatabase)3 QueryToken (com.dailystudio.dataobject.query.QueryToken)3 ProjectionObject (com.dailystudio.dataobject.samples.ProjectionObject)3 SampleObject1 (com.dailystudio.dataobject.samples.SampleObject1)3 DoubleColumn (com.dailystudio.dataobject.DoubleColumn)2 IntegerColumn (com.dailystudio.dataobject.IntegerColumn)2 TextColumn (com.dailystudio.dataobject.TextColumn)2 ArrayList (java.util.ArrayList)2