diff --git a/astrid/.project b/astrid/.project index 836231044..a8cc9332f 100644 --- a/astrid/.project +++ b/astrid/.project @@ -1,39 +1,39 @@ - - - astrid - - - - - - org.eclipse.wst.common.project.facet.core.builder - - - - - com.android.ide.eclipse.adt.ResourceManagerBuilder - - - - - com.android.ide.eclipse.adt.PreCompilerBuilder - - - - - org.eclipse.jdt.core.javabuilder - - - - - com.android.ide.eclipse.adt.ApkBuilder - - - - - - com.android.ide.eclipse.adt.AndroidNature - org.eclipse.jdt.core.javanature - org.eclipse.wst.common.project.facet.core.nature - - + + + astrid + + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + com.android.ide.eclipse.adt.ResourceManagerBuilder + + + + + com.android.ide.eclipse.adt.PreCompilerBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + com.android.ide.eclipse.adt.ApkBuilder + + + + + + com.android.ide.eclipse.adt.AndroidNature + org.eclipse.jdt.core.javanature + org.eclipse.wst.common.project.facet.core.nature + + diff --git a/astrid/gen/.gitignore b/astrid/gen/.gitignore deleted file mode 100644 index e69de29bb..000000000 diff --git a/astrid/plugin-src/com/todoroo/astrid/producteev/sync/ProducteevSyncProvider.java b/astrid/plugin-src/com/todoroo/astrid/producteev/sync/ProducteevSyncProvider.java index db85e2e73..919f2aa23 100644 --- a/astrid/plugin-src/com/todoroo/astrid/producteev/sync/ProducteevSyncProvider.java +++ b/astrid/plugin-src/com/todoroo/astrid/producteev/sync/ProducteevSyncProvider.java @@ -644,6 +644,4 @@ public class ProducteevSyncProvider extends SyncProvider - diff --git a/bin/androidxml2po.bash b/bin/androidxml2po.bash old mode 100755 new mode 100644 diff --git a/bin/catxml b/bin/catxml old mode 100755 new mode 100644 diff --git a/bin/migrate-2-to-3 b/bin/migrate-2-to-3 old mode 100755 new mode 100644 diff --git a/bin/xml2po.py b/bin/xml2po.py old mode 100755 new mode 100644 diff --git a/samples/filters/src/com/todoroo/andlib/Constants.java b/samples/filters/src/com/todoroo/andlib/Constants.java index cb98daaf4..7ff5961db 100644 --- a/samples/filters/src/com/todoroo/andlib/Constants.java +++ b/samples/filters/src/com/todoroo/andlib/Constants.java @@ -1,25 +1,25 @@ -package com.todoroo.andlib; - -@SuppressWarnings("nls") -public final class Constants { - static final String SELECT = "SELECT"; - static final String SPACE = " "; - static final String AS = "AS"; - static final String COMMA = ","; - static final String FROM = "FROM"; - static final String ON = "ON"; - static final String JOIN = "JOIN"; - static final String ALL = "*"; - static final String LEFT_PARENTHESIS = "("; - static final String RIGHT_PARENTHESIS = ")"; - static final String AND = "AND"; - static final String BETWEEN = "BETWEEN"; - static final String LIKE = "LIKE"; - static final String OR = "OR"; - static final String ORDER_BY = "ORDER BY"; - static final String GROUP_BY = "GROUP BY"; - static final String WHERE = "WHERE"; - public static final String EXISTS = "EXISTS"; - public static final String NOT = "NOT"; - public static final String LIMIT = "LIMIT"; -} +package com.todoroo.andlib; + +@SuppressWarnings("nls") +public final class Constants { + static final String SELECT = "SELECT"; + static final String SPACE = " "; + static final String AS = "AS"; + static final String COMMA = ","; + static final String FROM = "FROM"; + static final String ON = "ON"; + static final String JOIN = "JOIN"; + static final String ALL = "*"; + static final String LEFT_PARENTHESIS = "("; + static final String RIGHT_PARENTHESIS = ")"; + static final String AND = "AND"; + static final String BETWEEN = "BETWEEN"; + static final String LIKE = "LIKE"; + static final String OR = "OR"; + static final String ORDER_BY = "ORDER BY"; + static final String GROUP_BY = "GROUP BY"; + static final String WHERE = "WHERE"; + public static final String EXISTS = "EXISTS"; + public static final String NOT = "NOT"; + public static final String LIMIT = "LIMIT"; +} diff --git a/samples/filters/src/com/todoroo/andlib/Criterion.java b/samples/filters/src/com/todoroo/andlib/Criterion.java index 7d12f44a9..d487df95c 100644 --- a/samples/filters/src/com/todoroo/andlib/Criterion.java +++ b/samples/filters/src/com/todoroo/andlib/Criterion.java @@ -1,89 +1,89 @@ -package com.todoroo.andlib; - -import static com.todoroo.andlib.Constants.AND; -import static com.todoroo.andlib.Constants.EXISTS; -import static com.todoroo.andlib.Constants.LEFT_PARENTHESIS; -import static com.todoroo.andlib.Constants.NOT; -import static com.todoroo.andlib.Constants.OR; -import static com.todoroo.andlib.Constants.RIGHT_PARENTHESIS; -import static com.todoroo.andlib.Constants.SPACE; - -public abstract class Criterion { - protected final Operator operator; - - Criterion(Operator operator) { - this.operator = operator; - } - - public static Criterion all = new Criterion(Operator.exists) { - @Override - protected void populate(StringBuilder sb) { - sb.append(1); - } - }; - - public static Criterion none = new Criterion(Operator.exists) { - @Override - protected void populate(StringBuilder sb) { - sb.append(0); - } - }; - - public static Criterion and(final Criterion criterion, final Criterion... criterions) { - return new Criterion(Operator.and) { - - @Override - protected void populate(StringBuilder sb) { - sb.append(criterion); - for (Criterion c : criterions) { - sb.append(SPACE).append(AND).append(SPACE).append(c); - } - } - }; - } - - public static Criterion or(final Criterion criterion, final Criterion... criterions) { - return new Criterion(Operator.or) { - - @Override - protected void populate(StringBuilder sb) { - sb.append(criterion); - for (Criterion c : criterions) { - sb.append(SPACE).append(OR).append(SPACE).append(c.toString()); - } - } - }; - } - - public static Criterion exists(final Query query) { - return new Criterion(Operator.exists) { - - @Override - protected void populate(StringBuilder sb) { - sb.append(EXISTS).append(SPACE).append(LEFT_PARENTHESIS).append(query).append(RIGHT_PARENTHESIS); - } - }; - } - - public static Criterion not(final Criterion criterion) { - return new Criterion(Operator.not) { - - @Override - protected void populate(StringBuilder sb) { - sb.append(NOT).append(SPACE); - criterion.populate(sb); - } - }; - } - - protected abstract void populate(StringBuilder sb); - - @Override - public String toString() { - StringBuilder builder = new StringBuilder(LEFT_PARENTHESIS); - populate(builder); - builder.append(RIGHT_PARENTHESIS); - return builder.toString(); - } - -} +package com.todoroo.andlib; + +import static com.todoroo.andlib.Constants.AND; +import static com.todoroo.andlib.Constants.EXISTS; +import static com.todoroo.andlib.Constants.LEFT_PARENTHESIS; +import static com.todoroo.andlib.Constants.NOT; +import static com.todoroo.andlib.Constants.OR; +import static com.todoroo.andlib.Constants.RIGHT_PARENTHESIS; +import static com.todoroo.andlib.Constants.SPACE; + +public abstract class Criterion { + protected final Operator operator; + + Criterion(Operator operator) { + this.operator = operator; + } + + public static Criterion all = new Criterion(Operator.exists) { + @Override + protected void populate(StringBuilder sb) { + sb.append(1); + } + }; + + public static Criterion none = new Criterion(Operator.exists) { + @Override + protected void populate(StringBuilder sb) { + sb.append(0); + } + }; + + public static Criterion and(final Criterion criterion, final Criterion... criterions) { + return new Criterion(Operator.and) { + + @Override + protected void populate(StringBuilder sb) { + sb.append(criterion); + for (Criterion c : criterions) { + sb.append(SPACE).append(AND).append(SPACE).append(c); + } + } + }; + } + + public static Criterion or(final Criterion criterion, final Criterion... criterions) { + return new Criterion(Operator.or) { + + @Override + protected void populate(StringBuilder sb) { + sb.append(criterion); + for (Criterion c : criterions) { + sb.append(SPACE).append(OR).append(SPACE).append(c.toString()); + } + } + }; + } + + public static Criterion exists(final Query query) { + return new Criterion(Operator.exists) { + + @Override + protected void populate(StringBuilder sb) { + sb.append(EXISTS).append(SPACE).append(LEFT_PARENTHESIS).append(query).append(RIGHT_PARENTHESIS); + } + }; + } + + public static Criterion not(final Criterion criterion) { + return new Criterion(Operator.not) { + + @Override + protected void populate(StringBuilder sb) { + sb.append(NOT).append(SPACE); + criterion.populate(sb); + } + }; + } + + protected abstract void populate(StringBuilder sb); + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(LEFT_PARENTHESIS); + populate(builder); + builder.append(RIGHT_PARENTHESIS); + return builder.toString(); + } + +} diff --git a/samples/filters/src/com/todoroo/andlib/DBObject.java b/samples/filters/src/com/todoroo/andlib/DBObject.java index ce119dd65..b2a0f0453 100644 --- a/samples/filters/src/com/todoroo/andlib/DBObject.java +++ b/samples/filters/src/com/todoroo/andlib/DBObject.java @@ -1,68 +1,68 @@ -package com.todoroo.andlib; - -import static com.todoroo.andlib.Constants.AS; -import static com.todoroo.andlib.Constants.SPACE; - -public abstract class DBObject> implements Cloneable { - protected String alias; - protected final String expression; - - protected DBObject(String expression){ - this.expression = expression; - } - - @SuppressWarnings("unchecked") - public T as(String newAlias) { - try { - T clone = (T) clone(); - clone.alias = newAlias; - return clone; - } catch (CloneNotSupportedException e) { - throw new RuntimeException(e); - } - } - - public boolean hasAlias() { - return alias != null; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - DBObject dbObject = (DBObject) o; - - if (alias != null ? !alias.equals(dbObject.alias) : dbObject.alias != null) return false; - if (expression != null ? !expression.equals(dbObject.expression) : dbObject.expression != null) return false; - - return true; - } - - @Override - public int hashCode() { - int result = alias != null ? alias.hashCode() : 0; - result = 31 * result + (expression != null ? expression.hashCode() : 0); - return result; - } - - @Override - public final String toString() { - if (hasAlias()) { - return alias; - } - return expression; - } - - public final String toStringInSelect() { - StringBuilder sb = new StringBuilder(expression); - if (hasAlias()) { - sb.append(SPACE).append(AS).append(SPACE).append(alias); - } else { - int pos = expression.indexOf('.'); - if(pos > 0) - sb.append(SPACE).append(AS).append(SPACE).append(expression.substring(pos + 1)); - } - return sb.toString(); - } -} +package com.todoroo.andlib; + +import static com.todoroo.andlib.Constants.AS; +import static com.todoroo.andlib.Constants.SPACE; + +public abstract class DBObject> implements Cloneable { + protected String alias; + protected final String expression; + + protected DBObject(String expression){ + this.expression = expression; + } + + @SuppressWarnings("unchecked") + public T as(String newAlias) { + try { + T clone = (T) clone(); + clone.alias = newAlias; + return clone; + } catch (CloneNotSupportedException e) { + throw new RuntimeException(e); + } + } + + public boolean hasAlias() { + return alias != null; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + DBObject dbObject = (DBObject) o; + + if (alias != null ? !alias.equals(dbObject.alias) : dbObject.alias != null) return false; + if (expression != null ? !expression.equals(dbObject.expression) : dbObject.expression != null) return false; + + return true; + } + + @Override + public int hashCode() { + int result = alias != null ? alias.hashCode() : 0; + result = 31 * result + (expression != null ? expression.hashCode() : 0); + return result; + } + + @Override + public final String toString() { + if (hasAlias()) { + return alias; + } + return expression; + } + + public final String toStringInSelect() { + StringBuilder sb = new StringBuilder(expression); + if (hasAlias()) { + sb.append(SPACE).append(AS).append(SPACE).append(alias); + } else { + int pos = expression.indexOf('.'); + if(pos > 0) + sb.append(SPACE).append(AS).append(SPACE).append(expression.substring(pos + 1)); + } + return sb.toString(); + } +} diff --git a/samples/filters/src/com/todoroo/andlib/EqCriterion.java b/samples/filters/src/com/todoroo/andlib/EqCriterion.java index 75644bdad..ac325c8db 100644 --- a/samples/filters/src/com/todoroo/andlib/EqCriterion.java +++ b/samples/filters/src/com/todoroo/andlib/EqCriterion.java @@ -1,7 +1,7 @@ -package com.todoroo.andlib; - -public class EqCriterion extends UnaryCriterion { - EqCriterion(Field field, Object value) { - super(field, Operator.eq, value); - } -} +package com.todoroo.andlib; + +public class EqCriterion extends UnaryCriterion { + EqCriterion(Field field, Object value) { + super(field, Operator.eq, value); + } +} diff --git a/samples/filters/src/com/todoroo/andlib/Field.java b/samples/filters/src/com/todoroo/andlib/Field.java index e73e54967..0235b921c 100644 --- a/samples/filters/src/com/todoroo/andlib/Field.java +++ b/samples/filters/src/com/todoroo/andlib/Field.java @@ -1,90 +1,90 @@ -package com.todoroo.andlib; - -import static com.todoroo.andlib.Constants.AND; -import static com.todoroo.andlib.Constants.BETWEEN; -import static com.todoroo.andlib.Constants.COMMA; -import static com.todoroo.andlib.Constants.LEFT_PARENTHESIS; -import static com.todoroo.andlib.Constants.RIGHT_PARENTHESIS; -import static com.todoroo.andlib.Constants.SPACE; - -public class Field extends DBObject { - - protected Field(String expression) { - super(expression); - } - - public static Field field(String expression) { - return new Field(expression); - } - - public Criterion eq(Object value) { - if(value == null) - return UnaryCriterion.isNull(this); - return UnaryCriterion.eq(this, value); - } - - public Criterion neq(Object value) { - if(value == null) - return UnaryCriterion.isNotNull(this); - return UnaryCriterion.neq(this, value); - } - - public Criterion gt(Object value) { - return UnaryCriterion.gt(this, value); - } - - public Criterion lt(final Object value) { - return UnaryCriterion.lt(this, value); - } - - public Criterion isNull() { - return UnaryCriterion.isNull(this); - } - - public Criterion isNotNull() { - return UnaryCriterion.isNotNull(this); - } - - public Criterion between(final Object lower, final Object upper) { - final Field field = this; - return new Criterion(null) { - - @Override - protected void populate(StringBuilder sb) { - sb.append(field).append(SPACE).append(BETWEEN).append(SPACE).append(lower).append(SPACE).append(AND) - .append(SPACE).append(upper); - } - }; - } - - public Criterion like(final String value) { - return UnaryCriterion.like(this, value); - } - - public Criterion in(final T... value) { - final Field field = this; - return new Criterion(Operator.in) { - - @Override - protected void populate(StringBuilder sb) { - sb.append(field).append(SPACE).append(Operator.in).append(SPACE).append(LEFT_PARENTHESIS); - for (T t : value) { - sb.append(t.toString()).append(COMMA); - } - sb.deleteCharAt(sb.length() - 1).append(RIGHT_PARENTHESIS); - } - }; - } - - public Criterion in(final Query query) { - final Field field = this; - return new Criterion(Operator.in) { - - @Override - protected void populate(StringBuilder sb) { - sb.append(field).append(SPACE).append(Operator.in).append(SPACE).append(LEFT_PARENTHESIS).append(query) - .append(RIGHT_PARENTHESIS); - } - }; - } -} +package com.todoroo.andlib; + +import static com.todoroo.andlib.Constants.AND; +import static com.todoroo.andlib.Constants.BETWEEN; +import static com.todoroo.andlib.Constants.COMMA; +import static com.todoroo.andlib.Constants.LEFT_PARENTHESIS; +import static com.todoroo.andlib.Constants.RIGHT_PARENTHESIS; +import static com.todoroo.andlib.Constants.SPACE; + +public class Field extends DBObject { + + protected Field(String expression) { + super(expression); + } + + public static Field field(String expression) { + return new Field(expression); + } + + public Criterion eq(Object value) { + if(value == null) + return UnaryCriterion.isNull(this); + return UnaryCriterion.eq(this, value); + } + + public Criterion neq(Object value) { + if(value == null) + return UnaryCriterion.isNotNull(this); + return UnaryCriterion.neq(this, value); + } + + public Criterion gt(Object value) { + return UnaryCriterion.gt(this, value); + } + + public Criterion lt(final Object value) { + return UnaryCriterion.lt(this, value); + } + + public Criterion isNull() { + return UnaryCriterion.isNull(this); + } + + public Criterion isNotNull() { + return UnaryCriterion.isNotNull(this); + } + + public Criterion between(final Object lower, final Object upper) { + final Field field = this; + return new Criterion(null) { + + @Override + protected void populate(StringBuilder sb) { + sb.append(field).append(SPACE).append(BETWEEN).append(SPACE).append(lower).append(SPACE).append(AND) + .append(SPACE).append(upper); + } + }; + } + + public Criterion like(final String value) { + return UnaryCriterion.like(this, value); + } + + public Criterion in(final T... value) { + final Field field = this; + return new Criterion(Operator.in) { + + @Override + protected void populate(StringBuilder sb) { + sb.append(field).append(SPACE).append(Operator.in).append(SPACE).append(LEFT_PARENTHESIS); + for (T t : value) { + sb.append(t.toString()).append(COMMA); + } + sb.deleteCharAt(sb.length() - 1).append(RIGHT_PARENTHESIS); + } + }; + } + + public Criterion in(final Query query) { + final Field field = this; + return new Criterion(Operator.in) { + + @Override + protected void populate(StringBuilder sb) { + sb.append(field).append(SPACE).append(Operator.in).append(SPACE).append(LEFT_PARENTHESIS).append(query) + .append(RIGHT_PARENTHESIS); + } + }; + } +} diff --git a/samples/filters/src/com/todoroo/andlib/GroupBy.java b/samples/filters/src/com/todoroo/andlib/GroupBy.java index 4f2d9c8e9..087fff380 100644 --- a/samples/filters/src/com/todoroo/andlib/GroupBy.java +++ b/samples/filters/src/com/todoroo/andlib/GroupBy.java @@ -1,14 +1,14 @@ -package com.todoroo.andlib; - -import java.util.ArrayList; -import java.util.List; - -public class GroupBy { - private List fields = new ArrayList(); - - public static GroupBy groupBy(Field field) { - GroupBy groupBy = new GroupBy(); - groupBy.fields.add(field); - return groupBy; - } -} +package com.todoroo.andlib; + +import java.util.ArrayList; +import java.util.List; + +public class GroupBy { + private List fields = new ArrayList(); + + public static GroupBy groupBy(Field field) { + GroupBy groupBy = new GroupBy(); + groupBy.fields.add(field); + return groupBy; + } +} diff --git a/samples/filters/src/com/todoroo/andlib/Join.java b/samples/filters/src/com/todoroo/andlib/Join.java index 0f6f4ff50..dda21b2fc 100644 --- a/samples/filters/src/com/todoroo/andlib/Join.java +++ b/samples/filters/src/com/todoroo/andlib/Join.java @@ -1,43 +1,43 @@ -package com.todoroo.andlib; - -import static com.todoroo.andlib.Constants.JOIN; -import static com.todoroo.andlib.Constants.ON; -import static com.todoroo.andlib.Constants.SPACE; - -public class Join { - private final SqlTable joinTable; - private final JoinType joinType; - private final Criterion[] criterions; - - private Join(SqlTable table, JoinType joinType, Criterion... criterions) { - joinTable = table; - this.joinType = joinType; - this.criterions = criterions; - } - - public static Join inner(SqlTable expression, Criterion... criterions) { - return new Join(expression, JoinType.INNER, criterions); - } - - public static Join left(SqlTable table, Criterion... criterions) { - return new Join(table, JoinType.LEFT, criterions); - } - - public static Join right(SqlTable table, Criterion... criterions) { - return new Join(table, JoinType.RIGHT, criterions); - } - - public static Join out(SqlTable table, Criterion... criterions) { - return new Join(table, JoinType.OUT, criterions); - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(joinType).append(SPACE).append(JOIN).append(SPACE).append(joinTable).append(SPACE).append(ON); - for (Criterion criterion : criterions) { - sb.append(SPACE).append(criterion); - } - return sb.toString(); - } -} +package com.todoroo.andlib; + +import static com.todoroo.andlib.Constants.JOIN; +import static com.todoroo.andlib.Constants.ON; +import static com.todoroo.andlib.Constants.SPACE; + +public class Join { + private final SqlTable joinTable; + private final JoinType joinType; + private final Criterion[] criterions; + + private Join(SqlTable table, JoinType joinType, Criterion... criterions) { + joinTable = table; + this.joinType = joinType; + this.criterions = criterions; + } + + public static Join inner(SqlTable expression, Criterion... criterions) { + return new Join(expression, JoinType.INNER, criterions); + } + + public static Join left(SqlTable table, Criterion... criterions) { + return new Join(table, JoinType.LEFT, criterions); + } + + public static Join right(SqlTable table, Criterion... criterions) { + return new Join(table, JoinType.RIGHT, criterions); + } + + public static Join out(SqlTable table, Criterion... criterions) { + return new Join(table, JoinType.OUT, criterions); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(joinType).append(SPACE).append(JOIN).append(SPACE).append(joinTable).append(SPACE).append(ON); + for (Criterion criterion : criterions) { + sb.append(SPACE).append(criterion); + } + return sb.toString(); + } +} diff --git a/samples/filters/src/com/todoroo/andlib/JoinType.java b/samples/filters/src/com/todoroo/andlib/JoinType.java index ca129181a..4bd8e765d 100644 --- a/samples/filters/src/com/todoroo/andlib/JoinType.java +++ b/samples/filters/src/com/todoroo/andlib/JoinType.java @@ -1,5 +1,5 @@ -package com.todoroo.andlib; - -public enum JoinType { - INNER, LEFT, RIGHT, OUT -} +package com.todoroo.andlib; + +public enum JoinType { + INNER, LEFT, RIGHT, OUT +} diff --git a/samples/filters/src/com/todoroo/andlib/Operator.java b/samples/filters/src/com/todoroo/andlib/Operator.java index 45e6462bc..1f0fc529d 100644 --- a/samples/filters/src/com/todoroo/andlib/Operator.java +++ b/samples/filters/src/com/todoroo/andlib/Operator.java @@ -1,57 +1,57 @@ -package com.todoroo.andlib; - -import static com.todoroo.andlib.Constants.SPACE; - -import java.util.HashMap; -import java.util.Map; - -@SuppressWarnings("nls") -public final class Operator { - - private final String operator; - public static final Operator eq = new Operator("="); - public static final Operator neq = new Operator("<>"); - public static final Operator isNull = new Operator("IS NULL"); - public static final Operator isNotNull = new Operator("IS NOT NULL"); - public static final Operator gt = new Operator(">"); - public static final Operator lt = new Operator("<"); - public static final Operator gte = new Operator(">="); - public static final Operator lte = new Operator("<="); - public static final Operator and = new Operator("AND"); - public static final Operator or = new Operator("OR"); - public static final Operator not = new Operator("NOT"); - public static final Operator exists = new Operator("EXISTS"); - public static final Operator like = new Operator("LIKE"); - public static final Operator in = new Operator("IN"); - - private static final Map contraryRegistry = new HashMap(); - - static { - contraryRegistry.put(eq, neq); - contraryRegistry.put(neq, eq); - contraryRegistry.put(isNull, isNotNull); - contraryRegistry.put(isNotNull, isNull); - contraryRegistry.put(gt, lte); - contraryRegistry.put(lte, gt); - contraryRegistry.put(lt, gte); - contraryRegistry.put(gte, lt); - } - - private Operator(String operator) { - this.operator = operator; - } - - public Operator getContrary() { - if(!contraryRegistry.containsKey(this)){ - Operator opposite = new Operator(not.toString() + SPACE + this.toString()); - contraryRegistry.put(this, opposite); - contraryRegistry.put(opposite, this); - } - return contraryRegistry.get(this); - } - - @Override - public String toString() { - return this.operator.toString(); - } -} +package com.todoroo.andlib; + +import static com.todoroo.andlib.Constants.SPACE; + +import java.util.HashMap; +import java.util.Map; + +@SuppressWarnings("nls") +public final class Operator { + + private final String operator; + public static final Operator eq = new Operator("="); + public static final Operator neq = new Operator("<>"); + public static final Operator isNull = new Operator("IS NULL"); + public static final Operator isNotNull = new Operator("IS NOT NULL"); + public static final Operator gt = new Operator(">"); + public static final Operator lt = new Operator("<"); + public static final Operator gte = new Operator(">="); + public static final Operator lte = new Operator("<="); + public static final Operator and = new Operator("AND"); + public static final Operator or = new Operator("OR"); + public static final Operator not = new Operator("NOT"); + public static final Operator exists = new Operator("EXISTS"); + public static final Operator like = new Operator("LIKE"); + public static final Operator in = new Operator("IN"); + + private static final Map contraryRegistry = new HashMap(); + + static { + contraryRegistry.put(eq, neq); + contraryRegistry.put(neq, eq); + contraryRegistry.put(isNull, isNotNull); + contraryRegistry.put(isNotNull, isNull); + contraryRegistry.put(gt, lte); + contraryRegistry.put(lte, gt); + contraryRegistry.put(lt, gte); + contraryRegistry.put(gte, lt); + } + + private Operator(String operator) { + this.operator = operator; + } + + public Operator getContrary() { + if(!contraryRegistry.containsKey(this)){ + Operator opposite = new Operator(not.toString() + SPACE + this.toString()); + contraryRegistry.put(this, opposite); + contraryRegistry.put(opposite, this); + } + return contraryRegistry.get(this); + } + + @Override + public String toString() { + return this.operator.toString(); + } +} diff --git a/samples/filters/src/com/todoroo/andlib/Order.java b/samples/filters/src/com/todoroo/andlib/Order.java index f6466145a..abbb68fba 100644 --- a/samples/filters/src/com/todoroo/andlib/Order.java +++ b/samples/filters/src/com/todoroo/andlib/Order.java @@ -1,30 +1,30 @@ -package com.todoroo.andlib; - -import static com.todoroo.andlib.Constants.SPACE; - -public class Order { - private final Object expression; - private final OrderType orderType; - - private Order(Object expression) { - this(expression, OrderType.ASC); - } - - private Order(Object expression, OrderType orderType) { - this.expression = expression; - this.orderType = orderType; - } - - public static Order asc(Object expression) { - return new Order(expression); - } - - public static Order desc(Object expression) { - return new Order(expression, OrderType.DESC); - } - - @Override - public String toString() { - return expression + SPACE + orderType; - } -} +package com.todoroo.andlib; + +import static com.todoroo.andlib.Constants.SPACE; + +public class Order { + private final Object expression; + private final OrderType orderType; + + private Order(Object expression) { + this(expression, OrderType.ASC); + } + + private Order(Object expression, OrderType orderType) { + this.expression = expression; + this.orderType = orderType; + } + + public static Order asc(Object expression) { + return new Order(expression); + } + + public static Order desc(Object expression) { + return new Order(expression, OrderType.DESC); + } + + @Override + public String toString() { + return expression + SPACE + orderType; + } +} diff --git a/samples/filters/src/com/todoroo/andlib/OrderType.java b/samples/filters/src/com/todoroo/andlib/OrderType.java index f0a41961b..db04d19f3 100644 --- a/samples/filters/src/com/todoroo/andlib/OrderType.java +++ b/samples/filters/src/com/todoroo/andlib/OrderType.java @@ -1,5 +1,5 @@ -package com.todoroo.andlib; - -public enum OrderType { - DESC, ASC -} +package com.todoroo.andlib; + +public enum OrderType { + DESC, ASC +} diff --git a/samples/filters/src/com/todoroo/andlib/Query.java b/samples/filters/src/com/todoroo/andlib/Query.java index 5de4ac408..116ae11b4 100644 --- a/samples/filters/src/com/todoroo/andlib/Query.java +++ b/samples/filters/src/com/todoroo/andlib/Query.java @@ -1,192 +1,192 @@ -package com.todoroo.andlib; - -import static com.todoroo.andlib.Constants.ALL; -import static com.todoroo.andlib.Constants.COMMA; -import static com.todoroo.andlib.Constants.FROM; -import static com.todoroo.andlib.Constants.GROUP_BY; -import static com.todoroo.andlib.Constants.LEFT_PARENTHESIS; -import static com.todoroo.andlib.Constants.ORDER_BY; -import static com.todoroo.andlib.Constants.RIGHT_PARENTHESIS; -import static com.todoroo.andlib.Constants.SELECT; -import static com.todoroo.andlib.Constants.SPACE; -import static com.todoroo.andlib.Constants.WHERE; -import static com.todoroo.andlib.SqlTable.table; -import static java.util.Arrays.asList; - -import java.util.ArrayList; - -import com.todoroo.astrid.data.Property; - -public final class Query { - - private SqlTable table; - private String queryTemplate = null; - private final ArrayList criterions = new ArrayList(); - private final ArrayList fields = new ArrayList(); - private final ArrayList joins = new ArrayList(); - private final ArrayList groupBies = new ArrayList(); - private final ArrayList orders = new ArrayList(); - private final ArrayList havings = new ArrayList(); - - private Query(Field... fields) { - this.fields.addAll(asList(fields)); - } - - public static Query select(Field... fields) { - return new Query(fields); - } - - public Query from(SqlTable fromTable) { - this.table = fromTable; - return this; - } - - public Query join(Join... join) { - joins.addAll(asList(join)); - return this; - } - - public Query where(Criterion criterion) { - criterions.add(criterion); - return this; - } - - public Query groupBy(Field... groupBy) { - groupBies.addAll(asList(groupBy)); - return this; - } - - public Query orderBy(Order... order) { - orders.addAll(asList(order)); - return this; - } - - public Query appendSelectFields(Property... selectFields) { - this.fields.addAll(asList(selectFields)); - return this; - } - - @Override - public boolean equals(Object o) { - return this == o || !(o == null || getClass() != o.getClass()) && this.toString().equals(o.toString()); - } - - @Override - public int hashCode() { - return toString().hashCode(); - } - - @Override - public String toString() { - StringBuilder sql = new StringBuilder(); - visitSelectClause(sql); - visitFromClause(sql); - - if(queryTemplate == null) { - visitJoinClause(sql); - visitWhereClause(sql); - visitGroupByClause(sql); - visitOrderByClause(sql); - } else { - if(joins.size() > 0 || groupBies.size() > 0 || orders.size() > 0 || - havings.size() > 0) - throw new IllegalStateException("Can't have extras AND query template"); //$NON-NLS-1$ - sql.append(queryTemplate); - } - - return sql.toString(); - } - - private void visitOrderByClause(StringBuilder sql) { - if (orders.isEmpty()) { - return; - } - sql.append(ORDER_BY); - for (Order order : orders) { - sql.append(SPACE).append(order).append(COMMA); - } - sql.deleteCharAt(sql.length() - 1).append(SPACE); - } - - @SuppressWarnings("nls") - private void visitGroupByClause(StringBuilder sql) { - if (groupBies.isEmpty()) { - return; - } - sql.append(GROUP_BY); - for (Field groupBy : groupBies) { - sql.append(SPACE).append(groupBy).append(COMMA); - } - sql.deleteCharAt(sql.length() - 1).append(SPACE); - if (havings.isEmpty()) { - return; - } - sql.append("HAVING"); - for (Criterion havingCriterion : havings) { - sql.append(SPACE).append(havingCriterion).append(COMMA); - } - sql.deleteCharAt(sql.length() - 1).append(SPACE); - } - - private void visitWhereClause(StringBuilder sql) { - if (criterions.isEmpty()) { - return; - } - sql.append(WHERE); - for (Criterion criterion : criterions) { - sql.append(SPACE).append(criterion).append(SPACE); - } - } - - private void visitJoinClause(StringBuilder sql) { - for (Join join : joins) { - sql.append(join).append(SPACE); - } - } - - private void visitFromClause(StringBuilder sql) { - if (table == null) { - return; - } - sql.append(FROM).append(SPACE).append(table).append(SPACE); - } - - private void visitSelectClause(StringBuilder sql) { - sql.append(SELECT).append(SPACE); - if (fields.isEmpty()) { - sql.append(ALL).append(SPACE); - return; - } - for (Field field : fields) { - sql.append(field.toStringInSelect()).append(COMMA); - } - sql.deleteCharAt(sql.length() - 1).append(SPACE); - } - - public SqlTable as(String alias) { - return table(LEFT_PARENTHESIS + this.toString() + RIGHT_PARENTHESIS).as(alias); - } - - public Query having(Criterion criterion) { - this.havings.add(criterion); - return this; - } - - /** - * Gets a list of fields returned by this query - * @return - */ - public Property[] getFields() { - return fields.toArray(new Property[fields.size()]); - } - - /** - * Add the SQL query template (comes after the "from") - * @param sqlQuery - * @return - */ - public Query withQueryTemplate(String template) { - queryTemplate = template; - return this; - } -} +package com.todoroo.andlib; + +import static com.todoroo.andlib.Constants.ALL; +import static com.todoroo.andlib.Constants.COMMA; +import static com.todoroo.andlib.Constants.FROM; +import static com.todoroo.andlib.Constants.GROUP_BY; +import static com.todoroo.andlib.Constants.LEFT_PARENTHESIS; +import static com.todoroo.andlib.Constants.ORDER_BY; +import static com.todoroo.andlib.Constants.RIGHT_PARENTHESIS; +import static com.todoroo.andlib.Constants.SELECT; +import static com.todoroo.andlib.Constants.SPACE; +import static com.todoroo.andlib.Constants.WHERE; +import static com.todoroo.andlib.SqlTable.table; +import static java.util.Arrays.asList; + +import java.util.ArrayList; + +import com.todoroo.astrid.data.Property; + +public final class Query { + + private SqlTable table; + private String queryTemplate = null; + private final ArrayList criterions = new ArrayList(); + private final ArrayList fields = new ArrayList(); + private final ArrayList joins = new ArrayList(); + private final ArrayList groupBies = new ArrayList(); + private final ArrayList orders = new ArrayList(); + private final ArrayList havings = new ArrayList(); + + private Query(Field... fields) { + this.fields.addAll(asList(fields)); + } + + public static Query select(Field... fields) { + return new Query(fields); + } + + public Query from(SqlTable fromTable) { + this.table = fromTable; + return this; + } + + public Query join(Join... join) { + joins.addAll(asList(join)); + return this; + } + + public Query where(Criterion criterion) { + criterions.add(criterion); + return this; + } + + public Query groupBy(Field... groupBy) { + groupBies.addAll(asList(groupBy)); + return this; + } + + public Query orderBy(Order... order) { + orders.addAll(asList(order)); + return this; + } + + public Query appendSelectFields(Property... selectFields) { + this.fields.addAll(asList(selectFields)); + return this; + } + + @Override + public boolean equals(Object o) { + return this == o || !(o == null || getClass() != o.getClass()) && this.toString().equals(o.toString()); + } + + @Override + public int hashCode() { + return toString().hashCode(); + } + + @Override + public String toString() { + StringBuilder sql = new StringBuilder(); + visitSelectClause(sql); + visitFromClause(sql); + + if(queryTemplate == null) { + visitJoinClause(sql); + visitWhereClause(sql); + visitGroupByClause(sql); + visitOrderByClause(sql); + } else { + if(joins.size() > 0 || groupBies.size() > 0 || orders.size() > 0 || + havings.size() > 0) + throw new IllegalStateException("Can't have extras AND query template"); //$NON-NLS-1$ + sql.append(queryTemplate); + } + + return sql.toString(); + } + + private void visitOrderByClause(StringBuilder sql) { + if (orders.isEmpty()) { + return; + } + sql.append(ORDER_BY); + for (Order order : orders) { + sql.append(SPACE).append(order).append(COMMA); + } + sql.deleteCharAt(sql.length() - 1).append(SPACE); + } + + @SuppressWarnings("nls") + private void visitGroupByClause(StringBuilder sql) { + if (groupBies.isEmpty()) { + return; + } + sql.append(GROUP_BY); + for (Field groupBy : groupBies) { + sql.append(SPACE).append(groupBy).append(COMMA); + } + sql.deleteCharAt(sql.length() - 1).append(SPACE); + if (havings.isEmpty()) { + return; + } + sql.append("HAVING"); + for (Criterion havingCriterion : havings) { + sql.append(SPACE).append(havingCriterion).append(COMMA); + } + sql.deleteCharAt(sql.length() - 1).append(SPACE); + } + + private void visitWhereClause(StringBuilder sql) { + if (criterions.isEmpty()) { + return; + } + sql.append(WHERE); + for (Criterion criterion : criterions) { + sql.append(SPACE).append(criterion).append(SPACE); + } + } + + private void visitJoinClause(StringBuilder sql) { + for (Join join : joins) { + sql.append(join).append(SPACE); + } + } + + private void visitFromClause(StringBuilder sql) { + if (table == null) { + return; + } + sql.append(FROM).append(SPACE).append(table).append(SPACE); + } + + private void visitSelectClause(StringBuilder sql) { + sql.append(SELECT).append(SPACE); + if (fields.isEmpty()) { + sql.append(ALL).append(SPACE); + return; + } + for (Field field : fields) { + sql.append(field.toStringInSelect()).append(COMMA); + } + sql.deleteCharAt(sql.length() - 1).append(SPACE); + } + + public SqlTable as(String alias) { + return table(LEFT_PARENTHESIS + this.toString() + RIGHT_PARENTHESIS).as(alias); + } + + public Query having(Criterion criterion) { + this.havings.add(criterion); + return this; + } + + /** + * Gets a list of fields returned by this query + * @return + */ + public Property[] getFields() { + return fields.toArray(new Property[fields.size()]); + } + + /** + * Add the SQL query template (comes after the "from") + * @param sqlQuery + * @return + */ + public Query withQueryTemplate(String template) { + queryTemplate = template; + return this; + } +} diff --git a/tests/gen/.gitignore b/tests/gen/.gitignore deleted file mode 100644 index e69de29bb..000000000