diff --git a/querydsl-core/src/main/java/com/mysema/query/ExprFactory.java b/querydsl-core/src/main/java/com/mysema/query/ExprFactory.java index 6ca8c4555..7d8e0ed64 100644 --- a/querydsl-core/src/main/java/com/mysema/query/ExprFactory.java +++ b/querydsl-core/src/main/java/com/mysema/query/ExprFactory.java @@ -26,13 +26,13 @@ public interface ExprFactory { Expr createAny(D arg); - EBoolean createBoolean(Boolean arg); + PBoolean createBoolean(Boolean arg); PBooleanArray createBooleanArray(Boolean[] args); - > ENumber createNumber(D arg); + > PNumber createNumber(D arg); - > EComparable createComparable(D arg); + > PComparable createComparable(D arg); PEntity createEntity(D arg); @@ -44,7 +44,7 @@ public interface ExprFactory { > PComparableArray createComparableArray(D[] args); - EString createString(String arg); + PString createString(String arg); PStringArray createStringArray(String[] args); diff --git a/querydsl-core/src/main/java/com/mysema/query/JoinExpression.java b/querydsl-core/src/main/java/com/mysema/query/JoinExpression.java index 1b2c7341e..835d96b9a 100644 --- a/querydsl-core/src/main/java/com/mysema/query/JoinExpression.java +++ b/querydsl-core/src/main/java/com/mysema/query/JoinExpression.java @@ -22,10 +22,12 @@ public class JoinExpression { private final JoinType type; private final T metadata; + public JoinExpression(Expr target){ + this(JoinType.DEFAULT, target, null); + } + public JoinExpression(JoinType type, Expr target) { - this.type = type; - this.target = Assert.notNull(target); - this.metadata = null; + this(type, target, null); } public JoinExpression(JoinType type, Expr target, T metadata) { @@ -55,7 +57,12 @@ public class JoinExpression { } public String toString(){ - return type + " " + target; + StringBuilder builder = new StringBuilder(); + builder.append(type).append(" ").append(target); + if (condition != null){ + builder.append(" ON ").append(condition); + } + return builder.toString(); } @Override diff --git a/querydsl-core/src/main/java/com/mysema/query/JoinType.java b/querydsl-core/src/main/java/com/mysema/query/JoinType.java index 9eeb7d8e2..a52051539 100644 --- a/querydsl-core/src/main/java/com/mysema/query/JoinType.java +++ b/querydsl-core/src/main/java/com/mysema/query/JoinType.java @@ -12,5 +12,15 @@ package com.mysema.query; * @version $Id$ */ public enum JoinType { - DEFAULT, INNERJOIN, JOIN, LEFTJOIN, FULLJOIN + DEFAULT, + INNERJOIN { + public String toString(){ return "INNER JOIN"; } + }, + JOIN, + LEFTJOIN { + public String toString(){ return "LEFT JOIN"; } + }, + FULLJOIN { + public String toString(){ return "FULL JOIN"; } + } } \ No newline at end of file diff --git a/querydsl-core/src/main/java/com/mysema/query/SimpleExprFactory.java b/querydsl-core/src/main/java/com/mysema/query/SimpleExprFactory.java index 6bdb99d2e..61c99560f 100644 --- a/querydsl-core/src/main/java/com/mysema/query/SimpleExprFactory.java +++ b/querydsl-core/src/main/java/com/mysema/query/SimpleExprFactory.java @@ -115,7 +115,7 @@ public class SimpleExprFactory implements ExprFactory { } }); - private final Map strToExtPath = new PathFactory(new Transformer(){ + private final Map strToPath = new PathFactory(new Transformer(){ public PString transform(String str) { return new PString(md()); } @@ -125,7 +125,7 @@ public class SimpleExprFactory implements ExprFactory { throw new UnsupportedOperationException(); } - public EBoolean createBoolean(Boolean arg){ + public PBoolean createBoolean(Boolean arg){ return arg.booleanValue() ? btrue : bfalse; } @@ -139,13 +139,13 @@ public class SimpleExprFactory implements ExprFactory { } @SuppressWarnings("unchecked") - public > EComparable createComparable(D arg){ - return (EComparable) comToPath.get(arg); + public > PComparable createComparable(D arg){ + return (PComparable) comToPath.get(arg); } @SuppressWarnings("unchecked") - public > ENumber createNumber(D arg) { - return (ENumber) numToPath.get(arg); + public > PNumber createNumber(D arg) { + return (PNumber) numToPath.get(arg); } @SuppressWarnings("unchecked") @@ -168,8 +168,8 @@ public class SimpleExprFactory implements ExprFactory { return (PEntityList) elToPath.get(arg); } - public EString createString(String arg){ - return StringUtils.isEmpty(arg) ? str : strToExtPath.get(arg); + public PString createString(String arg){ + return StringUtils.isEmpty(arg) ? str : strToPath.get(arg); } public PStringArray createStringArray(String[] args){ diff --git a/querydsl-core/src/main/java/com/mysema/query/alias/AliasAwareExprFactory.java b/querydsl-core/src/main/java/com/mysema/query/alias/AliasAwareExprFactory.java index ee1c33693..9e6b96ded 100644 --- a/querydsl-core/src/main/java/com/mysema/query/alias/AliasAwareExprFactory.java +++ b/querydsl-core/src/main/java/com/mysema/query/alias/AliasAwareExprFactory.java @@ -11,10 +11,6 @@ import java.util.Map; import com.mysema.query.SimpleExprFactory; import com.mysema.query.grammar.types.Expr; -import com.mysema.query.grammar.types.Expr.EBoolean; -import com.mysema.query.grammar.types.Expr.EComparable; -import com.mysema.query.grammar.types.Expr.ENumber; -import com.mysema.query.grammar.types.Expr.EString; import com.mysema.query.grammar.types.Path.*; /** @@ -43,8 +39,8 @@ public class AliasAwareExprFactory extends SimpleExprFactory{ } } - public EBoolean createBoolean(Boolean arg){ - EBoolean rv = aliasFactory.getCurrentAndReset(); + public PBoolean createBoolean(Boolean arg){ + PBoolean rv = aliasFactory.getCurrentAndReset(); return rv != null ? rv : super.createBoolean(arg); } @@ -58,13 +54,13 @@ public class AliasAwareExprFactory extends SimpleExprFactory{ return rv != null ? rv : super.createEntityCollection(arg); } - public > EComparable createComparable(D arg){ - EComparable rv = aliasFactory.>getCurrentAndReset(); + public > PComparable createComparable(D arg){ + PComparable rv = aliasFactory.>getCurrentAndReset(); return rv != null ? rv : super.createComparable(arg); } - public > ENumber createNumber(D arg){ - ENumber rv = aliasFactory.>getCurrentAndReset(); + public > PNumber createNumber(D arg){ + PNumber rv = aliasFactory.>getCurrentAndReset(); return rv != null ? rv : super.createNumber(arg); } @@ -95,8 +91,8 @@ public class AliasAwareExprFactory extends SimpleExprFactory{ return rv != null ? rv : super.createEntityList(arg); } - public EString createString(String arg){ - EString rv = aliasFactory.getCurrentAndReset(); + public PString createString(String arg){ + PString rv = aliasFactory.getCurrentAndReset(); return rv != null ? rv : super.createString(arg); } diff --git a/querydsl-core/src/main/java/com/mysema/query/alias/PropertyAccessInvocationHandler.java b/querydsl-core/src/main/java/com/mysema/query/alias/PropertyAccessInvocationHandler.java index b9e4aaa29..0c68fca97 100644 --- a/querydsl-core/src/main/java/com/mysema/query/alias/PropertyAccessInvocationHandler.java +++ b/querydsl-core/src/main/java/com/mysema/query/alias/PropertyAccessInvocationHandler.java @@ -132,10 +132,6 @@ class PropertyAccessInvocationHandler implements MethodInterceptor{ } aliasFactory.setCurrent(propToExpr.get(propKey)); - }else if (isContains(method)){ - rv = false; - aliasFactory.setCurrent(Grammar.in(args[0], (CollectionType)path)); - }else if (isToString(method)){ rv = path.toString(); @@ -155,10 +151,6 @@ class PropertyAccessInvocationHandler implements MethodInterceptor{ return checkMethod(method, "toString", 0, String.class); } - private boolean isContains(Method method){ - return checkMethod(method, "contains", 1, boolean.class); - } - private boolean isGetMappedPath(Method method){ return checkMethod(method, "__mappedPath", 0, PEntity.class); } diff --git a/querydsl-core/src/main/java/com/mysema/query/grammar/GrammarWithAlias.java b/querydsl-core/src/main/java/com/mysema/query/grammar/GrammarWithAlias.java index 03e103b65..834212a55 100644 --- a/querydsl-core/src/main/java/com/mysema/query/grammar/GrammarWithAlias.java +++ b/querydsl-core/src/main/java/com/mysema/query/grammar/GrammarWithAlias.java @@ -17,10 +17,6 @@ import com.mysema.query.alias.AliasFactory; import com.mysema.query.alias.SimpleAliasFactory; import com.mysema.query.grammar.types.Expr; import com.mysema.query.grammar.types.PathMetadata; -import com.mysema.query.grammar.types.Expr.EBoolean; -import com.mysema.query.grammar.types.Expr.EComparable; -import com.mysema.query.grammar.types.Expr.ENumber; -import com.mysema.query.grammar.types.Expr.EString; import com.mysema.query.grammar.types.Path.*; /** @@ -49,47 +45,47 @@ public class GrammarWithAlias extends Grammar{ aliasFactory.reset(); } - public static EBoolean $(Boolean arg){ + public static PBoolean $(Boolean arg){ return exprFactory.createBoolean(arg); } - public static > EComparable $(D arg){ + public static > PComparable $(D arg){ return exprFactory.createComparable(arg); } - public static ENumber $(BigDecimal arg){ + public static PNumber $(BigDecimal arg){ return exprFactory.createNumber(arg); } - public static ENumber $(BigInteger arg){ + public static PNumber $(BigInteger arg){ return exprFactory.createNumber(arg); } - public static ENumber $(Byte arg){ + public static PNumber $(Byte arg){ return exprFactory.createNumber(arg); } - public static ENumber $(Double arg){ + public static PNumber $(Double arg){ return exprFactory.createNumber(arg); } - public static ENumber $(Float arg){ + public static PNumber $(Float arg){ return exprFactory.createNumber(arg); } - public static ENumber $(Integer arg){ + public static PNumber $(Integer arg){ return exprFactory.createNumber(arg); } - public static ENumber $(Long arg){ + public static PNumber $(Long arg){ return exprFactory.createNumber(arg); } - public static ENumber $(Short arg){ + public static PNumber $(Short arg){ return exprFactory.createNumber(arg); } - public static EString $(String arg){ + public static PString $(String arg){ return exprFactory.createString(arg); }