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);
}