Search in sources :

Example 31 with QueryToken

use of com.dailystudio.dataobject.query.QueryToken in project devbricks by dailystudio.

the class ColumnTest method testGTOperator.

public void testGTOperator() {
    Column column = null;
    column = new IntegerColumn("intVal");
    assertNotNull(column);
    assertEquals(new QueryToken("intVal > 1000"), column.gt(1000));
    column = new LongColumn("longVal");
    assertNotNull(column);
    assertEquals(new QueryToken("longVal > 987654321012345678"), column.gt(987654321012345678l));
    column = new DoubleColumn("doubleVal");
    assertNotNull(column);
    assertEquals(new QueryToken("doubleVal > 3.141592653"), column.gt(3.141592653));
    column = new TextColumn("textVal");
    assertNotNull(column);
    assertEquals(new QueryToken("textVal > \'this is \"string\" gt. 123?\'"), column.gt("this is \"string\" gt. 123?"));
    column = new TextColumn("textVal");
    assertNotNull(column);
    assertEquals(new QueryToken(), column.gt(1000));
}
Also used : QueryToken(com.dailystudio.dataobject.query.QueryToken)

Example 32 with QueryToken

use of com.dailystudio.dataobject.query.QueryToken in project devbricks by dailystudio.

the class ColumnTest method testNEQOperator.

public void testNEQOperator() {
    Column column = null;
    column = new IntegerColumn("intVal");
    assertNotNull(column);
    assertEquals(new QueryToken("intVal != 1000"), column.neq(1000));
    column = new LongColumn("longVal");
    assertNotNull(column);
    assertEquals(new QueryToken("longVal != 987654321012345678"), column.neq(987654321012345678l));
    column = new DoubleColumn("doubleVal");
    assertNotNull(column);
    assertEquals(new QueryToken("doubleVal != 3.141592653"), column.neq(3.141592653));
    column = new TextColumn("textVal");
    assertNotNull(column);
    assertEquals(new QueryToken("textVal != \'this is \"string\" neq. 123?\'"), column.neq("this is \"string\" neq. 123?"));
    column = new TextColumn("textVal");
    assertNotNull(column);
    assertEquals(new QueryToken(), column.neq(1000));
}
Also used : QueryToken(com.dailystudio.dataobject.query.QueryToken)

Example 33 with QueryToken

use of com.dailystudio.dataobject.query.QueryToken in project devbricks by dailystudio.

the class ColumnTest method testDIVIDEOperator.

public void testDIVIDEOperator() {
    Column column1 = null;
    Column column2 = null;
    column1 = new IntegerColumn("intVal1");
    assertNotNull(column1);
    column2 = new IntegerColumn("intVal2");
    assertNotNull(column2);
    assertEquals(new QueryToken("( ( intVal1 ) / ( intVal2 ) )"), column1.divide(column2));
    assertEquals(new QueryToken("( ( intVal2 ) / ( intVal1 ) )"), column2.divide(column1));
    column1 = new LongColumn("longVal1");
    assertNotNull(column1);
    column2 = new LongColumn("longVal2");
    assertNotNull(column2);
    assertEquals(new QueryToken("( ( longVal1 ) / ( longVal2 ) )"), column1.divide(column2));
    assertEquals(new QueryToken("( ( longVal2 ) / ( longVal1 ) )"), column2.divide(column1));
    column1 = new DoubleColumn("dbVal1");
    assertNotNull(column1);
    column2 = new DoubleColumn("dbVal2");
    assertNotNull(column2);
    assertEquals(new QueryToken("( ( dbVal1 ) / ( dbVal2 ) )"), column1.divide(column2));
    assertEquals(new QueryToken("( ( dbVal2 ) / ( dbVal1 ) )"), column2.divide(column1));
    column1 = new TextColumn("textVal1");
    assertNotNull(column1);
    column2 = new TextColumn("textVal2");
    assertNotNull(column2);
    assertEquals(new QueryToken("( ( textVal1 ) / ( textVal2 ) )"), column1.divide(column2));
    assertEquals(new QueryToken("( ( textVal2 ) / ( textVal1 ) )"), column2.divide(column1));
    column1 = new TimeColumn("timeVal1");
    assertNotNull(column1);
    column2 = new TimeColumn("timeVal2");
    assertNotNull(column2);
    assertEquals(new QueryToken("( ( timeVal1 ) / ( timeVal2 ) )"), column1.divide(column2));
    assertEquals(new QueryToken("( ( timeVal2 ) / ( timeVal1 ) )"), column2.divide(column1));
    column1 = new TextColumn("textVal1");
    assertNotNull(column1);
    column2 = new DoubleColumn("dbVal2");
    assertNotNull(column2);
    assertEquals(new QueryToken("( ( textVal1 ) / ( dbVal2 ) )"), column1.divide(column2));
    assertEquals(new QueryToken("( ( dbVal2 ) / ( textVal1 ) )"), column2.divide(column1));
}
Also used : QueryToken(com.dailystudio.dataobject.query.QueryToken)

Example 34 with QueryToken

use of com.dailystudio.dataobject.query.QueryToken in project devbricks by dailystudio.

the class ColumnTest method testMINUSOperator.

public void testMINUSOperator() {
    Column column1 = null;
    Column column2 = null;
    column1 = new IntegerColumn("intVal1");
    assertNotNull(column1);
    column2 = new IntegerColumn("intVal2");
    assertNotNull(column2);
    assertEquals(new QueryToken("( ( intVal1 ) - ( intVal2 ) )"), column1.minus(column2));
    assertEquals(new QueryToken("( ( intVal2 ) - ( intVal1 ) )"), column2.minus(column1));
    column1 = new LongColumn("longVal1");
    assertNotNull(column1);
    column2 = new LongColumn("longVal2");
    assertNotNull(column2);
    assertEquals(new QueryToken("( ( longVal1 ) - ( longVal2 ) )"), column1.minus(column2));
    assertEquals(new QueryToken("( ( longVal2 ) - ( longVal1 ) )"), column2.minus(column1));
    column1 = new DoubleColumn("dbVal1");
    assertNotNull(column1);
    column2 = new DoubleColumn("dbVal2");
    assertNotNull(column2);
    assertEquals(new QueryToken("( ( dbVal1 ) - ( dbVal2 ) )"), column1.minus(column2));
    assertEquals(new QueryToken("( ( dbVal2 ) - ( dbVal1 ) )"), column2.minus(column1));
    column1 = new TextColumn("textVal1");
    assertNotNull(column1);
    column2 = new TextColumn("textVal2");
    assertNotNull(column2);
    assertEquals(new QueryToken("( ( textVal1 ) - ( textVal2 ) )"), column1.minus(column2));
    assertEquals(new QueryToken("( ( textVal2 ) - ( textVal1 ) )"), column2.minus(column1));
    column1 = new TimeColumn("timeVal1");
    assertNotNull(column1);
    column2 = new TimeColumn("timeVal2");
    assertNotNull(column2);
    assertEquals(new QueryToken("( ( timeVal1 ) - ( timeVal2 ) )"), column1.minus(column2));
    assertEquals(new QueryToken("( ( timeVal2 ) - ( timeVal1 ) )"), column2.minus(column1));
    column1 = new TextColumn("textVal1");
    assertNotNull(column1);
    column2 = new DoubleColumn("dbVal2");
    assertNotNull(column2);
    assertEquals(new QueryToken("( ( textVal1 ) - ( dbVal2 ) )"), column1.minus(column2));
    assertEquals(new QueryToken("( ( dbVal2 ) - ( textVal1 ) )"), column2.minus(column1));
}
Also used : QueryToken(com.dailystudio.dataobject.query.QueryToken)

Example 35 with QueryToken

use of com.dailystudio.dataobject.query.QueryToken in project devbricks by dailystudio.

the class DatabaseConnectivityDirectSQLiteImpl method doQuery.

private Cursor doQuery(SQLiteDatabase db, Query query, Class<? extends DatabaseObject> projectionClass) {
    if (db == null || query == null) {
        return null;
    }
    final Class<? extends DatabaseObject> objectClass = query.getObjectClass();
    if (objectClass == null) {
        db.close();
        return null;
    }
    String table = DatabaseObject.classToTable(objectClass);
    if (table == null) {
        db.close();
        return null;
    }
    String selection = null;
    String groupBy = null;
    String having = null;
    String orderBy = null;
    String limit = null;
    QueryToken selToken = query.getSelection();
    if (selToken != null) {
        selection = selToken.toString();
    }
    QueryToken groupByToken = query.getGroupBy();
    if (groupByToken != null) {
        groupBy = groupByToken.toString();
    }
    QueryToken havingToken = query.getHaving();
    if (havingToken != null) {
        having = havingToken.toString();
    }
    QueryToken orderByToken = query.getOrderBy();
    if (orderByToken != null) {
        orderBy = orderByToken.toString();
    }
    QueryToken limitToken = query.getLimit();
    if (limitToken != null) {
        limit = limitToken.toString();
    }
    String[] projection = createProjection(projectionClass);
    Logger.debug("selection: (%s)", selection);
    Logger.debug("groupBy: (%s)", groupBy);
    Logger.debug("having: (%s)", having);
    Logger.debug("orderBy: (%s)", orderBy);
    Logger.debug("limit: (%s)", limit);
    Logger.debug("projection: (%s)", projectionToString(projection));
    Cursor c = null;
    try {
        db.beginTransaction();
        c = db.query(table, projection, selection, null, groupBy, having, orderBy, limit);
        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());
        }
    }
    if (c == null || c.getCount() <= 0) {
        if (c != null) {
            c.close();
        }
        db.close();
        return null;
    }
    return c;
}
Also used : SQLException(android.database.SQLException) Cursor(android.database.Cursor) SQLException(android.database.SQLException) QueryToken(com.dailystudio.dataobject.query.QueryToken)

Aggregations

QueryToken (com.dailystudio.dataobject.query.QueryToken)36 IntegerColumn (com.dailystudio.dataobject.IntegerColumn)5 DoubleColumn (com.dailystudio.dataobject.DoubleColumn)4 TextColumn (com.dailystudio.dataobject.TextColumn)4 SQLException (android.database.SQLException)3 Uri (android.net.Uri)3 Column (com.dailystudio.dataobject.Column)3 Template (com.dailystudio.dataobject.Template)3 ContentValues (android.content.ContentValues)2 Cursor (android.database.Cursor)2 SQLiteDatabase (android.database.sqlite.SQLiteDatabase)2 AbstractWindowedCursor (android.database.AbstractWindowedCursor)1 LongColumn (com.dailystudio.dataobject.LongColumn)1