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