From a79331cfafc47928c8be9baa67212d0fb1c48d7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Tue, 12 Jan 2010 12:38:55 +0000 Subject: [PATCH] added convenience constructos QueryMixin and Query types --- .../java/com/mysema/query/QueryMixin.java | 4 +++ .../query/codegen/EntitySerializer.java | 26 +++++++------------ .../main/java/com/mysema/util/CodeWriter.java | 2 +- .../main/java/com/mysema/util/JavaWriter.java | 10 ++++--- .../com/mysema/query/hql/HQLQueryMixin.java | 2 ++ .../hql/hibernate/AbstractHibernateQuery.java | 6 ++--- .../query/hql/hibernate/HibernateQuery.java | 2 +- .../query/jdoql/AbstractJDOQLQuery.java | 4 +-- .../mysema/query/jdoql/JDOQLQueryImpl.java | 4 +-- .../mysema/query/jdoql/JDOQLQueryMixin.java | 2 ++ .../mysema/query/sql/AbstractSQLQuery.java | 2 +- 11 files changed, 35 insertions(+), 29 deletions(-) diff --git a/querydsl-core/src/main/java/com/mysema/query/QueryMixin.java b/querydsl-core/src/main/java/com/mysema/query/QueryMixin.java index 4ea9592bd..763cf394e 100644 --- a/querydsl-core/src/main/java/com/mysema/query/QueryMixin.java +++ b/querydsl-core/src/main/java/com/mysema/query/QueryMixin.java @@ -28,6 +28,10 @@ public class QueryMixin{ this.metadata = Assert.notNull(metadata); } + public QueryMixin(){ + this.metadata = new DefaultQueryMetadata(); + } + public QueryMixin(T self, QueryMetadata metadata){ this.self = Assert.notNull(self); this.metadata = Assert.notNull(metadata); diff --git a/querydsl-core/src/main/java/com/mysema/query/codegen/EntitySerializer.java b/querydsl-core/src/main/java/com/mysema/query/codegen/EntitySerializer.java index 0fd021c3e..8932942df 100644 --- a/querydsl-core/src/main/java/com/mysema/query/codegen/EntitySerializer.java +++ b/querydsl-core/src/main/java/com/mysema/query/codegen/EntitySerializer.java @@ -29,7 +29,6 @@ import com.mysema.util.JavaWriter; * @author tiwe * */ -// simplify @Immutable public class EntitySerializer implements Serializer{ @@ -66,7 +65,7 @@ public class EntitySerializer implements Serializer{ writer.suppressWarnings("unchecked"); } writer.beginConstructor("PathMetadata metadata"); - writer.line("super(" + (localName.equals(genericName) ? "" : "(Class)") + localName + ".class, metadata);"); + writer.line("super(",localName.equals(genericName) ? "" : "(Class)",localName,".class, metadata);"); writer.end(); } @@ -76,7 +75,7 @@ public class EntitySerializer implements Serializer{ writer.suppressWarnings("unchecked"); } writer.beginConstructor("PathMetadata metadata", "PathInits inits"); - writer.line(thisOrSuper + "(" + (localName.equals(genericName) ? "" : "(Class)") + localName + ".class, metadata, inits);"); + writer.line(thisOrSuper, "(", localName.equals(genericName) ? "" : "(Class)", localName, ".class, metadata, inits);"); writer.end(); } @@ -101,16 +100,9 @@ public class EntitySerializer implements Serializer{ if (!localName.equals(genericName)){ writer.suppressWarnings("unchecked"); } - writer.beginConstructor("String variable"); - writer.append(" "+thisOrSuper+"("); - if (!localName.equals(genericName)){ - writer.append("(Class)"); - } - writer.append(localName + ".class, forVariable(variable)"); - if (hasEntityFields){ - writer.append(", INITS"); - } - writer.append(");\n"); + writer.beginConstructor("String variable"); + writer.line(thisOrSuper,"(", localName.equals(genericName) ? "" : "(Class)", + localName, ".class, forVariable(variable)", hasEntityFields ? ", INITS" : "", ");"); writer.end(); } @@ -151,6 +143,8 @@ public class EntitySerializer implements Serializer{ } protected void initEntityFields(JavaWriter writer, SerializerConfig config, EntityModel model) throws IOException { + // TODO : to CodeWriter DSL + EntityModel superModel = model.getSuperModel(); if (superModel != null && superModel.hasEntityFields()){ String superQueryType = typeMappings.getPathType(superModel, model, false); @@ -160,7 +154,8 @@ public class EntitySerializer implements Serializer{ for (PropertyModel field : model.getProperties()){ if (field.getType().getCategory() == TypeCategory.ENTITY){ String queryType = typeMappings.getPathType(field.getType(), model, false); - if (!field.isInherited()){ + if (!field.isInherited()){ +// writer.line( writer.append(" this." + field.getEscapedName() + " = "); writer.append("inits.isInitialized(\""+field.getName()+"\") ? "); writer.append("new " + queryType + "(forProperty(\"" + field.getName() + "\")"); @@ -169,8 +164,7 @@ public class EntitySerializer implements Serializer{ } writer.append(") : null;\n"); }else if (!config.useEntityAccessors()){ - writer.append(" this." + field.getEscapedName() + " = "); - writer.append("_super." + field.getEscapedName() +";\n"); + writer.line("this." + field.getEscapedName() + " = ", "_super." + field.getEscapedName() +";"); } }else if (field.isInherited() && superModel != null && superModel.hasEntityFields()){ diff --git a/querydsl-core/src/main/java/com/mysema/util/CodeWriter.java b/querydsl-core/src/main/java/com/mysema/util/CodeWriter.java index 43e4e2b60..9fb8a225e 100644 --- a/querydsl-core/src/main/java/com/mysema/util/CodeWriter.java +++ b/querydsl-core/src/main/java/com/mysema/util/CodeWriter.java @@ -37,7 +37,7 @@ public interface CodeWriter extends Appendable{ CodeWriter javadoc(String... lines) throws IOException; - CodeWriter line(String line) throws IOException; + CodeWriter line(String... segments) throws IOException; CodeWriter lines(String... lines) throws IOException; diff --git a/querydsl-core/src/main/java/com/mysema/util/JavaWriter.java b/querydsl-core/src/main/java/com/mysema/util/JavaWriter.java index 0cabb1e8f..be59f6a96 100644 --- a/querydsl-core/src/main/java/com/mysema/util/JavaWriter.java +++ b/querydsl-core/src/main/java/com/mysema/util/JavaWriter.java @@ -121,10 +121,14 @@ public class JavaWriter implements Appendable, CodeWriter{ return line(" */"); } - public CodeWriter line(String line) throws IOException{ - return append(indent + line + "\n"); + public CodeWriter line(String... segments) throws IOException{ + append(indent); + for (String segment : segments){ + append(segment); + } + return append("\n"); } - + public CodeWriter lines(String... lines) throws IOException{ for (String line : lines){ line(line); diff --git a/querydsl-hql/src/main/java/com/mysema/query/hql/HQLQueryMixin.java b/querydsl-hql/src/main/java/com/mysema/query/hql/HQLQueryMixin.java index 42edf4ba2..60acc3d39 100644 --- a/querydsl-hql/src/main/java/com/mysema/query/hql/HQLQueryMixin.java +++ b/querydsl-hql/src/main/java/com/mysema/query/hql/HQLQueryMixin.java @@ -27,6 +27,8 @@ import com.mysema.query.types.path.Path; */ public class HQLQueryMixin extends QueryMixin { + public HQLQueryMixin() {} + public HQLQueryMixin(QueryMetadata metadata) { super(metadata); } diff --git a/querydsl-hql/src/main/java/com/mysema/query/hql/hibernate/AbstractHibernateQuery.java b/querydsl-hql/src/main/java/com/mysema/query/hql/hibernate/AbstractHibernateQuery.java index a71c80b2e..f084f2ab9 100644 --- a/querydsl-hql/src/main/java/com/mysema/query/hql/hibernate/AbstractHibernateQuery.java +++ b/querydsl-hql/src/main/java/com/mysema/query/hql/hibernate/AbstractHibernateQuery.java @@ -16,7 +16,7 @@ import org.hibernate.ScrollableResults; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.mysema.query.QueryMetadata; +import com.mysema.query.DefaultQueryMetadata; import com.mysema.query.QueryModifiers; import com.mysema.query.SearchResults; import com.mysema.query.hql.HQLQueryBase; @@ -44,8 +44,8 @@ public abstract class AbstractHibernateQuery imple } public HibernateQuery(SessionHolder session, HQLTemplates templates) { - super(new DefaultQueryMetadata(), session, templates); + super(session, templates); } diff --git a/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/AbstractJDOQLQuery.java b/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/AbstractJDOQLQuery.java index ee2b4e743..d3442b03e 100644 --- a/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/AbstractJDOQLQuery.java +++ b/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/AbstractJDOQLQuery.java @@ -41,8 +41,8 @@ public abstract class AbstractJDOQLQuery(new DefaultQueryMetadata())); + public AbstractJDOQLQuery(PersistenceManager pm, JDOQLTemplates templates) { + super(new JDOQLQueryMixin()); this.queryMixin.setSelf((SubType) this); this.templates = templates; this.pm = pm; diff --git a/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/JDOQLQueryImpl.java b/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/JDOQLQueryImpl.java index 3f0b91e51..cff88e710 100644 --- a/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/JDOQLQueryImpl.java +++ b/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/JDOQLQueryImpl.java @@ -20,10 +20,10 @@ import com.mysema.query.DefaultQueryMetadata; public class JDOQLQueryImpl extends AbstractJDOQLQuery implements JDOQLQuery{ public JDOQLQueryImpl(PersistenceManager pm, JDOQLTemplates templates) { - super(new DefaultQueryMetadata(), pm, templates); + super(pm, templates); } public JDOQLQueryImpl(PersistenceManager pm) { - super(new DefaultQueryMetadata(), pm, JDOQLTemplates.DEFAULT); + super(pm, JDOQLTemplates.DEFAULT); } } diff --git a/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/JDOQLQueryMixin.java b/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/JDOQLQueryMixin.java index 449e46710..36967c4e1 100644 --- a/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/JDOQLQueryMixin.java +++ b/querydsl-jdoql/src/main/java/com/mysema/query/jdoql/JDOQLQueryMixin.java @@ -12,6 +12,8 @@ import com.mysema.query.types.expr.Expr; */ public class JDOQLQueryMixin extends QueryMixin{ + public JDOQLQueryMixin() { } + public JDOQLQueryMixin(QueryMetadata metadata) { super(metadata); } diff --git a/querydsl-sql/src/main/java/com/mysema/query/sql/AbstractSQLQuery.java b/querydsl-sql/src/main/java/com/mysema/query/sql/AbstractSQLQuery.java index 16a955783..2a5a8138e 100644 --- a/querydsl-sql/src/main/java/com/mysema/query/sql/AbstractSQLQuery.java +++ b/querydsl-sql/src/main/java/com/mysema/query/sql/AbstractSQLQuery.java @@ -75,7 +75,7 @@ public abstract class AbstractSQLQuery @SuppressWarnings("unchecked") public AbstractSQLQuery(Connection conn, SQLTemplates templates) { - super(new QueryMixin(new DefaultQueryMetadata())); + super(new QueryMixin()); this.queryMixin.setSelf((SubType) this); this.conn = conn; this.templates = templates;