diff --git a/querydsl-core/src/main/java/com/mysema/query/types/Operation.java b/querydsl-core/src/main/java/com/mysema/query/types/Operation.java index 6faabe3ff..3da9772ca 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/Operation.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/Operation.java @@ -15,6 +15,13 @@ import java.util.List; * @version $Id$ */ public interface Operation { + /** + * Create an alias for the operation + * + * @return + */ + Expr as(Path alias); + /** * Cast to {@link Expr} * diff --git a/querydsl-core/src/main/java/com/mysema/query/types/expr/OBoolean.java b/querydsl-core/src/main/java/com/mysema/query/types/expr/OBoolean.java index 82b4446d3..c269bc4ea 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/expr/OBoolean.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/expr/OBoolean.java @@ -12,6 +12,7 @@ import com.mysema.query.types.Expr; import com.mysema.query.types.Operation; import com.mysema.query.types.Operator; import com.mysema.query.types.Ops; +import com.mysema.query.types.Path; import com.mysema.query.types.Visitor; /** @@ -76,5 +77,10 @@ public class OBoolean extends EBoolean implements Operation { public int hashCode(){ return getType().hashCode(); } + + @Override + public Expr as(Path alias) { + return OBoolean.create((Operator)Ops.ALIAS, this, alias.asExpr()); + } } \ No newline at end of file diff --git a/querydsl-core/src/main/java/com/mysema/query/types/expr/OComparable.java b/querydsl-core/src/main/java/com/mysema/query/types/expr/OComparable.java index 9027606b6..b611f2947 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/expr/OComparable.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/expr/OComparable.java @@ -11,6 +11,8 @@ import java.util.List; import com.mysema.query.types.Expr; import com.mysema.query.types.Operation; import com.mysema.query.types.Operator; +import com.mysema.query.types.Ops; +import com.mysema.query.types.Path; import com.mysema.query.types.Visitor; /** @@ -78,4 +80,10 @@ public class OComparable> extends public int hashCode(){ return getType().hashCode(); } + + @SuppressWarnings("unchecked") + @Override + public EComparable as(Path alias) { + return OComparable.create(getType(),(Operator)Ops.ALIAS, this, alias.asExpr()); + } } \ No newline at end of file diff --git a/querydsl-core/src/main/java/com/mysema/query/types/expr/ODate.java b/querydsl-core/src/main/java/com/mysema/query/types/expr/ODate.java index 05465c034..9a2f6be6c 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/expr/ODate.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/expr/ODate.java @@ -11,6 +11,8 @@ import java.util.List; import com.mysema.query.types.Expr; import com.mysema.query.types.Operation; import com.mysema.query.types.Operator; +import com.mysema.query.types.Ops; +import com.mysema.query.types.Path; import com.mysema.query.types.Visitor; /** @@ -78,4 +80,10 @@ public class ODate> extends public int hashCode(){ return getType().hashCode(); } + + @SuppressWarnings("unchecked") + @Override + public EDate as(Path alias) { + return ODate.create(getType(),(Operator)Ops.ALIAS, this, alias.asExpr()); + } } diff --git a/querydsl-core/src/main/java/com/mysema/query/types/expr/ODateTime.java b/querydsl-core/src/main/java/com/mysema/query/types/expr/ODateTime.java index e6fd721fe..b5f260b67 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/expr/ODateTime.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/expr/ODateTime.java @@ -11,6 +11,8 @@ import java.util.List; import com.mysema.query.types.Expr; import com.mysema.query.types.Operation; import com.mysema.query.types.Operator; +import com.mysema.query.types.Ops; +import com.mysema.query.types.Path; import com.mysema.query.types.Visitor; /** @@ -79,4 +81,10 @@ public class ODateTime> extends public int hashCode(){ return getType().hashCode(); } + + @SuppressWarnings("unchecked") + @Override + public EDateTime as(Path alias) { + return ODateTime.create(getType(),(Operator)Ops.ALIAS, this, alias.asExpr()); + } } diff --git a/querydsl-core/src/main/java/com/mysema/query/types/expr/ONumber.java b/querydsl-core/src/main/java/com/mysema/query/types/expr/ONumber.java index 102fa2c1d..e664b7362 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/expr/ONumber.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/expr/ONumber.java @@ -11,6 +11,8 @@ import java.util.List; import com.mysema.query.types.Expr; import com.mysema.query.types.Operation; import com.mysema.query.types.Operator; +import com.mysema.query.types.Ops; +import com.mysema.query.types.Path; import com.mysema.query.types.Visitor; /** @@ -78,4 +80,10 @@ public class ONumber> public int hashCode(){ return getType().hashCode(); } + + @SuppressWarnings("unchecked") + @Override + public ENumber as(Path alias) { + return ONumber.create(getType(),(Operator)Ops.ALIAS, this, alias.asExpr()); + } } \ No newline at end of file diff --git a/querydsl-core/src/main/java/com/mysema/query/types/expr/OSimple.java b/querydsl-core/src/main/java/com/mysema/query/types/expr/OSimple.java index 901e53bda..e58a571a2 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/expr/OSimple.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/expr/OSimple.java @@ -11,6 +11,8 @@ import java.util.List; import com.mysema.query.types.Expr; import com.mysema.query.types.Operation; import com.mysema.query.types.Operator; +import com.mysema.query.types.Ops; +import com.mysema.query.types.Path; import com.mysema.query.types.Visitor; /** @@ -77,4 +79,10 @@ public class OSimple extends ESimple implements Operation { public int hashCode(){ return getType().hashCode(); } + + @SuppressWarnings("unchecked") + @Override + public Expr as(Path alias) { + return OSimple.create(getType(),(Operator)Ops.ALIAS, this, alias.asExpr()); + } } \ No newline at end of file diff --git a/querydsl-core/src/main/java/com/mysema/query/types/expr/OString.java b/querydsl-core/src/main/java/com/mysema/query/types/expr/OString.java index 416dd3db7..e754705ab 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/expr/OString.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/expr/OString.java @@ -11,6 +11,8 @@ import java.util.List; import com.mysema.query.types.Expr; import com.mysema.query.types.Operation; import com.mysema.query.types.Operator; +import com.mysema.query.types.Ops; +import com.mysema.query.types.Path; import com.mysema.query.types.Visitor; /** @@ -66,4 +68,9 @@ public class OString extends EString implements Operation { public int hashCode(){ return getType().hashCode(); } + + @Override + public EString as(Path alias) { + return OString.create((Operator)Ops.ALIAS, this, alias.asExpr()); + } } \ No newline at end of file diff --git a/querydsl-core/src/main/java/com/mysema/query/types/expr/OTime.java b/querydsl-core/src/main/java/com/mysema/query/types/expr/OTime.java index 1a53b242e..d24a9b28e 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/expr/OTime.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/expr/OTime.java @@ -11,6 +11,8 @@ import java.util.List; import com.mysema.query.types.Expr; import com.mysema.query.types.Operation; import com.mysema.query.types.Operator; +import com.mysema.query.types.Ops; +import com.mysema.query.types.Path; import com.mysema.query.types.Visitor; /** @@ -77,4 +79,10 @@ public class OTime> extends ETime implements Operatio public int hashCode(){ return getType().hashCode(); } + + @SuppressWarnings("unchecked") + @Override + public ETime as(Path alias) { + return OTime.create(getType(),(Operator)Ops.ALIAS, this, alias.asExpr()); + } } diff --git a/querydsl-core/src/main/java/com/mysema/query/types/expr/OperationMixin.java b/querydsl-core/src/main/java/com/mysema/query/types/expr/OperationMixin.java index d49306724..fb43872f6 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/expr/OperationMixin.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/expr/OperationMixin.java @@ -12,6 +12,7 @@ import java.util.List; import com.mysema.query.types.Expr; import com.mysema.query.types.Operation; import com.mysema.query.types.Operator; +import com.mysema.query.types.Path; /** * @author tiwe @@ -78,5 +79,10 @@ public final class OperationMixin implements Operation, Serializable { public int hashCode(){ return self.getType().hashCode(); } + + @Override + public Expr as(Path alias) { + throw new UnsupportedOperationException(); + } }