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));
}
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));
}
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));
}
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));
}
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;
}
Aggregations