You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2014/03/14 15:32:07 UTC

svn commit: r1577548 - in /cayenne/main/trunk/cayenne-server/src: main/java/org/apache/cayenne/access/jdbc/ main/java/org/apache/cayenne/access/trans/ main/java/org/apache/cayenne/dba/oracle/ test/java/org/apache/cayenne/access/jdbc/ test/java/org/apac...

Author: aadamchik
Date: Fri Mar 14 14:32:07 2014
New Revision: 1577548

URL: http://svn.apache.org/r1577548
Log:
CAY-1911 BatchQuery refactoring - make Iterable

preliminary refactoring - making BatchQuery an ivar of QueryBuilder

Modified:
    cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java
    cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchQueryBuilderFactory.java
    cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DefaultBatchQueryBuilderFactory.java
    cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SoftDeleteBatchQueryBuilder.java
    cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SoftDeleteQueryBuilderFactory.java
    cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/BatchQueryBuilder.java
    cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilder.java
    cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/InsertBatchQueryBuilder.java
    cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBBatchQueryBuilder.java
    cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBInsertBatchQueryBuilder.java
    cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBUpdateBatchQueryBuilder.java
    cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/UpdateBatchQueryBuilder.java
    cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleLOBBatchAction.java
    cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BatchActionLockingTest.java
    cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SoftDeleteBatchQueryBuilderTest.java
    cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/BatchQueryBuilderTest.java
    cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilderTest.java
    cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/InsertBatchQueryBuilderTest.java
    cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/UpdateBatchQueryBuilderTest.java

Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java Fri Mar 14 14:32:07 2014
@@ -90,11 +90,11 @@ public class BatchAction extends BaseSQL
         }
 
         if (query instanceof InsertBatchQuery) {
-            return factory.createInsertQueryBuilder(dataNode.getAdapter());
+            return factory.createInsertQueryBuilder((InsertBatchQuery) query, dataNode.getAdapter());
         } else if (query instanceof UpdateBatchQuery) {
-            return factory.createUpdateQueryBuilder(dataNode.getAdapter());
+            return factory.createUpdateQueryBuilder((UpdateBatchQuery) query, dataNode.getAdapter());
         } else if (query instanceof DeleteBatchQuery) {
-            return factory.createDeleteQueryBuilder(dataNode.getAdapter());
+            return factory.createDeleteQueryBuilder((DeleteBatchQuery) query, dataNode.getAdapter());
         } else {
             throw new CayenneException("Unsupported batch query: " + query);
         }
@@ -103,7 +103,7 @@ public class BatchAction extends BaseSQL
     protected void runAsBatch(Connection con, BatchQueryBuilder queryBuilder, OperationObserver delegate)
             throws SQLException, Exception {
 
-        String queryStr = queryBuilder.createSqlString(query);
+        String queryStr = queryBuilder.createSqlString();
         JdbcEventLogger logger = dataNode.getJdbcEventLogger();
         boolean isLoggable = logger.isLoggable();
 
@@ -119,10 +119,10 @@ public class BatchAction extends BaseSQL
 
                 if (isLoggable) {
                     logger.logQueryParameters("batch bind", query.getDbAttributes(),
-                            queryBuilder.getParameterValues(query), query instanceof InsertBatchQuery);
+                            queryBuilder.getParameterValues(), query instanceof InsertBatchQuery);
                 }
 
-                queryBuilder.bindParameters(statement, query);
+                queryBuilder.bindParameters(statement);
                 statement.addBatch();
             }
 
@@ -164,7 +164,7 @@ public class BatchAction extends BaseSQL
         boolean isLoggable = logger.isLoggable();
         boolean useOptimisticLock = query.isUsingOptimisticLocking();
 
-        String queryStr = queryBuilder.createSqlString(query);
+        String queryStr = queryBuilder.createSqlString();
 
         // log batch SQL execution
         logger.logQuery(queryStr, Collections.EMPTY_LIST);
@@ -177,11 +177,11 @@ public class BatchAction extends BaseSQL
         try {
             while (query.next()) {
                 if (isLoggable) {
-                    logger.logQueryParameters("bind", query.getDbAttributes(), queryBuilder.getParameterValues(query),
+                    logger.logQueryParameters("bind", query.getDbAttributes(), queryBuilder.getParameterValues(),
                             query instanceof InsertBatchQuery);
                 }
 
-                queryBuilder.bindParameters(statement, query);
+                queryBuilder.bindParameters(statement);
 
                 int updated = statement.executeUpdate();
                 if (useOptimisticLock && updated != 1) {

Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchQueryBuilderFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchQueryBuilderFactory.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchQueryBuilderFactory.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchQueryBuilderFactory.java Fri Mar 14 14:32:07 2014
@@ -20,10 +20,13 @@ package org.apache.cayenne.access.jdbc;
 
 import org.apache.cayenne.access.trans.BatchQueryBuilder;
 import org.apache.cayenne.dba.DbAdapter;
+import org.apache.cayenne.query.DeleteBatchQuery;
+import org.apache.cayenne.query.InsertBatchQuery;
+import org.apache.cayenne.query.UpdateBatchQuery;
 
 /**
- * Factory which creates BatchQueryBuilders for different types of queries, which, in
- * their turn, create SQL strings for batch queries.
+ * Factory which creates BatchQueryBuilders for different types of queries,
+ * which, in their turn, create SQL strings for batch queries.
  * 
  * @since 3.0
  */
@@ -31,16 +34,22 @@ public interface BatchQueryBuilderFactor
 
     /**
      * Creates query builder for INSERT queries
+     * 
+     * @since 3.2
      */
-    BatchQueryBuilder createInsertQueryBuilder(DbAdapter adapter);
+    BatchQueryBuilder createInsertQueryBuilder(InsertBatchQuery query, DbAdapter adapter);
 
     /**
      * Creates query builder for UPDATE queries
+     * 
+     * @since 3.2
      */
-    BatchQueryBuilder createUpdateQueryBuilder(DbAdapter adapter);
+    BatchQueryBuilder createUpdateQueryBuilder(UpdateBatchQuery query, DbAdapter adapter);
 
     /**
      * Creates query builder for DELETE queries
+     * 
+     * @since 3.2
      */
-    BatchQueryBuilder createDeleteQueryBuilder(DbAdapter adapter);
+    BatchQueryBuilder createDeleteQueryBuilder(DeleteBatchQuery query, DbAdapter adapter);
 }

Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DefaultBatchQueryBuilderFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DefaultBatchQueryBuilderFactory.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DefaultBatchQueryBuilderFactory.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DefaultBatchQueryBuilderFactory.java Fri Mar 14 14:32:07 2014
@@ -23,6 +23,9 @@ import org.apache.cayenne.access.trans.D
 import org.apache.cayenne.access.trans.InsertBatchQueryBuilder;
 import org.apache.cayenne.access.trans.UpdateBatchQueryBuilder;
 import org.apache.cayenne.dba.DbAdapter;
+import org.apache.cayenne.query.DeleteBatchQuery;
+import org.apache.cayenne.query.InsertBatchQuery;
+import org.apache.cayenne.query.UpdateBatchQuery;
 
 /**
  * Default implementation of {@link BatchQueryBuilderFactory}.
@@ -30,18 +33,18 @@ import org.apache.cayenne.dba.DbAdapter;
 public class DefaultBatchQueryBuilderFactory implements BatchQueryBuilderFactory {
 
     @Override
-    public BatchQueryBuilder createDeleteQueryBuilder(DbAdapter adapter) {
-        return new DeleteBatchQueryBuilder(adapter);
+    public BatchQueryBuilder createDeleteQueryBuilder(DeleteBatchQuery query, DbAdapter adapter) {
+        return new DeleteBatchQueryBuilder(query, adapter);
     }
 
     @Override
-    public BatchQueryBuilder createInsertQueryBuilder(DbAdapter adapter) {
-        return new InsertBatchQueryBuilder(adapter);
+    public BatchQueryBuilder createInsertQueryBuilder(InsertBatchQuery query, DbAdapter adapter) {
+        return new InsertBatchQueryBuilder(query, adapter);
     }
 
     @Override
-    public BatchQueryBuilder createUpdateQueryBuilder(DbAdapter adapter) {
-        return new UpdateBatchQueryBuilder(adapter);
+    public BatchQueryBuilder createUpdateQueryBuilder(UpdateBatchQuery query, DbAdapter adapter) {
+        return new UpdateBatchQueryBuilder(query, adapter);
     }
-    
+
 }

Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SoftDeleteBatchQueryBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SoftDeleteBatchQueryBuilder.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SoftDeleteBatchQueryBuilder.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SoftDeleteBatchQueryBuilder.java Fri Mar 14 14:32:07 2014
@@ -27,7 +27,7 @@ import org.apache.cayenne.access.trans.D
 import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dba.QuotingStrategy;
 import org.apache.cayenne.map.DbAttribute;
-import org.apache.cayenne.query.BatchQuery;
+import org.apache.cayenne.query.DeleteBatchQuery;
 
 /**
  * Implementation of {@link DeleteBatchQueryBuilder}, which uses 'soft' delete
@@ -37,47 +37,47 @@ public class SoftDeleteBatchQueryBuilder
 
     private String deletedFieldName;
 
-    public SoftDeleteBatchQueryBuilder(DbAdapter adapter, String deletedFieldName) {
-        super(adapter);
+    public SoftDeleteBatchQueryBuilder(DeleteBatchQuery query, DbAdapter adapter, String deletedFieldName) {
+        super(query, adapter);
         this.deletedFieldName = deletedFieldName;
     }
 
     @Override
-    public String createSqlString(BatchQuery batch) throws IOException {
-        if (!needSoftDelete(batch)) {
-            return super.createSqlString(batch);
+    public String createSqlString() throws IOException {
+        if (!needSoftDelete()) {
+            return super.createSqlString();
         }
 
         QuotingStrategy strategy = getAdapter().getQuotingStrategy();
 
-        StringBuffer query = new StringBuffer("UPDATE ");
-        query.append(strategy.quotedFullyQualifiedName(batch.getDbEntity()));
-        query.append(" SET ").append(strategy.quotedIdentifier(batch.getDbEntity(), deletedFieldName)).append(" = ?");
+        StringBuffer buffer = new StringBuffer("UPDATE ");
+        buffer.append(strategy.quotedFullyQualifiedName(query.getDbEntity()));
+        buffer.append(" SET ").append(strategy.quotedIdentifier(query.getDbEntity(), deletedFieldName)).append(" = ?");
 
-        applyQualifier(query, batch);
+        applyQualifier(buffer);
 
-        return query.toString();
+        return buffer.toString();
     }
 
     @Override
-    protected int getFirstParameterIndex(BatchQuery query) {
-        return needSoftDelete(query) ? 2 : 1;
+    protected int getFirstParameterIndex() {
+        return needSoftDelete() ? 2 : 1;
     }
 
     @Override
-    public void bindParameters(PreparedStatement statement, BatchQuery query) throws SQLException, Exception {
-        if (needSoftDelete(query)) {
+    public void bindParameters(PreparedStatement statement) throws SQLException, Exception {
+        if (needSoftDelete()) {
             // binding first parameter (which is 'deleted') as true
             adapter.bindParameter(statement, true, 1, Types.BOOLEAN, -1);
         }
 
-        super.bindParameters(statement, query);
+        super.bindParameters(statement);
     }
 
     /**
      * @return whether 'soft' deletion should be used
      */
-    protected boolean needSoftDelete(BatchQuery query) {
+    protected boolean needSoftDelete() {
         DbAttribute attr = query.getDbEntity().getAttribute(deletedFieldName);
         return attr != null && attr.getType() == Types.BOOLEAN;
     }

Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SoftDeleteQueryBuilderFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SoftDeleteQueryBuilderFactory.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SoftDeleteQueryBuilderFactory.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SoftDeleteQueryBuilderFactory.java Fri Mar 14 14:32:07 2014
@@ -20,6 +20,7 @@ package org.apache.cayenne.access.jdbc;
 
 import org.apache.cayenne.access.trans.BatchQueryBuilder;
 import org.apache.cayenne.dba.DbAdapter;
+import org.apache.cayenne.query.DeleteBatchQuery;
 
 /**
  * Implementation of {@link #BatchQueryBuilderFactory}, which uses 'soft' delete
@@ -45,8 +46,8 @@ public class SoftDeleteQueryBuilderFacto
     }
     
     @Override
-    public BatchQueryBuilder createDeleteQueryBuilder(DbAdapter adapter) {
-        return new SoftDeleteBatchQueryBuilder(adapter, deletedFieldName);
+    public BatchQueryBuilder createDeleteQueryBuilder(DeleteBatchQuery query, DbAdapter adapter) {
+        return new SoftDeleteBatchQueryBuilder(query, adapter, deletedFieldName);
     }
     
     /**

Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/BatchQueryBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/BatchQueryBuilder.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/BatchQueryBuilder.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/BatchQueryBuilder.java Fri Mar 14 14:32:07 2014
@@ -36,10 +36,12 @@ import org.apache.cayenne.query.BatchQue
  */
 public abstract class BatchQueryBuilder {
 
+    protected BatchQuery query;
     protected DbAdapter adapter;
     protected String trimFunction;
 
-    public BatchQueryBuilder(DbAdapter adapter) {
+    public BatchQueryBuilder(BatchQuery query, DbAdapter adapter) {
+        this.query = query;
         this.adapter = adapter;
     }
 
@@ -47,9 +49,10 @@ public abstract class BatchQueryBuilder 
      * Translates BatchQuery into an SQL string formatted to use in a
      * PreparedStatement.
      * 
+     * @since 3.2
      * @throws IOException
      */
-    public abstract String createSqlString(BatchQuery batch) throws IOException;
+    public abstract String createSqlString() throws IOException;
 
     /**
      * Appends the name of the column to the query buffer. Subclasses use this
@@ -93,9 +96,9 @@ public abstract class BatchQueryBuilder 
      * Binds parameters for the current batch iteration to the
      * PreparedStatement.
      * 
-     * @since 1.2
+     * @since 3.2
      */
-    public abstract void bindParameters(PreparedStatement statement, BatchQuery query) throws SQLException, Exception;
+    public abstract void bindParameters(PreparedStatement statement) throws SQLException, Exception;
 
     /**
      * Returns a list of values for the current batch iteration. Used primarily
@@ -103,7 +106,7 @@ public abstract class BatchQueryBuilder 
      * 
      * @since 1.2
      */
-    public List<Object> getParameterValues(BatchQuery query) {
+    public List<Object> getParameterValues() {
         int len = query.getDbAttributes().size();
         List<Object> values = new ArrayList<Object>(len);
         for (int i = 0; i < len; i++) {

Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilder.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilder.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilder.java Fri Mar 14 14:32:07 2014
@@ -27,7 +27,6 @@ import java.util.Iterator;
 import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dba.QuotingStrategy;
 import org.apache.cayenne.map.DbAttribute;
-import org.apache.cayenne.query.BatchQuery;
 import org.apache.cayenne.query.DeleteBatchQuery;
 
 /**
@@ -36,38 +35,38 @@ import org.apache.cayenne.query.DeleteBa
  */
 public class DeleteBatchQueryBuilder extends BatchQueryBuilder {
 
-    public DeleteBatchQueryBuilder(DbAdapter adapter) {
-        super(adapter);
+    public DeleteBatchQueryBuilder(DeleteBatchQuery query, DbAdapter adapter) {
+        super(query, adapter);
     }
 
     @Override
-    public String createSqlString(BatchQuery batch) throws IOException {
+    public String createSqlString() throws IOException {
 
         QuotingStrategy strategy = getAdapter().getQuotingStrategy();
 
-        StringBuffer query = new StringBuffer("DELETE FROM ");
-        query.append(strategy.quotedFullyQualifiedName(batch.getDbEntity()));
+        StringBuffer buffer = new StringBuffer("DELETE FROM ");
+        buffer.append(strategy.quotedFullyQualifiedName(query.getDbEntity()));
 
-        applyQualifier(query, batch);
+        applyQualifier(buffer);
 
-        return query.toString();
+        return buffer.toString();
     }
 
     /**
      * Appends WHERE clause to SQL string
      */
-    protected void applyQualifier(StringBuffer query, BatchQuery batch) {
-        query.append(" WHERE ");
+    protected void applyQualifier(StringBuffer buffer) {
+        buffer.append(" WHERE ");
 
-        DeleteBatchQuery deleteBatch = (DeleteBatchQuery) batch;
+        DeleteBatchQuery deleteBatch = (DeleteBatchQuery) query;
         Iterator<DbAttribute> i = deleteBatch.getQualifierAttributes().iterator();
         while (i.hasNext()) {
             DbAttribute attribute = i.next();
-            appendDbAttribute(query, attribute);
-            query.append(deleteBatch.isNull(attribute) ? " IS NULL" : " = ?");
+            appendDbAttribute(buffer, attribute);
+            buffer.append(deleteBatch.isNull(attribute) ? " IS NULL" : " = ?");
 
             if (i.hasNext()) {
-                query.append(" AND ");
+                buffer.append(" AND ");
             }
         }
     }
@@ -76,11 +75,11 @@ public class DeleteBatchQueryBuilder ext
      * Binds BatchQuery parameters to the PreparedStatement.
      */
     @Override
-    public void bindParameters(PreparedStatement statement, BatchQuery query) throws SQLException, Exception {
+    public void bindParameters(PreparedStatement statement) throws SQLException, Exception {
 
         DeleteBatchQuery deleteBatch = (DeleteBatchQuery) query;
 
-        int parameterIndex = getFirstParameterIndex(query);
+        int parameterIndex = getFirstParameterIndex();
         int i = 0;
 
         for (DbAttribute attribute : deleteBatch.getQualifierAttributes()) {
@@ -98,7 +97,7 @@ public class DeleteBatchQueryBuilder ext
     /**
      * @return index of first parameter in delete clause
      */
-    protected int getFirstParameterIndex(BatchQuery query) {
+    protected int getFirstParameterIndex() {
         return 1;
     }
 

Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/InsertBatchQueryBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/InsertBatchQueryBuilder.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/InsertBatchQueryBuilder.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/InsertBatchQueryBuilder.java Fri Mar 14 14:32:07 2014
@@ -28,26 +28,26 @@ import java.util.List;
 import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dba.QuotingStrategy;
 import org.apache.cayenne.map.DbAttribute;
-import org.apache.cayenne.query.BatchQuery;
+import org.apache.cayenne.query.InsertBatchQuery;
 
 /**
  * Translator of InsertBatchQueries.
  */
 public class InsertBatchQueryBuilder extends BatchQueryBuilder {
 
-    public InsertBatchQueryBuilder(DbAdapter adapter) {
-        super(adapter);
+    public InsertBatchQueryBuilder(InsertBatchQuery query, DbAdapter adapter) {
+        super(query, adapter);
     }
 
     /**
-     * Binds parameters for the current batch iteration to the PreparedStatement. Performs
-     * filtering of attributes based on column generation rules.
+     * Binds parameters for the current batch iteration to the
+     * PreparedStatement. Performs filtering of attributes based on column
+     * generation rules.
      * 
      * @since 1.2
      */
     @Override
-    public void bindParameters(PreparedStatement statement, BatchQuery query)
-            throws SQLException, Exception {
+    public void bindParameters(PreparedStatement statement) throws SQLException, Exception {
 
         List<DbAttribute> dbAttributes = query.getDbAttributes();
         int attributeCount = dbAttributes.size();
@@ -58,20 +58,20 @@ public class InsertBatchQueryBuilder ext
             if (includeInBatch(attribute)) {
                 j++;
                 Object value = query.getValue(i);
-                adapter.bindParameter(statement, value, j, attribute.getType(), attribute
-                        .getScale());
+                adapter.bindParameter(statement, value, j, attribute.getType(), attribute.getScale());
             }
         }
     }
 
     /**
-     * Returns a list of values for the current batch iteration. Performs filtering of
-     * attributes based on column generation rules. Used primarily for logging.
+     * Returns a list of values for the current batch iteration. Performs
+     * filtering of attributes based on column generation rules. Used primarily
+     * for logging.
      * 
      * @since 1.2
      */
     @Override
-    public List<Object> getParameterValues(BatchQuery query) {
+    public List<Object> getParameterValues() {
         List<DbAttribute> attributes = query.getDbAttributes();
         int len = attributes.size();
         List<Object> values = new ArrayList<Object>(len);
@@ -85,44 +85,45 @@ public class InsertBatchQueryBuilder ext
     }
 
     @Override
-    public String createSqlString(BatchQuery batch) throws IOException {
+    public String createSqlString() throws IOException {
 
-        List<DbAttribute> dbAttributes = batch.getDbAttributes();
-        QuotingStrategy strategy =  getAdapter().getQuotingStrategy();
+        List<DbAttribute> dbAttributes = query.getDbAttributes();
+        QuotingStrategy strategy = getAdapter().getQuotingStrategy();
 
-        StringBuilder query = new StringBuilder("INSERT INTO ");
-        query.append(strategy.quotedFullyQualifiedName(batch.getDbEntity()));
-        query.append(" (");
+        StringBuilder buffer = new StringBuilder("INSERT INTO ");
+        buffer.append(strategy.quotedFullyQualifiedName(query.getDbEntity()));
+        buffer.append(" (");
 
         int columnCount = 0;
         for (DbAttribute attribute : dbAttributes) {
 
             // attribute inclusion rule - one of the rules below must be true:
             // (1) attribute not generated
-            // (2) attribute is generated and PK and adapter does not support generated
+            // (2) attribute is generated and PK and adapter does not support
+            // generated
             // keys
 
             if (includeInBatch(attribute)) {
 
                 if (columnCount > 0) {
-                    query.append(", ");
+                    buffer.append(", ");
                 }
-                query.append(strategy.quotedName(attribute));
+                buffer.append(strategy.quotedName(attribute));
                 columnCount++;
             }
         }
 
-        query.append(") VALUES (");
+        buffer.append(") VALUES (");
 
         for (int i = 0; i < columnCount; i++) {
             if (i > 0) {
-                query.append(", ");
+                buffer.append(", ");
             }
 
-            query.append('?');
+            buffer.append('?');
         }
-        query.append(')');
-        return query.toString();
+        buffer.append(')');
+        return buffer.toString();
     }
 
     /**
@@ -133,10 +134,10 @@ public class InsertBatchQueryBuilder ext
     protected boolean includeInBatch(DbAttribute attribute) {
         // attribute inclusion rule - one of the rules below must be true:
         // (1) attribute not generated
-        // (2) attribute is generated and PK and adapter does not support generated
+        // (2) attribute is generated and PK and adapter does not support
+        // generated
         // keys
 
-        return !attribute.isGenerated()
-                || (attribute.isPrimaryKey() && !adapter.supportsGeneratedKeys());
+        return !attribute.isGenerated() || (attribute.isPrimaryKey() && !adapter.supportsGeneratedKeys());
     }
 }

Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBBatchQueryBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBBatchQueryBuilder.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBBatchQueryBuilder.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBBatchQueryBuilder.java Fri Mar 14 14:32:07 2014
@@ -17,7 +17,6 @@
  *  under the License.
  ****************************************************************/
 
-
 package org.apache.cayenne.access.trans;
 
 import java.sql.PreparedStatement;
@@ -42,21 +41,18 @@ public abstract class LOBBatchQueryBuild
     protected String newClobFunction;
     protected String newBlobFunction;
 
-    public LOBBatchQueryBuilder(DbAdapter adapter) {
-        super(adapter);
+    public LOBBatchQueryBuilder(BatchQuery query, DbAdapter adapter) {
+        super(query, adapter);
     }
 
-    public abstract List getValuesForLOBUpdateParameters(BatchQuery query);
+    public abstract List getValuesForLOBUpdateParameters();
 
-    public String createLOBSelectString(
-            BatchQuery updateQuery,
-            List selectedLOBAttributes,
-            List qualifierAttributes) {
+    public String createLOBSelectString(List selectedLOBAttributes, List qualifierAttributes) {
 
         QuotingStrategy strategy = getAdapter().getQuotingStrategy();
 
-		StringBuffer buf = new StringBuffer();
-		buf.append("SELECT ");
+        StringBuffer buf = new StringBuffer();
+        buf.append("SELECT ");
 
         Iterator it = selectedLOBAttributes.iterator();
         while (it.hasNext()) {
@@ -67,10 +63,7 @@ public abstract class LOBBatchQueryBuild
             }
         }
 
-        buf
-                .append(" FROM ")
-                .append(strategy.quotedFullyQualifiedName(updateQuery.getDbEntity()))
-                .append(" WHERE ");
+        buf.append(" FROM ").append(strategy.quotedFullyQualifiedName(query.getDbEntity())).append(" WHERE ");
 
         it = qualifierAttributes.iterator();
         while (it.hasNext()) {
@@ -87,33 +80,23 @@ public abstract class LOBBatchQueryBuild
     }
 
     /**
-     * Appends parameter placeholder for the value of the column being updated. If
-     * requested, performs special handling on LOB columns.
+     * Appends parameter placeholder for the value of the column being updated.
+     * If requested, performs special handling on LOB columns.
      */
-    protected void appendUpdatedParameter(
-            StringBuffer buf,
-            DbAttribute dbAttribute,
-            Object value) {
+    protected void appendUpdatedParameter(StringBuffer buf, DbAttribute dbAttribute, Object value) {
 
         int type = dbAttribute.getType();
 
         if (isUpdateableColumn(value, type)) {
             buf.append('?');
-        }
-        else {
+        } else {
             if (type == Types.CLOB) {
                 buf.append(newClobFunction);
-            }
-            else if (type == Types.BLOB) {
+            } else if (type == Types.BLOB) {
                 buf.append(newBlobFunction);
-            }
-            else {
-                throw new CayenneRuntimeException("Unknown LOB column type: "
-                        + type
-                        + "("
-                        + TypesMapping.getSqlNameByType(type)
-                        + "). Query buffer: "
-                        + buf);
+            } else {
+                throw new CayenneRuntimeException("Unknown LOB column type: " + type + "("
+                        + TypesMapping.getSqlNameByType(type) + "). Query buffer: " + buf);
             }
         }
     }
@@ -122,8 +105,7 @@ public abstract class LOBBatchQueryBuild
      * Binds BatchQuery parameters to the PreparedStatement.
      */
     @Override
-    public void bindParameters(PreparedStatement statement, BatchQuery query)
-            throws SQLException, Exception {
+    public void bindParameters(PreparedStatement statement) throws SQLException, Exception {
 
         List<DbAttribute> dbAttributes = query.getDbAttributes();
         int attributeCount = dbAttributes.size();
@@ -135,11 +117,10 @@ public abstract class LOBBatchQueryBuild
             DbAttribute attribute = dbAttributes.get(i);
             int type = attribute.getType();
 
-            // TODO: (Andrus) This works as long as there is no LOBs in qualifier
+            // TODO: (Andrus) This works as long as there is no LOBs in
+            // qualifier
             if (isUpdateableColumn(value, type)) {
-                adapter
-                        .bindParameter(statement, value, j, type, attribute
-                                .getScale());
+                adapter.bindParameter(statement, value, j, type, attribute.getScale());
 
                 j++;
             }

Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBInsertBatchQueryBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBInsertBatchQueryBuilder.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBInsertBatchQueryBuilder.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBInsertBatchQueryBuilder.java Fri Mar 14 14:32:07 2014
@@ -26,16 +26,16 @@ import java.util.List;
 import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dba.QuotingStrategy;
 import org.apache.cayenne.map.DbAttribute;
-import org.apache.cayenne.query.BatchQuery;
+import org.apache.cayenne.query.InsertBatchQuery;
 
 public class LOBInsertBatchQueryBuilder extends LOBBatchQueryBuilder {
 
-    public LOBInsertBatchQueryBuilder(DbAdapter adapter) {
-        super(adapter);
+    public LOBInsertBatchQueryBuilder(InsertBatchQuery query, DbAdapter adapter) {
+        super(query, adapter);
     }
 
     @Override
-    public List getValuesForLOBUpdateParameters(BatchQuery query) {
+    public List getValuesForLOBUpdateParameters() {
         List<DbAttribute> dbAttributes = query.getDbAttributes();
         int len = dbAttributes.size();
 
@@ -52,31 +52,31 @@ public class LOBInsertBatchQueryBuilder 
     }
 
     @Override
-    public String createSqlString(BatchQuery batch) {
-        List<DbAttribute> dbAttributes = batch.getDbAttributes();
+    public String createSqlString() {
+        List<DbAttribute> dbAttributes = query.getDbAttributes();
 
         QuotingStrategy strategy = getAdapter().getQuotingStrategy();
 
-        StringBuffer query = new StringBuffer("INSERT INTO ");
-        query.append(strategy.quotedFullyQualifiedName(batch.getDbEntity()));
-        query.append(" (");
+        StringBuffer buffer = new StringBuffer("INSERT INTO ");
+        buffer.append(strategy.quotedFullyQualifiedName(query.getDbEntity()));
+        buffer.append(" (");
 
         for (Iterator<DbAttribute> i = dbAttributes.iterator(); i.hasNext();) {
             DbAttribute attribute = i.next();
-            query.append(strategy.quotedName(attribute));
+            buffer.append(strategy.quotedName(attribute));
             if (i.hasNext()) {
-                query.append(", ");
+                buffer.append(", ");
             }
         }
-        query.append(") VALUES (");
+        buffer.append(") VALUES (");
         for (int i = 0; i < dbAttributes.size(); i++) {
             if (i > 0) {
-                query.append(", ");
+                buffer.append(", ");
             }
 
-            appendUpdatedParameter(query, dbAttributes.get(i), batch.getValue(i));
+            appendUpdatedParameter(buffer, dbAttributes.get(i), query.getValue(i));
         }
-        query.append(')');
-        return query.toString();
+        buffer.append(')');
+        return buffer.toString();
     }
 }

Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBUpdateBatchQueryBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBUpdateBatchQueryBuilder.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBUpdateBatchQueryBuilder.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/LOBUpdateBatchQueryBuilder.java Fri Mar 14 14:32:07 2014
@@ -31,12 +31,12 @@ import org.apache.cayenne.query.UpdateBa
 
 public class LOBUpdateBatchQueryBuilder extends LOBBatchQueryBuilder {
 
-    public LOBUpdateBatchQueryBuilder(DbAdapter adapter) {
-        super(adapter);
+    public LOBUpdateBatchQueryBuilder(UpdateBatchQuery query, DbAdapter adapter) {
+        super(query, adapter);
     }
 
     @Override
-    public List getValuesForLOBUpdateParameters(BatchQuery query) {
+    public List getValuesForLOBUpdateParameters() {
         int len = query.getDbAttributes().size();
         UpdateBatchQuery updateBatch = (UpdateBatchQuery) query;
 
@@ -62,39 +62,39 @@ public class LOBUpdateBatchQueryBuilder 
     }
 
     @Override
-    public String createSqlString(BatchQuery batch) {
-        UpdateBatchQuery updateBatch = (UpdateBatchQuery) batch;
+    public String createSqlString() {
+        UpdateBatchQuery updateBatch = (UpdateBatchQuery) query;
         List<DbAttribute> idDbAttributes = updateBatch.getQualifierAttributes();
         List<DbAttribute> updatedDbAttributes = updateBatch.getUpdatedAttributes();
 
         QuotingStrategy strategy = getAdapter().getQuotingStrategy();
 
-        StringBuffer query = new StringBuffer("UPDATE ");
-        query.append(strategy.quotedFullyQualifiedName(batch.getDbEntity()));
-        query.append(" SET ");
+        StringBuffer buffer = new StringBuffer("UPDATE ");
+        buffer.append(strategy.quotedFullyQualifiedName(query.getDbEntity()));
+        buffer.append(" SET ");
 
         int len = updatedDbAttributes.size();
         for (int i = 0; i < len; i++) {
             if (i > 0) {
-                query.append(", ");
+                buffer.append(", ");
             }
 
             DbAttribute attribute = updatedDbAttributes.get(i);
-            query.append(strategy.quotedName(attribute));
-            query.append(" = ");
-            appendUpdatedParameter(query, attribute, batch.getValue(i));
+            buffer.append(strategy.quotedName(attribute));
+            buffer.append(" = ");
+            appendUpdatedParameter(buffer, attribute, query.getValue(i));
         }
 
-        query.append(" WHERE ");
+        buffer.append(" WHERE ");
         Iterator<DbAttribute> i = idDbAttributes.iterator();
         while (i.hasNext()) {
             DbAttribute attribute = i.next();
-            appendDbAttribute(query, attribute);
-            query.append(" = ?");
+            appendDbAttribute(buffer, attribute);
+            buffer.append(" = ?");
             if (i.hasNext()) {
-                query.append(" AND ");
+                buffer.append(" AND ");
             }
         }
-        return query.toString();
+        return buffer.toString();
     }
 }

Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/UpdateBatchQueryBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/UpdateBatchQueryBuilder.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/UpdateBatchQueryBuilder.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/trans/UpdateBatchQueryBuilder.java Fri Mar 14 14:32:07 2014
@@ -28,7 +28,6 @@ import java.util.List;
 import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dba.QuotingStrategy;
 import org.apache.cayenne.map.DbAttribute;
-import org.apache.cayenne.query.BatchQuery;
 import org.apache.cayenne.query.UpdateBatchQuery;
 
 /**
@@ -37,55 +36,55 @@ import org.apache.cayenne.query.UpdateBa
 
 public class UpdateBatchQueryBuilder extends BatchQueryBuilder {
 
-    public UpdateBatchQueryBuilder(DbAdapter adapter) {
-        super(adapter);
+    public UpdateBatchQueryBuilder(UpdateBatchQuery query, DbAdapter adapter) {
+        super(query, adapter);
     }
 
     @Override
-    public String createSqlString(BatchQuery batch) throws IOException {
-        UpdateBatchQuery updateBatch = (UpdateBatchQuery) batch;
+    public String createSqlString() throws IOException {
+        UpdateBatchQuery updateBatch = (UpdateBatchQuery) query;
 
         QuotingStrategy strategy = getAdapter().getQuotingStrategy();
 
         List<DbAttribute> qualifierAttributes = updateBatch.getQualifierAttributes();
         List<DbAttribute> updatedDbAttributes = updateBatch.getUpdatedAttributes();
 
-        StringBuffer query = new StringBuffer("UPDATE ");
-        query.append(strategy.quotedFullyQualifiedName(batch.getDbEntity()));
-        query.append(" SET ");
+        StringBuffer buffer = new StringBuffer("UPDATE ");
+        buffer.append(strategy.quotedFullyQualifiedName(query.getDbEntity()));
+        buffer.append(" SET ");
 
         int len = updatedDbAttributes.size();
         for (int i = 0; i < len; i++) {
             if (i > 0) {
-                query.append(", ");
+                buffer.append(", ");
             }
 
             DbAttribute attribute = updatedDbAttributes.get(i);
-            query.append(strategy.quotedName(attribute));
-            query.append(" = ?");
+            buffer.append(strategy.quotedName(attribute));
+            buffer.append(" = ?");
         }
 
-        query.append(" WHERE ");
+        buffer.append(" WHERE ");
 
         Iterator<DbAttribute> i = qualifierAttributes.iterator();
         while (i.hasNext()) {
             DbAttribute attribute = i.next();
-            appendDbAttribute(query, attribute);
-            query.append(updateBatch.isNull(attribute) ? " IS NULL" : " = ?");
+            appendDbAttribute(buffer, attribute);
+            buffer.append(updateBatch.isNull(attribute) ? " IS NULL" : " = ?");
 
             if (i.hasNext()) {
-                query.append(" AND ");
+                buffer.append(" AND ");
             }
         }
 
-        return query.toString();
+        return buffer.toString();
     }
 
     /**
      * Binds BatchQuery parameters to the PreparedStatement.
      */
     @Override
-    public void bindParameters(PreparedStatement statement, BatchQuery query) throws SQLException, Exception {
+    public void bindParameters(PreparedStatement statement) throws SQLException, Exception {
 
         UpdateBatchQuery updateBatch = (UpdateBatchQuery) query;
         List<DbAttribute> qualifierAttributes = updateBatch.getQualifierAttributes();

Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleLOBBatchAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleLOBBatchAction.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleLOBBatchAction.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleLOBBatchAction.java Fri Mar 14 14:32:07 2014
@@ -72,10 +72,10 @@ class OracleLOBBatchAction implements SQ
 
         LOBBatchQueryBuilder queryBuilder;
         if (query instanceof InsertBatchQuery) {
-            queryBuilder = new LOBInsertBatchQueryBuilder(getAdapter());
+            queryBuilder = new LOBInsertBatchQueryBuilder((InsertBatchQuery) query, getAdapter());
         }
         else if (query instanceof UpdateBatchQuery) {
-            queryBuilder = new LOBUpdateBatchQueryBuilder(getAdapter());
+            queryBuilder = new LOBUpdateBatchQueryBuilder((UpdateBatchQuery) query, getAdapter());
         }
         else {
             throw new CayenneException(
@@ -99,7 +99,7 @@ class OracleLOBBatchAction implements SQ
         query.reset();
         while (selectQuery.next()) {
             int updated = 0;
-            String updateStr = queryBuilder.createSqlString(query);
+            String updateStr = queryBuilder.createSqlString();
 
             // 1. run row update
             logger.logQuery(updateStr, Collections.EMPTY_LIST);
@@ -107,7 +107,7 @@ class OracleLOBBatchAction implements SQ
             try {
 
                 if (isLoggable) {
-                    List bindings = queryBuilder.getValuesForLOBUpdateParameters(query);
+                    List bindings = queryBuilder.getValuesForLOBUpdateParameters();
                     logger.logQueryParameters(
                             "bind",
                             null,
@@ -115,7 +115,7 @@ class OracleLOBBatchAction implements SQ
                             query instanceof InsertBatchQuery);
                 }
 
-                queryBuilder.bindParameters(statement, query);
+                queryBuilder.bindParameters(statement);
                 updated = statement.executeUpdate();
                 logger.logUpdateCount(updated);
             }
@@ -155,7 +155,6 @@ class OracleLOBBatchAction implements SQ
         int lobSize = lobAttributes.size();
 
         String selectStr = queryBuilder.createLOBSelectString(
-                selectQuery.getQuery(),
                 lobAttributes,
                 qualifierAttributes);
 

Modified: cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BatchActionLockingTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BatchActionLockingTest.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BatchActionLockingTest.java (original)
+++ cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BatchActionLockingTest.java Fri Mar 14 14:32:07 2014
@@ -81,7 +81,7 @@ public class BatchActionLockingTest exte
         batchQuery.setUsingOptimisticLocking(true);
         batchQuery.add(qualifierSnapshot);
 
-        DeleteBatchQueryBuilder batchQueryBuilder = new DeleteBatchQueryBuilder(adapter);
+        DeleteBatchQueryBuilder batchQueryBuilder = new DeleteBatchQueryBuilder(batchQuery, adapter);
 
         MockConnection mockConnection = new MockConnection();
         PreparedStatementResultSetHandler preparedStatementResultSetHandler = mockConnection
@@ -122,7 +122,7 @@ public class BatchActionLockingTest exte
         batchQuery.setUsingOptimisticLocking(true);
         batchQuery.add(qualifierSnapshot);
 
-        DeleteBatchQueryBuilder batchQueryBuilder = new DeleteBatchQueryBuilder(adapter);
+        DeleteBatchQueryBuilder batchQueryBuilder = new DeleteBatchQueryBuilder(batchQuery, adapter);
 
         MockConnection mockConnection = new MockConnection();
         PreparedStatementResultSetHandler preparedStatementResultSetHandler = mockConnection

Modified: cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SoftDeleteBatchQueryBuilderTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SoftDeleteBatchQueryBuilderTest.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SoftDeleteBatchQueryBuilderTest.java (original)
+++ cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SoftDeleteBatchQueryBuilderTest.java Fri Mar 14 14:32:07 2014
@@ -61,13 +61,13 @@ public class SoftDeleteBatchQueryBuilder
     @Inject
     private AdhocObjectFactory objectFactory;
 
-    private DeleteBatchQueryBuilder createBuilder() {
+    private DeleteBatchQueryBuilder createBuilder(DeleteBatchQuery query) {
         JdbcAdapter adapter = objectFactory.newInstance(JdbcAdapter.class, JdbcAdapter.class.getName());
-        return createBuilder(adapter);
+        return createBuilder(query, adapter);
     }
 
-    private DeleteBatchQueryBuilder createBuilder(JdbcAdapter adapter) {
-        return (DeleteBatchQueryBuilder) new SoftDeleteQueryBuilderFactory().createDeleteQueryBuilder(adapter);
+    private DeleteBatchQueryBuilder createBuilder(DeleteBatchQuery query, JdbcAdapter adapter) {
+        return (DeleteBatchQueryBuilder) new SoftDeleteQueryBuilderFactory().createDeleteQueryBuilder(query, adapter);
     }
 
     public void testCreateSqlString() throws Exception {
@@ -76,8 +76,8 @@ public class SoftDeleteBatchQueryBuilder
         List<DbAttribute> idAttributes = Collections.singletonList(entity.getAttribute("SOFT_TEST_ID"));
 
         DeleteBatchQuery deleteQuery = new DeleteBatchQuery(entity, idAttributes, null, 1);
-        DeleteBatchQueryBuilder builder = createBuilder();
-        String generatedSql = builder.createSqlString(deleteQuery);
+        DeleteBatchQueryBuilder builder = createBuilder(deleteQuery);
+        String generatedSql = builder.createSqlString();
         assertNotNull(generatedSql);
         assertEquals("UPDATE " + entity.getName() + " SET DELETED = ? WHERE SOFT_TEST_ID = ?", generatedSql);
     }
@@ -91,8 +91,8 @@ public class SoftDeleteBatchQueryBuilder
         Collection<String> nullAttributes = Collections.singleton("NAME");
 
         DeleteBatchQuery deleteQuery = new DeleteBatchQuery(entity, idAttributes, nullAttributes, 1);
-        DeleteBatchQueryBuilder builder = createBuilder();
-        String generatedSql = builder.createSqlString(deleteQuery);
+        DeleteBatchQueryBuilder builder = createBuilder(deleteQuery);
+        String generatedSql = builder.createSqlString();
         assertNotNull(generatedSql);
         assertEquals("UPDATE " + entity.getName() + " SET DELETED = ? WHERE SOFT_TEST_ID = ? AND NAME IS NULL",
                 generatedSql);
@@ -108,8 +108,8 @@ public class SoftDeleteBatchQueryBuilder
 
             DeleteBatchQuery deleteQuery = new DeleteBatchQuery(entity, idAttributes, null, 1);
             JdbcAdapter adapter = (JdbcAdapter) this.adapter;
-            DeleteBatchQueryBuilder builder = createBuilder(adapter);
-            String generatedSql = builder.createSqlString(deleteQuery);
+            DeleteBatchQueryBuilder builder = createBuilder(deleteQuery, adapter);
+            String generatedSql = builder.createSqlString();
 
             String charStart = unitAdapter.getIdentifiersStartQuote();
             String charEnd = unitAdapter.getIdentifiersEndQuote();

Modified: cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/BatchQueryBuilderTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/BatchQueryBuilderTest.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/BatchQueryBuilderTest.java (original)
+++ cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/BatchQueryBuilderTest.java Fri Mar 14 14:32:07 2014
@@ -20,6 +20,8 @@
 
 package org.apache.cayenne.access.trans;
 
+import static org.mockito.Mockito.mock;
+
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
 import java.sql.Types;
@@ -40,87 +42,80 @@ public class BatchQueryBuilderTest exten
     @Inject
     private AdhocObjectFactory objectFactory;
 
-	public void testConstructor() throws Exception {
-		DbAdapter adapter = objectFactory.newInstance(
-		        DbAdapter.class, 
-		        JdbcAdapter.class.getName());
-		BatchQueryBuilder builder =
-			new BatchQueryBuilder(adapter) {
-			@Override
-            public String createSqlString(BatchQuery batch) {
-				return null;
-			}
-			@Override
-            public void bindParameters(PreparedStatement statement, BatchQuery query) throws SQLException, Exception {
-            }
-		};
-
-		assertSame(adapter, builder.getAdapter());
-	}
-
-	public void testAppendDbAttribute1() throws Exception {
-	    DbAdapter adapter = objectFactory.newInstance(
-                DbAdapter.class, 
-                JdbcAdapter.class.getName());
-		String trimFunction = "testTrim";
-
-		BatchQueryBuilder builder =
-			new BatchQueryBuilder(adapter) {
-			@Override
-            public String createSqlString(BatchQuery batch) {
-				return null;
-			}
-			
-			@Override
-            public void bindParameters(PreparedStatement statement, BatchQuery query) throws SQLException, Exception {
-            }
-		};
-		
-		builder.setTrimFunction(trimFunction);
-
-		StringBuffer buf = new StringBuffer();
-		DbEntity entity = new DbEntity("Test");
-		DbAttribute attr = new DbAttribute("testAttr", Types.CHAR, null);
-		attr.setEntity(entity);
-		builder.appendDbAttribute(buf, attr);
-		assertEquals("testTrim(testAttr)", buf.toString());
-
-		buf = new StringBuffer();
-		attr = new DbAttribute("testAttr", Types.VARCHAR, null);
-		attr.setEntity(entity);
-		builder.appendDbAttribute(buf, attr);
-		assertEquals("testAttr", buf.toString());
-	}
-
-	public void testAppendDbAttribute2() throws Exception {
-	    DbAdapter adapter = objectFactory.newInstance(
-                DbAdapter.class, 
-                JdbcAdapter.class.getName());
-
-		BatchQueryBuilder builder = new BatchQueryBuilder(adapter) {
-			@Override
-            public String createSqlString(BatchQuery batch) {
-				return null;
-			}
-			
-			@Override
-			public void bindParameters(PreparedStatement statement, BatchQuery query) throws SQLException, Exception {
-			}
-		};
-
-		StringBuffer buf = new StringBuffer();
-		DbEntity entity = new DbEntity("Test");
-		
-		DbAttribute attr = new DbAttribute("testAttr", Types.CHAR, null);
-		attr.setEntity(entity);
-		builder.appendDbAttribute(buf, attr);
-		assertEquals("testAttr", buf.toString());
-
-		buf = new StringBuffer();
-		attr = new DbAttribute("testAttr", Types.VARCHAR, null);
-		attr.setEntity(entity);
-		
-		builder.appendDbAttribute(buf, attr);
-		assertEquals("testAttr", buf.toString());
-	}
+    public void testConstructor() throws Exception {
+        DbAdapter adapter = objectFactory.newInstance(DbAdapter.class, JdbcAdapter.class.getName());
+        BatchQueryBuilder builder = new BatchQueryBuilder(mock(BatchQuery.class), adapter) {
+            @Override
+            public String createSqlString() {
+                return null;
+            }
+
+            @Override
+            public void bindParameters(PreparedStatement statement) throws SQLException, Exception {
+            }
+        };
+
+        assertSame(adapter, builder.getAdapter());
+    }
+
+    public void testAppendDbAttribute1() throws Exception {
+        DbAdapter adapter = objectFactory.newInstance(DbAdapter.class, JdbcAdapter.class.getName());
+        String trimFunction = "testTrim";
+
+        BatchQueryBuilder builder = new BatchQueryBuilder(mock(BatchQuery.class), adapter) {
+            @Override
+            public String createSqlString() {
+                return null;
+            }
+
+            @Override
+            public void bindParameters(PreparedStatement statement) throws SQLException, Exception {
+            }
+        };
+
+        builder.setTrimFunction(trimFunction);
+
+        StringBuffer buf = new StringBuffer();
+        DbEntity entity = new DbEntity("Test");
+        DbAttribute attr = new DbAttribute("testAttr", Types.CHAR, null);
+        attr.setEntity(entity);
+        builder.appendDbAttribute(buf, attr);
+        assertEquals("testTrim(testAttr)", buf.toString());
+
+        buf = new StringBuffer();
+        attr = new DbAttribute("testAttr", Types.VARCHAR, null);
+        attr.setEntity(entity);
+        builder.appendDbAttribute(buf, attr);
+        assertEquals("testAttr", buf.toString());
+    }
+
+    public void testAppendDbAttribute2() throws Exception {
+        DbAdapter adapter = objectFactory.newInstance(DbAdapter.class, JdbcAdapter.class.getName());
+
+        BatchQueryBuilder builder = new BatchQueryBuilder(mock(BatchQuery.class), adapter) {
+            @Override
+            public String createSqlString() {
+                return null;
+            }
+
+            @Override
+            public void bindParameters(PreparedStatement statement) throws SQLException, Exception {
+            }
+        };
+
+        StringBuffer buf = new StringBuffer();
+        DbEntity entity = new DbEntity("Test");
+
+        DbAttribute attr = new DbAttribute("testAttr", Types.CHAR, null);
+        attr.setEntity(entity);
+        builder.appendDbAttribute(buf, attr);
+        assertEquals("testAttr", buf.toString());
+
+        buf = new StringBuffer();
+        attr = new DbAttribute("testAttr", Types.VARCHAR, null);
+        attr.setEntity(entity);
+
+        builder.appendDbAttribute(buf, attr);
+        assertEquals("testAttr", buf.toString());
+    }
 }

Modified: cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilderTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilderTest.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilderTest.java (original)
+++ cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/DeleteBatchQueryBuilderTest.java Fri Mar 14 14:32:07 2014
@@ -19,6 +19,8 @@
 
 package org.apache.cayenne.access.trans;
 
+import static org.mockito.Mockito.mock;
+
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
@@ -55,7 +57,7 @@ public class DeleteBatchQueryBuilderTest
     public void testConstructor() throws Exception {
         DbAdapter adapter = objectFactory.newInstance(DbAdapter.class, JdbcAdapter.class.getName());
 
-        DeleteBatchQueryBuilder builder = new DeleteBatchQueryBuilder(adapter);
+        DeleteBatchQueryBuilder builder = new DeleteBatchQueryBuilder(mock(DeleteBatchQuery.class), adapter);
 
         assertSame(adapter, builder.getAdapter());
     }
@@ -69,8 +71,8 @@ public class DeleteBatchQueryBuilderTest
         DeleteBatchQuery deleteQuery = new DeleteBatchQuery(entity, idAttributes, null, 1);
 
         DbAdapter adapter = objectFactory.newInstance(DbAdapter.class, JdbcAdapter.class.getName());
-        DeleteBatchQueryBuilder builder = new DeleteBatchQueryBuilder(adapter);
-        String generatedSql = builder.createSqlString(deleteQuery);
+        DeleteBatchQueryBuilder builder = new DeleteBatchQueryBuilder(deleteQuery, adapter);
+        String generatedSql = builder.createSqlString();
         assertNotNull(generatedSql);
         assertEquals("DELETE FROM " + entity.getName() + " WHERE LOCKING_TEST_ID = ?", generatedSql);
     }
@@ -87,8 +89,8 @@ public class DeleteBatchQueryBuilderTest
         DeleteBatchQuery deleteQuery = new DeleteBatchQuery(entity, idAttributes, nullAttributes, 1);
 
         DbAdapter adapter = objectFactory.newInstance(DbAdapter.class, JdbcAdapter.class.getName());
-        DeleteBatchQueryBuilder builder = new DeleteBatchQueryBuilder(adapter);
-        String generatedSql = builder.createSqlString(deleteQuery);
+        DeleteBatchQueryBuilder builder = new DeleteBatchQueryBuilder(deleteQuery, adapter);
+        String generatedSql = builder.createSqlString();
         assertNotNull(generatedSql);
         assertEquals("DELETE FROM " + entity.getName() + " WHERE LOCKING_TEST_ID = ? AND NAME IS NULL", generatedSql);
     }
@@ -103,8 +105,8 @@ public class DeleteBatchQueryBuilderTest
 
             DeleteBatchQuery deleteQuery = new DeleteBatchQuery(entity, idAttributes, null, 1);
             JdbcAdapter adapter = (JdbcAdapter) this.adapter;
-            DeleteBatchQueryBuilder builder = new DeleteBatchQueryBuilder(adapter);
-            String generatedSql = builder.createSqlString(deleteQuery);
+            DeleteBatchQueryBuilder builder = new DeleteBatchQueryBuilder(deleteQuery, adapter);
+            String generatedSql = builder.createSqlString();
 
             String charStart = unitAdapter.getIdentifiersStartQuote();
             String charEnd = unitAdapter.getIdentifiersEndQuote();
@@ -134,8 +136,8 @@ public class DeleteBatchQueryBuilderTest
 
             JdbcAdapter adapter = (JdbcAdapter) this.adapter;
 
-            DeleteBatchQueryBuilder builder = new DeleteBatchQueryBuilder(adapter);
-            String generatedSql = builder.createSqlString(deleteQuery);
+            DeleteBatchQueryBuilder builder = new DeleteBatchQueryBuilder(deleteQuery, adapter);
+            String generatedSql = builder.createSqlString();
 
             String charStart = unitAdapter.getIdentifiersStartQuote();
             String charEnd = unitAdapter.getIdentifiersEndQuote();

Modified: cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/InsertBatchQueryBuilderTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/InsertBatchQueryBuilderTest.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/InsertBatchQueryBuilderTest.java (original)
+++ cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/InsertBatchQueryBuilderTest.java Fri Mar 14 14:32:07 2014
@@ -18,6 +18,8 @@
  ****************************************************************/
 package org.apache.cayenne.access.trans;
 
+import static org.mockito.Mockito.mock;
+
 import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dba.JdbcAdapter;
@@ -48,7 +50,7 @@ public class InsertBatchQueryBuilderTest
     public void testConstructor() throws Exception {
         DbAdapter adapter = objectFactory.newInstance(DbAdapter.class, JdbcAdapter.class.getName());
 
-        DeleteBatchQueryBuilder builder = new DeleteBatchQueryBuilder(adapter);
+        InsertBatchQueryBuilder builder = new InsertBatchQueryBuilder(mock(InsertBatchQuery.class), adapter);
 
         assertSame(adapter, builder.getAdapter());
     }
@@ -58,9 +60,9 @@ public class InsertBatchQueryBuilderTest
                 .getDbEntity();
 
         DbAdapter adapter = objectFactory.newInstance(DbAdapter.class, JdbcAdapter.class.getName());
-        InsertBatchQuery deleteQuery = new InsertBatchQuery(entity, 1);
-        InsertBatchQueryBuilder builder = new InsertBatchQueryBuilder(adapter);
-        String generatedSql = builder.createSqlString(deleteQuery);
+        InsertBatchQuery insertQuery = new InsertBatchQuery(entity, 1);
+        InsertBatchQueryBuilder builder = new InsertBatchQueryBuilder(insertQuery, adapter);
+        String generatedSql = builder.createSqlString();
         assertNotNull(generatedSql);
         assertEquals("INSERT INTO " + entity.getName() + " (DESCRIPTION, LOCKING_TEST_ID, NAME) VALUES (?, ?, ?)",
                 generatedSql);
@@ -75,9 +77,9 @@ public class InsertBatchQueryBuilderTest
 
             JdbcAdapter adapter = (JdbcAdapter) this.adapter;
 
-            InsertBatchQuery deleteQuery = new InsertBatchQuery(entity, 1);
-            InsertBatchQueryBuilder builder = new InsertBatchQueryBuilder(adapter);
-            String generatedSql = builder.createSqlString(deleteQuery);
+            InsertBatchQuery insertQuery = new InsertBatchQuery(entity, 1);
+            InsertBatchQueryBuilder builder = new InsertBatchQueryBuilder(insertQuery, adapter);
+            String generatedSql = builder.createSqlString();
             String charStart = unitAdapter.getIdentifiersStartQuote();
             String charEnd = unitAdapter.getIdentifiersEndQuote();
             assertNotNull(generatedSql);

Modified: cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/UpdateBatchQueryBuilderTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/UpdateBatchQueryBuilderTest.java?rev=1577548&r1=1577547&r2=1577548&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/UpdateBatchQueryBuilderTest.java (original)
+++ cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/trans/UpdateBatchQueryBuilderTest.java Fri Mar 14 14:32:07 2014
@@ -19,6 +19,8 @@
 
 package org.apache.cayenne.access.trans;
 
+import static org.mockito.Mockito.mock;
+
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
@@ -53,7 +55,7 @@ public class UpdateBatchQueryBuilderTest
 
     public void testConstructor() throws Exception {
         DbAdapter adapter = objectFactory.newInstance(DbAdapter.class, JdbcAdapter.class.getName());
-        UpdateBatchQueryBuilder builder = new UpdateBatchQueryBuilder(adapter);
+        UpdateBatchQueryBuilder builder = new UpdateBatchQueryBuilder(mock(UpdateBatchQuery.class), adapter);
         assertSame(adapter, builder.getAdapter());
     }
 
@@ -67,8 +69,8 @@ public class UpdateBatchQueryBuilderTest
         UpdateBatchQuery updateQuery = new UpdateBatchQuery(entity, idAttributes, updatedAttributes, null, 1);
 
         DbAdapter adapter = objectFactory.newInstance(DbAdapter.class, JdbcAdapter.class.getName());
-        UpdateBatchQueryBuilder builder = new UpdateBatchQueryBuilder(adapter);
-        String generatedSql = builder.createSqlString(updateQuery);
+        UpdateBatchQueryBuilder builder = new UpdateBatchQueryBuilder(updateQuery, adapter);
+        String generatedSql = builder.createSqlString();
         assertNotNull(generatedSql);
         assertEquals("UPDATE " + entity.getName() + " SET DESCRIPTION = ? WHERE LOCKING_TEST_ID = ?", generatedSql);
     }
@@ -86,8 +88,8 @@ public class UpdateBatchQueryBuilderTest
         UpdateBatchQuery updateQuery = new UpdateBatchQuery(entity, idAttributes, updatedAttributes, nullAttributes, 1);
 
         DbAdapter adapter = objectFactory.newInstance(DbAdapter.class, JdbcAdapter.class.getName());
-        UpdateBatchQueryBuilder builder = new UpdateBatchQueryBuilder(adapter);
-        String generatedSql = builder.createSqlString(updateQuery);
+        UpdateBatchQueryBuilder builder = new UpdateBatchQueryBuilder(updateQuery, adapter);
+        String generatedSql = builder.createSqlString();
         assertNotNull(generatedSql);
 
         assertEquals("UPDATE " + entity.getName() + " SET DESCRIPTION = ? WHERE LOCKING_TEST_ID = ? AND NAME IS NULL",
@@ -106,8 +108,8 @@ public class UpdateBatchQueryBuilderTest
             UpdateBatchQuery updateQuery = new UpdateBatchQuery(entity, idAttributes, updatedAttributes, null, 1);
             JdbcAdapter adapter = (JdbcAdapter) this.adapter;
 
-            UpdateBatchQueryBuilder builder = new UpdateBatchQueryBuilder(adapter);
-            String generatedSql = builder.createSqlString(updateQuery);
+            UpdateBatchQueryBuilder builder = new UpdateBatchQueryBuilder(updateQuery, adapter);
+            String generatedSql = builder.createSqlString();
 
             String charStart = unitAdapter.getIdentifiersStartQuote();
             String charEnd = unitAdapter.getIdentifiersEndQuote();
@@ -137,8 +139,8 @@ public class UpdateBatchQueryBuilderTest
                     nullAttributes, 1);
             JdbcAdapter adapter = (JdbcAdapter) this.adapter;
 
-            UpdateBatchQueryBuilder builder = new UpdateBatchQueryBuilder(adapter);
-            String generatedSql = builder.createSqlString(updateQuery);
+            UpdateBatchQueryBuilder builder = new UpdateBatchQueryBuilder(updateQuery, adapter);
+            String generatedSql = builder.createSqlString();
             assertNotNull(generatedSql);
 
             String charStart = unitAdapter.getIdentifiersStartQuote();