diff --git a/querydsl-core/src/main/java/com/mysema/query/types/ExpressionUtils.java b/querydsl-core/src/main/java/com/mysema/query/types/ExpressionUtils.java index 01e4d9b2f..e8386e031 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/ExpressionUtils.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/ExpressionUtils.java @@ -43,7 +43,7 @@ public final class ExpressionUtils { } public static Expression as(Expression source, String alias) { - return as(source, new PathMixin(source.getType(), PathMetadataFactory.forVariable(alias))); + return as(source, new PathMixin(source.getType(), alias)); } public static Predicate eqConst(Expression left, D constant) { diff --git a/querydsl-core/src/main/java/com/mysema/query/types/PathMetadataFactory.java b/querydsl-core/src/main/java/com/mysema/query/types/PathMetadataFactory.java index 24b7205b8..7b1a6cf42 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/PathMetadataFactory.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/PathMetadataFactory.java @@ -8,12 +8,6 @@ package com.mysema.query.types; import javax.annotation.Nonnegative; import com.mysema.commons.lang.Assert; -import com.mysema.query.types.expr.NumberConstant; -import com.mysema.query.types.expr.SimpleConstant; -import com.mysema.query.types.expr.StringConstant; -import com.mysema.query.types.path.ArrayPath; -import com.mysema.query.types.path.ListPath; -import com.mysema.query.types.path.MapPath; /** * @author tiwe @@ -21,36 +15,36 @@ import com.mysema.query.types.path.MapPath; */ public final class PathMetadataFactory { - public static PathMetadata forArrayAccess(ArrayPath parent, Expression index) { + public static PathMetadata forArrayAccess(Path parent, Expression index) { return new PathMetadata(parent, index, PathType.ARRAYVALUE); } - public static PathMetadata forArrayAccess(ArrayPath parent, @Nonnegative int index) { - return new PathMetadata(parent, NumberConstant.create(index), PathType.ARRAYVALUE_CONSTANT); + public static PathMetadata forArrayAccess(Path parent, @Nonnegative int index) { + return new PathMetadata(parent, new ConstantMixin(index), PathType.ARRAYVALUE_CONSTANT); } - public static PathMetadata forListAccess(ListPath parent, Expression index) { + public static PathMetadata forListAccess(Path parent, Expression index) { return new PathMetadata(parent, index, PathType.LISTVALUE); } - public static PathMetadata forListAccess(ListPath parent, @Nonnegative int index) { - return new PathMetadata(parent, NumberConstant.create(index), PathType.LISTVALUE_CONSTANT); + public static PathMetadata forListAccess(Path parent, @Nonnegative int index) { + return new PathMetadata(parent, new ConstantMixin(index), PathType.LISTVALUE_CONSTANT); } - public static PathMetadata forMapAccess(MapPath parent, Expression key) { + public static PathMetadata forMapAccess(Path parent, Expression key) { return new PathMetadata(parent, key, PathType.MAPVALUE); } - public static PathMetadata forMapAccess(MapPath parent, KT key) { - return new PathMetadata(parent, SimpleConstant.create(key), PathType.MAPVALUE_CONSTANT); + public static PathMetadata forMapAccess(Path parent, KT key) { + return new PathMetadata(parent, new ConstantMixin(key), PathType.MAPVALUE_CONSTANT); } public static PathMetadata forProperty(Path parent, String property) { - return new PathMetadata(parent, StringConstant.create(Assert.hasLength(property,"property"), true), PathType.PROPERTY); + return new PathMetadata(parent, new ConstantMixin(Assert.hasLength(property,"property")), PathType.PROPERTY); } public static PathMetadata forVariable(String variable) { - return new PathMetadata(null, StringConstant.create(Assert.hasLength(variable,"variable"), true), PathType.VARIABLE); + return new PathMetadata(null, new ConstantMixin(Assert.hasLength(variable,"variable")), PathType.VARIABLE); } private PathMetadataFactory(){} diff --git a/querydsl-core/src/main/java/com/mysema/query/types/PathMixin.java b/querydsl-core/src/main/java/com/mysema/query/types/PathMixin.java index 106b034e6..040f8df90 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/PathMixin.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/PathMixin.java @@ -30,6 +30,10 @@ public class PathMixin extends MixinBase implements Path { @Nullable private AnnotatedElement annotatedElement; + public PathMixin(Class type, String variable){ + this(type, PathMetadataFactory.forVariable(variable)); + } + public PathMixin(Class type, PathMetadata metadata){ super(type); this.metadata = metadata; diff --git a/querydsl-core/src/main/java/com/mysema/query/types/expr/BooleanExpression.java b/querydsl-core/src/main/java/com/mysema/query/types/expr/BooleanExpression.java index 0b57be3ea..4176fe6d6 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/expr/BooleanExpression.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/expr/BooleanExpression.java @@ -10,8 +10,8 @@ import javax.annotation.Nullable; import com.mysema.query.types.Operator; import com.mysema.query.types.Ops; import com.mysema.query.types.Path; +import com.mysema.query.types.PathMixin; import com.mysema.query.types.Predicate; -import com.mysema.query.types.path.SimplePath; /** * BooleanExpression represents boolean expressions @@ -58,7 +58,7 @@ public abstract class BooleanExpression extends ComparableExpression im @SuppressWarnings("unchecked") @Override public BooleanExpression as(String alias) { - return BooleanOperation.create((Operator)Ops.ALIAS, this, new SimplePath(getType(), alias)); + return BooleanOperation.create((Operator)Ops.ALIAS, this, new PathMixin(getType(), alias)); } /** diff --git a/querydsl-core/src/main/java/com/mysema/query/types/expr/ComparableExpression.java b/querydsl-core/src/main/java/com/mysema/query/types/expr/ComparableExpression.java index 2eb6b6c89..902c266e3 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/expr/ComparableExpression.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/expr/ComparableExpression.java @@ -9,7 +9,7 @@ import com.mysema.query.types.Expression; import com.mysema.query.types.Operator; import com.mysema.query.types.Ops; import com.mysema.query.types.Path; -import com.mysema.query.types.path.SimplePath; +import com.mysema.query.types.PathMixin; /** * ComparableExpression extends EComparableBase to provide comparison methods. @@ -34,7 +34,7 @@ public abstract class ComparableExpression extends Compara @Override public ComparableExpression as(String alias) { - return ComparableOperation.create(getType(),(Operator)Ops.ALIAS, this, new SimplePath(getType(), alias)); + return ComparableOperation.create(getType(),(Operator)Ops.ALIAS, this, new PathMixin(getType(), alias)); } /** diff --git a/querydsl-core/src/main/java/com/mysema/query/types/expr/DateExpression.java b/querydsl-core/src/main/java/com/mysema/query/types/expr/DateExpression.java index e582e7870..2051a782d 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/expr/DateExpression.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/expr/DateExpression.java @@ -12,7 +12,7 @@ import javax.annotation.Nullable; import com.mysema.query.types.Operator; import com.mysema.query.types.Ops; import com.mysema.query.types.Path; -import com.mysema.query.types.path.SimplePath; +import com.mysema.query.types.PathMixin; /** * DateExpression represents Date expressions @@ -68,7 +68,7 @@ public abstract class DateExpression extends TemporalExpre @Override public DateExpression as(String alias) { - return DateOperation.create(getType(), (Operator)Ops.ALIAS, this, new SimplePath(getType(), alias)); + return DateOperation.create(getType(), (Operator)Ops.ALIAS, this, new PathMixin(getType(), alias)); } /** diff --git a/querydsl-core/src/main/java/com/mysema/query/types/expr/DateTimeExpression.java b/querydsl-core/src/main/java/com/mysema/query/types/expr/DateTimeExpression.java index ed170fb3d..aeae54af4 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/expr/DateTimeExpression.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/expr/DateTimeExpression.java @@ -12,7 +12,7 @@ import javax.annotation.Nullable; import com.mysema.query.types.Operator; import com.mysema.query.types.Ops; import com.mysema.query.types.Path; -import com.mysema.query.types.path.SimplePath; +import com.mysema.query.types.PathMixin; /** * DateTimeExpression represents Date / Time expressions @@ -85,7 +85,7 @@ public abstract class DateTimeExpression extends DateExpre @Override public DateTimeExpression as(String alias) { - return DateTimeOperation.create(getType(), (Operator)Ops.ALIAS, this, new SimplePath(getType(), alias)); + return DateTimeOperation.create(getType(), (Operator)Ops.ALIAS, this, new PathMixin(getType(), alias)); } /** diff --git a/querydsl-core/src/main/java/com/mysema/query/types/expr/EnumExpression.java b/querydsl-core/src/main/java/com/mysema/query/types/expr/EnumExpression.java index afa8938cc..b134f1474 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/expr/EnumExpression.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/expr/EnumExpression.java @@ -8,7 +8,7 @@ package com.mysema.query.types.expr; import com.mysema.query.types.Operator; import com.mysema.query.types.Ops; import com.mysema.query.types.Path; -import com.mysema.query.types.path.SimplePath; +import com.mysema.query.types.PathMixin; /** * @author tiwe @@ -32,7 +32,7 @@ public abstract class EnumExpression> extends ComparableExpres @SuppressWarnings("unchecked") @Override public EnumExpression as(String alias) { - return EnumOperation.create(getType(),(Operator)Ops.ALIAS, this, new SimplePath(getType(), alias)); + return EnumOperation.create(getType(),(Operator)Ops.ALIAS, this, new PathMixin(getType(), alias)); } /** diff --git a/querydsl-core/src/main/java/com/mysema/query/types/expr/NumberExpression.java b/querydsl-core/src/main/java/com/mysema/query/types/expr/NumberExpression.java index c0f558ae8..7f3ef2bca 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/expr/NumberExpression.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/expr/NumberExpression.java @@ -16,8 +16,8 @@ import com.mysema.query.types.Expression; import com.mysema.query.types.Operator; import com.mysema.query.types.Ops; import com.mysema.query.types.Path; +import com.mysema.query.types.PathMixin; import com.mysema.query.types.Ops.MathOps; -import com.mysema.query.types.path.SimplePath; import com.mysema.util.MathUtils; /** @@ -86,7 +86,7 @@ public abstract class NumberExpression> extends @SuppressWarnings("unchecked") @Override public NumberExpression as(String alias) { - return NumberOperation.create(getType(),(Operator)Ops.ALIAS, this, new SimplePath(getType(), alias)); + return NumberOperation.create(getType(),(Operator)Ops.ALIAS, this, new PathMixin(getType(), alias)); } /** diff --git a/querydsl-core/src/main/java/com/mysema/query/types/expr/SimpleExpression.java b/querydsl-core/src/main/java/com/mysema/query/types/expr/SimpleExpression.java index c6695e610..5d3ecb0d3 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/expr/SimpleExpression.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/expr/SimpleExpression.java @@ -15,9 +15,9 @@ import com.mysema.query.types.Expression; import com.mysema.query.types.Operator; import com.mysema.query.types.Ops; import com.mysema.query.types.Path; +import com.mysema.query.types.PathMixin; import com.mysema.query.types.Templates; import com.mysema.query.types.ToStringVisitor; -import com.mysema.query.types.path.SimplePath; /** * ESimple is the base class for Expr implementations. It provides default implementations @@ -97,7 +97,7 @@ public abstract class SimpleExpression implements Expression { */ @SuppressWarnings("unchecked") public SimpleExpression as(String alias) { - return SimpleOperation.create(getType(),(Operator)Ops.ALIAS, this, new SimplePath(getType(), alias)); + return SimpleOperation.create(getType(),(Operator)Ops.ALIAS, this, new PathMixin(getType(), alias)); } /** diff --git a/querydsl-core/src/main/java/com/mysema/query/types/expr/StringExpression.java b/querydsl-core/src/main/java/com/mysema/query/types/expr/StringExpression.java index 4675297ed..f3e0546c7 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/expr/StringExpression.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/expr/StringExpression.java @@ -11,7 +11,7 @@ import com.mysema.query.types.Expression; import com.mysema.query.types.Operator; import com.mysema.query.types.Ops; import com.mysema.query.types.Path; -import com.mysema.query.types.path.SimplePath; +import com.mysema.query.types.PathMixin; /** * StringExpression represents String expressions @@ -45,7 +45,7 @@ public abstract class StringExpression extends ComparableExpression { @SuppressWarnings("unchecked") @Override public StringExpression as(String alias) { - return StringOperation.create((Operator)Ops.ALIAS, this, new SimplePath(getType(), alias)); + return StringOperation.create((Operator)Ops.ALIAS, this, new PathMixin(getType(), alias)); } /** diff --git a/querydsl-core/src/main/java/com/mysema/query/types/expr/TimeExpression.java b/querydsl-core/src/main/java/com/mysema/query/types/expr/TimeExpression.java index df54ca84f..a1babbbd8 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/expr/TimeExpression.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/expr/TimeExpression.java @@ -12,7 +12,7 @@ import javax.annotation.Nullable; import com.mysema.query.types.Operator; import com.mysema.query.types.Ops; import com.mysema.query.types.Path; -import com.mysema.query.types.path.SimplePath; +import com.mysema.query.types.PathMixin; /** * TimeExpression represents Time expressions @@ -42,7 +42,7 @@ public abstract class TimeExpression extends TemporalExpre @Override public TimeExpression as(String alias) { - return TimeOperation.create(getType(), (Operator)Ops.ALIAS, this, new SimplePath(getType(), alias)); + return TimeOperation.create(getType(), (Operator)Ops.ALIAS, this, new PathMixin(getType(), alias)); } /**