[prev in list] [next in list] [prev in thread] [next in thread]
List: xml-cocoon-cvs
Subject: cvs commit: xml-cocoon/src/org/apache/cocoon/acting DatabaseUpdateAction.java DatabaseDeleteAction.j
From: bloritsch () apache ! org
Date: 2001-02-27 16:49:19
[Download RAW message or body]
bloritsch 01/02/27 08:49:19
Modified: src/org/apache/cocoon/acting Tag: xml-cocoon2
DatabaseUpdateAction.java DatabaseDeleteAction.java
DatabaseAddAction.java ComposerAction.java
AbstractDatabaseAction.java
Log:
Added various NullPointer Fixes. It is still fairly fragile though...
Revision Changes Path
No revision
No revision
1.1.2.7 +11 -7 \
xml-cocoon/src/org/apache/cocoon/acting/Attic/DatabaseUpdateAction.java
Index: DatabaseUpdateAction.java
===================================================================
RCS file: /home/cvs/xml-cocoon/src/org/apache/cocoon/acting/Attic/DatabaseUpdateAction.java,v
retrieving revision 1.1.2.6
retrieving revision 1.1.2.7
diff -u -r1.1.2.6 -r1.1.2.7
--- DatabaseUpdateAction.java 2001/02/26 22:23:33 1.1.2.6
+++ DatabaseUpdateAction.java 2001/02/27 16:49:12 1.1.2.7
@@ -40,7 +40,7 @@
* only one table at a time to update.
*
* @author <a href="mailto:bloritsch@apache.org">Berin Loritsch</a>
- * @version CVS $Revision: 1.1.2.6 $ $Date: 2001/02/26 22:23:33 $
+ * @version CVS $Revision: 1.1.2.7 $ $Date: 2001/02/27 16:49:12 $
*/
public class DatabaseUpdateAction extends AbstractDatabaseAction {
private static final Map updateStatements = new HashMap();
@@ -58,7 +58,13 @@
Configuration conf = \
this.getConfiguration(param.getParameter("form-descriptor", null)); String query = \
this.getUpdateQuery(conf); datasource = this.getDataSource(conf);
+
+ getLogger().info("The datasource used is: " + datasource);
+
conn = datasource.getConnection();
+
+ getLogger().info("The connection used is: " + conn);
+
HttpRequest request = (HttpRequest) \
objectModel.get(Constants.REQUEST_OBJECT);
PreparedStatement statement = conn.prepareStatement(query);
@@ -69,17 +75,13 @@
for (int i = currentIndex; values.hasNext(); i++) {
Configuration itemConf = (Configuration) values.next();
- String parameter = itemConf.getAttribute("param");
- Object value = request.get(parameter);
- this.setColumn(statement, i, value, itemConf);
+ this.setColumn(statement, i, request, itemConf);
currentIndex = i;
}
for (int i = currentIndex; keys.hasNext(); i++) {
Configuration itemConf = (Configuration) keys.next();
- String parameter = itemConf.getAttribute("param");
- Object value = request.get(parameter);
- this.setColumn(statement, i, value, itemConf);
+ this.setColumn(statement, i, request, itemConf);
}
statement.execute();
@@ -146,6 +148,8 @@
queryBuffer.append(((Configuration) \
keys.next()).getAttribute("dbcol")); queryBuffer.append(" = ?");
}
+
+ query = queryBuffer.toString();
}
DatabaseUpdateAction.updateStatements.put(conf, query);
1.1.2.4 +4 -4 \
xml-cocoon/src/org/apache/cocoon/acting/Attic/DatabaseDeleteAction.java
Index: DatabaseDeleteAction.java
===================================================================
RCS file: /home/cvs/xml-cocoon/src/org/apache/cocoon/acting/Attic/DatabaseDeleteAction.java,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -r1.1.2.3 -r1.1.2.4
--- DatabaseDeleteAction.java 2001/02/26 21:13:39 1.1.2.3
+++ DatabaseDeleteAction.java 2001/02/27 16:49:13 1.1.2.4
@@ -43,7 +43,7 @@
* the keys.
*
* @author <a href="mailto:bloritsch@apache.org">Berin Loritsch</a>
- * @version CVS $Revision: 1.1.2.3 $ $Date: 2001/02/26 21:13:39 $
+ * @version CVS $Revision: 1.1.2.4 $ $Date: 2001/02/27 16:49:13 $
*/
public final class DatabaseDeleteAction extends AbstractDatabaseAction {
private static final Map deleteStatements = new HashMap();
@@ -70,9 +70,7 @@
for (int i = 1; keys.hasNext(); i++) {
Configuration itemConf = (Configuration) keys.next();
- String parameter = itemConf.getAttribute("param");
- Object value = request.get(parameter);
- this.setColumn(statement, i, value, itemConf);
+ this.setColumn(statement, i, request, itemConf);
}
statement.execute();
@@ -124,6 +122,8 @@
queryBuffer.append(((Configuration) \
keys.next()).getAttribute("dbcol")); queryBuffer.append(" = ?");
}
+
+ query = queryBuffer.toString();
}
DatabaseDeleteAction.deleteStatements.put(conf, query);
1.1.2.4 +4 -4 \
xml-cocoon/src/org/apache/cocoon/acting/Attic/DatabaseAddAction.java
Index: DatabaseAddAction.java
===================================================================
RCS file: /home/cvs/xml-cocoon/src/org/apache/cocoon/acting/Attic/DatabaseAddAction.java,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -r1.1.2.3 -r1.1.2.4
--- DatabaseAddAction.java 2001/02/26 22:22:08 1.1.2.3
+++ DatabaseAddAction.java 2001/02/27 16:49:13 1.1.2.4
@@ -40,7 +40,7 @@
* only one table at a time to update.
*
* @author <a href="mailto:bloritsch@apache.org">Berin Loritsch</a>
- * @version CVS $Revision: 1.1.2.3 $ $Date: 2001/02/26 22:22:08 $
+ * @version CVS $Revision: 1.1.2.4 $ $Date: 2001/02/27 16:49:13 $
*/
public class DatabaseAddAction extends AbstractDatabaseAction {
private static final Map addStatements = new HashMap();
@@ -68,9 +68,7 @@
for (int i = currentIndex; values.hasNext(); i++) {
Configuration itemConf = (Configuration) values.next();
- String parameter = itemConf.getAttribute("param");
- Object value = request.get(parameter);
- this.setColumn(statement, i, value, itemConf);
+ this.setColumn(statement, i, request, itemConf);
currentIndex = i;
}
@@ -137,6 +135,8 @@
queryBuffer.append("?");
}
+
+ query = queryBuffer.toString();
}
DatabaseAddAction.addStatements.put(conf, query);
1.1.2.4 +3 -2 \
xml-cocoon/src/org/apache/cocoon/acting/Attic/ComposerAction.java
Index: ComposerAction.java
===================================================================
RCS file: /home/cvs/xml-cocoon/src/org/apache/cocoon/acting/Attic/ComposerAction.java,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -r1.1.2.3 -r1.1.2.4
--- ComposerAction.java 2001/02/12 13:30:43 1.1.2.3
+++ ComposerAction.java 2001/02/27 16:49:14 1.1.2.4
@@ -9,6 +9,7 @@
import org.apache.avalon.Composer;
import org.apache.avalon.ComponentManager;
+import org.apache.avalon.ComponentManagerException;
import org.apache.cocoon.Cocoon;
/**
@@ -16,7 +17,7 @@
* that extends this to access SitemapComponents.
*
* @author <a href="mailto:Giacomo.Pati@pwr.ch">Giacomo Pati</a>
- * @version CVS $Revision: 1.1.2.3 $ $Date: 2001/02/12 13:30:43 $
+ * @version CVS $Revision: 1.1.2.4 $ $Date: 2001/02/27 16:49:14 $
*/
public abstract class ComposerAction extends AbstractAction implements Composer {
@@ -27,7 +28,7 @@
* Set the current <code>ComponentManager</code> instance used by this
* <code>Composer</code>.
*/
- public void compose(ComponentManager manager) {
+ public void compose(ComponentManager manager) throws ComponentManagerException \
{ this.manager=manager;
}
}
1.1.2.5 +35 -14 \
xml-cocoon/src/org/apache/cocoon/acting/Attic/AbstractDatabaseAction.java
Index: AbstractDatabaseAction.java
===================================================================
RCS file: /home/cvs/xml-cocoon/src/org/apache/cocoon/acting/Attic/AbstractDatabaseAction.java,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -u -r1.1.2.4 -r1.1.2.5
--- AbstractDatabaseAction.java 2001/02/26 22:53:39 1.1.2.4
+++ AbstractDatabaseAction.java 2001/02/27 16:49:15 1.1.2.5
@@ -32,6 +32,7 @@
import org.xml.sax.InputSource;
import org.apache.avalon.Component;
+import org.apache.avalon.ComponentManager;
import org.apache.avalon.ComponentSelector;
import org.apache.avalon.ComponentManagerException;
import org.apache.avalon.Configurable;
@@ -44,6 +45,7 @@
import org.apache.cocoon.Roles;
import org.apache.cocoon.Constants;
import org.apache.cocoon.ProcessingException;
+import org.apache.cocoon.environment.http.HttpRequest;
import org.apache.cocoon.generation.ImageDirectoryGenerator;
import org.apache.cocoon.components.url.URLFactory;
import org.apache.cocoon.components.parser.Parser;
@@ -139,7 +141,7 @@
* </table>
*
* @author <a href="mailto:bloritsch@apache.org">Berin Loritsch</a>
- * @version CVS $Revision: 1.1.2.4 $ $Date: 2001/02/26 22:53:39 $
+ * @version CVS $Revision: 1.1.2.5 $ $Date: 2001/02/27 16:49:15 $
*/
public abstract class AbstractDatabaseAction extends ComposerAction implements \
Configurable { private static Map configurations = new HashMap();
@@ -168,6 +170,15 @@
}
/**
+ * Compose the Actions so that we can select our databases.
+ */
+ public void compose(ComponentManager manager) throws ComponentManagerException \
{ + this.dbselector = (ComponentSelector) \
manager.lookup(Roles.DB_CONNECTION); +
+ super.compose(manager);
+ }
+
+ /**
* Set up the Database environment so that the configuration for the
* Form is handled properly. Please note that multiple Actions can
* share the same configurations. By using this approach, we can
@@ -238,16 +249,26 @@
/**
* Set the Statement column so that the results are mapped correctly.
*/
- protected final void setColumn(PreparedStatement statement, int position, \
Object value, Configuration entry) throws Exception { + protected final void \
setColumn(PreparedStatement statement, int position, HttpRequest request, \
Configuration entry) throws Exception {
Integer typeObject = (Integer) \
AbstractDatabaseAction.typeConstants.get(entry.getAttribute("type"));
if (typeObject == null) {
throw new SQLException("Can't set column because the type is \
invalid"); }
+ String attribute = entry.getAttribute("param", "");
+ String value = request.getParameter(attribute);
+
+ getLogger().info("Setting parameter '" + attribute + "' to: " + value);
+
+ if (value == null) {
+ statement.setNull(position, typeObject.intValue());
+ return;
+ }
+
switch (typeObject.intValue()) {
case Types.CLOB:
- File asciiFile = (File) value;
+ File asciiFile = (File) request.get(attribute);
FileInputStream asciiStream = new FileInputStream(asciiFile);
statement.setAsciiStream(position, asciiStream, (int) \
asciiFile.length()); break;
@@ -255,39 +276,39 @@
statement.setBigDecimal(position, new BigDecimal((String) value));
break;
case Types.BLOB:
- File binaryFile = (File) value;
+ File binaryFile = (File) request.get(attribute);
FileInputStream binaryStream = new FileInputStream(binaryFile);
statement.setBinaryStream(position, binaryStream, (int) \
binaryFile.length()); break;
case Types.TINYINT:
- statement.setByte(position, (new Byte((String) \
value)).byteValue()); + statement.setByte(position, (new \
Byte(value)).byteValue()); break;
case Types.VARCHAR:
- statement.setString(position, (String) value);
+ statement.setString(position, value);
break;
case Types.DATE:
- statement.setDate(position, new Date(this.dateValue((String) \
value, entry.getAttribute("format", "M/d/yyyy")))); + \
statement.setDate(position, new Date(this.dateValue(value, \
entry.getAttribute("format", "M/d/yyyy")))); break;
case Types.DOUBLE:
- statement.setDouble(position, (new Double((String) \
value)).doubleValue()); + statement.setDouble(position, (new \
Double(value)).doubleValue()); break;
case Types.FLOAT:
- statement.setFloat(position, (new Float((String) \
value)).floatValue()); + statement.setFloat(position, (new \
Float(value)).floatValue()); break;
case Types.INTEGER:
- statement.setInt(position, (new Integer((String) \
value)).intValue()); + statement.setInt(position, (new \
Integer(value)).intValue()); break;
case Types.NUMERIC:
- statement.setLong(position, (new Long((String) \
value)).longValue()); + statement.setLong(position, (new \
Long(value)).longValue()); break;
case Types.SMALLINT:
- statement.setShort(position, (new Short((String) \
value)).shortValue()); + statement.setShort(position, (new \
Short(value)).shortValue()); break;
case Types.TIME:
- statement.setTime(position, new Time(this.dateValue((String) \
value, entry.getAttribute("format", "h:m:s a")))); + \
statement.setTime(position, new Time(this.dateValue(value, \
entry.getAttribute("format", "h:m:s a")))); break;
case Types.TIMESTAMP:
- statement.setTimestamp(position, new \
Timestamp(this.dateValue((String) value, entry.getAttribute("format", "M/d/yyyy h:m:s \
a")))); + statement.setTimestamp(position, new \
Timestamp(this.dateValue(value, entry.getAttribute("format", "M/d/yyyy h:m:s a")))); \
break; case Types.OTHER:
statement.setTimestamp(position, new Timestamp((new \
java.util.Date()).getTime()));
----------------------------------------------------------------------
In case of troubles, e-mail: webmaster@xml.apache.org
To unsubscribe, e-mail: cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic