You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-dev@db.apache.org by mp...@apache.org on 2003/03/21 09:36:24 UTC
cvs commit: db-torque/src/java/org/apache/torque/util BasePeer.java
mpoeschl 2003/03/21 00:36:23
Modified: src/java/org/apache/torque/util BasePeer.java
Log:
replace StringStack
Revision Changes Path
1.61 +25 -28 db-torque/src/java/org/apache/torque/util/BasePeer.java
Index: BasePeer.java
===================================================================
RCS file: /home/cvs/db-torque/src/java/org/apache/torque/util/BasePeer.java,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -r1.60 -r1.61
--- BasePeer.java 10 Jan 2003 15:33:24 -0000 1.60
+++ BasePeer.java 21 Mar 2003 08:36:23 -0000 1.61
@@ -3,7 +3,7 @@
/* ====================================================================
* The Apache Software License, Version 1.1
*
- * Copyright (c) 2001-2002 The Apache Software Foundation. All rights
+ * Copyright (c) 2001-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -66,11 +66,13 @@
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashSet;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.collections.StringStack;
+import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.apache.torque.Torque;
import org.apache.torque.TorqueException;
@@ -105,6 +107,7 @@
* @author <a href="mailto:jmcnally@collab.net">John D. McNally</a>
* @author <a href="mailto:bmclaugh@algx.net">Brett McLaughlin</a>
* @author <a href="mailto:stephenh@chase3000.com">Stephen Haberman</a>
+ * @author <a href="mailto:mpoeschl@marmot.at">Martin Poeschl</a>
* @version $Id$
*/
public abstract class BasePeer implements java.io.Serializable
@@ -435,8 +438,7 @@
}
/**
- * Method to perform deletes based on values and keys in a
- * Criteria.
+ * Method to perform deletes based on values and keys in a Criteria.
*
* @param criteria The criteria to use.
* @param con A Connection.
@@ -452,7 +454,7 @@
// Set up a list of required tables and add extra entries to
// criteria if directed to delete all related records.
// StringStack.add() only adds element if it is unique.
- StringStack tables = new StringStack();
+ HashSet tables = new HashSet();
Iterator it = criteria.keySet().iterator();
while (it.hasNext())
{
@@ -503,13 +505,14 @@
}
}
}
-
- for (int i = 0; i < tables.size(); i++)
+ Iterator tabIt = tables.iterator();
+ while (tabIt.hasNext())
{
+ String tab = (String) tabIt.next();
KeyDef kd = new KeyDef();
- StringStack whereClause = new StringStack();
+ HashSet whereClause = new HashSet();
- ColumnMap[] columnMaps = dbMap.getTable(tables.get(i)).getColumns();
+ ColumnMap[] columnMaps = dbMap.getTable(tab).getColumns();
for (int j = 0; j < columnMaps.length; j++)
{
ColumnMap colMap = columnMaps[j];
@@ -545,8 +548,8 @@
TableDataSet tds = null;
try
{
- tds = new TableDataSet(con, tables.get(i), kd);
- String sqlSnippet = whereClause.toString(" AND ");
+ tds = new TableDataSet(con, tab, kd);
+ String sqlSnippet = StringUtils.join(whereClause.iterator(), " AND ");
category.debug("BasePeer.doDelete: whereClause=" + sqlSnippet);
@@ -1134,7 +1137,6 @@
criterion.setDB(db);
whereClause.add(criterion.toString());
-
}
List join = criteria.getJoinL();
@@ -1843,8 +1845,7 @@
Connection db = null;
try
{
- db =
- Transaction.beginOptional(
+ db = Transaction.beginOptional(
selectCriteria.getDbName(),
updateValues.isUseTransaction());
doUpdate(selectCriteria, updateValues, db);
@@ -1885,21 +1886,22 @@
// Set up a list of required tables. StringStack.add()
// only adds element if it is unique.
- StringStack tables = new StringStack();
+ HashSet tables = new HashSet();
Iterator it = selectCriteria.keySet().iterator();
while (it.hasNext())
{
tables.add(selectCriteria.getTableName((String) it.next()));
}
- for (int i = 0; i < tables.size(); i++)
+ Iterator tabIt = tables.iterator();
+ while (tabIt.hasNext())
{
+ String tab = (String) tabIt.next();
KeyDef kd = new KeyDef();
- StringStack whereClause = new StringStack();
+ HashSet whereClause = new HashSet();
DatabaseMap tempDbMap = dbMap;
- ColumnMap[] columnMaps =
- tempDbMap.getTable(tables.get(i)).getColumns();
+ ColumnMap[] columnMaps = tempDbMap.getTable(tab).getColumns();
for (int j = 0; j < columnMaps.length; j++)
{
ColumnMap colMap = columnMaps[j];
@@ -1907,8 +1909,7 @@
{
kd.addAttrib(colMap.getColumnName());
}
- String key =
- new StringBuffer(colMap.getTableName())
+ String key = new StringBuffer(colMap.getTableName())
.append('.')
.append(colMap.getColumnName())
.toString();
@@ -1936,8 +1937,8 @@
try
{
// Get affected records.
- tds = new TableDataSet(con, tables.get(i), kd);
- String sqlSnippet = whereClause.toString(" AND ");
+ tds = new TableDataSet(con, tab, kd);
+ String sqlSnippet = StringUtils.join(whereClause.iterator(), " AND ");
category.debug("BasePeer.doUpdate: whereClause=" + sqlSnippet);
tds.where(sqlSnippet);
tds.fetchRecords();
@@ -1949,10 +1950,7 @@
for (int j = 0; j < tds.size(); j++)
{
Record rec = tds.getRecord(j);
- BasePeer.insertOrUpdateRecord(
- rec,
- tables.get(i),
- updateValues);
+ BasePeer.insertOrUpdateRecord(rec, tab, updateValues);
}
}
catch (Exception e)
@@ -2406,7 +2404,6 @@
StringBuffer sb = new StringBuffer();
criterion.appendPsTo(sb, params);
whereClause.add(sb.toString());
-
}
List join = criteria.getJoinL();