diff --git a/querydsl-core/src/main/java/com/mysema/query/grammar/QComparable.java b/querydsl-core/src/main/java/com/mysema/query/grammar/QComparable.java
new file mode 100644
index 000000000..2ad244325
--- /dev/null
+++ b/querydsl-core/src/main/java/com/mysema/query/grammar/QComparable.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2008 Mysema Ltd.
+ * All rights reserved.
+ *
+ */
+package com.mysema.query.grammar;
+
+import com.mysema.query.grammar.types.Expr;
+import com.mysema.query.grammar.types.SimpleExprFactory;
+import com.mysema.query.grammar.types.Expr.EBoolean;
+
+/**
+ * QComparable provides helper methods to construct comparison expressions for types
+ * that don't implement Comparable in generic fashion such as Joda time types
+ *
+ * @author tiwe
+ * @version $Id$
+ */
+public class QComparable {
+
+ protected static final SimpleExprFactory factory = new SimpleExprFactory();
+
+ @SuppressWarnings("unchecked")
+ public static EBoolean before(Expr left, A right) {
+ return factory.createBoolean(Ops.BEFORE, left, factory.createConstant(right));
+ }
+
+ @SuppressWarnings("unchecked")
+ public static EBoolean before(Expr left, Expr right) {
+ return factory.createBoolean(Ops.BEFORE, left, right);
+ }
+
+ @SuppressWarnings("unchecked")
+ public static EBoolean after(Expr left, A right) {
+ return factory.createBoolean(Ops.AFTER, left, factory.createConstant(right));
+ }
+
+ @SuppressWarnings("unchecked")
+ public static EBoolean after(Expr left, Expr right) {
+ return factory.createBoolean(Ops.AFTER, left, right);
+ }
+
+ @SuppressWarnings("unchecked")
+ public static EBoolean boe(Expr left,A right) {
+ return factory.createBoolean(Ops.BOE, left, factory.createConstant(right));
+ }
+
+ @SuppressWarnings("unchecked")
+ public static EBoolean boe(Expr left, Expr right) {
+ return factory.createBoolean(Ops.BOE, left, right);
+ }
+
+ @SuppressWarnings("unchecked")
+ public static EBoolean aoe(Expr left, A right) {
+ return factory.createBoolean(Ops.AOE, left, factory.createConstant(right));
+ }
+
+ @SuppressWarnings("unchecked")
+ public static EBoolean aoe(Expr left, Expr right) {
+ return factory.createBoolean(Ops.AOE, left, right);
+ }
+}
diff --git a/querydsl-core/src/main/java/com/mysema/query/grammar/QDateTime.java b/querydsl-core/src/main/java/com/mysema/query/grammar/QDateTime.java
index 1e5db7a89..01961d5bd 100644
--- a/querydsl-core/src/main/java/com/mysema/query/grammar/QDateTime.java
+++ b/querydsl-core/src/main/java/com/mysema/query/grammar/QDateTime.java
@@ -19,42 +19,37 @@ import com.mysema.query.grammar.types.Expr.ENumber;
* @author tiwe
* @version $Id$
*/
+// TODO : provide Joda Time variant ?!?
public class QDateTime{
private static final SimpleExprFactory factory = new SimpleExprFactory();
-
+
public static EComparable currentDate() {
return factory.createComparable(Date.class, Ops.OpDateTime.CURRENT_DATE);
}
public static EComparable currentTime() {
- return factory.createComparable(Date.class, Ops.OpDateTime.CURRENT_DATE);
-
+ return factory.createComparable(Date.class, Ops.OpDateTime.CURRENT_DATE);
}
public static ENumber dayOfMonth(Expr d) {
- return factory.createNumber(Integer.class, Ops.OpDateTime.DAY_OF_MONTH, d);
-
+ return factory.createNumber(Integer.class, Ops.OpDateTime.DAY_OF_MONTH, d);
}
public static ENumber dayOfWeek(Expr d) {
- return factory.createNumber(Integer.class, Ops.OpDateTime.DAY_OF_WEEK, d);
-
+ return factory.createNumber(Integer.class, Ops.OpDateTime.DAY_OF_WEEK, d);
}
public static ENumber dayOfYear(Expr d) {
- return factory.createNumber(Integer.class, Ops.OpDateTime.DAY_OF_YEAR, d);
-
+ return factory.createNumber(Integer.class, Ops.OpDateTime.DAY_OF_YEAR, d);
}
public static ENumber hour(Expr