diff --git a/framework/db/src/com/cloud/utils/db/GenericQueryBuilder.java b/framework/db/src/com/cloud/utils/db/GenericQueryBuilder.java index 8581d80dc63..570a10e1bca 100755 --- a/framework/db/src/com/cloud/utils/db/GenericQueryBuilder.java +++ b/framework/db/src/com/cloud/utils/db/GenericQueryBuilder.java @@ -44,6 +44,11 @@ public class GenericQueryBuilder extends SearchBase { return create(entityType, entityType); } + public GenericQueryBuilder or() { + constructCondition(null, " OR ", null, null); + return this; + } + public void selectField(Object... useless) { assert _entity != null : "SearchBuilder cannot be modified once it has been setup"; assert _specifiedAttrs.size() > 0 : "You didn't specify any attributes"; @@ -66,10 +71,48 @@ public class GenericQueryBuilder extends SearchBase { _specifiedAttrs.clear(); } - public void and(Object useless, Op op, Object... values) { + public GenericQueryBuilder and(Object useless, Op op, Object... values) { String uuid = UUID.randomUUID().toString(); Condition condition = constructCondition(uuid, " AND ", _specifiedAttrs.get(0), op); condition.setPresets(values); + return this; + } + + public GenericQueryBuilder or(Object useless, Op op, Object... values) { + String uuid = UUID.randomUUID().toString(); + Condition condition = constructCondition(uuid, " OR ", _specifiedAttrs.get(0), op); + condition.setPresets(values); + return this; + } + + protected GenericQueryBuilder left(Object useless, Op op, Object... values) { + String uuid = UUID.randomUUID().toString(); + Condition condition = constructCondition(uuid, " ( ", _specifiedAttrs.get(0), op); + condition.setPresets(values); + return this; + } + + public GenericQueryBuilder and() { + constructCondition(null, " AND ", null, null); + return this; + } + + public GenericQueryBuilder where() { + return and(); + } + + public GenericQueryBuilder op(Object useless, Op op, Object... values) { + return left(useless, op, values); + } + + protected GenericQueryBuilder right() { + Condition condition = new Condition("rp", " ) ", null, Op.RP); + _conditions.add(condition); + return this; + } + + public GenericQueryBuilder cp() { + return right(); } @SuppressWarnings("unchecked") @@ -96,6 +139,4 @@ public class GenericQueryBuilder extends SearchBase { SearchCriteria sc1 = create(); return (K)_dao.findOneBy(sc1); } - - } diff --git a/framework/db/src/com/cloud/utils/db/GenericSearchBuilder.java b/framework/db/src/com/cloud/utils/db/GenericSearchBuilder.java index 8e46c30ebf7..e17163507ea 100755 --- a/framework/db/src/com/cloud/utils/db/GenericSearchBuilder.java +++ b/framework/db/src/com/cloud/utils/db/GenericSearchBuilder.java @@ -127,6 +127,11 @@ public class GenericSearchBuilder extends SearchBase { return this; } + public GenericSearchBuilder and() { + constructCondition(null, " AND ", null, null); + return this; + } + public GenericSearchBuilder and(Object useless, Op op, String name) { constructCondition(name, " AND ", _specifiedAttrs.get(0), op); return this; @@ -137,24 +142,11 @@ public class GenericSearchBuilder extends SearchBase { return new Preset(this, condition); } - public GenericSearchBuilder and() { - constructCondition(null, " AND ", null, null); - return this; - } - - public GenericSearchBuilder where() { - return and(); - } - public GenericSearchBuilder or() { constructCondition(null, " OR ", null, null); return this; } - public GenericSearchBuilder where(String name, Object useless, Op op) { - return and(name, useless, op); - } - public GenericSearchBuilder where(Object useless, Op op, String name) { return and(name, useless, op); } @@ -163,17 +155,12 @@ public class GenericSearchBuilder extends SearchBase { return and(useless, op); } - public GenericSearchBuilder left(String name, Object useless, Op op) { - constructCondition(name, " ( ", _specifiedAttrs.get(0), op); - return this; - } - - public GenericSearchBuilder left(Object useless, Op op, String name) { + protected GenericSearchBuilder left(Object useless, Op op, String name) { constructCondition(name, " ( ", _specifiedAttrs.get(0), op); return this; } - public Preset left(Object useless, Op op) { + protected Preset left(Object useless, Op op) { Condition condition = constructCondition(UUID.randomUUID().toString(), " ( ", _specifiedAttrs.get(0), op); return new Preset(this, condition); } @@ -187,21 +174,9 @@ public class GenericSearchBuilder extends SearchBase { } public GenericSearchBuilder op(String name, Object useless, Op op) { - return left(name, useless, op); + return left(useless, op, name); } - public GenericSearchBuilder openParen(Object useless, Op op, String name) { - return left(name, useless, op); - } - - public GenericSearchBuilder openParen(String name, Object useless, Op op) { - return left(name, useless, op); - } - - public Preset openParen(Object useless, Op op) { - return left(useless, op); - } - public GroupBy, T, K> groupBy(Object... useless) { assert _groupBy == null : "Can't do more than one group bys"; GroupBy, T, K> groupBy = new GroupBy, T, K>(this); @@ -258,7 +233,7 @@ public class GenericSearchBuilder extends SearchBase { return sc; } - public GenericSearchBuilder right() { + protected GenericSearchBuilder right() { Condition condition = new Condition("rp", " ) ", null, Op.RP); _conditions.add(condition); return this; @@ -268,10 +243,6 @@ public class GenericSearchBuilder extends SearchBase { return right(); } - public GenericSearchBuilder closeParen() { - return right(); - } - /** * Marks the SearchBuilder as completed in building the search conditions. */