diff --git a/querydsl-collections/src/test/java/com/mysema/query/collections/AliasTest.java b/querydsl-collections/src/test/java/com/mysema/query/collections/AliasTest.java index f73e3bd45..950d9e911 100644 --- a/querydsl-collections/src/test/java/com/mysema/query/collections/AliasTest.java +++ b/querydsl-collections/src/test/java/com/mysema/query/collections/AliasTest.java @@ -93,8 +93,7 @@ public class AliasTest extends AbstractQueryTest { // 2 try { - from(c, cats).where( - $(c.getMate().getName().toUpperCase()).eq("MOE")); + from(c, cats).where($(c.getMate().getName().toUpperCase()).eq("MOE")); fail("expected NPE"); } catch (NullPointerException ne) { // expected diff --git a/querydsl-collections/src/test/java/com/mysema/query/collections/MathFunctionTest.java b/querydsl-collections/src/test/java/com/mysema/query/collections/MathFunctionTest.java index dfd5cb440..46eb44e7f 100644 --- a/querydsl-collections/src/test/java/com/mysema/query/collections/MathFunctionTest.java +++ b/querydsl-collections/src/test/java/com/mysema/query/collections/MathFunctionTest.java @@ -26,8 +26,8 @@ public class MathFunctionTest extends AbstractQueryTest { @Test public void test() { Cat c = alias(Cat.class, "c"); - Expr i = new EConstant(1); - Expr d = new EConstant(1.0); + Expr i = EConstant.create(1); + Expr d = EConstant.create(1.0); from(c, cats).list(MathFunctions.abs(i), MathFunctions.acos(d), MathFunctions.asin(d), MathFunctions.atan(d), MathFunctions.ceil(d), MathFunctions.cos(d), diff --git a/querydsl-core/src/main/java/com/mysema/query/alias/AliasAwarePathFactory.java b/querydsl-core/src/main/java/com/mysema/query/alias/AliasAwarePathFactory.java index 9aa1e4e7b..6d914a2c7 100644 --- a/querydsl-core/src/main/java/com/mysema/query/alias/AliasAwarePathFactory.java +++ b/querydsl-core/src/main/java/com/mysema/query/alias/AliasAwarePathFactory.java @@ -14,6 +14,8 @@ import com.mysema.query.types.path.PBoolean; import com.mysema.query.types.path.PBooleanArray; import com.mysema.query.types.path.PComparable; import com.mysema.query.types.path.PComparableArray; +import com.mysema.query.types.path.PDate; +import com.mysema.query.types.path.PDateTime; import com.mysema.query.types.path.PEntity; import com.mysema.query.types.path.PEntityCollection; import com.mysema.query.types.path.PEntityList; @@ -21,6 +23,7 @@ import com.mysema.query.types.path.PEntityMap; import com.mysema.query.types.path.PNumber; import com.mysema.query.types.path.PString; import com.mysema.query.types.path.PStringArray; +import com.mysema.query.types.path.PTime; /** * AliasAwareExprFactory extends the SimpleExprFactory to return thread bound @@ -29,8 +32,10 @@ import com.mysema.query.types.path.PStringArray; * @author tiwe * @version $Id$ */ -class AliasAwarePathFactory extends SimplePathFactory { +class AliasAwarePathFactory implements PathFactory { + private SimplePathFactory factory = new SimplePathFactory(); + private final AliasFactory aliasFactory; public AliasAwarePathFactory(AliasFactory aliasFactory) { @@ -51,27 +56,36 @@ class AliasAwarePathFactory extends SimplePathFactory { public PBoolean createBoolean(Boolean arg) { PBoolean rv = aliasFactory. getCurrentAndReset(); - return rv != null ? rv : super.createBoolean(arg); + return rv != null ? rv : factory.createBoolean(arg); } public PBooleanArray createBooleanArray(Boolean[] args) { PBooleanArray rv = aliasFactory. getCurrentAndReset(); - return rv != null ? rv : super.createBooleanArray(args); - } - - public PEntityCollection createEntityCollection(Collection arg) { - PEntityCollection rv = aliasFactory.> getCurrentAndReset(); - return rv != null ? rv : super.createEntityCollection(arg); + return rv != null ? rv : factory.createBooleanArray(args); } public > PComparable createComparable(D arg) { PComparable rv = aliasFactory.> getCurrentAndReset(); - return rv != null ? rv : super.createComparable(arg); + return rv != null ? rv : factory.createComparable(arg); } - public > PNumber createNumber(D arg) { - PNumber rv = aliasFactory.> getCurrentAndReset(); - return rv != null ? rv : super.createNumber(arg); + public > PComparableArray createComparableArray(D[] args) { + PComparableArray rv = aliasFactory.> getCurrentAndReset(); + return rv != null ? rv : factory.createComparableArray(args); + } + + @SuppressWarnings("unchecked") + @Override + public PDate createDate(D arg) { + PDate rv = aliasFactory.>getCurrentAndReset(); + return rv != null ? rv : factory.createDate(arg); + } + + @SuppressWarnings("unchecked") + @Override + public PDateTime createDateTime(D arg) { + PDateTime rv = aliasFactory.>getCurrentAndReset(); + return rv != null ? rv : factory.createDateTime(arg); } @SuppressWarnings("unchecked") @@ -82,33 +96,45 @@ class AliasAwarePathFactory extends SimplePathFactory { } else if (arg instanceof ManagedObject) { return (PEntity) ((ManagedObject) arg).__mappedPath(); } else { - return super.createEntity(arg); + return factory.createEntity(arg); } } - public > PComparableArray createComparableArray(D[] args) { - PComparableArray rv = aliasFactory.> getCurrentAndReset(); - return rv != null ? rv : super.createComparableArray(args); - } - - public PEntityMap createEntityMap(Map arg) { - PEntityMap rv = aliasFactory.> getCurrentAndReset(); - return rv != null ? rv : super.createEntityMap(arg); + public PEntityCollection createEntityCollection(Collection arg) { + PEntityCollection rv = aliasFactory.> getCurrentAndReset(); + return rv != null ? rv : factory.createEntityCollection(arg); } public PEntityList createEntityList(List arg) { PEntityList rv = aliasFactory.> getCurrentAndReset(); - return rv != null ? rv : super.createEntityList(arg); + return rv != null ? rv : factory.createEntityList(arg); + } + + public PEntityMap createEntityMap(Map arg) { + PEntityMap rv = aliasFactory.> getCurrentAndReset(); + return rv != null ? rv : factory.createEntityMap(arg); + } + + public > PNumber createNumber(D arg) { + PNumber rv = aliasFactory.> getCurrentAndReset(); + return rv != null ? rv : factory.createNumber(arg); } public PString createString(String arg) { PString rv = aliasFactory. getCurrentAndReset(); - return rv != null ? rv : super.createString(arg); + return rv != null ? rv : factory.createString(arg); } public PStringArray createStringArray(String[] args) { PStringArray rv = aliasFactory. getCurrentAndReset(); - return rv != null ? rv : super.createStringArray(args); + return rv != null ? rv : factory.createStringArray(args); + } + + @SuppressWarnings("unchecked") + @Override + public PTime createTime(D arg) { + PTime rv = aliasFactory.>getCurrentAndReset(); + return rv != null ? rv : factory.createTime(arg); } } diff --git a/querydsl-core/src/main/java/com/mysema/query/alias/GrammarWithAlias.java b/querydsl-core/src/main/java/com/mysema/query/alias/GrammarWithAlias.java index 9722607e0..021714ea7 100644 --- a/querydsl-core/src/main/java/com/mysema/query/alias/GrammarWithAlias.java +++ b/querydsl-core/src/main/java/com/mysema/query/alias/GrammarWithAlias.java @@ -7,6 +7,8 @@ package com.mysema.query.alias; import java.math.BigDecimal; import java.math.BigInteger; +import java.sql.Time; +import java.sql.Timestamp; import java.util.Collection; import java.util.List; import java.util.Map; @@ -17,6 +19,8 @@ import com.mysema.query.types.path.PBoolean; import com.mysema.query.types.path.PBooleanArray; import com.mysema.query.types.path.PComparable; import com.mysema.query.types.path.PComparableArray; +import com.mysema.query.types.path.PDate; +import com.mysema.query.types.path.PDateTime; import com.mysema.query.types.path.PEntity; import com.mysema.query.types.path.PEntityCollection; import com.mysema.query.types.path.PEntityList; @@ -25,6 +29,7 @@ import com.mysema.query.types.path.PNumber; import com.mysema.query.types.path.PSimple; import com.mysema.query.types.path.PString; import com.mysema.query.types.path.PStringArray; +import com.mysema.query.types.path.PTime; import com.mysema.query.types.path.PathMetadata; /** @@ -69,185 +74,90 @@ public class GrammarWithAlias extends Grammar { aliasFactory.reset(); } - /** - * Convert the given alias to an expression - * - * @param arg - * @return - */ public static PBoolean $(Boolean arg) { return pathFactory.createBoolean(arg); } - /** - * Convert the given alias to an expression - * - * @param - * @param arg - * @return - */ public static > PComparable $(D arg) { return pathFactory.createComparable(arg); } - /** - * Convert the given alias to an expression - * - * @param arg - * @return - */ public static PNumber $(BigDecimal arg) { return pathFactory.createNumber(arg); } - /** - * Convert the given alias to an expression - * - * @param arg - * @return - */ public static PNumber $(BigInteger arg) { return pathFactory.createNumber(arg); } - /** - * Convert the given alias to an expression - * - * @param arg - * @return - */ public static PNumber $(Byte arg) { return pathFactory.createNumber(arg); } - /** - * Convert the given alias to an expression - * - * @param arg - * @return - */ public static PNumber $(Double arg) { return pathFactory.createNumber(arg); } - /** - * Convert the given alias to an expression - * - * @param arg - * @return - */ public static PNumber $(Float arg) { return pathFactory.createNumber(arg); } - /** - * Convert the given alias to an expression - * - * @param arg - * @return - */ public static PNumber $(Integer arg) { return pathFactory.createNumber(arg); } - /** - * Convert the given alias to an expression - * - * @param arg - * @return - */ public static PNumber $(Long arg) { return pathFactory.createNumber(arg); } - /** - * Convert the given alias to an expression - * - * @param arg - * @return - */ public static PNumber $(Short arg) { return pathFactory.createNumber(arg); } - /** - * Convert the given alias to an expression - * - * @param arg - * @return - */ public static PString $(String arg) { return pathFactory.createString(arg); } - /** - * Convert the given alias to an expression - * - * @param args - * @return - */ public static PBooleanArray $(Boolean[] args) { return pathFactory.createBooleanArray(args); } - /** - * Convert the given alias to an expression - * - * @param - * @param args - * @return - */ public static > PComparableArray $(D[] args) { return pathFactory.createComparableArray(args); } - /** - * Convert the given alias to an expression - * - * @param args - * @return - */ public static PStringArray $(String[] args) { return pathFactory.createStringArray(args); } - /** - * Convert the given alias to an expression - * - * @param - * @param args - * @return - */ public static PEntityCollection $(Collection args) { return pathFactory.createEntityCollection(args); } + + public static PDateTime $(java.util.Date arg) { + return pathFactory.createDateTime(arg); + } + + public static PDate $(java.sql.Date arg) { + return pathFactory.createDate(arg); + } + + public static PDateTime $(Timestamp arg) { + return pathFactory.createDateTime(arg); + } + + public static PTime