Author: tfischer Date: Wed Mar 5 22:15:11 2014 New Revision: 1574691 URL: http://svn.apache.org/r1574691 Log: TORQUE-310 add More realistic organize-imports-test
Added: db/torque/torque4/trunk/torque-generator/src/test/resources/org/apache/torque/generator/processor/ db/torque/torque4/trunk/torque-generator/src/test/resources/org/apache/torque/generator/processor/string/ db/torque/torque4/trunk/torque-generator/src/test/resources/org/apache/torque/generator/processor/string/organizeImports.txt db/torque/torque4/trunk/torque-generator/src/test/resources/org/apache/torque/generator/processor/string/organizeImportsExpected.txt Modified: db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/processor/string/OrganizeImportsProcessorTest.java Modified: db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/processor/string/OrganizeImportsProcessorTest.java URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/processor/string/OrganizeImportsProcessorTest.java?rev=1574691&r1=1574690&r2=1574691&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/processor/string/OrganizeImportsProcessorTest.java (original) +++ db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/processor/string/OrganizeImportsProcessorTest.java Wed Mar 5 22:15:11 2014 @@ -21,6 +21,8 @@ package org.apache.torque.generator.proc import static org.junit.Assert.assertEquals; +import org.apache.commons.io.IOUtils; +import org.apache.torque.generator.BaseTest; import org.junit.Test; /** @@ -28,7 +30,7 @@ import org.junit.Test; * * @version $Id: $ */ -public class OrganizeImportsProcessorTest +public class OrganizeImportsProcessorTest extends BaseTest { /** System under test. */ private final OrganizeImportsProcessor organizeImportsProcessor @@ -51,4 +53,13 @@ public class OrganizeImportsProcessorTes + "class2\n" + "Class3", result); } + + @Test + public void testProcessLong() throws Exception + { + String source = IOUtils.toString(getClass().getResourceAsStream("organizeImports.txt")); + String result = organizeImportsProcessor.process(source); + String expected = IOUtils.toString(getClass().getResourceAsStream("organizeImportsExpected.txt")); + assertEquals(expected, result); + } } Added: db/torque/torque4/trunk/torque-generator/src/test/resources/org/apache/torque/generator/processor/string/organizeImports.txt URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/test/resources/org/apache/torque/generator/processor/string/organizeImports.txt?rev=1574691&view=auto ============================================================================== --- db/torque/torque4/trunk/torque-generator/src/test/resources/org/apache/torque/generator/processor/string/organizeImports.txt (added) +++ db/torque/torque4/trunk/torque-generator/src/test/resources/org/apache/torque/generator/processor/string/organizeImports.txt Wed Mar 5 22:15:11 2014 @@ -0,0 +1,751 @@ +package org.apache.torque.test.peer.base; + +import java.sql.Blob; +import java.sql.Connection; +import java.io.InputStream; +import java.io.Reader; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.torque.NoRowsException; +import org.apache.torque.TooManyRowsException; +import org.apache.torque.Torque; +import org.apache.torque.TorqueException; +import org.apache.torque.criteria.Criteria; +import org.apache.torque.om.mapper.RecordMapper; +import org.apache.torque.om.ObjectKey; +import org.apache.torque.om.SimpleKey; +import org.apache.torque.map.TableMap; +import org.apache.torque.util.Transaction; +import org.apache.torque.util.ColumnValues; +import org.apache.torque.util.JdbcTypedValue; + +import org.apache.torque.test.dbobject.*; +import org.apache.torque.test.recordmapper.*; +import org.apache.torque.test.peer.*; + + +/** + * The skeleton for this class was autogenerated by Torque on: + * + * [Wed Mar 05 23:07:13 CET 2014] + * + * You should not use this class directly. It should not even be + * extended; all references should be to BlobTypePeer + */ + +public abstract class BaseBlobTypePeerImpl + extends org.apache.torque.util.BasePeerImpl<BlobType> +{ + /** The class log. */ + private static Log log = LogFactory.getLog(BaseBlobTypePeerImpl.class); + + /** Serial version */ + private static final long serialVersionUID = 1394057233749L; + + + + /** + * Constructor. + * The recordMapper, tableMap and databaseName fields are correctly + * initialized. + */ + public BaseBlobTypePeerImpl() + { + this(new BlobTypeRecordMapper(), + BlobTypePeer.TABLE, + BlobTypePeer.DATABASE_NAME); + } + + /** + * 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 BaseBlobTypePeerImpl( + RecordMapper<BlobType> recordMapper, + TableMap tableMap, + String databaseName) + { + super(recordMapper, tableMap, databaseName); + } + + + /** + * Selects BlobType 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<BlobType> doSelect(BlobType obj) + throws TorqueException + { + return doSelect(buildSelectCriteria(obj)); + } + + /** + * Selects at most one BlobType 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 BlobType doSelectSingleRecord( + BlobType obj) + throws TorqueException + { + List<BlobType> blobTypeList = doSelect(obj); + BlobType blobType = null; + if (blobTypeList.size() > 1) + { + throw new TooManyRowsException("Object " + obj + + " matched more than one record"); + } + if (!blobTypeList.isEmpty()) + { + blobType = blobTypeList.get(0); + } + return blobType; + } + + /** + * Returns a new instance of the Data object class + */ + public BlobType getDbObjectInstance() + { + return new BlobType(); + } + + + /** + * Method to do inserts. + * + * @param columnValues the values to insert. + * + * @return the primary key of the inserted row. + * + * @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( + BlobTypePeer.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. + * + * @return the primary key of the inserted row. + * + * @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(BlobType obj) throws TorqueException + { + obj.setPrimaryKey(doInsert(buildColumnValues(obj))); + obj.setNew(false); + obj.setModified(false); + } + + /** + * Method to do inserts. This method is to be used during a transaction, + * otherwise use the doInsert(BlobType) 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(BlobType obj, Connection con) + throws TorqueException + { + ObjectKey primaryKey = doInsert(buildColumnValues(obj), con); + if (primaryKey != null) + { + obj.setPrimaryKey(primaryKey); + } + obj.setNew(false); + obj.setModified(false); + } + + /** + * 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( + BlobTypePeer.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. + * + * @param columnValues the values to update plus the primary key + * identifying the row to update. + * @param con the connection to use, not null. + * + * @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, Connection con) + throws TorqueException + { + Criteria selectCriteria + = new Criteria(BlobTypePeer.DATABASE_NAME); + correctBooleans(columnValues); + + { + JdbcTypedValue pkValue + = columnValues.remove(BlobTypePeer.ID); + if (pkValue == null) + { + throw new TorqueException( + "The value for the primary key column " + + "BlobTypePeer.ID" + + " must be set"); + } + if (pkValue.getSqlExpression() == null) + { + selectCriteria.where( + BlobTypePeer.ID, + pkValue.getValue()); + } + else + { + selectCriteria.where( + BlobTypePeer.ID, + pkValue.getSqlExpression()); + } + } + + + int rowCount = doUpdate(selectCriteria, columnValues, con); + return rowCount; + } + + /** + * Updates an BlobType in the database. + * The primary key is used to identify the object to update. + * + * @param obj the data object to update in the database. + * + * @return the number of affected rows. + * + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + */ + public int doUpdate(BlobType obj) throws TorqueException + { + ColumnValues columnValues = buildColumnValues(obj); + int result = doUpdate(columnValues); + obj.setModified(false); + return result; + } + + /** + * Updates a BlobType in the database. + * The primary key is used to identify the object to update. + * This method is to be used during a transaction, + * otherwise the doUpdate(BlobType) method can be used. + * + * @param obj the data object to update in the database. + * @param con the connection to use, not null. + + * @return the number of affected rows. + * + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + */ + public int doUpdate(BlobType obj, Connection con) + throws TorqueException + { + ColumnValues columnValues = buildColumnValues(obj); + int result = doUpdate(columnValues, con); + obj.setModified(false); + return result; + } + + /** + * Deletes a data object, i.e. a row in a table, in the database. + * + * @param obj the data object to delete in the database, not null. + * + * @return the number of deleted rows. + * + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + */ + public int doDelete(BlobType obj) throws TorqueException + { + int result = doDelete(buildCriteria(obj.getPrimaryKey())); + obj.setDeleted(true); + return result; + } + + /** + * Deletes a data object, i.e. a row in a table, in the database. + * This method is to be used during a transaction, otherwise use the + * doDelete(BlobType) method. + * + * @param obj the data object to delete in the database, not null. + * @param con the connection to use, not null. + * + * @return the number of deleted rows. + * + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + */ + public int doDelete(BlobType obj, Connection con) + throws TorqueException + { + int result = doDelete(buildCriteria(obj.getPrimaryKey()), con); + obj.setDeleted(true); + return result; + } + + /** + * Deletes data objects, i.e. rows in a table, in the database. + * + * @param objects the data object to delete in the database, not null, + * may not contain null. + * + * @return the number of deleted rows. + * + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + */ + public int doDelete(Collection<BlobType> objects) + throws TorqueException + { + int result = doDelete(buildPkCriteria(objects)); + for (BlobType object : objects) + { + object.setDeleted(true); + } + return result; + } + + /** + * Deletes data objects, i.e. rows in a table, in the database. + * This method uses the passed connection to delete the rows; + * if a transaction is open in the connection, the deletion happens inside + * this transaction. + * + * @param objects the data objects to delete in the database, not null, + * may not contain null. + * @param con the connection to use for deleting, not null. + * + * @return the number of deleted rows. + * + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + */ + public int doDelete( + Collection<BlobType> objects, + Connection con) + throws TorqueException + { + int result = doDelete(buildPkCriteria(objects), con); + for (BlobType object : objects) + { + object.setDeleted(true); + } + return result; + } + + /** + * Deletes a row in the database. + * + * @param pk the ObjectKey that identifies the row to delete. + * + * @return the number of deleted rows. + * + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + */ + public int doDelete(ObjectKey pk) throws TorqueException + { + Connection connection = null; + try + { + connection = Transaction.begin( + BlobTypePeer.DATABASE_NAME); + int deletedRows = doDelete(pk, connection); + Transaction.commit(connection); + connection = null; + return deletedRows; + } + finally + { + if (connection != null) + { + Transaction.safeRollback(connection); + } + } + } + + /** + * Deletes a row in the database. + * This method is to be used during a transaction, + * otherwise use the doDelete(ObjectKey) method. + * + * @param pk the ObjectKey that identifies the row to delete. + * @param con the connection to use for deleting, not null. + * + * @return the number of deleted rows. + * + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + */ + public int doDelete(ObjectKey pk, Connection con) + throws TorqueException + { + return doDelete(buildCriteria(pk), con); + } + + /** + * Build a Criteria object which selects all objects which have a given + * primary key. + * + * @param pk the primary key value to build the criteria from, not null. + */ + public Criteria buildCriteria(ObjectKey pk) + { + Criteria criteria = new Criteria(); + criteria.and(BlobTypePeer.ID, pk); + return criteria; + } + + /** + * Build a Criteria object which selects all objects which primary keys + * are contained in the passed collection. + * + * @param pks the primary key values to build the criteria from, not null, + * may not contain null. + */ + public Criteria buildCriteria(Collection<ObjectKey> pks) + { + Criteria criteria = new Criteria(); + criteria.andIn(BlobTypePeer.ID, pks); + return criteria; + } + + + /** + * Build a Criteria object which selects all passed objects using their + * primary key. Objects which do not yet have a primary key are ignored. + * + * @param objects the objects to build the criteria from, not null, + * may not contain null. + */ + public Criteria buildPkCriteria( + Collection<BlobType> objects) + { + List<ObjectKey> pks = new ArrayList<ObjectKey>(objects.size()); + for (BlobType object : objects) + { + ObjectKey pk = object.getPrimaryKey(); + if (pk != null) + { + pks.add(pk); + } + } + return buildCriteria(pks); + } + + /** + * Build a Criteria object from the data object for this peer. + * The primary key columns are only added if the object is not new. + * + * @param obj the object to build the criteria from, not null. + */ + public Criteria buildCriteria(BlobType obj) + { + Criteria criteria = new Criteria(BlobTypePeer.DATABASE_NAME); + if (!obj.isNew()) + { + criteria.and(BlobTypePeer.ID, obj.getId()); + } + criteria.and(BlobTypePeer.BLOB_VALUE, obj.getBlobValue()); + criteria.and(BlobTypePeer.BLOB_OBJECT_VALUE, obj.getBlobObjectValue()); + return criteria; + } + + /** + * 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 Criteria buildSelectCriteria(BlobType obj) + { + Criteria criteria = new Criteria(BlobTypePeer.DATABASE_NAME); + if (!obj.isNew()) + { + criteria.and(BlobTypePeer.ID, obj.getId()); + } + return criteria; + } + + /** + * 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 ColumnValues buildColumnValues(BlobType blobType) + throws TorqueException + { + ColumnValues columnValues = new ColumnValues(); + if (!blobType.isNew() + || blobType.getId() != 0L) + { + columnValues.put( + BlobTypePeer.ID, + new JdbcTypedValue( + blobType.getId(), + -5)); + } + columnValues.put( + BlobTypePeer.BLOB_VALUE, + new JdbcTypedValue( + blobType.getBlobValue(), + 2004)); + columnValues.put( + BlobTypePeer.BLOB_OBJECT_VALUE, + new JdbcTypedValue( + blobType.getBlobObjectValue(), + 2004)); + return columnValues; + } + + /** + * Retrieve a single object by pk + * + * @param pk the primary key + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + * @throws NoRowsException Primary key was not found in database. + * @throws TooManyRowsException Primary key was not found in database. + */ + public BlobType retrieveByPK(long pk) + throws TorqueException, NoRowsException, TooManyRowsException + { + return retrieveByPK(SimpleKey.keyFor(pk)); + } + + /** + * Retrieve a single object by pk + * + * @param pk the primary key + * @param con the connection to use + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + * @throws NoRowsException Primary key was not found in database. + * @throws TooManyRowsException Primary key was not found in database. + */ + public BlobType retrieveByPK(long pk, Connection con) + throws TorqueException, NoRowsException, TooManyRowsException + { + return retrieveByPK(SimpleKey.keyFor(pk), con); + } + + + + + /** + * Retrieve a single object by pk + * + * @param pk the primary key + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + * @throws NoRowsException Primary key was not found in database. + * @throws TooManyRowsException Primary key was not found in database. + */ + public BlobType retrieveByPK(ObjectKey pk) + throws TorqueException, NoRowsException, TooManyRowsException + { + Connection connection = null; + try + { + connection = Transaction.begin(BlobTypePeer.DATABASE_NAME); + BlobType result = retrieveByPK(pk, connection); + Transaction.commit(connection); + connection = null; + return result; + } + finally + { + if (connection != null) + { + Transaction.safeRollback(connection); + } + } + } + + /** + * Retrieve a single object by pk + * + * @param pk the primary key + * @param con the connection to use + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + * @throws NoRowsException Primary key was not found in database. + * @throws TooManyRowsException Primary key was not found in database. + */ + public BlobType retrieveByPK(ObjectKey pk, Connection con) + throws TorqueException, NoRowsException, TooManyRowsException + { + Criteria criteria = buildCriteria(pk); + List<BlobType> v = doSelect(criteria, con); + if (v.size() == 0) + { + throw new NoRowsException("Failed to select a row."); + } + else if (v.size() > 1) + { + throw new TooManyRowsException("Failed to select only one row."); + } + else + { + return (BlobType)v.get(0); + } + } + + + /** + * Retrieve a multiple objects by pk + * + * @param pks List of primary keys + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + */ + public List<BlobType> retrieveByPKs(Collection<ObjectKey> pks) + throws TorqueException + { + Connection connection = null; + try + { + connection = Transaction.begin(BlobTypePeer.DATABASE_NAME); + List<BlobType> result = retrieveByPKs(pks, connection); + Transaction.commit(connection); + connection = null; + return result; + } + finally + { + if (connection != null) + { + Transaction.safeRollback(connection); + } + } + } + + /** + * Retrieve multiple objects by pk + * + * @param pks List of primary keys + * @param dbcon the connection to use + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + */ + public List<BlobType> retrieveByPKs( + Collection<ObjectKey> pks, + Connection dbcon) + throws TorqueException + { + if (pks == null || pks.size() == 0) + { + return new ArrayList<BlobType>(); + } + Criteria criteria = buildCriteria(pks); + List<BlobType> result = doSelect(criteria, dbcon); + return result; + } + + + + + + + + +} Added: db/torque/torque4/trunk/torque-generator/src/test/resources/org/apache/torque/generator/processor/string/organizeImportsExpected.txt URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/test/resources/org/apache/torque/generator/processor/string/organizeImportsExpected.txt?rev=1574691&view=auto ============================================================================== --- db/torque/torque4/trunk/torque-generator/src/test/resources/org/apache/torque/generator/processor/string/organizeImportsExpected.txt (added) +++ db/torque/torque4/trunk/torque-generator/src/test/resources/org/apache/torque/generator/processor/string/organizeImportsExpected.txt Wed Mar 5 22:15:11 2014 @@ -0,0 +1,747 @@ +package org.apache.torque.test.peer.base; + +import java.sql.Blob; +import java.sql.Connection; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.torque.NoRowsException; +import org.apache.torque.TooManyRowsException; +import org.apache.torque.Torque; +import org.apache.torque.TorqueException; +import org.apache.torque.criteria.Criteria; +import org.apache.torque.om.mapper.RecordMapper; +import org.apache.torque.om.ObjectKey; +import org.apache.torque.om.SimpleKey; +import org.apache.torque.map.TableMap; +import org.apache.torque.util.Transaction; +import org.apache.torque.util.ColumnValues; +import org.apache.torque.util.JdbcTypedValue; + +import org.apache.torque.test.dbobject.*; +import org.apache.torque.test.recordmapper.*; +import org.apache.torque.test.peer.*; + + +/** + * The skeleton for this class was autogenerated by Torque on: + * + * [Wed Mar 05 22:50:18 CET 2014] + * + * You should not use this class directly. It should not even be + * extended; all references should be to BlobTypePeer + */ + +public abstract class BaseBlobTypePeerImpl + extends org.apache.torque.util.BasePeerImpl<BlobType> +{ + /** The class log. */ + private static Log log = LogFactory.getLog(BaseBlobTypePeerImpl.class); + + /** Serial version */ + private static final long serialVersionUID = 1394056218047L; + + + + /** + * Constructor. + * The recordMapper, tableMap and databaseName fields are correctly + * initialized. + */ + public BaseBlobTypePeerImpl() + { + this(new BlobTypeRecordMapper(), + BlobTypePeer.TABLE, + BlobTypePeer.DATABASE_NAME); + } + + /** + * 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 BaseBlobTypePeerImpl( + RecordMapper<BlobType> recordMapper, + TableMap tableMap, + String databaseName) + { + super(recordMapper, tableMap, databaseName); + } + + + /** + * Selects BlobType 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<BlobType> doSelect(BlobType obj) + throws TorqueException + { + return doSelect(buildSelectCriteria(obj)); + } + + /** + * Selects at most one BlobType 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 BlobType doSelectSingleRecord( + BlobType obj) + throws TorqueException + { + List<BlobType> blobTypeList = doSelect(obj); + BlobType blobType = null; + if (blobTypeList.size() > 1) + { + throw new TooManyRowsException("Object " + obj + + " matched more than one record"); + } + if (!blobTypeList.isEmpty()) + { + blobType = blobTypeList.get(0); + } + return blobType; + } + + /** + * Returns a new instance of the Data object class + */ + public BlobType getDbObjectInstance() + { + return new BlobType(); + } + + + /** + * Method to do inserts. + * + * @param columnValues the values to insert. + * + * @return the primary key of the inserted row. + * + * @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( + BlobTypePeer.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. + * + * @return the primary key of the inserted row. + * + * @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(BlobType obj) throws TorqueException + { + obj.setPrimaryKey(doInsert(buildColumnValues(obj))); + obj.setNew(false); + obj.setModified(false); + } + + /** + * Method to do inserts. This method is to be used during a transaction, + * otherwise use the doInsert(BlobType) 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(BlobType obj, Connection con) + throws TorqueException + { + ObjectKey primaryKey = doInsert(buildColumnValues(obj), con); + if (primaryKey != null) + { + obj.setPrimaryKey(primaryKey); + } + obj.setNew(false); + obj.setModified(false); + } + + /** + * 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( + BlobTypePeer.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. + * + * @param columnValues the values to update plus the primary key + * identifying the row to update. + * @param con the connection to use, not null. + * + * @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, Connection con) + throws TorqueException + { + Criteria selectCriteria + = new Criteria(BlobTypePeer.DATABASE_NAME); + correctBooleans(columnValues); + + { + JdbcTypedValue pkValue + = columnValues.remove(BlobTypePeer.ID); + if (pkValue == null) + { + throw new TorqueException( + "The value for the primary key column " + + "BlobTypePeer.ID" + + " must be set"); + } + if (pkValue.getSqlExpression() == null) + { + selectCriteria.where( + BlobTypePeer.ID, + pkValue.getValue()); + } + else + { + selectCriteria.where( + BlobTypePeer.ID, + pkValue.getSqlExpression()); + } + } + + + int rowCount = doUpdate(selectCriteria, columnValues, con); + return rowCount; + } + + /** + * Updates an BlobType in the database. + * The primary key is used to identify the object to update. + * + * @param obj the data object to update in the database. + * + * @return the number of affected rows. + * + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + */ + public int doUpdate(BlobType obj) throws TorqueException + { + ColumnValues columnValues = buildColumnValues(obj); + int result = doUpdate(columnValues); + obj.setModified(false); + return result; + } + + /** + * Updates a BlobType in the database. + * The primary key is used to identify the object to update. + * This method is to be used during a transaction, + * otherwise the doUpdate(BlobType) method can be used. + * + * @param obj the data object to update in the database. + * @param con the connection to use, not null. + + * @return the number of affected rows. + * + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + */ + public int doUpdate(BlobType obj, Connection con) + throws TorqueException + { + ColumnValues columnValues = buildColumnValues(obj); + int result = doUpdate(columnValues, con); + obj.setModified(false); + return result; + } + + /** + * Deletes a data object, i.e. a row in a table, in the database. + * + * @param obj the data object to delete in the database, not null. + * + * @return the number of deleted rows. + * + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + */ + public int doDelete(BlobType obj) throws TorqueException + { + int result = doDelete(buildCriteria(obj.getPrimaryKey())); + obj.setDeleted(true); + return result; + } + + /** + * Deletes a data object, i.e. a row in a table, in the database. + * This method is to be used during a transaction, otherwise use the + * doDelete(BlobType) method. + * + * @param obj the data object to delete in the database, not null. + * @param con the connection to use, not null. + * + * @return the number of deleted rows. + * + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + */ + public int doDelete(BlobType obj, Connection con) + throws TorqueException + { + int result = doDelete(buildCriteria(obj.getPrimaryKey()), con); + obj.setDeleted(true); + return result; + } + + /** + * Deletes data objects, i.e. rows in a table, in the database. + * + * @param objects the data object to delete in the database, not null, + * may not contain null. + * + * @return the number of deleted rows. + * + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + */ + public int doDelete(Collection<BlobType> objects) + throws TorqueException + { + int result = doDelete(buildPkCriteria(objects)); + for (BlobType object : objects) + { + object.setDeleted(true); + } + return result; + } + + /** + * Deletes data objects, i.e. rows in a table, in the database. + * This method uses the passed connection to delete the rows; + * if a transaction is open in the connection, the deletion happens inside + * this transaction. + * + * @param objects the data objects to delete in the database, not null, + * may not contain null. + * @param con the connection to use for deleting, not null. + * + * @return the number of deleted rows. + * + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + */ + public int doDelete( + Collection<BlobType> objects, + Connection con) + throws TorqueException + { + int result = doDelete(buildPkCriteria(objects), con); + for (BlobType object : objects) + { + object.setDeleted(true); + } + return result; + } + + /** + * Deletes a row in the database. + * + * @param pk the ObjectKey that identifies the row to delete. + * + * @return the number of deleted rows. + * + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + */ + public int doDelete(ObjectKey pk) throws TorqueException + { + Connection connection = null; + try + { + connection = Transaction.begin( + BlobTypePeer.DATABASE_NAME); + int deletedRows = doDelete(pk, connection); + Transaction.commit(connection); + connection = null; + return deletedRows; + } + finally + { + if (connection != null) + { + Transaction.safeRollback(connection); + } + } + } + + /** + * Deletes a row in the database. + * This method is to be used during a transaction, + * otherwise use the doDelete(ObjectKey) method. + * + * @param pk the ObjectKey that identifies the row to delete. + * @param con the connection to use for deleting, not null. + * + * @return the number of deleted rows. + * + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + */ + public int doDelete(ObjectKey pk, Connection con) + throws TorqueException + { + return doDelete(buildCriteria(pk), con); + } + + /** + * Build a Criteria object which selects all objects which have a given + * primary key. + * + * @param pk the primary key value to build the criteria from, not null. + */ + public Criteria buildCriteria(ObjectKey pk) + { + Criteria criteria = new Criteria(); + criteria.and(BlobTypePeer.ID, pk); + return criteria; + } + + /** + * Build a Criteria object which selects all objects which primary keys + * are contained in the passed collection. + * + * @param pks the primary key values to build the criteria from, not null, + * may not contain null. + */ + public Criteria buildCriteria(Collection<ObjectKey> pks) + { + Criteria criteria = new Criteria(); + criteria.andIn(BlobTypePeer.ID, pks); + return criteria; + } + + + /** + * Build a Criteria object which selects all passed objects using their + * primary key. Objects which do not yet have a primary key are ignored. + * + * @param objects the objects to build the criteria from, not null, + * may not contain null. + */ + public Criteria buildPkCriteria( + Collection<BlobType> objects) + { + List<ObjectKey> pks = new ArrayList<ObjectKey>(objects.size()); + for (BlobType object : objects) + { + ObjectKey pk = object.getPrimaryKey(); + if (pk != null) + { + pks.add(pk); + } + } + return buildCriteria(pks); + } + + /** + * Build a Criteria object from the data object for this peer. + * The primary key columns are only added if the object is not new. + * + * @param obj the object to build the criteria from, not null. + */ + public Criteria buildCriteria(BlobType obj) + { + Criteria criteria = new Criteria(BlobTypePeer.DATABASE_NAME); + if (!obj.isNew()) + { + criteria.and(BlobTypePeer.ID, obj.getId()); + } + criteria.and(BlobTypePeer.BLOB_VALUE, obj.getBlobValue()); + criteria.and(BlobTypePeer.BLOB_OBJECT_VALUE, obj.getBlobObjectValue()); + return criteria; + } + + /** + * 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 Criteria buildSelectCriteria(BlobType obj) + { + Criteria criteria = new Criteria(BlobTypePeer.DATABASE_NAME); + if (!obj.isNew()) + { + criteria.and(BlobTypePeer.ID, obj.getId()); + } + return criteria; + } + + /** + * 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 ColumnValues buildColumnValues(BlobType blobType) + throws TorqueException + { + ColumnValues columnValues = new ColumnValues(); + if (!blobType.isNew() + || blobType.getId() != 0L) + { + columnValues.put( + BlobTypePeer.ID, + new JdbcTypedValue( + blobType.getId(), + -5)); + } + columnValues.put( + BlobTypePeer.BLOB_VALUE, + new JdbcTypedValue( + blobType.getBlobValue(), + 2004)); + columnValues.put( + BlobTypePeer.BLOB_OBJECT_VALUE, + new JdbcTypedValue( + blobType.getBlobObjectValue(), + 2004)); + return columnValues; + } + + /** + * Retrieve a single object by pk + * + * @param pk the primary key + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + * @throws NoRowsException Primary key was not found in database. + * @throws TooManyRowsException Primary key was not found in database. + */ + public BlobType retrieveByPK(long pk) + throws TorqueException, NoRowsException, TooManyRowsException + { + return retrieveByPK(SimpleKey.keyFor(pk)); + } + + /** + * Retrieve a single object by pk + * + * @param pk the primary key + * @param con the connection to use + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + * @throws NoRowsException Primary key was not found in database. + * @throws TooManyRowsException Primary key was not found in database. + */ + public BlobType retrieveByPK(long pk, Connection con) + throws TorqueException, NoRowsException, TooManyRowsException + { + return retrieveByPK(SimpleKey.keyFor(pk), con); + } + + + + + /** + * Retrieve a single object by pk + * + * @param pk the primary key + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + * @throws NoRowsException Primary key was not found in database. + * @throws TooManyRowsException Primary key was not found in database. + */ + public BlobType retrieveByPK(ObjectKey pk) + throws TorqueException, NoRowsException, TooManyRowsException + { + Connection connection = null; + try + { + connection = Transaction.begin(BlobTypePeer.DATABASE_NAME); + BlobType result = retrieveByPK(pk, connection); + Transaction.commit(connection); + connection = null; + return result; + } + finally + { + if (connection != null) + { + Transaction.safeRollback(connection); + } + } + } + + /** + * Retrieve a single object by pk + * + * @param pk the primary key + * @param con the connection to use + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + * @throws NoRowsException Primary key was not found in database. + * @throws TooManyRowsException Primary key was not found in database. + */ + public BlobType retrieveByPK(ObjectKey pk, Connection con) + throws TorqueException, NoRowsException, TooManyRowsException + { + Criteria criteria = buildCriteria(pk); + List<BlobType> v = doSelect(criteria, con); + if (v.size() == 0) + { + throw new NoRowsException("Failed to select a row."); + } + else if (v.size() > 1) + { + throw new TooManyRowsException("Failed to select only one row."); + } + else + { + return (BlobType)v.get(0); + } + } + + + /** + * Retrieve a multiple objects by pk + * + * @param pks List of primary keys + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + */ + public List<BlobType> retrieveByPKs(Collection<ObjectKey> pks) + throws TorqueException + { + Connection connection = null; + try + { + connection = Transaction.begin(BlobTypePeer.DATABASE_NAME); + List<BlobType> result = retrieveByPKs(pks, connection); + Transaction.commit(connection); + connection = null; + return result; + } + finally + { + if (connection != null) + { + Transaction.safeRollback(connection); + } + } + } + + /** + * Retrieve multiple objects by pk + * + * @param pks List of primary keys + * @param dbcon the connection to use + * @throws TorqueException Any exceptions caught during processing will be + * rethrown wrapped into a TorqueException. + */ + public List<BlobType> retrieveByPKs( + Collection<ObjectKey> pks, + Connection dbcon) + throws TorqueException + { + if (pks == null || pks.size() == 0) + { + return new ArrayList<BlobType>(); + } + Criteria criteria = buildCriteria(pks); + List<BlobType> result = doSelect(criteria, dbcon); + return result; + } + + + + + + + + +} --------------------------------------------------------------------- To unsubscribe, e-mail: torque-dev-unsubscr...@db.apache.org For additional commands, e-mail: torque-dev-h...@db.apache.org