Search in sources :

Example 11 with Template

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

the class QueryTest method testCreateQuery.

public void testCreateQuery() {
    Template template = new Template();
    assertNotNull(template);
    Query query = null;
    query = new Query(TestDatabaseObject.class);
    assertNotNull(query);
    assertEquals(TestDatabaseObject.class, query.getObjectClass());
}
Also used : TestDatabaseObject(com.dailystudio.dataobject.samples.TestDatabaseObject) Template(com.dailystudio.dataobject.Template)

Example 12 with Template

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

the class DatabaseConnectivityDirectSQLiteImpl method onInsert.

@Override
protected int onInsert(DatabaseObject[] objects) {
    if (objects == null) {
        return 0;
    }
    final int count = objects.length;
    if (count <= 0) {
        return 0;
    }
    if (mOpenHandler == null) {
        return 0;
    }
    final SQLiteDatabase db = mOpenHandler.getWritableDatabase();
    if (db == null) {
        return 0;
    }
    int successful = 0;
    try {
        db.beginTransaction();
        ContentValues values = null;
        DatabaseObject object = null;
        Template template = null;
        String table = null;
        long rowId = -1;
        for (int i = 0; i < count; i++) {
            object = objects[i];
            if (object == null || object.isEmpty()) {
                continue;
            }
            values = object.getValues();
            if (values == null) {
                continue;
            }
            template = object.getTemplate();
            if (template == null) {
                continue;
            }
            table = DatabaseObject.classToTable(object.getClass());
            if (table == null) {
                continue;
            }
            if (checkOrCreateTable(db, table, object) == false) {
                continue;
            }
            rowId = db.insert(table, object.handleNullProjection(), values);
            if (rowId <= 0) {
                continue;
            }
            successful++;
        }
        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();
    return successful;
}
Also used : ContentValues(android.content.ContentValues) SQLiteDatabase(android.database.sqlite.SQLiteDatabase) SQLException(android.database.SQLException) DatabaseObject(com.dailystudio.dataobject.DatabaseObject) SQLException(android.database.SQLException) Template(com.dailystudio.dataobject.Template)

Example 13 with Template

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

the class DatabaseConnectivity method onUpdate.

@Override
protected int onUpdate(Query query, DatabaseObject object) {
    if (query == null || 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;
    }
    String selection = null;
    QueryToken selToken = query.getSelection();
    if (selToken != null) {
        selection = selToken.toString();
    }
    return mContentResovler.update(uri, values, selection, null);
}
Also used : ContentValues(android.content.ContentValues) Uri(android.net.Uri) Template(com.dailystudio.dataobject.Template) QueryToken(com.dailystudio.dataobject.query.QueryToken)

Example 14 with Template

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

the class ProviderUriBuilderTest method testAttachCreateTableParamter.

public void testAttachCreateTableParamter() {
    final long serial = System.currentTimeMillis();
    Uri uri = ProviderUriBuilder.buildQueryUri(AUTHORITY, SampleObject1.class, serial);
    assertNotNull(uri);
    DatabaseObject sample = new SampleObject1(mContext);
    assertNotNull(sample);
    final Template template = sample.getTemplate();
    assertNotNull(template);
    final String table = DatabaseObject.classToTable(SampleObject1.class);
    assertNotNull(table);
    uri = ProviderUriBuilder.attachCreateTableParamter(uri, sample.toSQLTableCreationString());
    String uristr = String.format("content://com.dailystudio/query/com.dailystudio.dataobject.samples.SampleObject1.db/1/SampleObject1?serial=%d&createTable=%s", serial, "CREATE%20TABLE%20IF%20NOT%20EXISTS%20SampleObject1%20(%20_id%20INTEGER%20NOT%20NULL%20PRIMARY%20KEY%2C%20time%20LONG%20NOT%20NULL%20)%3B");
    Uri expectedUri = Uri.parse(uristr);
    assertEquals(expectedUri, uri);
}
Also used : SampleObject1(com.dailystudio.dataobject.samples.SampleObject1) DatabaseObject(com.dailystudio.dataobject.DatabaseObject) Uri(android.net.Uri) Template(com.dailystudio.dataobject.Template)

Example 15 with Template

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

the class ExpressionTokenTest method testSamples.

public void testSamples() {
    Template templ = new Template();
    assertNotNull(templ);
    templ.addColumn(new IntegerColumn("_id", false, true));
    templ.addColumn(new IntegerColumn("intValue"));
    templ.addColumn(new DoubleColumn("doubleValue"));
    templ.addColumn(new TextColumn("textValue"));
    assertEquals(new QueryToken("( intValue > 1000 ) AND ( intValue < 2000 )"), templ.getColumn("intValue").gt(1000).and(templ.getColumn("intValue").lt(2000)));
}
Also used : IntegerColumn(com.dailystudio.dataobject.IntegerColumn) DoubleColumn(com.dailystudio.dataobject.DoubleColumn) Template(com.dailystudio.dataobject.Template) TextColumn(com.dailystudio.dataobject.TextColumn) 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