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/12 16:13:18 UTC
svn commit: r1576774 [1/2] - in /cayenne/main/trunk/cayenne-server/src:
main/java/org/apache/cayenne/access/
main/java/org/apache/cayenne/access/jdbc/
main/java/org/apache/cayenne/configuration/server/
main/java/org/apache/cayenne/dba/ main/java/org/ap...
Author: aadamchik
Date: Wed Mar 12 15:13:16 2014
New Revision: 1576774
URL: http://svn.apache.org/r1576774
Log:
CAY-1907 RowReaderFactory
Added:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DefaultRowReaderFactory.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/RowReaderFactory.java
- copied, changed from r1576629, cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteActionBuilder.java
Modified:
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/DataNode.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BaseRowReader.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BaseSQLAction.java
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/EJBQLAction.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/JDBCResultIterator.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/ProcedureAction.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java
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/configuration/server/DataDomainProvider.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/JdbcActionBuilder.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/db2/DB2ActionBuilder.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/db2/DB2Adapter.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/db2/DB2ProcedureAction.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/FrontBaseAdapter.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLActionBuilder.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLDBAdapter.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/ingres/IngresActionBuilder.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/ingres/IngresAdapter.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/mysql/MySQLActionBuilder.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLProcedureAction.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/openbase/OpenBaseActionBuilder.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseAdapter.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/Oracle8ActionBuilder.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/Oracle8Adapter.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SQLTemplateAction.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/OracleActionBuilder.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleBatchAction.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleProcedureAction.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleSQLTemplateAction.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/postgres/PostgresActionBuilder.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/postgres/PostgresAdapter.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/postgres/PostgresProcedureAction.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/sqlite/SQLiteActionBuilder.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteAdapter.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteSQLTemplateAction.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerActionBuilder.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerAdapter.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerBatchAction.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerProcedureAction.java
cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlserver/SQLServerSelectAction.java
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/dbsync/SchemaUpdateStrategyTest.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/BatchActionTest.java
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/BindDirectiveTest.java
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/JDBCResultIteratorTest.java
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/ResultDirectiveTest.java
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/SQLTemplateActionTest.java
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/configuration/server/DataDomainProviderTest.java
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java
cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseDataDomainProvider.java
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/DataNode.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/DataNode.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/DataNode.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/DataNode.java Wed Mar 12 15:13:16 2014
@@ -34,6 +34,7 @@ import javax.sql.DataSource;
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.access.dbsync.SchemaUpdateStrategy;
import org.apache.cayenne.access.dbsync.SkipSchemaUpdateStrategy;
+import org.apache.cayenne.access.jdbc.RowReaderFactory;
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.log.JdbcEventLogger;
import org.apache.cayenne.log.NoopJdbcEventLogger;
@@ -59,6 +60,7 @@ public class DataNode implements QueryEn
protected Map<String, DataMap> dataMaps;
private JdbcEventLogger jdbcEventLogger;
+ private RowReaderFactory rowReaderFactory;
TransactionDataSource readThroughDataSource;
@@ -428,4 +430,18 @@ public class DataNode implements QueryEn
throw new UnsupportedOperationException();
}
}
+
+ /**
+ * @since 3.2
+ */
+ public RowReaderFactory getRowReaderFactory() {
+ return rowReaderFactory;
+ }
+
+ /**
+ * @since 3.2
+ */
+ public void setRowReaderFactory(RowReaderFactory rowReaderFactory) {
+ this.rowReaderFactory = rowReaderFactory;
+ }
}
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BaseRowReader.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BaseRowReader.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BaseRowReader.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BaseRowReader.java Wed Mar 12 15:13:16 2014
@@ -54,8 +54,10 @@ abstract class BaseRowReader<T> implemen
}
}
+ @Override
public abstract T readRow(ResultSet resultSet);
+ @Override
public void setPostProcessor(DataRowPostProcessor postProcessor) {
this.postProcessor = postProcessor;
}
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BaseSQLAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BaseSQLAction.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BaseSQLAction.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BaseSQLAction.java Wed Mar 12 15:13:16 2014
@@ -23,7 +23,6 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
-import org.apache.cayenne.DataRow;
import org.apache.cayenne.access.OperationObserver;
import org.apache.cayenne.dba.JdbcAdapter;
import org.apache.cayenne.map.EntityResolver;
@@ -38,12 +37,17 @@ import org.apache.cayenne.query.SQLActio
*/
public abstract class BaseSQLAction implements SQLAction {
+ protected RowReaderFactory rowReaderFactory;
protected JdbcAdapter adapter;
protected EntityResolver entityResolver;
- public BaseSQLAction(JdbcAdapter adapter, EntityResolver entityResolver) {
+ /**
+ * @since 3.2
+ */
+ public BaseSQLAction(JdbcAdapter adapter, EntityResolver entityResolver, RowReaderFactory rowReaderFactory) {
this.adapter = adapter;
this.entityResolver = entityResolver;
+ this.rowReaderFactory = rowReaderFactory;
}
public JdbcAdapter getAdapter() {
@@ -57,6 +61,7 @@ public abstract class BaseSQLAction impl
/**
* Helper method to process a ResultSet.
*/
+ @SuppressWarnings({ "rawtypes", "unchecked" })
protected void readResultSet(ResultSet resultSet, RowDescriptor descriptor, Query query, OperationObserver delegate)
throws SQLException, Exception {
@@ -64,14 +69,15 @@ public abstract class BaseSQLAction impl
QueryMetadata metadata = query.getMetaData(getEntityResolver());
- JDBCResultIterator<DataRow> resultReader = new JDBCResultIterator<DataRow>(null, resultSet, descriptor,
- metadata);
+ RowReader<?> rowReader = rowReaderFactory.createRowReader(descriptor, metadata);
+
+ JDBCResultIterator resultReader = new JDBCResultIterator(null, resultSet, rowReader);
- LimitResultIterator<DataRow> it = new LimitResultIterator<DataRow>(resultReader,
- getInMemoryOffset(metadata.getFetchOffset()), metadata.getFetchLimit());
+ LimitResultIterator it = new LimitResultIterator(resultReader, getInMemoryOffset(metadata.getFetchOffset()),
+ metadata.getFetchLimit());
if (!delegate.isIteratedResult()) {
- List<DataRow> resultRows = it.allRows();
+ List resultRows = it.allRows();
adapter.getJdbcEventLogger().logSelectCount(resultRows.size(), System.currentTimeMillis() - t1);
delegate.nextRows(query, resultRows);
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=1576774&r1=1576773&r2=1576774&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 Wed Mar 12 15:13:16 2014
@@ -52,8 +52,12 @@ public class BatchAction extends BaseSQL
protected BatchQuery query;
protected RowDescriptor keyRowDescriptor;
- public BatchAction(BatchQuery batchQuery, JdbcAdapter adapter, EntityResolver entityResolver) {
- super(adapter, entityResolver);
+ /**
+ * @since 3.2
+ */
+ public BatchAction(BatchQuery batchQuery, JdbcAdapter adapter, EntityResolver entityResolver,
+ RowReaderFactory rowReaderFactory) {
+ super(adapter, entityResolver, rowReaderFactory);
this.query = batchQuery;
}
@@ -242,6 +246,7 @@ public class BatchAction extends BaseSQL
/**
* Implements generated keys extraction supported in JDBC 3.0 specification.
*/
+ @SuppressWarnings({ "rawtypes", "unchecked" })
protected void processGeneratedKeys(Statement statement, OperationObserver observer) throws SQLException,
CayenneException {
@@ -280,8 +285,9 @@ public class BatchAction extends BaseSQL
this.keyRowDescriptor = builder.getDescriptor(getAdapter().getExtendedTypes());
}
- ResultIterator iterator = new JDBCResultIterator(null, keysRS, keyRowDescriptor,
+ RowReader<?> rowReader = rowReaderFactory.createRowReader(keyRowDescriptor,
query.getMetaData(getEntityResolver()));
+ ResultIterator iterator = new JDBCResultIterator(null, keysRS, rowReader);
observer.nextGeneratedRows(query, iterator);
}
Added: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DefaultRowReaderFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DefaultRowReaderFactory.java?rev=1576774&view=auto
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DefaultRowReaderFactory.java (added)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DefaultRowReaderFactory.java Wed Mar 12 15:13:16 2014
@@ -0,0 +1,94 @@
+/*****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ****************************************************************/
+package org.apache.cayenne.access.jdbc;
+
+import java.util.List;
+
+import org.apache.cayenne.CayenneRuntimeException;
+import org.apache.cayenne.query.EntityResultSegment;
+import org.apache.cayenne.query.QueryMetadata;
+import org.apache.cayenne.query.ScalarResultSegment;
+
+/**
+ * @since 3.2
+ */
+public class DefaultRowReaderFactory implements RowReaderFactory {
+
+ @Override
+ public RowReader<?> createRowReader(RowDescriptor descriptor, QueryMetadata queryMetadata) {
+
+ List<Object> rsMapping = queryMetadata.getResultSetMapping();
+ if (rsMapping == null) {
+ return createFullRowReader(descriptor, queryMetadata);
+ }
+
+ int resultWidth = rsMapping.size();
+ if (resultWidth == 0) {
+ throw new CayenneRuntimeException("Empty result descriptor");
+ } else if (resultWidth == 1) {
+
+ Object segment = rsMapping.get(0);
+
+ if (segment instanceof EntityResultSegment) {
+ return createEntityRowReader(descriptor, queryMetadata, (EntityResultSegment) segment);
+ } else {
+ return new ScalarRowReader<Object>(descriptor, (ScalarResultSegment) segment);
+ }
+ } else {
+ CompoundRowReader reader = new CompoundRowReader(resultWidth);
+
+ for (int i = 0; i < resultWidth; i++) {
+ Object segment = rsMapping.get(i);
+
+ if (segment instanceof EntityResultSegment) {
+ reader.addRowReader(i,
+ createEntityRowReader(descriptor, queryMetadata, (EntityResultSegment) segment));
+ } else {
+ reader.addRowReader(i, new ScalarRowReader<Object>(descriptor, (ScalarResultSegment) segment));
+ }
+ }
+
+ return reader;
+ }
+ }
+
+ private RowReader<?> createEntityRowReader(RowDescriptor descriptor, QueryMetadata queryMetadata,
+ EntityResultSegment resultMetadata) {
+
+ if (queryMetadata.getPageSize() > 0) {
+ return new IdRowReader<Object>(descriptor, queryMetadata);
+ } else if (resultMetadata.getClassDescriptor() != null && resultMetadata.getClassDescriptor().hasSubclasses()) {
+ return new InheritanceAwareEntityRowReader(descriptor, resultMetadata);
+ } else {
+ return new EntityRowReader(descriptor, resultMetadata);
+ }
+ }
+
+ private RowReader<?> createFullRowReader(RowDescriptor descriptor, QueryMetadata queryMetadata) {
+
+ if (queryMetadata.getPageSize() > 0) {
+ return new IdRowReader<Object>(descriptor, queryMetadata);
+ } else if (queryMetadata.getClassDescriptor() != null && queryMetadata.getClassDescriptor().hasSubclasses()) {
+ return new InheritanceAwareRowReader(descriptor, queryMetadata);
+ } else {
+ return new FullRowReader(descriptor, queryMetadata);
+ }
+ }
+
+}
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/EJBQLAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/EJBQLAction.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/EJBQLAction.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/EJBQLAction.java Wed Mar 12 15:13:16 2014
@@ -44,13 +44,14 @@ public class EJBQLAction extends BaseSQL
protected EJBQLQuery query;
public EJBQLAction(EJBQLQuery query, SQLActionVisitor actionFactory,
- JdbcAdapter adapter, EntityResolver entityResolver) {
- super(adapter, entityResolver);
+ JdbcAdapter adapter, EntityResolver entityResolver, RowReaderFactory rowReaderFactory) {
+ super(adapter, entityResolver, rowReaderFactory);
this.query = query;
this.actionFactory = actionFactory;
}
+ @Override
public void performAction(Connection connection, OperationObserver observer)
throws SQLException, Exception {
EJBQLCompiledExpression compiledExpression = query
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/JDBCResultIterator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/JDBCResultIterator.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/JDBCResultIterator.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/JDBCResultIterator.java Wed Mar 12 15:13:16 2014
@@ -19,7 +19,6 @@
package org.apache.cayenne.access.jdbc;
-import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
@@ -28,12 +27,8 @@ import java.util.Iterator;
import java.util.List;
import java.util.NoSuchElementException;
-import org.apache.cayenne.CayenneException;
import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.ResultIterator;
-import org.apache.cayenne.query.EntityResultSegment;
-import org.apache.cayenne.query.QueryMetadata;
-import org.apache.cayenne.query.ScalarResultSegment;
import org.apache.cayenne.util.ResultIteratorIterator;
/**
@@ -46,9 +41,6 @@ public class JDBCResultIterator<T> imple
protected Statement statement;
protected ResultSet resultSet;
- protected RowDescriptor rowDescriptor;
- protected QueryMetadata queryMetadata;
-
protected boolean closed;
protected boolean nextRow;
@@ -57,34 +49,15 @@ public class JDBCResultIterator<T> imple
/**
* Creates new JDBCResultIterator that reads from provided ResultSet.
*
- * @since 3.0
- * @deprecated since 3.2 use
- * {@link #JDBCResultIterator(Statement, ResultSet, RowDescriptor, QueryMetadata)}
- */
- @Deprecated
- public JDBCResultIterator(Connection connection, Statement statement, ResultSet resultSet,
- RowDescriptor descriptor, QueryMetadata queryMetadata) throws CayenneException {
- this(statement, resultSet, descriptor, queryMetadata);
- }
-
- /**
- * Creates new JDBCResultIterator that reads from provided ResultSet.
- *
* @since 3.2
*/
- public JDBCResultIterator(Statement statement, ResultSet resultSet, RowDescriptor descriptor,
- QueryMetadata queryMetadata) throws CayenneException {
+ public JDBCResultIterator(Statement statement, ResultSet resultSet, RowReader<T> rowReader) {
this.statement = statement;
this.resultSet = resultSet;
- this.rowDescriptor = descriptor;
- this.queryMetadata = queryMetadata;
+ this.rowReader = rowReader;
checkNextRow();
-
- if (nextRow) {
- this.rowReader = createRowReader(descriptor, queryMetadata);
- }
}
/**
@@ -96,71 +69,6 @@ public class JDBCResultIterator<T> imple
}
/**
- * RowReader factory method.
- */
- @SuppressWarnings("unchecked")
- private RowReader<T> createRowReader(RowDescriptor descriptor, QueryMetadata queryMetadata) {
-
- List<Object> rsMapping = queryMetadata.getResultSetMapping();
- if (rsMapping != null) {
-
- int resultWidth = rsMapping.size();
- if (resultWidth == 0) {
- throw new CayenneRuntimeException("Empty result descriptor");
- } else if (resultWidth == 1) {
-
- Object segment = rsMapping.get(0);
-
- if (segment instanceof EntityResultSegment) {
- return createEntityRowReader(descriptor, (EntityResultSegment) segment);
- } else {
- return new ScalarRowReader<T>(descriptor, (ScalarResultSegment) segment);
- }
- } else {
- CompoundRowReader reader = new CompoundRowReader(resultWidth);
-
- for (int i = 0; i < resultWidth; i++) {
- Object segment = rsMapping.get(i);
-
- if (segment instanceof EntityResultSegment) {
- reader.addRowReader(i, createEntityRowReader(descriptor, (EntityResultSegment) segment));
- } else {
- reader.addRowReader(i, new ScalarRowReader<Object>(descriptor, (ScalarResultSegment) segment));
- }
- }
-
- return (RowReader<T>) reader;
- }
- } else {
- return createFullRowReader(descriptor, queryMetadata);
- }
- }
-
- @SuppressWarnings("unchecked")
- private RowReader<T> createEntityRowReader(RowDescriptor descriptor, EntityResultSegment resultMetadata) {
-
- if (queryMetadata.getPageSize() > 0) {
- return new IdRowReader<T>(descriptor, queryMetadata);
- } else if (resultMetadata.getClassDescriptor() != null && resultMetadata.getClassDescriptor().hasSubclasses()) {
- return (RowReader<T>) new InheritanceAwareEntityRowReader(descriptor, resultMetadata);
- } else {
- return (RowReader<T>) new EntityRowReader(descriptor, resultMetadata);
- }
- }
-
- @SuppressWarnings("unchecked")
- private RowReader<T> createFullRowReader(RowDescriptor descriptor, QueryMetadata queryMetadata) {
-
- if (queryMetadata.getPageSize() > 0) {
- return new IdRowReader<T>(descriptor, queryMetadata);
- } else if (queryMetadata.getClassDescriptor() != null && queryMetadata.getClassDescriptor().hasSubclasses()) {
- return (RowReader<T>) new InheritanceAwareRowReader(descriptor, queryMetadata);
- } else {
- return (RowReader<T>) new FullRowReader(descriptor, queryMetadata);
- }
- }
-
- /**
* @since 3.0
*/
@Override
@@ -278,11 +186,7 @@ public class JDBCResultIterator<T> imple
public void setClosingConnection(boolean flag) {
// noop
}
-
- public RowDescriptor getRowDescriptor() {
- return rowDescriptor;
- }
-
+
// TODO: andrus 11/27/2008 refactor the postprocessor hack into a special
// row reader.
void setPostProcessor(DataRowPostProcessor postProcessor) {
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/ProcedureAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/ProcedureAction.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/ProcedureAction.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/ProcedureAction.java Wed Mar 12 15:13:16 2014
@@ -53,12 +53,16 @@ public class ProcedureAction extends Bas
*/
protected int processedResultSets;
- public ProcedureAction(ProcedureQuery query, JdbcAdapter adapter,
- EntityResolver entityResolver) {
- super(adapter, entityResolver);
+ /**
+ * @since 3.2
+ */
+ public ProcedureAction(ProcedureQuery query, JdbcAdapter adapter, EntityResolver entityResolver,
+ RowReaderFactory rowReaderFactory) {
+ super(adapter, entityResolver, rowReaderFactory);
this.query = query;
}
+ @Override
public void performAction(Connection connection, OperationObserver observer)
throws SQLException, Exception {
Copied: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/RowReaderFactory.java (from r1576629, cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteActionBuilder.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/RowReaderFactory.java?p2=cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/RowReaderFactory.java&p1=cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteActionBuilder.java&r1=1576629&r2=1576774&rev=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/sqlite/SQLiteActionBuilder.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/RowReaderFactory.java Wed Mar 12 15:13:16 2014
@@ -16,25 +16,16 @@
* specific language governing permissions and limitations
* under the License.
****************************************************************/
-package org.apache.cayenne.dba.sqlite;
+package org.apache.cayenne.access.jdbc;
-import org.apache.cayenne.dba.JdbcActionBuilder;
-import org.apache.cayenne.dba.JdbcAdapter;
-import org.apache.cayenne.map.EntityResolver;
-import org.apache.cayenne.query.SQLAction;
-import org.apache.cayenne.query.SQLTemplate;
+import org.apache.cayenne.query.QueryMetadata;
/**
- * @since 3.0
+ * Creates RowReader instances for executed queries.
+ *
+ * @since 3.2
*/
-class SQLiteActionBuilder extends JdbcActionBuilder {
+public interface RowReaderFactory {
- SQLiteActionBuilder(JdbcAdapter adapter, EntityResolver resolver) {
- super(adapter, resolver);
- }
-
- @Override
- public SQLAction sqlAction(SQLTemplate query) {
- return new SQLiteSQLTemplateAction(query, adapter, getEntityResolver());
- }
+ RowReader<?> createRowReader(RowDescriptor descriptor, QueryMetadata queryMetadata);
}
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java Wed Mar 12 15:13:16 2014
@@ -63,13 +63,16 @@ public class SQLTemplateAction implement
protected QueryMetadata queryMetadata;
protected DbEntity dbEntity;
+ private RowReaderFactory rowReaderFactory;
/**
- * @since 3.0
+ * @since 3.2
*/
- public SQLTemplateAction(SQLTemplate query, JdbcAdapter adapter, EntityResolver entityResolver) {
+ public SQLTemplateAction(SQLTemplate query, JdbcAdapter adapter, EntityResolver entityResolver,
+ RowReaderFactory rowReaderFactory) {
this.query = query;
this.adapter = adapter;
+ this.rowReaderFactory = rowReaderFactory;
this.queryMetadata = query.getMetaData(entityResolver);
this.dbEntity = query.getMetaData(entityResolver).getDbEntity();
}
@@ -188,6 +191,7 @@ public class SQLTemplateAction implement
}
}
+ @SuppressWarnings({ "unchecked", "rawtypes" })
protected void processSelectResult(SQLStatement compiled, Connection connection, Statement statement,
ResultSet resultSet, OperationObserver callback, final long startTime) throws Exception {
@@ -195,9 +199,9 @@ public class SQLTemplateAction implement
ExtendedTypeMap types = getAdapter().getExtendedTypes();
RowDescriptorBuilder builder = configureRowDescriptorBuilder(compiled, resultSet);
+ RowReader<?> rowReader = rowReaderFactory.createRowReader(builder.getDescriptor(types), queryMetadata);
- JDBCResultIterator result = new JDBCResultIterator(statement, resultSet, builder.getDescriptor(types),
- queryMetadata);
+ JDBCResultIterator result = new JDBCResultIterator(statement, resultSet, rowReader);
ResultIterator it = result;
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=1576774&r1=1576773&r2=1576774&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 Wed Mar 12 15:13:16 2014
@@ -45,8 +45,12 @@ public class SelectAction extends BaseSQ
protected SelectQuery<?> query;
- public SelectAction(SelectQuery<?> query, JdbcAdapter adapter, EntityResolver entityResolver) {
- super(adapter, entityResolver);
+ /**
+ * @since 3.2
+ */
+ public SelectAction(SelectQuery<?> query, JdbcAdapter adapter, EntityResolver entityResolver,
+ RowReaderFactory rowReaderFactory) {
+ super(adapter, entityResolver, rowReaderFactory);
this.query = query;
}
@@ -60,6 +64,7 @@ public class SelectAction extends BaseSQ
return translator;
}
+ @SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public void performAction(Connection connection, OperationObserver observer) throws SQLException, Exception {
@@ -86,8 +91,10 @@ public class SelectAction extends BaseSQ
QueryMetadata md = query.getMetaData(getEntityResolver());
RowDescriptor descriptor = new RowDescriptorBuilder().setColumns(translator.getResultColumns()).getDescriptor(
getAdapter().getExtendedTypes());
+
+ RowReader<?> rowReader = rowReaderFactory.createRowReader(descriptor, md);
- JDBCResultIterator workerIterator = new JDBCResultIterator(prepStmt, rs, descriptor, md);
+ JDBCResultIterator workerIterator = new JDBCResultIterator(prepStmt, rs, rowReader);
workerIterator.setPostProcessor(DataRowPostProcessor.createPostProcessor(translator));
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java Wed Mar 12 15:13:16 2014
@@ -29,6 +29,7 @@ import org.apache.cayenne.DataChannelFil
import org.apache.cayenne.access.DataDomain;
import org.apache.cayenne.access.DataNode;
import org.apache.cayenne.access.dbsync.SchemaUpdateStrategy;
+import org.apache.cayenne.access.jdbc.RowReaderFactory;
import org.apache.cayenne.cache.NestedQueryCache;
import org.apache.cayenne.cache.QueryCache;
import org.apache.cayenne.configuration.ConfigurationTree;
@@ -105,6 +106,9 @@ public class DataDomainProvider implemen
@Inject
protected RuntimeProperties runtimeProperties;
+
+ @Inject
+ protected RowReaderFactory rowReaderFactory;
@Override
public DataDomain get() throws ConfigurationException {
@@ -189,6 +193,8 @@ public class DataDomainProvider implemen
DataNode dataNode = new DataNode(nodeDescriptor.getName());
dataNode.setJdbcEventLogger(jdbcEventLogger);
+ dataNode.setRowReaderFactory(rowReaderFactory);
+
dataNode.setDataSourceLocation(nodeDescriptor.getParameters());
DataSource dataSource = dataSourceFactory.getDataSource(nodeDescriptor);
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/ServerModule.java Wed Mar 12 15:13:16 2014
@@ -29,6 +29,8 @@ import org.apache.cayenne.access.dbsync.
import org.apache.cayenne.access.dbsync.SkipSchemaUpdateStrategy;
import org.apache.cayenne.access.jdbc.BatchQueryBuilderFactory;
import org.apache.cayenne.access.jdbc.DefaultBatchQueryBuilderFactory;
+import org.apache.cayenne.access.jdbc.DefaultRowReaderFactory;
+import org.apache.cayenne.access.jdbc.RowReaderFactory;
import org.apache.cayenne.access.types.BigDecimalType;
import org.apache.cayenne.access.types.BigIntegerType;
import org.apache.cayenne.access.types.BooleanType;
@@ -213,7 +215,7 @@ public class ServerModule implements Mod
binder.bind(DataChannel.class).toProvider(DomainDataChannelProvider.class);
binder.bind(ObjectContextFactory.class).to(DataContextFactory.class);
-
+
// a service to load project XML descriptors
binder.bind(DataChannelDescriptorLoader.class).to(
XMLDataChannelDescriptorLoader.class);
@@ -256,5 +258,6 @@ public class ServerModule implements Mod
binder.bind(ObjectStoreFactory.class).to(DefaultObjectStoreFactory.class);
binder.bind(TransactionManager.class).to(DefaultTransactionManager.class);
+ binder.bind(RowReaderFactory.class).to(DefaultRowReaderFactory.class);
}
}
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/JdbcActionBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/JdbcActionBuilder.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/JdbcActionBuilder.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/JdbcActionBuilder.java Wed Mar 12 15:13:16 2014
@@ -22,6 +22,7 @@ package org.apache.cayenne.dba;
import org.apache.cayenne.access.jdbc.BatchAction;
import org.apache.cayenne.access.jdbc.EJBQLAction;
import org.apache.cayenne.access.jdbc.ProcedureAction;
+import org.apache.cayenne.access.jdbc.RowReaderFactory;
import org.apache.cayenne.access.jdbc.SQLTemplateAction;
import org.apache.cayenne.access.jdbc.SelectAction;
import org.apache.cayenne.log.JdbcEventLogger;
@@ -45,13 +46,19 @@ public class JdbcActionBuilder implement
protected JdbcAdapter adapter;
protected EntityResolver entityResolver;
protected JdbcEventLogger logger;
+ protected RowReaderFactory rowReaderFactory;
- public JdbcActionBuilder(JdbcAdapter adapter, EntityResolver resolver) {
+ /**
+ * @since 3.2
+ */
+ public JdbcActionBuilder(JdbcAdapter adapter, EntityResolver resolver, RowReaderFactory rowReaderFactory) {
this.adapter = adapter;
this.entityResolver = resolver;
+ this.rowReaderFactory = rowReaderFactory;
this.logger = adapter.getJdbcEventLogger();
}
+ @Override
public SQLAction batchAction(BatchQuery query) {
// check run strategy...
@@ -59,28 +66,28 @@ public class JdbcActionBuilder implement
boolean useOptimisticLock = query.isUsingOptimisticLocking();
boolean runningAsBatch = !useOptimisticLock && adapter.supportsBatchUpdates();
- BatchAction action = new BatchAction(query, adapter, entityResolver);
+ BatchAction action = new BatchAction(query, adapter, entityResolver, rowReaderFactory);
action.setBatch(runningAsBatch);
return action;
}
public SQLAction procedureAction(ProcedureQuery query) {
- return new ProcedureAction(query, adapter, entityResolver);
+ return new ProcedureAction(query, adapter, entityResolver, rowReaderFactory);
}
public <T> SQLAction objectSelectAction(SelectQuery<T> query) {
- return new SelectAction(query, adapter, entityResolver);
+ return new SelectAction(query, adapter, entityResolver, rowReaderFactory);
}
public SQLAction sqlAction(SQLTemplate query) {
- return new SQLTemplateAction(query, adapter, entityResolver);
+ return new SQLTemplateAction(query, adapter, entityResolver, rowReaderFactory);
}
/**
* @since 3.0
*/
public SQLAction ejbqlAction(EJBQLQuery query) {
- return new EJBQLAction(query, this, adapter, entityResolver);
+ return new EJBQLAction(query, this, adapter, entityResolver, rowReaderFactory);
}
/**
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/JdbcAdapter.java Wed Mar 12 15:13:16 2014
@@ -110,6 +110,7 @@ public class JdbcAdapter implements DbAd
*
* @since 1.0.4
*/
+ @Override
public String getBatchTerminator() {
return ";";
}
@@ -206,6 +207,7 @@ public class JdbcAdapter implements DbAd
/**
* Returns primary key generator associated with this DbAdapter.
*/
+ @Override
public PkGenerator getPkGenerator() {
return pkGenerator;
}
@@ -224,6 +226,7 @@ public class JdbcAdapter implements DbAd
*
* @since 1.1
*/
+ @Override
public boolean supportsUniqueConstraints() {
return supportsUniqueConstraints;
}
@@ -238,6 +241,7 @@ public class JdbcAdapter implements DbAd
/**
* @since 3.0
*/
+ @Override
public Collection<String> dropTableStatements(DbEntity table) {
StringBuilder buf = new StringBuilder("DROP TABLE ");
@@ -250,6 +254,7 @@ public class JdbcAdapter implements DbAd
* Returns a SQL string that can be used to create database table
* corresponding to <code>ent</code> parameter.
*/
+ @Override
public String createTable(DbEntity entity) {
StringBuffer sqlBuffer = new StringBuffer();
@@ -315,6 +320,7 @@ public class JdbcAdapter implements DbAd
*
* @since 1.2
*/
+ @Override
public void createTableAppendColumn(StringBuffer sqlBuffer, DbAttribute column) {
String[] types = externalTypesForJdbcType(column.getType());
@@ -360,6 +366,7 @@ public class JdbcAdapter implements DbAd
*
* @since 1.1
*/
+ @Override
public String createUniqueConstraint(DbEntity source, Collection<DbAttribute> columns) {
if (columns == null || columns.isEmpty()) {
@@ -391,6 +398,7 @@ public class JdbcAdapter implements DbAd
* Returns a SQL string that can be used to create a foreign key constraint
* for the relationship.
*/
+ @Override
public String createFkConstraint(DbRelationship rel) {
DbEntity source = (DbEntity) rel.getSourceEntity();
@@ -423,14 +431,17 @@ public class JdbcAdapter implements DbAd
return buf.toString();
}
+ @Override
public String[] externalTypesForJdbcType(int type) {
return typesHandler.externalTypesForJdbcType(type);
}
+ @Override
public ExtendedTypeMap getExtendedTypes() {
return extendedTypes;
}
+ @Override
public DbAttribute buildAttribute(String name, String typeName, int type, int size, int scale, boolean allowNulls) {
DbAttribute attr = new DbAttribute();
@@ -449,10 +460,12 @@ public class JdbcAdapter implements DbAd
return attr;
}
+ @Override
public String tableTypeForTable() {
return "TABLE";
}
+ @Override
public String tableTypeForView() {
return "VIEW";
}
@@ -460,6 +473,7 @@ public class JdbcAdapter implements DbAd
/**
* Creates and returns a default implementation of a qualifier translator.
*/
+ @Override
public QualifierTranslator getQualifierTranslator(QueryAssembler queryAssembler) {
QualifierTranslator translator = new QualifierTranslator(queryAssembler);
translator.setCaseInsensitive(caseInsensitiveCollations);
@@ -471,10 +485,12 @@ public class JdbcAdapter implements DbAd
*
* @since 1.2
*/
+ @Override
public SQLAction getAction(Query query, DataNode node) {
- return query.createSQLAction(new JdbcActionBuilder(this, node.getEntityResolver()));
+ return query.createSQLAction(new JdbcActionBuilder(this, node.getEntityResolver(), node.getRowReaderFactory()));
}
+ @Override
public void bindParameter(PreparedStatement statement, Object object, int pos, int sqlType, int scale)
throws SQLException, Exception {
@@ -486,6 +502,7 @@ public class JdbcAdapter implements DbAd
}
}
+ @Override
public boolean supportsBatchUpdates() {
return this.supportsBatchUpdates;
}
@@ -497,6 +514,7 @@ public class JdbcAdapter implements DbAd
/**
* @since 1.2
*/
+ @Override
public boolean supportsGeneratedKeys() {
return supportsGeneratedKeys;
}
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/db2/DB2ActionBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/db2/DB2ActionBuilder.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/db2/DB2ActionBuilder.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/db2/DB2ActionBuilder.java Wed Mar 12 15:13:16 2014
@@ -18,6 +18,7 @@
****************************************************************/
package org.apache.cayenne.dba.db2;
+import org.apache.cayenne.access.jdbc.RowReaderFactory;
import org.apache.cayenne.dba.JdbcActionBuilder;
import org.apache.cayenne.dba.JdbcAdapter;
import org.apache.cayenne.map.EntityResolver;
@@ -29,12 +30,12 @@ import org.apache.cayenne.query.SQLActio
*/
public class DB2ActionBuilder extends JdbcActionBuilder {
- DB2ActionBuilder(JdbcAdapter adapter, EntityResolver resolver) {
- super(adapter, resolver);
+ DB2ActionBuilder(JdbcAdapter adapter, EntityResolver resolver, RowReaderFactory rowReaderFactory) {
+ super(adapter, resolver, rowReaderFactory);
}
@Override
public SQLAction procedureAction(ProcedureQuery query) {
- return new DB2ProcedureAction(query, getAdapter(), getEntityResolver());
+ return new DB2ProcedureAction(query, getAdapter(), getEntityResolver(), rowReaderFactory);
}
}
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/db2/DB2Adapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/db2/DB2Adapter.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/db2/DB2Adapter.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/db2/DB2Adapter.java Wed Mar 12 15:13:16 2014
@@ -254,6 +254,6 @@ public class DB2Adapter extends JdbcAdap
*/
@Override
public SQLAction getAction(Query query, DataNode node) {
- return query.createSQLAction(new DB2ActionBuilder(this, node.getEntityResolver()));
+ return query.createSQLAction(new DB2ActionBuilder(this, node.getEntityResolver(), node.getRowReaderFactory()));
}
}
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/db2/DB2ProcedureAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/db2/DB2ProcedureAction.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/db2/DB2ProcedureAction.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/db2/DB2ProcedureAction.java Wed Mar 12 15:13:16 2014
@@ -26,6 +26,7 @@ import java.sql.SQLException;
import org.apache.cayenne.access.OperationObserver;
import org.apache.cayenne.access.jdbc.ProcedureAction;
import org.apache.cayenne.access.jdbc.RowDescriptor;
+import org.apache.cayenne.access.jdbc.RowReaderFactory;
import org.apache.cayenne.access.trans.ProcedureTranslator;
import org.apache.cayenne.dba.JdbcAdapter;
import org.apache.cayenne.map.EntityResolver;
@@ -36,8 +37,9 @@ import org.apache.cayenne.query.Procedur
*/
class DB2ProcedureAction extends ProcedureAction {
- DB2ProcedureAction(ProcedureQuery query, JdbcAdapter adapter, EntityResolver entityResolver) {
- super(query, adapter, entityResolver);
+ DB2ProcedureAction(ProcedureQuery query, JdbcAdapter adapter, EntityResolver entityResolver,
+ RowReaderFactory rowReaderFactory) {
+ super(query, adapter, entityResolver, rowReaderFactory);
}
@Override
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=1576774&r1=1576773&r2=1576774&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 Wed Mar 12 15:13:16 2014
@@ -21,6 +21,7 @@ package org.apache.cayenne.dba.frontbase
import java.sql.Connection;
+import org.apache.cayenne.access.jdbc.RowReaderFactory;
import org.apache.cayenne.access.jdbc.SelectAction;
import org.apache.cayenne.access.trans.SelectTranslator;
import org.apache.cayenne.dba.JdbcActionBuilder;
@@ -31,13 +32,13 @@ import org.apache.cayenne.query.SelectQu
class FrontBaseActionBuilder extends JdbcActionBuilder {
- FrontBaseActionBuilder(JdbcAdapter adapter, EntityResolver resolver) {
- super(adapter, resolver);
+ FrontBaseActionBuilder(JdbcAdapter adapter, EntityResolver resolver, RowReaderFactory rowReaderFactory) {
+ super(adapter, resolver, rowReaderFactory);
}
@Override
public <T> SQLAction objectSelectAction(SelectQuery<T> query) {
- return new SelectAction(query, adapter, entityResolver) {
+ return new SelectAction(query, adapter, entityResolver, rowReaderFactory) {
@Override
protected SelectTranslator createTranslator(Connection connection) {
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseAdapter.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseAdapter.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/frontbase/FrontBaseAdapter.java Wed Mar 12 15:13:16 2014
@@ -84,8 +84,8 @@ public class FrontBaseAdapter extends Jd
*/
@Override
public SQLAction getAction(Query query, DataNode node) {
- return query.createSQLAction(new FrontBaseActionBuilder(this, node
- .getEntityResolver()));
+ return query.createSQLAction(new FrontBaseActionBuilder(this, node.getEntityResolver(), node
+ .getRowReaderFactory()));
}
@Override
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLActionBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLActionBuilder.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLActionBuilder.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLActionBuilder.java Wed Mar 12 15:13:16 2014
@@ -22,6 +22,7 @@ package org.apache.cayenne.dba.hsqldb;
import java.sql.Connection;
import org.apache.cayenne.access.jdbc.ProcedureAction;
+import org.apache.cayenne.access.jdbc.RowReaderFactory;
import org.apache.cayenne.access.trans.ProcedureTranslator;
import org.apache.cayenne.dba.JdbcActionBuilder;
import org.apache.cayenne.dba.JdbcAdapter;
@@ -32,18 +33,18 @@ import org.apache.cayenne.query.SelectQu
class HSQLActionBuilder extends JdbcActionBuilder {
- HSQLActionBuilder(JdbcAdapter adapter, EntityResolver resolver) {
- super(adapter, resolver);
+ HSQLActionBuilder(JdbcAdapter adapter, EntityResolver resolver, RowReaderFactory rowReaderFactory) {
+ super(adapter, resolver, rowReaderFactory);
}
@Override
public <T> SQLAction objectSelectAction(SelectQuery<T> query) {
- return new HSQLSelectAction(query, adapter, entityResolver);
+ return new HSQLSelectAction(query, adapter, entityResolver, rowReaderFactory);
}
@Override
public SQLAction procedureAction(ProcedureQuery query) {
- return new ProcedureAction(query, adapter, entityResolver) {
+ return new ProcedureAction(query, adapter, entityResolver, rowReaderFactory) {
@Override
protected ProcedureTranslator createTranslator(Connection connection) {
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLDBAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLDBAdapter.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLDBAdapter.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/hsqldb/HSQLDBAdapter.java Wed Mar 12 15:13:16 2014
@@ -90,7 +90,7 @@ public class HSQLDBAdapter extends JdbcA
*/
@Override
public SQLAction getAction(Query query, DataNode node) {
- return query.createSQLAction(new HSQLActionBuilder(this, node.getEntityResolver()));
+ return query.createSQLAction(new HSQLActionBuilder(this, node.getEntityResolver(), node.getRowReaderFactory()));
}
/**
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=1576774&r1=1576773&r2=1576774&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 Wed Mar 12 15:13:16 2014
@@ -20,6 +20,7 @@ package org.apache.cayenne.dba.hsqldb;
import java.sql.Connection;
+import org.apache.cayenne.access.jdbc.RowReaderFactory;
import org.apache.cayenne.access.jdbc.SelectAction;
import org.apache.cayenne.access.trans.SelectTranslator;
import org.apache.cayenne.dba.JdbcAdapter;
@@ -31,8 +32,9 @@ import org.apache.cayenne.query.SelectQu
*/
class HSQLSelectAction extends SelectAction {
- <T> HSQLSelectAction(SelectQuery<T> query, JdbcAdapter adapter, EntityResolver entityResolver) {
- super(query, adapter, entityResolver);
+ <T> HSQLSelectAction(SelectQuery<T> query, JdbcAdapter adapter, EntityResolver entityResolver,
+ RowReaderFactory rowReaderFactory) {
+ super(query, adapter, entityResolver, rowReaderFactory);
}
@Override
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/ingres/IngresActionBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/ingres/IngresActionBuilder.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/ingres/IngresActionBuilder.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/ingres/IngresActionBuilder.java Wed Mar 12 15:13:16 2014
@@ -18,21 +18,24 @@
****************************************************************/
package org.apache.cayenne.dba.ingres;
+import org.apache.cayenne.access.jdbc.RowReaderFactory;
import org.apache.cayenne.dba.JdbcActionBuilder;
import org.apache.cayenne.dba.JdbcAdapter;
import org.apache.cayenne.map.EntityResolver;
import org.apache.cayenne.query.SQLAction;
import org.apache.cayenne.query.SelectQuery;
-
public class IngresActionBuilder extends JdbcActionBuilder {
- public IngresActionBuilder(JdbcAdapter adapter, EntityResolver resolver) {
- super(adapter, resolver);
+ /**
+ * @since 3.2
+ */
+ public IngresActionBuilder(JdbcAdapter adapter, EntityResolver resolver, RowReaderFactory rowReaderFactory) {
+ super(adapter, resolver, rowReaderFactory);
}
@Override
public <T> SQLAction objectSelectAction(SelectQuery<T> query) {
- return new IngresSelectAction(query, adapter, entityResolver);
- }
+ return new IngresSelectAction(query, adapter, entityResolver, rowReaderFactory);
+ }
}
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/ingres/IngresAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/ingres/IngresAdapter.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/ingres/IngresAdapter.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/ingres/IngresAdapter.java Wed Mar 12 15:13:16 2014
@@ -78,7 +78,8 @@ public class IngresAdapter extends JdbcA
@Override
public SQLAction getAction(Query query, DataNode node) {
- return query.createSQLAction(new IngresActionBuilder(this, node.getEntityResolver()));
+ return query
+ .createSQLAction(new IngresActionBuilder(this, node.getEntityResolver(), node.getRowReaderFactory()));
}
@Override
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=1576774&r1=1576773&r2=1576774&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 Wed Mar 12 15:13:16 2014
@@ -20,6 +20,7 @@ package org.apache.cayenne.dba.ingres;
import java.sql.Connection;
+import org.apache.cayenne.access.jdbc.RowReaderFactory;
import org.apache.cayenne.access.jdbc.SelectAction;
import org.apache.cayenne.access.trans.SelectTranslator;
import org.apache.cayenne.dba.JdbcAdapter;
@@ -28,11 +29,11 @@ import org.apache.cayenne.query.SelectQu
public class IngresSelectAction extends SelectAction {
- public <T> IngresSelectAction(SelectQuery<T> query, JdbcAdapter adapter,
- EntityResolver entityResolver) {
- super(query, adapter, entityResolver);
+ public <T> IngresSelectAction(SelectQuery<T> query, JdbcAdapter adapter, EntityResolver entityResolver,
+ RowReaderFactory rowReaderFactory) {
+ super(query, adapter, entityResolver, rowReaderFactory);
}
-
+
@Override
protected int getInMemoryOffset(int queryOffset) {
return 0;
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLActionBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLActionBuilder.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLActionBuilder.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLActionBuilder.java Wed Mar 12 15:13:16 2014
@@ -19,6 +19,7 @@
package org.apache.cayenne.dba.mysql;
+import org.apache.cayenne.access.jdbc.RowReaderFactory;
import org.apache.cayenne.dba.JdbcActionBuilder;
import org.apache.cayenne.dba.JdbcAdapter;
import org.apache.cayenne.map.EntityResolver;
@@ -31,17 +32,17 @@ import org.apache.cayenne.query.SelectQu
*/
class MySQLActionBuilder extends JdbcActionBuilder {
- MySQLActionBuilder(JdbcAdapter adapter, EntityResolver resolver) {
- super(adapter, resolver);
+ MySQLActionBuilder(JdbcAdapter adapter, EntityResolver resolver, RowReaderFactory rowReaderFactory) {
+ super(adapter, resolver, rowReaderFactory);
}
@Override
public <T> SQLAction objectSelectAction(SelectQuery<T> query) {
- return new MySQLSelectAction(query, adapter, entityResolver);
+ return new MySQLSelectAction(query, adapter, entityResolver, rowReaderFactory);
}
@Override
public SQLAction procedureAction(ProcedureQuery query) {
- return new MySQLProcedureAction(query, getAdapter(), getEntityResolver());
+ return new MySQLProcedureAction(query, getAdapter(), getEntityResolver(), rowReaderFactory);
}
}
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java Wed Mar 12 15:13:16 2014
@@ -124,7 +124,8 @@ public class MySQLAdapter extends JdbcAd
*/
@Override
public SQLAction getAction(Query query, DataNode node) {
- return query.createSQLAction(new MySQLActionBuilder(this, node.getEntityResolver()));
+ return query
+ .createSQLAction(new MySQLActionBuilder(this, node.getEntityResolver(), node.getRowReaderFactory()));
}
/**
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLProcedureAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLProcedureAction.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLProcedureAction.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLProcedureAction.java Wed Mar 12 15:13:16 2014
@@ -26,6 +26,7 @@ import java.sql.SQLException;
import org.apache.cayenne.access.OperationObserver;
import org.apache.cayenne.access.jdbc.ProcedureAction;
import org.apache.cayenne.access.jdbc.RowDescriptor;
+import org.apache.cayenne.access.jdbc.RowReaderFactory;
import org.apache.cayenne.access.trans.ProcedureTranslator;
import org.apache.cayenne.dba.JdbcAdapter;
import org.apache.cayenne.map.EntityResolver;
@@ -36,9 +37,9 @@ import org.apache.cayenne.query.Procedur
*/
class MySQLProcedureAction extends ProcedureAction {
- public MySQLProcedureAction(ProcedureQuery query, JdbcAdapter adapter,
- EntityResolver entityResolver) {
- super(query, adapter, entityResolver);
+ public MySQLProcedureAction(ProcedureQuery query, JdbcAdapter adapter, EntityResolver entityResolver,
+ RowReaderFactory rowReaderFactory) {
+ super(query, adapter, entityResolver, rowReaderFactory);
}
@Override
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=1576774&r1=1576773&r2=1576774&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 Wed Mar 12 15:13:16 2014
@@ -20,6 +20,7 @@ package org.apache.cayenne.dba.mysql;
import java.sql.Connection;
+import org.apache.cayenne.access.jdbc.RowReaderFactory;
import org.apache.cayenne.access.jdbc.SelectAction;
import org.apache.cayenne.access.trans.SelectTranslator;
import org.apache.cayenne.dba.JdbcAdapter;
@@ -31,9 +32,9 @@ import org.apache.cayenne.query.SelectQu
*/
class MySQLSelectAction extends SelectAction {
- <T> MySQLSelectAction(SelectQuery<T> query, JdbcAdapter adapter,
- EntityResolver entityResolver) {
- super(query, adapter, entityResolver);
+ <T> MySQLSelectAction(SelectQuery<T> query, JdbcAdapter adapter, EntityResolver entityResolver,
+ RowReaderFactory rowReaderFactory) {
+ super(query, adapter, entityResolver, rowReaderFactory);
}
@Override
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=1576774&r1=1576773&r2=1576774&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 Wed Mar 12 15:13:16 2014
@@ -21,6 +21,7 @@ package org.apache.cayenne.dba.openbase;
import java.sql.Connection;
+import org.apache.cayenne.access.jdbc.RowReaderFactory;
import org.apache.cayenne.access.jdbc.SelectAction;
import org.apache.cayenne.access.trans.SelectTranslator;
import org.apache.cayenne.dba.JdbcActionBuilder;
@@ -34,13 +35,13 @@ import org.apache.cayenne.query.SelectQu
*/
class OpenBaseActionBuilder extends JdbcActionBuilder {
- OpenBaseActionBuilder(JdbcAdapter adapter, EntityResolver resolver) {
- super(adapter, resolver);
+ OpenBaseActionBuilder(JdbcAdapter adapter, EntityResolver resolver, RowReaderFactory rowReaderFactory) {
+ super(adapter, resolver, rowReaderFactory);
}
@Override
public <T> SQLAction objectSelectAction(SelectQuery<T> query) {
- return new SelectAction(query, adapter, entityResolver) {
+ return new SelectAction(query, adapter, entityResolver, rowReaderFactory) {
@Override
protected SelectTranslator createTranslator(Connection connection) {
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseAdapter.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseAdapter.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/openbase/OpenBaseAdapter.java Wed Mar 12 15:13:16 2014
@@ -90,7 +90,7 @@ public class OpenBaseAdapter extends Jdb
@Override
public SQLAction getAction(Query query, DataNode node) {
return query.createSQLAction(new OpenBaseActionBuilder(this, node
- .getEntityResolver()));
+ .getEntityResolver(), node.getRowReaderFactory()));
}
@Override
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/Oracle8ActionBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/Oracle8ActionBuilder.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/Oracle8ActionBuilder.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/Oracle8ActionBuilder.java Wed Mar 12 15:13:16 2014
@@ -19,6 +19,7 @@
package org.apache.cayenne.dba.oracle;
+import org.apache.cayenne.access.jdbc.RowReaderFactory;
import org.apache.cayenne.dba.JdbcAdapter;
import org.apache.cayenne.map.EntityResolver;
import org.apache.cayenne.query.BatchQuery;
@@ -33,18 +34,18 @@ import org.apache.cayenne.query.SelectQu
*/
class Oracle8ActionBuilder extends OracleActionBuilder {
- Oracle8ActionBuilder(JdbcAdapter adapter, EntityResolver resolver) {
- super(adapter, resolver);
+ Oracle8ActionBuilder(JdbcAdapter adapter, EntityResolver resolver, RowReaderFactory rowReaderFactory) {
+ super(adapter, resolver, rowReaderFactory);
}
@Override
public SQLAction sqlAction(SQLTemplate query) {
- return new Oracle8SQLTemplateAction(query, adapter, getEntityResolver());
+ return new Oracle8SQLTemplateAction(query, adapter, getEntityResolver(), rowReaderFactory);
}
@Override
public <T> SQLAction objectSelectAction(SelectQuery<T> query) {
- return new Oracle8SelectAction(query, getAdapter(), getEntityResolver());
+ return new Oracle8SelectAction(query, getAdapter(), getEntityResolver(), rowReaderFactory);
}
@Override
@@ -63,7 +64,7 @@ class Oracle8ActionBuilder extends Oracl
OracleBatchAction action = new OracleBatchAction(
query,
adapter,
- getEntityResolver());
+ getEntityResolver(), rowReaderFactory);
action.setBatch(runningAsBatch);
return action;
}
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/Oracle8Adapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/Oracle8Adapter.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/Oracle8Adapter.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/Oracle8Adapter.java Wed Mar 12 15:13:16 2014
@@ -85,8 +85,8 @@ public class Oracle8Adapter extends Orac
*/
@Override
public SQLAction getAction(Query query, DataNode node) {
- return query.createSQLAction(new Oracle8ActionBuilder(this, node
- .getEntityResolver()));
+ return query.createSQLAction(new Oracle8ActionBuilder(this, node.getEntityResolver(), node
+ .getRowReaderFactory()));
}
@Override
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SQLTemplateAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SQLTemplateAction.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SQLTemplateAction.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/Oracle8SQLTemplateAction.java Wed Mar 12 15:13:16 2014
@@ -26,6 +26,7 @@ import java.sql.SQLException;
import java.util.Collection;
import org.apache.cayenne.access.OperationObserver;
+import org.apache.cayenne.access.jdbc.RowReaderFactory;
import org.apache.cayenne.access.jdbc.SQLStatement;
import org.apache.cayenne.access.jdbc.SQLTemplateAction;
import org.apache.cayenne.dba.JdbcAdapter;
@@ -39,9 +40,9 @@ import org.apache.cayenne.query.SQLTempl
*/
class Oracle8SQLTemplateAction extends SQLTemplateAction {
- Oracle8SQLTemplateAction(SQLTemplate query, JdbcAdapter adapter,
- EntityResolver resolver) {
- super(query, adapter, resolver);
+ Oracle8SQLTemplateAction(SQLTemplate query, JdbcAdapter adapter, EntityResolver resolver,
+ RowReaderFactory rowReaderFactory) {
+ super(query, adapter, resolver, rowReaderFactory);
}
/**
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=1576774&r1=1576773&r2=1576774&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 Wed Mar 12 15:13:16 2014
@@ -20,6 +20,7 @@ package org.apache.cayenne.dba.oracle;
import java.sql.Connection;
+import org.apache.cayenne.access.jdbc.RowReaderFactory;
import org.apache.cayenne.access.trans.SelectTranslator;
import org.apache.cayenne.dba.JdbcAdapter;
import org.apache.cayenne.map.EntityResolver;
@@ -30,9 +31,9 @@ import org.apache.cayenne.query.SelectQu
*/
class Oracle8SelectAction extends OracleSelectAction {
- <T> Oracle8SelectAction(SelectQuery<T> query, JdbcAdapter adapter,
- EntityResolver entityResolver) {
- super(query, adapter, entityResolver);
+ <T> Oracle8SelectAction(SelectQuery<T> query, JdbcAdapter adapter, EntityResolver entityResolver,
+ RowReaderFactory rowReaderFactory) {
+ super(query, adapter, entityResolver, rowReaderFactory);
}
@Override
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleActionBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleActionBuilder.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleActionBuilder.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleActionBuilder.java Wed Mar 12 15:13:16 2014
@@ -19,6 +19,7 @@
package org.apache.cayenne.dba.oracle;
+import org.apache.cayenne.access.jdbc.RowReaderFactory;
import org.apache.cayenne.dba.JdbcActionBuilder;
import org.apache.cayenne.dba.JdbcAdapter;
import org.apache.cayenne.map.EntityResolver;
@@ -33,13 +34,13 @@ import org.apache.cayenne.query.SelectQu
*/
class OracleActionBuilder extends JdbcActionBuilder {
- OracleActionBuilder(JdbcAdapter adapter, EntityResolver resolver) {
- super(adapter, resolver);
+ OracleActionBuilder(JdbcAdapter adapter, EntityResolver resolver, RowReaderFactory rowReaderFactory) {
+ super(adapter, resolver, rowReaderFactory);
}
@Override
public SQLAction sqlAction(SQLTemplate query) {
- return new OracleSQLTemplateAction(query, adapter, getEntityResolver());
+ return new OracleSQLTemplateAction(query, adapter, getEntityResolver(), rowReaderFactory);
}
@Override
@@ -48,18 +49,14 @@ class OracleActionBuilder extends JdbcAc
// special handling for LOB updates
if (OracleAdapter.isSupportsOracleLOB() && OracleAdapter.updatesLOBColumns(query)) {
return new OracleLOBBatchAction(query, getAdapter());
- }
- else {
+ } else {
// optimistic locking is not supported in batches due to JDBC driver
// limitations
boolean useOptimisticLock = query.isUsingOptimisticLocking();
boolean runningAsBatch = !useOptimisticLock && adapter.supportsBatchUpdates();
- OracleBatchAction action = new OracleBatchAction(
- query,
- adapter,
- getEntityResolver());
+ OracleBatchAction action = new OracleBatchAction(query, adapter, getEntityResolver(), rowReaderFactory);
action.setBatch(runningAsBatch);
return action;
}
@@ -68,11 +65,11 @@ class OracleActionBuilder extends JdbcAc
@Override
public SQLAction procedureAction(ProcedureQuery query) {
- return new OracleProcedureAction(query, getAdapter(), getEntityResolver());
+ return new OracleProcedureAction(query, getAdapter(), getEntityResolver(), rowReaderFactory);
}
@Override
public <T> SQLAction objectSelectAction(SelectQuery<T> query) {
- return new OracleSelectAction(query, getAdapter(), getEntityResolver());
+ return new OracleSelectAction(query, getAdapter(), getEntityResolver(), rowReaderFactory);
}
}
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleAdapter.java Wed Mar 12 15:13:16 2014
@@ -313,8 +313,8 @@ public class OracleAdapter extends JdbcA
*/
@Override
public SQLAction getAction(Query query, DataNode node) {
- return query.createSQLAction(new OracleActionBuilder(this, node
- .getEntityResolver()));
+ return query
+ .createSQLAction(new OracleActionBuilder(this, node.getEntityResolver(), node.getRowReaderFactory()));
}
/**
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleBatchAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleBatchAction.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleBatchAction.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleBatchAction.java Wed Mar 12 15:13:16 2014
@@ -21,6 +21,7 @@ package org.apache.cayenne.dba.oracle;
import org.apache.cayenne.CayenneException;
import org.apache.cayenne.access.jdbc.BatchAction;
+import org.apache.cayenne.access.jdbc.RowReaderFactory;
import org.apache.cayenne.access.trans.BatchQueryBuilder;
import org.apache.cayenne.dba.JdbcAdapter;
import org.apache.cayenne.map.EntityResolver;
@@ -31,9 +32,12 @@ import org.apache.cayenne.query.BatchQue
*/
class OracleBatchAction extends BatchAction {
- OracleBatchAction(BatchQuery batchQuery, JdbcAdapter adapter,
- EntityResolver entityResolver) {
- super(batchQuery, adapter, entityResolver);
+ /**
+ * @since 3.2
+ */
+ OracleBatchAction(BatchQuery batchQuery, JdbcAdapter adapter, EntityResolver entityResolver,
+ RowReaderFactory rowReaderFactory) {
+ super(batchQuery, adapter, entityResolver, rowReaderFactory);
}
@Override
Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleProcedureAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleProcedureAction.java?rev=1576774&r1=1576773&r2=1576774&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleProcedureAction.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/dba/oracle/OracleProcedureAction.java Wed Mar 12 15:13:16 2014
@@ -30,6 +30,7 @@ import org.apache.cayenne.access.Operati
import org.apache.cayenne.access.jdbc.ColumnDescriptor;
import org.apache.cayenne.access.jdbc.ProcedureAction;
import org.apache.cayenne.access.jdbc.RowDescriptor;
+import org.apache.cayenne.access.jdbc.RowReaderFactory;
import org.apache.cayenne.access.types.ExtendedType;
import org.apache.cayenne.dba.JdbcAdapter;
import org.apache.cayenne.map.EntityResolver;
@@ -43,9 +44,9 @@ import org.apache.cayenne.query.Procedur
*/
class OracleProcedureAction extends ProcedureAction {
- OracleProcedureAction(ProcedureQuery query, JdbcAdapter adapter,
- EntityResolver entityResolver) {
- super(query, adapter, entityResolver);
+ OracleProcedureAction(ProcedureQuery query, JdbcAdapter adapter, EntityResolver entityResolver,
+ RowReaderFactory rowReaderFactory) {
+ super(query, adapter, entityResolver, rowReaderFactory);
}
/**