[prev in list] [next in list] [prev in thread] [next in thread]
List: turbine-torque-dev
Subject: svn commit: r1754171 - in /db/torque/torque4/trunk: torque-runtime/src/main/java/org/apache/torque/u
From: tv () apache ! org
Date: 2016-07-26 19:16:55
Message-ID: 20160726191655.C78D53A0051 () svn01-us-west ! apache ! org
[Download RAW message or body]
Author: tv
Date: Tue Jul 26 19:16:55 2016
New Revision: 1754171
URL: http://svn.apache.org/viewvc?rev=1754171&view=rev
Log:
TORQUE-346: First attempt
Added:
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/util/AbstractPeerImpl.java \
(with props) Modified:
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/conf/options.properties
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/doInsert.vm
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/doSelect.vm
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/doUpdate.vm
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/imports.vm
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/log.vm
Added: db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/util/AbstractPeerImpl.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/util/AbstractPeerImpl.java?rev=1754171&view=auto
==============================================================================
--- db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/util/AbstractPeerImpl.java \
(added)
+++ db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/util/AbstractPeerImpl.java \
Tue Jul 26 19:16:55 2016 @@ -0,0 +1,194 @@
+package org.apache.torque.util;
+
+/*
+ * 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.
+ */
+
+import java.sql.Connection;
+import java.util.List;
+
+import org.apache.torque.TooManyRowsException;
+import org.apache.torque.TorqueException;
+import org.apache.torque.criteria.Criteria;
+import org.apache.torque.map.TableMap;
+import org.apache.torque.om.ObjectKey;
+import org.apache.torque.om.Persistent;
+import org.apache.torque.om.mapper.RecordMapper;
+
+/**
+ * This is an abstract layer for all generated peer classes that
+ * implements several convenience methods that otherwise would have
+ * to be generated.
+ *
+ * @param <T> The data object class for this Peer.
+ *
+ * @author <a href="mailto:tv@apache.org">Thomas Vandahl</a>
+ * @version $Id: BasePeerImpl.java 1701342 2015-09-05 02:18:04Z tfischer $
+ */
+public abstract class AbstractPeerImpl<T extends Persistent> extends BasePeerImpl<T>
+{
+ /** Serial version */
+ private static final long serialVersionUID = 1236684692145864194L;
+
+ /**
+ * Default constructor
+ */
+ public AbstractPeerImpl()
+ {
+ super();
+ }
+
+ /**
+ * Constructor providing the objects to be injected as parameters.
+ *
+ * @param recordMapper a record mapper to map JDBC result sets to objects
+ * @param tableMap the default table map
+ * @param databaseName the name of the database
+ */
+ public AbstractPeerImpl(final RecordMapper<T> recordMapper, final TableMap \
tableMap, final String databaseName) + {
+ super(recordMapper, tableMap, databaseName);
+ }
+
+ /**
+ * Build a Criteria object from the data object for this peer.
+ *
+ * @param obj the object to build the criteria from, not null.
+ */
+ public abstract Criteria buildCriteria(T obj);
+
+ /**
+ * Build a Criteria object from the data object for this peer,
+ * skipping all binary columns.
+ *
+ * @param obj the object to build the criteria from, not null.
+ */
+ public abstract Criteria buildSelectCriteria(T obj);
+
+ /**
+ * Returns the contents of the object as ColumnValues object.
+ * Primary key columns which are generated on insertion are not
+ * added to the returned object if they still have their initial
+ * value. Also, columns which have the useDatabaseDefaultValue
+ * flag set to true are also not added to the returned object
+ * if they still have their initial value.
+ *
+ * @throws TorqueException if the table map cannot be retrieved
+ * (should not happen).
+ */
+ public abstract ColumnValues buildColumnValues(T obj) throws TorqueException;
+
+ /**
+ * Selects objects from the database which have
+ * the same content as the passed object.
+ *
+ * @return The list of selected objects, not null.
+ *
+ * @throws TorqueException Any exceptions caught during processing will be
+ * rethrown wrapped into a TorqueException.
+ */
+ public List<T> doSelect(T obj) throws TorqueException
+ {
+ return doSelect(buildSelectCriteria(obj));
+ }
+
+ /**
+ * Selects at most one object from the database
+ * which has the same content as the passed object.
+ *
+ * @return the selected Object, or null if no object was selected.
+ *
+ * @throws TorqueException Any exceptions caught during processing will be
+ * rethrown wrapped into a TorqueException.
+ */
+ public T doSelectSingleRecord(T obj) throws TorqueException
+ {
+ List<T> omList = doSelect(obj);
+ T om = null;
+ if (omList.size() > 1)
+ {
+ throw new TooManyRowsException("Object " + obj
+ + " matched more than one record");
+ }
+ if (!omList.isEmpty())
+ {
+ om = omList.get(0);
+ }
+ return om;
+ }
+
+ /**
+ * Method to do inserts. This method is to be used during a transaction,
+ * otherwise use the doInsert(Criteria) method.
+ *
+ * @param columnValues the values to insert.
+ * @param con the connection to use, not null.
+ *
+ * @return the primary key of the inserted row or null if the table has
+ * no primary key
+ *
+ * @throws TorqueException Any exceptions caught during processing will be
+ * rethrown wrapped into a TorqueException.
+ */
+ @Override
+ public ObjectKey doInsert(ColumnValues columnValues, Connection con)
+ throws TorqueException
+ {
+ correctBooleans(columnValues);
+ return super.doInsert(columnValues, con);
+ }
+
+ /**
+ * Method to do inserts
+ *
+ * @throws TorqueException Any exceptions caught during processing will be
+ * rethrown wrapped into a TorqueException.
+ */
+ public void doInsert(T obj) throws TorqueException
+ {
+ ObjectKey primaryKey = doInsert(buildColumnValues(obj));
+ if (primaryKey != null)
+ {
+ obj.setPrimaryKey(primaryKey);
+ }
+ obj.setNew(false);
+ obj.setModified(false);
+ }
+
+ /**
+ * Method to do inserts. This method is to be used during a transaction,
+ * otherwise use the doInsert(T) method. It will take
+ * care of the connection details internally.
+ *
+ * @param obj the data object to insert into the database.
+ * @param con the connection to use
+ * @throws TorqueException Any exceptions caught during processing will be
+ * rethrown wrapped into a TorqueException.
+ */
+ public void doInsert(T obj, Connection con)
+ throws TorqueException
+ {
+ ObjectKey primaryKey = doInsert(buildColumnValues(obj), con);
+ if (primaryKey != null)
+ {
+ obj.setPrimaryKey(primaryKey);
+ }
+ obj.setNew(false);
+ obj.setModified(false);
+ }
+}
Propchange: db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/util/AbstractPeerImpl.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/conf/options.properties
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/re \
sources/org/apache/torque/templates/om/conf/options.properties?rev=1754171&r1=1754170&r2=1754171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/conf/options.properties \
(original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/conf/options.properties \
Tue Jul 26 19:16:55 2016 @@ -223,7 +223,7 @@ torque.om.dbObjectDefaultBaseClass =
# The base class for all Peer classes
torque.om.basePeerBaseClass =
# The base class for all Peer implementation classes
-torque.om.basePeerImplBaseClass = org.apache.torque.util.BasePeerImpl
+torque.om.basePeerImplBaseClass = org.apache.torque.util.AbstractPeerImpl
# Prefixes and suffixes for the java names of the generated classes
#
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/doInsert.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/re \
sources/org/apache/torque/templates/om/templates/peer/impl/base/doInsert.vm?rev=1754171&r1=1754170&r2=1754171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/doInsert.vm \
(original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/doInsert.vm \
Tue Jul 26 19:16:55 2016 @@ -27,103 +27,4 @@
## The options and the attributes of the current source element must be set
## as velocity variables.
##
- /**
- * Method to do inserts.
- *
- * @param columnValues the values to insert.
- *
-#if ($torqueGen.getChild("primary-keys").getChildren("column").isEmpty())
- * @return always null (because the table does not have a primary key).
-#else
- * @return the primary key of the inserted row.
-#end
- *
- * @throws TorqueException Any exceptions caught during processing will be
- * rethrown wrapped into a TorqueException.
- */
- public ObjectKey doInsert(ColumnValues columnValues) throws TorqueException
- {
- Connection connection = null;
- try
- {
- connection = Transaction.begin(
- ${peerClassName}.DATABASE_NAME);
- ObjectKey result = doInsert(columnValues, connection);
- Transaction.commit(connection);
- connection = null;
- return result;
- }
- finally
- {
- if (connection != null)
- {
- Transaction.safeRollback(connection);
- }
- }
- }
-
- /**
- * Method to do inserts. This method is to be used during a transaction,
- * otherwise use the doInsert(Criteria) method.
- *
- * @param columnValues the values to insert.
- * @param con the connection to use, not null.
- *
-#if ($torqueGen.getChild("primary-keys").getChildren("column").isEmpty())
- * @return always null (because the table does not have a primary key).
-#else
- * @return the primary key of the inserted row.
-#end
- *
- * @throws TorqueException Any exceptions caught during processing will be
- * rethrown wrapped into a TorqueException.
- */
- public ObjectKey doInsert(ColumnValues columnValues, Connection con)
- throws TorqueException
- {
- correctBooleans(columnValues);
- return super.doInsert(columnValues, con);
- }
-
- /**
- * Method to do inserts
- *
- * @throws TorqueException Any exceptions caught during processing will be
- * rethrown wrapped into a TorqueException.
- */
- public void doInsert($dbObjectClassName obj) throws TorqueException
- {
- #if ($idMethod.equals("none") || \
$torqueGen.getChild("primary-keys").getChildren("column").isEmpty())
- doInsert(buildColumnValues(obj));
- #else
- obj.setPrimaryKey(doInsert(buildColumnValues(obj)));
- #end
- obj.setNew(false);
- obj.setModified(false);
- }
-
- /**
- * Method to do inserts. This method is to be used during a transaction,
- * otherwise use the doInsert($dbObjectClassName) method. It will take
- * care of the connection details internally.
- *
- * @param obj the data object to insert into the database.
- * @param con the connection to use
- * @throws TorqueException Any exceptions caught during processing will be
- * rethrown wrapped into a TorqueException.
- */
- public void doInsert($dbObjectClassName obj, Connection con)
- throws TorqueException
- {
- #if ($idMethod.equals("none") || \
$torqueGen.getChild("primary-keys").getChildren("column").isEmpty())
- doInsert(buildColumnValues(obj), con);
- #else
- ObjectKey primaryKey = doInsert(buildColumnValues(obj), con);
- if (primaryKey != null)
- {
- obj.setPrimaryKey(primaryKey);
- }
- #end
- obj.setNew(false);
- obj.setModified(false);
- }
+## empty
\ No newline at end of file
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/doSelect.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/re \
sources/org/apache/torque/templates/om/templates/peer/impl/base/doSelect.vm?rev=1754171&r1=1754170&r2=1754171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/doSelect.vm \
(original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/doSelect.vm \
Tue Jul 26 19:16:55 2016 @@ -27,46 +27,4 @@
## The options and the attributes of the current source element must be set
## as velocity variables.
##
- /**
- * Selects ${dbObjectClassName} objects from the database which have
- * the same content as the passed object.
- *
- * @return The list of selected objects, not null.
- *
- * @throws TorqueException Any exceptions caught during processing will be
- * rethrown wrapped into a TorqueException.
- */
- public List<${dbObjectClassName}> doSelect($dbObjectClassName obj)
- throws TorqueException
- {
- return doSelect(buildSelectCriteria(obj));
- }
-#if ($torqueGen.booleanOption("torque.om.addSelectSingleRecordMethods"))
-
- /**
- * Selects at most one ${dbObjectClassName} object from the database
- * which has the same content as the passed object.
- *
- * @return the selected Object, or null if no object was selected.
- *
- * @throws TorqueException Any exceptions caught during processing will be
- * rethrown wrapped into a TorqueException.
- */
- public ${dbObjectClassName} doSelectSingleRecord(
- $dbObjectClassName obj)
- throws TorqueException
- {
- List<${dbObjectClassName}> ${field}List = doSelect(obj);
- ${dbObjectClassName} ${field} = null;
- if (${field}List.size() > 1)
- {
- throw new TooManyRowsException("Object " + obj
- + " matched more than one record");
- }
- if (!${field}List.isEmpty())
- {
- ${field} = ${field}List.get(0);
- }
- return ${field};
- }
-#end
+## empty
\ No newline at end of file
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/doUpdate.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/re \
sources/org/apache/torque/templates/om/templates/peer/impl/base/doUpdate.vm?rev=1754171&r1=1754170&r2=1754171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/doUpdate.vm \
(original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/doUpdate.vm \
Tue Jul 26 19:16:55 2016 @@ -28,38 +28,6 @@
## as velocity variables.
##
/**
- * Method to do updates.
- *
- * @param columnValues the values to update plus the primary key
- * identifying the row to update.
- *
- * @return the number of affected rows.
- *
- * @throws TorqueException Any exceptions caught during processing will be
- * rethrown wrapped into a TorqueException.
- */
- public int doUpdate(ColumnValues columnValues) throws TorqueException
- {
- Connection connection = null;
- try
- {
- connection = Transaction.begin(
- ${peerClassName}.DATABASE_NAME);
- int result = doUpdate(columnValues, connection);
- Transaction.commit(connection);
- connection = null;
- return result;
- }
- finally
- {
- if (connection != null)
- {
- Transaction.safeRollback(connection);
- }
- }
- }
-
- /**
* Method to do updates. This method is to be used during a transaction,
* otherwise use the doUpdate(Criteria) method.
*
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/imports.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/re \
sources/org/apache/torque/templates/om/templates/peer/impl/base/imports.vm?rev=1754171&r1=1754170&r2=1754171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/imports.vm \
(original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/imports.vm \
Tue Jul 26 19:16:55 2016 @@ -53,8 +53,8 @@ import java.util.Set;
import java.util.HashSet;
import org.apache.commons.lang.ObjectUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+##import org.apache.commons.logging.Log;
+##import org.apache.commons.logging.LogFactory;
import org.apache.torque.NoRowsException;
import org.apache.torque.OptimisticLockingFailedException;
import org.apache.torque.TooManyRowsException;
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/log.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/re \
sources/org/apache/torque/templates/om/templates/peer/impl/base/log.vm?rev=1754171&r1=1754170&r2=1754171&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/log.vm \
(original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/impl/base/log.vm \
Tue Jul 26 19:16:55 2016 @@ -27,5 +27,5 @@
## The options and the attributes of the current source element must be set
## as velocity variables.
##
- /** The class log. */
- private static Log log = LogFactory.getLog(${basePeerImplClassName}.class);
\ No newline at end of file
+## /** The class log. */
+## private static Log log = LogFactory.getLog(${basePeerImplClassName}.class);
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic