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/17 11:58:41 UTC

svn commit: r1578296 - in /cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access: jdbc/ translator/batch/

Author: aadamchik
Date: Mon Mar 17 10:58:40 2014
New Revision: 1578296

URL: http://svn.apache.org/r1578296
Log:
CAY-1912 BatchQueryBuilder refactoring

collapsing translator methods to a single one...

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/translator/batch/BatchTranslatorFactory.java
    cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/translator/batch/DefaultBatchTranslatorFactory.java
    cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/translator/batch/SoftDeleteTranslatorFactory.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=1578296&r1=1578295&r2=1578296&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 Mon Mar 17 10:58:40 2014
@@ -44,9 +44,7 @@ import org.apache.cayenne.map.DbAttribut
 import org.apache.cayenne.map.ObjAttribute;
 import org.apache.cayenne.query.BatchQuery;
 import org.apache.cayenne.query.BatchQueryRow;
-import org.apache.cayenne.query.DeleteBatchQuery;
 import org.apache.cayenne.query.InsertBatchQuery;
-import org.apache.cayenne.query.UpdateBatchQuery;
 
 /**
  * @since 1.2
@@ -103,15 +101,7 @@ public class BatchAction extends BaseSQL
             throw new IllegalStateException("Adapter BatchQueryBuilderFactory is null");
         }
 
-        if (query instanceof InsertBatchQuery) {
-            return factory.insertTranslator((InsertBatchQuery) query, dataNode.getAdapter());
-        } else if (query instanceof UpdateBatchQuery) {
-            return factory.updateTranslator((UpdateBatchQuery) query, dataNode.getAdapter());
-        } else if (query instanceof DeleteBatchQuery) {
-            return factory.deleteTranslator((DeleteBatchQuery) query, dataNode.getAdapter());
-        } else {
-            throw new CayenneException("Unsupported batch query: " + query);
-        }
+        return factory.translator(query, dataNode.getAdapter());
     }
 
     protected void runAsBatch(Connection con, BatchTranslator translator, OperationObserver delegate)

Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/translator/batch/BatchTranslatorFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/translator/batch/BatchTranslatorFactory.java?rev=1578296&r1=1578295&r2=1578296&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/translator/batch/BatchTranslatorFactory.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/translator/batch/BatchTranslatorFactory.java Mon Mar 17 10:58:40 2014
@@ -19,9 +19,7 @@
 package org.apache.cayenne.access.translator.batch;
 
 import org.apache.cayenne.dba.DbAdapter;
-import org.apache.cayenne.query.DeleteBatchQuery;
-import org.apache.cayenne.query.InsertBatchQuery;
-import org.apache.cayenne.query.UpdateBatchQuery;
+import org.apache.cayenne.query.BatchQuery;
 
 /**
  * Factory which creates BatchQueryBuilders for different types of queries,
@@ -32,17 +30,7 @@ import org.apache.cayenne.query.UpdateBa
 public interface BatchTranslatorFactory {
 
     /**
-     * Creates query builder for INSERT queries
+     * Creates a proper translator for a BatchQuery
      */
-    BatchTranslator insertTranslator(InsertBatchQuery query, DbAdapter adapter);
-
-    /**
-     * Creates query builder for UPDATE queries
-     */
-    BatchTranslator updateTranslator(UpdateBatchQuery query, DbAdapter adapter);
-
-    /**
-     * Creates query builder for DELETE queries
-     */
-    BatchTranslator deleteTranslator(DeleteBatchQuery query, DbAdapter adapter);
+    BatchTranslator translator(BatchQuery query, DbAdapter adapter);
 }

Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/translator/batch/DefaultBatchTranslatorFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/translator/batch/DefaultBatchTranslatorFactory.java?rev=1578296&r1=1578295&r2=1578296&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/translator/batch/DefaultBatchTranslatorFactory.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/translator/batch/DefaultBatchTranslatorFactory.java Mon Mar 17 10:58:40 2014
@@ -18,7 +18,9 @@
  ****************************************************************/
 package org.apache.cayenne.access.translator.batch;
 
+import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.dba.DbAdapter;
+import org.apache.cayenne.query.BatchQuery;
 import org.apache.cayenne.query.DeleteBatchQuery;
 import org.apache.cayenne.query.InsertBatchQuery;
 import org.apache.cayenne.query.UpdateBatchQuery;
@@ -31,17 +33,27 @@ import org.apache.cayenne.query.UpdateBa
 public class DefaultBatchTranslatorFactory implements BatchTranslatorFactory {
 
     @Override
-    public BatchTranslator deleteTranslator(DeleteBatchQuery query, DbAdapter adapter) {
+    public BatchTranslator translator(BatchQuery query, DbAdapter adapter) {
+        if (query instanceof InsertBatchQuery) {
+            return insertTranslator((InsertBatchQuery) query, adapter);
+        } else if (query instanceof UpdateBatchQuery) {
+            return updateTranslator((UpdateBatchQuery) query, adapter);
+        } else if (query instanceof DeleteBatchQuery) {
+            return deleteTranslator((DeleteBatchQuery) query, adapter);
+        } else {
+            throw new CayenneRuntimeException("Unsupported batch query: " + query);
+        }
+    }
+
+    protected BatchTranslator deleteTranslator(DeleteBatchQuery query, DbAdapter adapter) {
         return new DeleteBatchTranslator(query, adapter);
     }
 
-    @Override
-    public BatchTranslator insertTranslator(InsertBatchQuery query, DbAdapter adapter) {
+    protected BatchTranslator insertTranslator(InsertBatchQuery query, DbAdapter adapter) {
         return new InsertBatchTranslator(query, adapter);
     }
 
-    @Override
-    public BatchTranslator updateTranslator(UpdateBatchQuery query, DbAdapter adapter) {
+    protected BatchTranslator updateTranslator(UpdateBatchQuery query, DbAdapter adapter) {
         return new UpdateBatchTranslator(query, adapter);
     }
 

Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/translator/batch/SoftDeleteTranslatorFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/translator/batch/SoftDeleteTranslatorFactory.java?rev=1578296&r1=1578295&r2=1578296&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/translator/batch/SoftDeleteTranslatorFactory.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/translator/batch/SoftDeleteTranslatorFactory.java Mon Mar 17 10:58:40 2014
@@ -47,7 +47,7 @@ public class SoftDeleteTranslatorFactory
     }
     
     @Override
-    public BatchTranslator deleteTranslator(DeleteBatchQuery query, DbAdapter adapter) {
+    protected BatchTranslator deleteTranslator(DeleteBatchQuery query, DbAdapter adapter) {
         return new SoftDeleteBatchTranslator(query, adapter, deletedFieldName);
     }