From e447b996321065d915bdd117170d27fc5104f39e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Thu, 26 Mar 2015 22:54:22 +0200 Subject: [PATCH] Move RelationalFunctionCall factory methods to SQLExpressions --- .../core/types/TemplateExpressionImpl.java | 10 +++++----- .../querydsl/jpa/RelationalFunctionCallTest.java | 9 ++------- .../com/querydsl/sql/RelationalFunctionCall.java | 16 ++-------------- .../java/com/querydsl/sql/SQLExpressions.java | 13 +++++++++++++ .../querydsl/sql/RelationalFunctionCallTest.java | 4 ++-- .../java/com/querydsl/sql/SQLSerializerTest.java | 4 ++-- .../java/com/querydsl/sql/SerializationTest.java | 6 +++--- 7 files changed, 29 insertions(+), 33 deletions(-) diff --git a/querydsl-core/src/main/java/com/querydsl/core/types/TemplateExpressionImpl.java b/querydsl-core/src/main/java/com/querydsl/core/types/TemplateExpressionImpl.java index e66286626..51185bc7e 100644 --- a/querydsl-core/src/main/java/com/querydsl/core/types/TemplateExpressionImpl.java +++ b/querydsl-core/src/main/java/com/querydsl/core/types/TemplateExpressionImpl.java @@ -35,23 +35,23 @@ public class TemplateExpressionImpl extends ExpressionBase implements Temp private final Template template; - public static Expression create(Class cl, String template) { + public static Expression create(Class cl, String template) { return new TemplateExpressionImpl(cl, TemplateFactory.DEFAULT.create(template), ImmutableList.of()); } - public static Expression create(Class cl, String template, Object one) { + public static Expression create(Class cl, String template, Object one) { return new TemplateExpressionImpl(cl, TemplateFactory.DEFAULT.create(template), ImmutableList.of(one)); } - public static Expression create(Class cl, String template, Object one, Object two) { + public static Expression create(Class cl, String template, Object one, Object two) { return new TemplateExpressionImpl(cl, TemplateFactory.DEFAULT.create(template), ImmutableList.of(one, two)); } - public static Expression create(Class cl, String template, Object... args) { + public static Expression create(Class cl, String template, Object... args) { return new TemplateExpressionImpl(cl, TemplateFactory.DEFAULT.create(template), args); } - public static Expression create(Class cl, Template template, Object... args) { + public static Expression create(Class cl, Template template, Object... args) { return new TemplateExpressionImpl(cl, template, args); } diff --git a/querydsl-jpa/src/test/java/com/querydsl/jpa/RelationalFunctionCallTest.java b/querydsl-jpa/src/test/java/com/querydsl/jpa/RelationalFunctionCallTest.java index adb07f2e2..e02bcbd58 100644 --- a/querydsl-jpa/src/test/java/com/querydsl/jpa/RelationalFunctionCallTest.java +++ b/querydsl-jpa/src/test/java/com/querydsl/jpa/RelationalFunctionCallTest.java @@ -17,16 +17,11 @@ import static org.junit.Assert.assertEquals; import org.junit.Test; -import com.querydsl.sql.Configuration; -import com.querydsl.sql.RelationalFunctionCall; -import com.querydsl.sql.RelationalPathBase; -import com.querydsl.sql.SQLSerializer; -import com.querydsl.sql.SQLServerTemplates; -import com.querydsl.sql.SQLSubQuery; import com.querydsl.core.types.PathMetadataFactory; import com.querydsl.core.types.SubQueryExpression; import com.querydsl.core.types.dsl.PathBuilder; import com.querydsl.core.types.dsl.StringPath; +import com.querydsl.sql.*; public class RelationalFunctionCallTest { @@ -49,7 +44,7 @@ public class RelationalFunctionCallTest { //select tab.col from Table tab join TableValuedFunction('parameter') func on tab.col not like func.col QSurvey table = new QSurvey("SURVEY"); - RelationalFunctionCall func = RelationalFunctionCall.create(String.class, "TableValuedFunction", "parameter"); + RelationalFunctionCall func = SQLExpressions.relationalFunctionCall(String.class, "TableValuedFunction", "parameter"); PathBuilder funcAlias = new PathBuilder(String.class, "tokFunc"); SQLSubQuery sq = new SQLSubQuery(); SubQueryExpression expr = sq.from(table) diff --git a/querydsl-sql/src/main/java/com/querydsl/sql/RelationalFunctionCall.java b/querydsl-sql/src/main/java/com/querydsl/sql/RelationalFunctionCall.java index 244050f9b..23eaa6c0c 100644 --- a/querydsl-sql/src/main/java/com/querydsl/sql/RelationalFunctionCall.java +++ b/querydsl-sql/src/main/java/com/querydsl/sql/RelationalFunctionCall.java @@ -49,20 +49,8 @@ public class RelationalFunctionCall extends SimpleExpression implements Te private final TemplateExpression templateMixin; - /** - * Create a new RelationalFunctionCall for the given function and arguments - * - * @param type - * @param function - * @param args - * @return - */ - public static RelationalFunctionCall create(Class type, String function, Object... args) { - return new RelationalFunctionCall(type, function, args); - } - - public RelationalFunctionCall(Class type, String function, Object... args) { - super(TemplateExpressionImpl.create((Class)type, createTemplate(function, args.length), args)); + protected RelationalFunctionCall(Class type, String function, Object... args) { + super(TemplateExpressionImpl.create(type, createTemplate(function, args.length), args)); templateMixin = (TemplateExpression)mixin; } diff --git a/querydsl-sql/src/main/java/com/querydsl/sql/SQLExpressions.java b/querydsl-sql/src/main/java/com/querydsl/sql/SQLExpressions.java index 97a0dc779..53e4b2f83 100644 --- a/querydsl-sql/src/main/java/com/querydsl/sql/SQLExpressions.java +++ b/querydsl-sql/src/main/java/com/querydsl/sql/SQLExpressions.java @@ -115,6 +115,19 @@ public final class SQLExpressions { return Expressions.booleanOperation(Ops.AggOps.BOOLEAN_ALL, expr); } + /** + * Create a new RelationalFunctionCall for the given function and arguments + * + * @param type + * @param function + * @param args + * @param + * @return + */ + public static RelationalFunctionCall relationalFunctionCall(Class type, String function, Object... args) { + return new RelationalFunctionCall(type, function, args); + } + /** * Get a nextval(sequence) expression * diff --git a/querydsl-sql/src/test/java/com/querydsl/sql/RelationalFunctionCallTest.java b/querydsl-sql/src/test/java/com/querydsl/sql/RelationalFunctionCallTest.java index d67ab33e4..6e22ff51c 100644 --- a/querydsl-sql/src/test/java/com/querydsl/sql/RelationalFunctionCallTest.java +++ b/querydsl-sql/src/test/java/com/querydsl/sql/RelationalFunctionCallTest.java @@ -57,14 +57,14 @@ public class RelationalFunctionCallTest { @Test public void NoArgs() { - RelationalFunctionCall functionCall = RelationalFunctionCall.create(String.class, "getElements"); + RelationalFunctionCall functionCall = SQLExpressions.relationalFunctionCall(String.class, "getElements"); assertEquals("getElements()", functionCall.getTemplate().toString()); } @Test public void TwoArgs() { StringPath str = Expressions.stringPath("str"); - RelationalFunctionCall functionCall = RelationalFunctionCall.create(String.class, "getElements", "a", str); + RelationalFunctionCall functionCall = SQLExpressions.relationalFunctionCall(String.class, "getElements", "a", str); assertEquals("getElements({0}, {1})", functionCall.getTemplate().toString()); assertEquals("a", functionCall.getArg(0)); assertEquals(str, functionCall.getArg(1)); diff --git a/querydsl-sql/src/test/java/com/querydsl/sql/SQLSerializerTest.java b/querydsl-sql/src/test/java/com/querydsl/sql/SQLSerializerTest.java index a8291e2ed..da07b11a6 100644 --- a/querydsl-sql/src/test/java/com/querydsl/sql/SQLSerializerTest.java +++ b/querydsl-sql/src/test/java/com/querydsl/sql/SQLSerializerTest.java @@ -165,7 +165,7 @@ public class SQLSerializerTest { @Test public void Join_To_Function_With_Alias() { SQLQuery query = query(); - query.from(survey).join(RelationalFunctionCall.create(Survey.class, "functionCall"), Expressions.path(Survey.class, "fc")); + query.from(survey).join(SQLExpressions.relationalFunctionCall(Survey.class, "functionCall"), Expressions.path(Survey.class, "fc")); query.where(survey.name.isNotNull()); assertEquals("from SURVEY SURVEY\njoin functionCall() as fc\nwhere SURVEY.NAME is not null", query.toString()); } @@ -173,7 +173,7 @@ public class SQLSerializerTest { @Test public void Join_To_Function_In_Derby() { SQLQuery query = new SQLQuery(new DerbyTemplates()); - query.from(survey).join(RelationalFunctionCall.create(Survey.class, "functionCall"), Expressions.path(Survey.class, "fc")); + query.from(survey).join(SQLExpressions.relationalFunctionCall(Survey.class, "functionCall"), Expressions.path(Survey.class, "fc")); query.where(survey.name.isNotNull()); assertEquals("from SURVEY SURVEY\njoin table(functionCall()) as fc\nwhere SURVEY.NAME is not null", query.toString()); } diff --git a/querydsl-sql/src/test/java/com/querydsl/sql/SerializationTest.java b/querydsl-sql/src/test/java/com/querydsl/sql/SerializationTest.java index 21d24a400..12dcd9f00 100644 --- a/querydsl-sql/src/test/java/com/querydsl/sql/SerializationTest.java +++ b/querydsl-sql/src/test/java/com/querydsl/sql/SerializationTest.java @@ -110,7 +110,7 @@ public class SerializationTest { @Test public void FunctionCall() { - RelationalFunctionCall func = RelationalFunctionCall.create(String.class, "TableValuedFunction", "parameter"); + RelationalFunctionCall func = SQLExpressions.relationalFunctionCall(String.class, "TableValuedFunction", "parameter"); PathBuilder funcAlias = new PathBuilder(String.class, "tokFunc"); SQLSubQuery sq = new SQLSubQuery(); SubQueryExpression expr = sq.from(survey) @@ -128,7 +128,7 @@ public class SerializationTest { @Test public void FunctionCall2() { - RelationalFunctionCall func = RelationalFunctionCall.create(String.class, "TableValuedFunction", "parameter"); + RelationalFunctionCall func = SQLExpressions.relationalFunctionCall(String.class, "TableValuedFunction", "parameter"); PathBuilder funcAlias = new PathBuilder(String.class, "tokFunc"); SQLQuery q = new SQLQuery(new SQLServerTemplates()); q.from(survey) @@ -141,7 +141,7 @@ public class SerializationTest { @Test public void FunctionCall3() { - RelationalFunctionCall func = RelationalFunctionCall.create(String.class, "TableValuedFunction", "parameter"); + RelationalFunctionCall func = SQLExpressions.relationalFunctionCall(String.class, "TableValuedFunction", "parameter"); PathBuilder funcAlias = new PathBuilder(String.class, "tokFunc"); SQLQuery q = new SQLQuery(new HSQLDBTemplates()); q.from(survey)