Author: aadamchik
Date: Thu Mar 13 11:04:36 2014
New Revision: 1577108
URL: http://svn.apache.org/r1577108
Log:
CAY-1908 Refactor all SQLActions to work with DataNode
(going deeper - refactoring SelectTranslator)
Modified:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/QueryAssembler.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/SelectTranslator.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/db2/DB2QualifierTranslator.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseActionBuilder.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseSelectTranslator.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLSelectAction.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLSelectTranslator.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/ingres/IngresSelectAction.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/ingres/IngresSelectTranslator.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLSelectAction.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLSelectTranslator.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseActionBuilder.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseSelectTranslator.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SelectAction.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SelectTranslator.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleSelectAction.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleSelectTranslator.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/postgres/PostgresSelectAction.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/postgres/PostgresSelectTranslator.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerSelectAction.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerSelectTranslator.java
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/OrderingTranslatorTest.java
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/QualifierTranslatorTest.java
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/QueryAssemblerTest.java
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/SelectTranslatorTest.java
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/TstQueryAssembler.java
Modified:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java?rev=1577108&r1=1577107&r2=1577108&view=diff
==============================================================================
---
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java
(original)
+++
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java
Thu Mar 13 11:04:36 2014
@@ -53,13 +53,7 @@ public class SelectAction extends BaseSQ
}
protected SelectTranslator createTranslator(Connection connection) {
- SelectTranslator translator = new SelectTranslator();
- translator.setQuery(query);
- translator.setAdapter(dataNode.getAdapter());
- translator.setEntityResolver(dataNode.getEntityResolver());
- translator.setConnection(connection);
- translator.setJdbcEventLogger(dataNode.getJdbcEventLogger());
- return translator;
+ return new SelectTranslator(query, dataNode, connection);
}
@SuppressWarnings({ "unchecked", "rawtypes" })
Modified:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/QueryAssembler.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/QueryAssembler.java?rev=1577108&r1=1577107&r2=1577108&view=diff
==============================================================================
---
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/QueryAssembler.java
(original)
+++
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/QueryAssembler.java
Thu Mar 13 11:04:36 2014
@@ -25,9 +25,9 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import org.apache.cayenne.access.DataNode;
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.log.JdbcEventLogger;
-import org.apache.cayenne.log.NoopJdbcEventLogger;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.DbRelationship;
@@ -56,7 +56,8 @@ public abstract class QueryAssembler {
protected List<Object> values = new ArrayList<Object>();
/**
- * PreparedStatement attributes matching entries in <code>values</code>
list.
+ * PreparedStatement attributes matching entries in <code>values</code>
+ * list.
*/
protected List<DbAttribute> attributes = new ArrayList<DbAttribute>();
@@ -64,9 +65,17 @@ public abstract class QueryAssembler {
* The index parameter will be inserted at in parameter list
*/
protected int parameterIndex;
-
- public QueryAssembler() {
- this.logger = NoopJdbcEventLogger.getInstance();
+
+ /**
+ * @since 3.2
+ */
+ public QueryAssembler(Query query, DataNode dataNode, Connection
connection) {
+ this.logger = dataNode.getJdbcEventLogger();
+ this.entityResolver = dataNode.getEntityResolver();
+ this.adapter = dataNode.getAdapter();
+ this.query = query;
+ this.connection = connection;
+ this.queryMetadata = query.getMetaData(entityResolver);
}
/**
@@ -97,26 +106,6 @@ public abstract class QueryAssembler {
return queryMetadata;
}
- public void setQuery(Query query) {
- this.query = query;
- refreshMetadata();
- }
-
- public void setConnection(Connection connection) {
- this.connection = connection;
- }
-
- public void setAdapter(DbAdapter adapter) {
- this.adapter = adapter;
- }
-
- /**
- * @since 3.1
- */
- public void setJdbcEventLogger(JdbcEventLogger logger) {
- this.logger = logger;
- }
-
/**
* @since 3.1
*/
@@ -124,21 +113,6 @@ public abstract class QueryAssembler {
return logger;
}
- public void setEntityResolver(EntityResolver entityResolver) {
- this.entityResolver = entityResolver;
- refreshMetadata();
- }
-
- private void refreshMetadata() {
- if (query != null && entityResolver != null) {
- queryMetadata = query.getMetaData(entityResolver);
- }
- else {
- queryMetadata = null;
- }
- cachedSqlString = null;
- }
-
public DbEntity getRootDbEntity() {
return queryMetadata.getDbEntity();
}
@@ -148,15 +122,16 @@ public abstract class QueryAssembler {
}
/**
- * A callback invoked by a child qualifier or ordering processor allowing
query
- * assembler to reset its join stack.
+ * A callback invoked by a child qualifier or ordering processor allowing
+ * query assembler to reset its join stack.
*
* @since 3.0
*/
public abstract void resetJoinStack();
/**
- * Returns an alias of the table which is currently at the top of the join
stack.
+ * Returns an alias of the table which is currently at the top of the join
+ * stack.
*
* @since 3.0
*/
@@ -167,21 +142,18 @@ public abstract class QueryAssembler {
*
* @since 3.0
*/
- public abstract void dbRelationshipAdded(
- DbRelationship relationship,
- JoinType joinType,
- String joinSplitAlias);
+ public abstract void dbRelationshipAdded(DbRelationship relationship,
JoinType joinType, String joinSplitAlias);
/**
- * Translates query into sql string. This is a workhorse method of
QueryAssembler. It
- * is called internally from <code>createStatement</code>. Usually there
is no need to
- * invoke it explicitly.
+ * Translates query into sql string. This is a workhorse method of
+ * QueryAssembler. It is called internally from
<code>createStatement</code>
+ * . Usually there is no need to invoke it explicitly.
*/
public abstract String createSqlString() throws Exception;
/**
- * Returns <code>true</code> if table aliases are supported. Default
implementation
- * returns false.
+ * Returns <code>true</code> if table aliases are supported. Default
+ * implementation returns false.
*/
public boolean supportsTableAliases() {
return false;
@@ -190,8 +162,10 @@ public abstract class QueryAssembler {
/**
* Registers <code>anObject</code> as a PreparedStatement parameter.
*
- * @param anObject object that represents a value of DbAttribute
- * @param dbAttr DbAttribute being processed.
+ * @param anObject
+ * object that represents a value of DbAttribute
+ * @param dbAttr
+ * DbAttribute being processed.
*/
public void addToParamList(DbAttribute dbAttr, Object anObject) {
attributes.add(parameterIndex, dbAttr);
@@ -211,8 +185,9 @@ public abstract class QueryAssembler {
}
/**
- * Initializes prepared statements with collected parameters. Called
internally from
- * "createStatement". Cayenne users shouldn't normally call it directly.
+ * Initializes prepared statements with collected parameters. Called
+ * internally from "createStatement". Cayenne users shouldn't normally call
+ * it directly.
*/
protected void initStatement(PreparedStatement stmt) throws Exception {
if (values != null && values.size() > 0) {
@@ -222,16 +197,15 @@ public abstract class QueryAssembler {
DbAttribute attr = attributes.get(i);
- // null DbAttributes are a result of inferior qualifier
processing
+ // null DbAttributes are a result of inferior qualifier
+ // processing
// (qualifier can't map parameters to DbAttributes and
therefore
// only supports standard java types now)
// hence, a special moronic case here:
if (attr == null) {
stmt.setObject(i + 1, val);
- }
- else {
- adapter.bindParameter(stmt, val, i + 1, attr.getType(),
attr
- .getScale());
+ } else {
+ adapter.bindParameter(stmt, val, i + 1, attr.getType(),
attr.getScale());
}
}
}
Modified:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/SelectTranslator.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/SelectTranslator.java?rev=1577108&r1=1577107&r2=1577108&view=diff
==============================================================================
---
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/SelectTranslator.java
(original)
+++
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/SelectTranslator.java
Thu Mar 13 11:04:36 2014
@@ -19,6 +19,7 @@
package org.apache.cayenne.access.trans;
+import java.sql.Connection;
import java.sql.Types;
import java.util.ArrayList;
import java.util.Collections;
@@ -30,6 +31,7 @@ import java.util.Map;
import java.util.Set;
import org.apache.cayenne.CayenneRuntimeException;
+import org.apache.cayenne.access.DataNode;
import org.apache.cayenne.access.jdbc.ColumnDescriptor;
import org.apache.cayenne.dba.QuotingStrategy;
import org.apache.cayenne.exp.Expression;
@@ -46,6 +48,7 @@ import org.apache.cayenne.map.ObjRelatio
import org.apache.cayenne.map.PathComponent;
import org.apache.cayenne.query.PrefetchSelectQuery;
import org.apache.cayenne.query.PrefetchTreeNode;
+import org.apache.cayenne.query.Query;
import org.apache.cayenne.query.SelectQuery;
import org.apache.cayenne.reflect.ArcProperty;
import org.apache.cayenne.reflect.AttributeProperty;
@@ -78,6 +81,13 @@ public class SelectTranslator extends Qu
}
JoinStack joinStack;
+
+ /**
+ * @since 3.2
+ */
+ public SelectTranslator(Query query, DataNode dataNode, Connection
connection) {
+ super(query, dataNode, connection);
+ }
public JoinStack getJoinStack() {
if (joinStack == null) {
Modified:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/db2/DB2QualifierTranslator.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/db2/DB2QualifierTranslator.java?rev=1577108&r1=1577107&r2=1577108&view=diff
==============================================================================
---
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/db2/DB2QualifierTranslator.java
(original)
+++
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/db2/DB2QualifierTranslator.java
Thu Mar 13 11:04:36 2014
@@ -32,8 +32,6 @@ import org.apache.cayenne.exp.parser.AST
import org.apache.cayenne.exp.parser.SimpleNode;
import org.apache.cayenne.map.DbAttribute;
-/**
- */
public class DB2QualifierTranslator extends TrimmingQualifierTranslator {
public DB2QualifierTranslator(QueryAssembler queryAssembler, String
trimFunction) {
Modified:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseActionBuilder.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseActionBuilder.java?rev=1577108&r1=1577107&r2=1577108&view=diff
==============================================================================
---
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseActionBuilder.java
(original)
+++
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseActionBuilder.java
Thu Mar 13 11:04:36 2014
@@ -40,13 +40,7 @@ class FrontBaseActionBuilder extends Jdb
@Override
protected SelectTranslator createTranslator(Connection connection)
{
- SelectTranslator translator = new FrontBaseSelectTranslator();
- translator.setQuery(query);
- translator.setAdapter(dataNode.getAdapter());
- translator.setEntityResolver(dataNode.getEntityResolver());
- translator.setConnection(connection);
- translator.setJdbcEventLogger(dataNode.getJdbcEventLogger());
- return translator;
+ return new FrontBaseSelectTranslator(query, dataNode,
connection);
}
};
}
Modified:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseSelectTranslator.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseSelectTranslator.java?rev=1577108&r1=1577107&r2=1577108&view=diff
==============================================================================
---
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseSelectTranslator.java
(original)
+++
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseSelectTranslator.java
Thu Mar 13 11:04:36 2014
@@ -19,7 +19,11 @@
package org.apache.cayenne.dba.frontbase;
+import java.sql.Connection;
+
+import org.apache.cayenne.access.DataNode;
import org.apache.cayenne.access.trans.SelectTranslator;
+import org.apache.cayenne.query.Query;
/**
* @since 1.2
@@ -28,6 +32,13 @@ class FrontBaseSelectTranslator extends
static final String SELECT_PREFIX = "SELECT";
+ /**
+ * @since 3.2
+ */
+ public FrontBaseSelectTranslator(Query query, DataNode dataNode,
Connection connection) {
+ super(query, dataNode, connection);
+ }
+
@Override
protected void appendLimitAndOffsetClauses(StringBuilder buffer) {
Modified:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLSelectAction.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLSelectAction.java?rev=1577108&r1=1577107&r2=1577108&view=diff
==============================================================================
---
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLSelectAction.java
(original)
+++
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLSelectAction.java
Thu Mar 13 11:04:36 2014
@@ -41,12 +41,6 @@ class HSQLSelectAction extends SelectAct
@Override
protected SelectTranslator createTranslator(Connection connection) {
- SelectTranslator translator = new HSQLSelectTranslator();
- translator.setQuery(query);
- translator.setAdapter(dataNode.getAdapter());
- translator.setEntityResolver(dataNode.getEntityResolver());
- translator.setConnection(connection);
- translator.setJdbcEventLogger(dataNode.getJdbcEventLogger());
- return translator;
+ return new HSQLSelectTranslator(query, dataNode, connection);
}
}
Modified:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLSelectTranslator.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLSelectTranslator.java?rev=1577108&r1=1577107&r2=1577108&view=diff
==============================================================================
---
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLSelectTranslator.java
(original)
+++
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLSelectTranslator.java
Thu Mar 13 11:04:36 2014
@@ -19,12 +19,23 @@
package org.apache.cayenne.dba.hsqldb;
+import java.sql.Connection;
+
+import org.apache.cayenne.access.DataNode;
import org.apache.cayenne.access.trans.SelectTranslator;
+import org.apache.cayenne.query.Query;
/**
* @since 1.2
*/
class HSQLSelectTranslator extends SelectTranslator {
+
+ /**
+ * @since 3.2
+ */
+ public HSQLSelectTranslator(Query query, DataNode dataNode, Connection
connection) {
+ super(query, dataNode, connection);
+ }
@Override
protected void appendLimitAndOffsetClauses(StringBuilder buffer) {
Modified:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/ingres/IngresSelectAction.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/ingres/IngresSelectAction.java?rev=1577108&r1=1577107&r2=1577108&view=diff
==============================================================================
---
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/ingres/IngresSelectAction.java
(original)
+++
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/ingres/IngresSelectAction.java
Thu Mar 13 11:04:36 2014
@@ -38,12 +38,6 @@ public class IngresSelectAction extends
@Override
protected SelectTranslator createTranslator(Connection connection) {
- SelectTranslator translator = new IngresSelectTranslator();
- translator.setQuery(query);
- translator.setAdapter(dataNode.getAdapter());
- translator.setEntityResolver(dataNode.getEntityResolver());
- translator.setConnection(connection);
- translator.setJdbcEventLogger(dataNode.getJdbcEventLogger());
- return translator;
+ return new IngresSelectTranslator(query, dataNode, connection);
}
}
Modified:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/ingres/IngresSelectTranslator.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/ingres/IngresSelectTranslator.java?rev=1577108&r1=1577107&r2=1577108&view=diff
==============================================================================
---
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/ingres/IngresSelectTranslator.java
(original)
+++
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/ingres/IngresSelectTranslator.java
Thu Mar 13 11:04:36 2014
@@ -18,9 +18,20 @@
****************************************************************/
package org.apache.cayenne.dba.ingres;
+import java.sql.Connection;
+
+import org.apache.cayenne.access.DataNode;
import org.apache.cayenne.access.trans.SelectTranslator;
+import org.apache.cayenne.query.Query;
public class IngresSelectTranslator extends SelectTranslator {
+
+ /**
+ * @since 3.2
+ */
+ public IngresSelectTranslator(Query query, DataNode dataNode, Connection
connection) {
+ super(query, dataNode, connection);
+ }
@Override
protected void appendLimitAndOffsetClauses(StringBuilder buffer) {
Modified:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLSelectAction.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLSelectAction.java?rev=1577108&r1=1577107&r2=1577108&view=diff
==============================================================================
---
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLSelectAction.java
(original)
+++
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLSelectAction.java
Thu Mar 13 11:04:36 2014
@@ -41,12 +41,6 @@ class MySQLSelectAction extends SelectAc
@Override
protected SelectTranslator createTranslator(Connection connection) {
- SelectTranslator translator = new MySQLSelectTranslator();
- translator.setQuery(query);
- translator.setAdapter(dataNode.getAdapter());
- translator.setEntityResolver(dataNode.getEntityResolver());
- translator.setConnection(connection);
- translator.setJdbcEventLogger(dataNode.getJdbcEventLogger());
- return translator;
+ return new MySQLSelectTranslator(query, dataNode, connection);
}
}
Modified:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLSelectTranslator.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLSelectTranslator.java?rev=1577108&r1=1577107&r2=1577108&view=diff
==============================================================================
---
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLSelectTranslator.java
(original)
+++
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLSelectTranslator.java
Thu Mar 13 11:04:36 2014
@@ -19,13 +19,24 @@
package org.apache.cayenne.dba.mysql;
+import java.sql.Connection;
+
+import org.apache.cayenne.access.DataNode;
import org.apache.cayenne.access.trans.SelectTranslator;
+import org.apache.cayenne.query.Query;
/**
* @since 1.2
*/
class MySQLSelectTranslator extends SelectTranslator {
+ /**
+ * @since 3.2
+ */
+ public MySQLSelectTranslator(Query query, DataNode dataNode, Connection
connection) {
+ super(query, dataNode, connection);
+ }
+
@Override
protected void appendLimitAndOffsetClauses(StringBuilder buffer) {
int offset = queryMetadata.getFetchOffset();
@@ -34,7 +45,8 @@ class MySQLSelectTranslator extends Sele
if (offset > 0 || limit > 0) {
buffer.append(" LIMIT ");
- // both OFFSET and LIMIT must be present, so come up with defaults
if one of
+ // both OFFSET and LIMIT must be present, so come up with defaults
+ // if one of
// them is not set by the user
if (limit == 0) {
limit = Integer.MAX_VALUE;
Modified:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseActionBuilder.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseActionBuilder.java?rev=1577108&r1=1577107&r2=1577108&view=diff
==============================================================================
---
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseActionBuilder.java
(original)
+++
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseActionBuilder.java
Thu Mar 13 11:04:36 2014
@@ -43,13 +43,7 @@ class OpenBaseActionBuilder extends Jdbc
@Override
protected SelectTranslator createTranslator(Connection connection)
{
- SelectTranslator translator = new OpenBaseSelectTranslator();
- translator.setQuery(query);
- translator.setAdapter(dataNode.getAdapter());
- translator.setEntityResolver(dataNode.getEntityResolver());
- translator.setConnection(connection);
- translator.setJdbcEventLogger(dataNode.getJdbcEventLogger());
- return translator;
+ return new OpenBaseSelectTranslator(query, dataNode,
connection);
}
};
}
Modified:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseSelectTranslator.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseSelectTranslator.java?rev=1577108&r1=1577107&r2=1577108&view=diff
==============================================================================
---
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseSelectTranslator.java
(original)
+++
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseSelectTranslator.java
Thu Mar 13 11:04:36 2014
@@ -19,14 +19,25 @@
package org.apache.cayenne.dba.openbase;
+import java.sql.Connection;
+
+import org.apache.cayenne.access.DataNode;
import org.apache.cayenne.access.trans.JoinStack;
import org.apache.cayenne.access.trans.SelectTranslator;
+import org.apache.cayenne.query.Query;
/**
* @since 1.2
*/
class OpenBaseSelectTranslator extends SelectTranslator {
+ /**
+ * @since 3.2
+ */
+ public OpenBaseSelectTranslator(Query query, DataNode dataNode, Connection
connection) {
+ super(query, dataNode, connection);
+ }
+
@Override
protected JoinStack createJoinStack() {
return new OpenBaseJoinStack(getAdapter(), queryMetadata.getDataMap(),
this);
Modified:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SelectAction.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SelectAction.java?rev=1577108&r1=1577107&r2=1577108&view=diff
==============================================================================
---
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SelectAction.java
(original)
+++
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SelectAction.java
Thu Mar 13 11:04:36 2014
@@ -35,12 +35,6 @@ class Oracle8SelectAction extends Oracle
@Override
protected SelectTranslator createTranslator(Connection connection) {
- SelectTranslator translator = new Oracle8SelectTranslator();
- translator.setQuery(query);
- translator.setAdapter(dataNode.getAdapter());
- translator.setEntityResolver(dataNode.getEntityResolver());
- translator.setConnection(connection);
- translator.setJdbcEventLogger(dataNode.getJdbcEventLogger());
- return translator;
+ return new Oracle8SelectTranslator(query, dataNode, connection);
}
}
Modified:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SelectTranslator.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SelectTranslator.java?rev=1577108&r1=1577107&r2=1577108&view=diff
==============================================================================
---
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SelectTranslator.java
(original)
+++
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SelectTranslator.java
Thu Mar 13 11:04:36 2014
@@ -18,7 +18,11 @@
****************************************************************/
package org.apache.cayenne.dba.oracle;
+import java.sql.Connection;
+
+import org.apache.cayenne.access.DataNode;
import org.apache.cayenne.access.trans.JoinStack;
+import org.apache.cayenne.query.Query;
/**
* @since 3.0
@@ -26,6 +30,13 @@ import org.apache.cayenne.access.trans.J
class Oracle8SelectTranslator extends OracleSelectTranslator {
/**
+ * @since 3.2
+ */
+ public Oracle8SelectTranslator(Query query, DataNode dataNode, Connection
connection) {
+ super(query, dataNode, connection);
+ }
+
+ /**
* Returns an old style joint stack for Oracle8 that does not support
explicit join
* syntax.
*/
Modified:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleSelectAction.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleSelectAction.java?rev=1577108&r1=1577107&r2=1577108&view=diff
==============================================================================
---
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleSelectAction.java
(original)
+++
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleSelectAction.java
Thu Mar 13 11:04:36 2014
@@ -37,13 +37,7 @@ class OracleSelectAction extends SelectA
@Override
protected SelectTranslator createTranslator(Connection connection) {
- SelectTranslator translator = new OracleSelectTranslator();
- translator.setQuery(query);
- translator.setAdapter(dataNode.getAdapter());
- translator.setEntityResolver(dataNode.getEntityResolver());
- translator.setConnection(connection);
- translator.setJdbcEventLogger(dataNode.getJdbcEventLogger());
- return translator;
+ return new OracleSelectTranslator(query, dataNode, connection);
}
@Override
Modified:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleSelectTranslator.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleSelectTranslator.java?rev=1577108&r1=1577107&r2=1577108&view=diff
==============================================================================
---
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleSelectTranslator.java
(original)
+++
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleSelectTranslator.java
Thu Mar 13 11:04:36 2014
@@ -19,16 +19,26 @@
package org.apache.cayenne.dba.oracle;
+import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.List;
+import org.apache.cayenne.access.DataNode;
import org.apache.cayenne.access.trans.SelectTranslator;
+import org.apache.cayenne.query.Query;
/**
* Select translator that implements Oracle-specific optimizations.
*
*/
class OracleSelectTranslator extends SelectTranslator {
+
+ /**
+ * @since 3.2
+ */
+ public OracleSelectTranslator(Query query, DataNode dataNode, Connection
connection) {
+ super(query, dataNode, connection);
+ }
@Override
protected void appendLimitAndOffsetClauses(StringBuilder buffer) {
Modified:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/postgres/PostgresSelectAction.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/postgres/PostgresSelectAction.java?rev=1577108&r1=1577107&r2=1577108&view=diff
==============================================================================
---
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/postgres/PostgresSelectAction.java
(original)
+++
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/postgres/PostgresSelectAction.java
Thu Mar 13 11:04:36 2014
@@ -41,12 +41,6 @@ class PostgresSelectAction extends Selec
@Override
protected SelectTranslator createTranslator(Connection connection) {
- SelectTranslator translator = new PostgresSelectTranslator();
- translator.setQuery(query);
- translator.setAdapter(dataNode.getAdapter());
- translator.setEntityResolver(dataNode.getEntityResolver());
- translator.setConnection(connection);
- translator.setJdbcEventLogger(dataNode.getJdbcEventLogger());
- return translator;
+ return new PostgresSelectTranslator(query, dataNode, connection);
}
}
Modified:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/postgres/PostgresSelectTranslator.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/postgres/PostgresSelectTranslator.java?rev=1577108&r1=1577107&r2=1577108&view=diff
==============================================================================
---
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/postgres/PostgresSelectTranslator.java
(original)
+++
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/postgres/PostgresSelectTranslator.java
Thu Mar 13 11:04:36 2014
@@ -19,13 +19,24 @@
package org.apache.cayenne.dba.postgres;
+import java.sql.Connection;
+
+import org.apache.cayenne.access.DataNode;
import org.apache.cayenne.access.trans.SelectTranslator;
+import org.apache.cayenne.query.Query;
/**
* @since 1.2
*/
class PostgresSelectTranslator extends SelectTranslator {
+ /**
+ * @since 3.2
+ */
+ public PostgresSelectTranslator(Query query, DataNode dataNode, Connection
connection) {
+ super(query, dataNode, connection);
+ }
+
@Override
protected void appendLimitAndOffsetClauses(StringBuilder buffer) {
Modified:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerSelectAction.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerSelectAction.java?rev=1577108&r1=1577107&r2=1577108&view=diff
==============================================================================
---
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerSelectAction.java
(original)
+++
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerSelectAction.java
Thu Mar 13 11:04:36 2014
@@ -33,13 +33,7 @@ public class SQLServerSelectAction exten
@Override
protected SelectTranslator createTranslator(Connection connection) {
- SelectTranslator translator = new SQLServerSelectTranslator();
- translator.setQuery(query);
- translator.setAdapter(dataNode.getAdapter());
- translator.setEntityResolver(dataNode.getEntityResolver());
- translator.setConnection(connection);
- translator.setJdbcEventLogger(dataNode.getJdbcEventLogger());
- return translator;
+ return new SQLServerSelectTranslator(query, dataNode, connection);
}
}
Modified:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerSelectTranslator.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerSelectTranslator.java?rev=1577108&r1=1577107&r2=1577108&view=diff
==============================================================================
---
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerSelectTranslator.java
(original)
+++
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerSelectTranslator.java
Thu Mar 13 11:04:36 2014
@@ -18,11 +18,22 @@
****************************************************************/
package org.apache.cayenne.dba.sqlserver;
+import java.sql.Connection;
+
+import org.apache.cayenne.access.DataNode;
import org.apache.cayenne.access.trans.SelectTranslator;
+import org.apache.cayenne.query.Query;
import org.apache.cayenne.query.QueryMetadata;
public class SQLServerSelectTranslator extends SelectTranslator {
+ /**
+ * @since 3.2
+ */
+ public SQLServerSelectTranslator(Query query, DataNode dataNode,
Connection connection) {
+ super(query, dataNode, connection);
+ }
+
@Override
protected void appendLimitAndOffsetClauses(StringBuilder buffer) {
QueryMetadata metadata = getQuery().getMetaData(getEntityResolver());
Modified:
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/OrderingTranslatorTest.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/OrderingTranslatorTest.java?rev=1577108&r1=1577107&r2=1577108&view=diff
==============================================================================
---
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/OrderingTranslatorTest.java
(original)
+++
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/OrderingTranslatorTest.java
Thu Mar 13 11:04:36 2014
@@ -19,6 +19,8 @@
package org.apache.cayenne.access.trans;
+import java.sql.Connection;
+
import org.apache.cayenne.TranslationCase;
import org.apache.cayenne.access.DataNode;
import org.apache.cayenne.di.Inject;
@@ -26,6 +28,7 @@ import org.apache.cayenne.query.SelectQu
import org.apache.cayenne.query.SortOrder;
import org.apache.cayenne.testdo.testmap.Artist;
import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.ServerCaseDataSourceFactory;
import org.apache.cayenne.unit.di.server.UseServerRuntime;
@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
@@ -34,6 +37,21 @@ public class OrderingTranslatorTest exte
@Inject
private DataNode node;
+ @Inject
+ private ServerCaseDataSourceFactory dataSourceFactory;
+
+ private Connection connection;
+
+ @Override
+ protected void setUpAfterInjection() throws Exception {
+ this.connection =
dataSourceFactory.getSharedDataSource().getConnection();
+ }
+
+ @Override
+ protected void tearDownBeforeInjection() throws Exception {
+ connection.close();
+ }
+
/**
* Tests ascending ordering on string attribute.
*/
@@ -41,23 +59,15 @@ public class OrderingTranslatorTest exte
SelectQuery q = new SelectQuery(Artist.class);
q.addOrdering("artistName", SortOrder.ASCENDING);
- TstQueryAssembler qa = new TstQueryAssembler(node, q);
+ TstQueryAssembler qa = new TstQueryAssembler(q, node, connection);
+
+ TranslationCase tstCase = new TranslationCase("Artist", null,
"ta.ARTIST_NAME");
+
+ StringBuilder out = new StringBuilder();
+ new OrderingTranslator(qa).appendPart(out);
- try {
- TranslationCase tstCase = new TranslationCase(
- "Artist",
- null,
- "ta.ARTIST_NAME");
-
- StringBuilder out = new StringBuilder();
- new OrderingTranslator(qa).appendPart(out);
-
- assertTrue(out.length() > 0);
- tstCase.assertTranslatedWell(out.toString());
- }
- finally {
- qa.dispose();
- }
+ assertTrue(out.length() > 0);
+ tstCase.assertTranslatedWell(out.toString());
}
/**
@@ -67,23 +77,15 @@ public class OrderingTranslatorTest exte
SelectQuery q = new SelectQuery(Artist.class);
q.addOrdering("artistName", SortOrder.DESCENDING);
- TstQueryAssembler qa = new TstQueryAssembler(node, q);
+ TstQueryAssembler qa = new TstQueryAssembler(q, node, connection);
- try {
- TranslationCase tstCase = new TranslationCase(
- "Artist",
- null,
- "ta.ARTIST_NAME DESC");
-
- StringBuilder out = new StringBuilder();
- new OrderingTranslator(qa).appendPart(out);
-
- assertTrue(out.length() > 0);
- tstCase.assertTranslatedWell(out.toString());
- }
- finally {
- qa.dispose();
- }
+ TranslationCase tstCase = new TranslationCase("Artist", null,
"ta.ARTIST_NAME DESC");
+
+ StringBuilder out = new StringBuilder();
+ new OrderingTranslator(qa).appendPart(out);
+
+ assertTrue(out.length() > 0);
+ tstCase.assertTranslatedWell(out.toString());
}
/**
@@ -93,25 +95,17 @@ public class OrderingTranslatorTest exte
SelectQuery q = new SelectQuery(Artist.class);
q.addOrdering("artistName", SortOrder.ASCENDING_INSENSITIVE);
- TstQueryAssembler qa = new TstQueryAssembler(node, q);
+ TstQueryAssembler qa = new TstQueryAssembler(q, node, connection);
+
+ TranslationCase tstCase = new TranslationCase("Artist", null,
"UPPER(ta.ARTIST_NAME)");
- try {
- TranslationCase tstCase = new TranslationCase(
- "Artist",
- null,
- "UPPER(ta.ARTIST_NAME)");
-
- StringBuilder out = new StringBuilder();
- new OrderingTranslator(qa).appendPart(out);
-
- assertTrue(out.length() > 0);
- String orderBySql = out.toString();
- assertTrue(orderBySql.contains("UPPER("));
- tstCase.assertTranslatedWell(orderBySql);
- }
- finally {
- qa.dispose();
- }
+ StringBuilder out = new StringBuilder();
+ new OrderingTranslator(qa).appendPart(out);
+
+ assertTrue(out.length() > 0);
+ String orderBySql = out.toString();
+ assertTrue(orderBySql.contains("UPPER("));
+ tstCase.assertTranslatedWell(orderBySql);
}
public void testDoTranslation5() throws Exception {
@@ -119,31 +113,23 @@ public class OrderingTranslatorTest exte
q.addOrdering("artistName", SortOrder.DESCENDING_INSENSITIVE);
q.addOrdering("paintingArray.estimatedPrice", SortOrder.ASCENDING);
- TstQueryAssembler qa = new TstQueryAssembler(node, q);
+ TstQueryAssembler qa = new TstQueryAssembler(q, node, connection);
+
+ TranslationCase tstCase = new TranslationCase("Artist", null,
"UPPER(ta.ARTIST_NAME) DESC, ta.ESTIMATED_PRICE");
+
+ StringBuilder out = new StringBuilder();
+ new OrderingTranslator(qa).appendPart(out);
- try {
- TranslationCase tstCase = new TranslationCase(
- "Artist",
- null,
- "UPPER(ta.ARTIST_NAME) DESC, ta.ESTIMATED_PRICE");
-
- StringBuilder out = new StringBuilder();
- new OrderingTranslator(qa).appendPart(out);
-
- assertTrue(out.length() > 0);
- String orderBySql = out.toString();
-
- // Check there is an UPPER modifier
- int indexOfUpper = orderBySql.indexOf("UPPER(");
- assertTrue(indexOfUpper != -1);
-
- // and ensure there is only ONE upper modifier
- assertTrue(orderBySql.indexOf("UPPER(", indexOfUpper + 1) == -1);
- tstCase.assertTranslatedWell(orderBySql);
- }
- finally {
- qa.dispose();
- }
+ assertTrue(out.length() > 0);
+ String orderBySql = out.toString();
+
+ // Check there is an UPPER modifier
+ int indexOfUpper = orderBySql.indexOf("UPPER(");
+ assertTrue(indexOfUpper != -1);
+
+ // and ensure there is only ONE upper modifier
+ assertTrue(orderBySql.indexOf("UPPER(", indexOfUpper + 1) == -1);
+ tstCase.assertTranslatedWell(orderBySql);
}
public void testDoTranslation6() throws Exception {
@@ -151,32 +137,25 @@ public class OrderingTranslatorTest exte
q.addOrdering("artistName", SortOrder.ASCENDING_INSENSITIVE);
q.addOrdering("paintingArray.estimatedPrice",
SortOrder.ASCENDING_INSENSITIVE);
- TstQueryAssembler qa = new TstQueryAssembler(node, q);
+ TstQueryAssembler qa = new TstQueryAssembler(q, node, connection);
+
+ TranslationCase tstCase = new TranslationCase("Artist", null,
+ "UPPER(ta.ARTIST_NAME), UPPER(ta.ESTIMATED_PRICE)");
- try {
- TranslationCase tstCase = new TranslationCase(
- "Artist",
- null,
- "UPPER(ta.ARTIST_NAME), UPPER(ta.ESTIMATED_PRICE)");
-
- StringBuilder out = new StringBuilder();
- new OrderingTranslator(qa).appendPart(out);
-
- assertTrue(out.length() > 0);
- String orderBySql = out.toString();
-
- // Check there is at least one UPPER modifier
- int indexOfUpper = orderBySql.indexOf("UPPER(");
- assertTrue(indexOfUpper != -1);
-
- // and ensure there is another after it
- assertTrue(orderBySql.indexOf("UPPER(", indexOfUpper + 1) != -1);
-
- tstCase.assertTranslatedWell(orderBySql);
- }
- finally {
- qa.dispose();
- }
+ StringBuilder out = new StringBuilder();
+ new OrderingTranslator(qa).appendPart(out);
+
+ assertTrue(out.length() > 0);
+ String orderBySql = out.toString();
+
+ // Check there is at least one UPPER modifier
+ int indexOfUpper = orderBySql.indexOf("UPPER(");
+ assertTrue(indexOfUpper != -1);
+
+ // and ensure there is another after it
+ assertTrue(orderBySql.indexOf("UPPER(", indexOfUpper + 1) != -1);
+
+ tstCase.assertTranslatedWell(orderBySql);
}
public void testDoTranslation3() throws Exception {
@@ -185,23 +164,15 @@ public class OrderingTranslatorTest exte
q.addOrdering("artistName", SortOrder.DESCENDING);
q.addOrdering("paintingArray.estimatedPrice", SortOrder.ASCENDING);
- TstQueryAssembler qa = new TstQueryAssembler(node, q);
+ TstQueryAssembler qa = new TstQueryAssembler(q, node, connection);
+
+ TranslationCase tstCase = new TranslationCase("Artist", null,
"ta.ARTIST_NAME DESC, ta.ESTIMATED_PRICE");
+
+ StringBuilder out = new StringBuilder();
+ new OrderingTranslator(qa).appendPart(out);
- try {
- TranslationCase tstCase = new TranslationCase(
- "Artist",
- null,
- "ta.ARTIST_NAME DESC, ta.ESTIMATED_PRICE");
-
- StringBuilder out = new StringBuilder();
- new OrderingTranslator(qa).appendPart(out);
-
- assertTrue(out.length() > 0);
- String orderBySql = out.toString();
- tstCase.assertTranslatedWell(orderBySql);
- }
- finally {
- qa.dispose();
- }
+ assertTrue(out.length() > 0);
+ String orderBySql = out.toString();
+ tstCase.assertTranslatedWell(orderBySql);
}
}
Modified:
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/QualifierTranslatorTest.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/QualifierTranslatorTest.java?rev=1577108&r1=1577107&r2=1577108&view=diff
==============================================================================
---
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/QualifierTranslatorTest.java
(original)
+++
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/QualifierTranslatorTest.java
Thu Mar 13 11:04:36 2014
@@ -19,6 +19,8 @@
package org.apache.cayenne.access.trans;
+import java.sql.Connection;
+
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.ObjectId;
import org.apache.cayenne.access.DataNode;
@@ -35,6 +37,7 @@ import org.apache.cayenne.query.MockQuer
import org.apache.cayenne.query.SelectQuery;
import org.apache.cayenne.testdo.testmap.Gallery;
import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.ServerCaseDataSourceFactory;
import org.apache.cayenne.unit.di.server.UseServerRuntime;
@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
@@ -43,32 +46,37 @@ public class QualifierTranslatorTest ext
@Inject
private DataNode node;
+ @Inject
+ private ServerCaseDataSourceFactory dataSourceFactory;
+
+ private Connection connection;
+
+ @Override
+ protected void setUpAfterInjection() throws Exception {
+ this.connection =
dataSourceFactory.getSharedDataSource().getConnection();
+ }
+
+ @Override
+ protected void tearDownBeforeInjection() throws Exception {
+ connection.close();
+ }
+
public void testNonQualifiedQuery() throws Exception {
- TstQueryAssembler qa = new TstQueryAssembler(node, new MockQuery());
+ TstQueryAssembler qa = new TstQueryAssembler(new MockQuery(), node,
connection);
try {
new QualifierTranslator(qa).appendPart(new StringBuilder());
fail();
- }
- catch (ClassCastException ccex) {
+ } catch (ClassCastException ccex) {
// exception expected
}
- finally {
- qa.dispose();
- }
}
public void testNullQualifier() throws Exception {
- TstQueryAssembler qa = new TstQueryAssembler(node, new SelectQuery());
+ TstQueryAssembler qa = new TstQueryAssembler(new
SelectQuery<Object>(), node, connection);
StringBuilder out = new StringBuilder();
- try {
- new QualifierTranslator(qa).appendPart(out);
- }
- finally {
- qa.dispose();
- }
-
+ new QualifierTranslator(qa).appendPart(out);
assertEquals(0, out.length());
}
@@ -95,12 +103,8 @@ public class QualifierTranslatorTest ext
Expression e1 = ExpressionFactory.matchExp("toGallery", g1);
Expression e2 = e1.orExp(ExpressionFactory.matchExp("toGallery", g2));
- TstExpressionCase extraCase = new TstExpressionCase(
- "Exhibit",
- e2,
- "(ta.GALLERY_ID = ?) OR (ta.GALLERY_ID = ?)",
- 4,
- 4);
+ TstExpressionCase extraCase = new TstExpressionCase("Exhibit", e2,
+ "(ta.GALLERY_ID = ?) OR (ta.GALLERY_ID = ?)", 4, 4);
TstExpressionSuite suite = new TstExpressionSuite() {
};
@@ -110,36 +114,25 @@ public class QualifierTranslatorTest ext
private void doExpressionTest(TstExpressionSuite suite) throws Exception {
- TstQueryAssembler qa = new TstQueryAssembler(node, new MockQuery());
-
- try {
- TstExpressionCase[] cases = suite.cases();
+ TstExpressionCase[] cases = suite.cases();
- int len = cases.length;
- for (int i = 0; i < len; i++) {
- try {
-
- ObjEntity entity = node.getEntityResolver().getObjEntity(
- cases[i].getRootEntity());
- assertNotNull(entity);
- SelectQuery q = new SelectQuery(entity);
- q.setQualifier(cases[i].getCayenneExp());
- qa.setQuery(q);
-
- StringBuilder out = new StringBuilder();
- new QualifierTranslator(qa).appendPart(out);
- cases[i].assertTranslatedWell(out.toString());
- }
- catch (Exception ex) {
- throw new CayenneRuntimeException("Failed case: ["
- + i
- + "]: "
- + cases[i], ex);
- }
+ int len = cases.length;
+ for (int i = 0; i < len; i++) {
+ try {
+
+ ObjEntity entity =
node.getEntityResolver().getObjEntity(cases[i].getRootEntity());
+ assertNotNull(entity);
+ SelectQuery q = new SelectQuery(entity);
+ q.setQualifier(cases[i].getCayenneExp());
+
+ TstQueryAssembler qa = new TstQueryAssembler(q, node,
connection);
+
+ StringBuilder out = new StringBuilder();
+ new QualifierTranslator(qa).appendPart(out);
+ cases[i].assertTranslatedWell(out.toString());
+ } catch (Exception ex) {
+ throw new CayenneRuntimeException("Failed case: [" + i + "]: "
+ cases[i], ex);
}
}
- finally {
- qa.dispose();
- }
}
}
Modified:
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/QueryAssemblerTest.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/QueryAssemblerTest.java?rev=1577108&r1=1577107&r2=1577108&view=diff
==============================================================================
---
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/QueryAssemblerTest.java
(original)
+++
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/QueryAssemblerTest.java
Thu Mar 13 11:04:36 2014
@@ -19,11 +19,14 @@
package org.apache.cayenne.access.trans;
+import java.sql.Connection;
+
import org.apache.cayenne.access.DataNode;
import org.apache.cayenne.di.Inject;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.query.SelectQuery;
import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.ServerCaseDataSourceFactory;
import org.apache.cayenne.unit.di.server.UseServerRuntime;
@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
@@ -32,42 +35,39 @@ public class QueryAssemblerTest extends
@Inject
private DataNode dataNode;
- protected TstQueryAssembler qa;
+ @Inject
+ private ServerCaseDataSourceFactory dataSourceFactory;
+
+ private Connection connection;
+
+ private TstQueryAssembler qa;
@Override
protected void setUpAfterInjection() throws Exception {
- qa = new TstQueryAssembler(dataNode, new SelectQuery());
+ this.connection =
dataSourceFactory.getSharedDataSource().getConnection();
+ this.qa = new TstQueryAssembler(new SelectQuery<Object>(), dataNode,
connection);
+ }
+
+ @Override
+ protected void tearDownBeforeInjection() throws Exception {
+ connection.close();
}
public void testGetQuery() throws Exception {
- try {
- assertNotNull(qa.getQuery());
- }
- finally {
- qa.dispose();
- }
+ assertNotNull(qa.getQuery());
}
public void testAddToParamList() throws Exception {
- try {
- assertEquals(0, qa.getAttributes().size());
- assertEquals(0, qa.getValues().size());
-
- qa.addToParamList(new DbAttribute(), new Object());
- assertEquals(1, qa.getAttributes().size());
- assertEquals(1, qa.getValues().size());
- }
- finally {
- qa.dispose();
- }
+
+ assertEquals(0, qa.getAttributes().size());
+ assertEquals(0, qa.getValues().size());
+
+ qa.addToParamList(new DbAttribute(), new Object());
+ assertEquals(1, qa.getAttributes().size());
+ assertEquals(1, qa.getValues().size());
}
public void testCreateStatement() throws Exception {
- try {
- assertNotNull(qa.createStatement());
- }
- finally {
- qa.dispose();
- }
+ assertNotNull(qa.createStatement());
}
}