haul 2002/08/09 01:34:42 Modified: src/java/org/apache/cocoon/util JDBCTypeConversions.java Log: <action dev="CH" type="add"> Added some more types understood by modular database actions. </action> Revision Changes Path 1.3 +22 -1 xml-cocoon2/src/java/org/apache/cocoon/util/JDBCTypeConversions.java Index: JDBCTypeConversions.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/util/JDBCTypeConversions.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- JDBCTypeConversions.java 2 Jul 2002 08:36:07 -0000 1.2 +++ JDBCTypeConversions.java 9 Aug 2002 08:34:42 -0000 1.3 @@ -70,6 +70,7 @@ import java.text.SimpleDateFormat; import org.apache.avalon.framework.configuration.Configuration; import org.apache.avalon.framework.configuration.ConfigurationException; +import org.apache.excalibur.source.Source; /** @@ -89,6 +90,7 @@ constants.put("ascii", new Integer(Types.CLOB)); constants.put("big-decimal", new Integer(Types.BIGINT)); constants.put("binary", new Integer(Types.BLOB)); + constants.put("boolean", new Integer(Types.BIT)); constants.put("byte", new Integer(Types.TINYINT)); constants.put("string", new Integer(Types.VARCHAR)); constants.put("date", new Integer(Types.DATE)); @@ -277,6 +279,9 @@ } else if (value instanceof JDBCxlobHelper) { asciiStream = ((JDBCxlobHelper) value).inputStream; length = ((JDBCxlobHelper) value).length; + } else if (value instanceof Source) { + asciiStream = ((Source) value).getInputStream(); + length = (int)((Source) value).getContentLength(); } else { String asciiText = (String) value; asciiStream = new BufferedInputStream(new ByteArrayInputStream(asciiText.getBytes())); @@ -395,6 +400,8 @@ case Types.BLOB: if (value instanceof JDBCxlobHelper) { statement.setBinaryStream(position, ((JDBCxlobHelper)value).inputStream, ((JDBCxlobHelper)value).length); + } else if (value instanceof Source){ + statement.setBinaryStream(position, ((Source)value).getInputStream(), (int)((Source)value).getContentLength()); } else { if (value instanceof File) { file = (File)value; @@ -412,11 +419,25 @@ Integer i = null; if (value instanceof Integer) { i = (Integer) value; + } else if (value instanceof java.lang.Number) { + i = new Integer(((java.lang.Number) value).intValue()); } else { - i = new Integer((String) value); + i = new Integer(value.toString()); } statement.setInt(position, i.intValue()); break; + case Types.BIT: + Boolean bo = null; + if (value instanceof Boolean) { + bo = (Boolean) value; + } else if (value instanceof java.lang.Number) { + bo = new Boolean(((java.lang.Number) value).intValue()==1); + } else { + bo = new Boolean(value.toString()); + } + statement.setBoolean(position, bo.booleanValue()); + break; + default: throw new SQLException("Impossible exception - invalid type "); }
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]