hammant 01/11/13 18:40:29
Modified: apps/db/src/java/org/apache/avalon/db/basic/actions
BasicCreateQueryable.java
Log:
updated type handling
Revision Changes Path
1.5 +37 -13
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicCreateQueryable.java
Index: BasicCreateQueryable.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicCreateQueryable.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- BasicCreateQueryable.java 2001/11/13 09:25:42 1.4
+++ BasicCreateQueryable.java 2001/11/14 02:40:29 1.5
@@ -16,6 +16,13 @@
import org.apache.avalon.db.data.impl.AbstractColumn;
import org.apache.avalon.db.data.impl.VarCharColumn;
import org.apache.avalon.db.data.impl.IntegerColumn;
+import org.apache.avalon.db.data.impl.DateColumn;
+import org.apache.avalon.db.data.impl.TimeColumn;
+import org.apache.avalon.db.data.impl.TimestampColumn;
+import org.apache.avalon.db.data.impl.SmallIntColumn;
+import org.apache.avalon.db.data.impl.RealColumn;
+import org.apache.avalon.db.data.impl.BigIntColumn;
+import org.apache.avalon.db.data.impl.DecimalColumn;
import org.apache.avalon.db.basic.data.BasicTable;
import org.apache.avalon.db.services.DatabasePersistor;
import org.w3c.dom.Element;
@@ -30,7 +37,7 @@
*
*
* @author Paul Hammant <a
href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>
- * @version $Revision: 1.4 $
+ * @version $Revision: 1.5 $
*/
public abstract class BasicCreateQueryable extends AbstractAction implements
CreateTable {
@@ -51,17 +58,7 @@
NodeList subColumnsNodes = subRootNodes.item(f).getChildNodes();
for (int x = 0 ; x < subColumnsNodes.getLength(); x++) {
if (subColumnsNodes.item(x).getNodeName().equals("column")) {
- Node columnNode = subColumnsNodes.item(x);
- String fieldName =
columnNode.getAttributes().getNamedItem("name").getNodeValue();
- String sqlFieldType =
columnNode.getAttributes().getNamedItem("type").getNodeValue();
- Column column = null;
- if (sqlFieldType.equals("varchar")) {
- int maxLength =
Integer.parseInt(columnNode.getAttributes().getNamedItem("max").getNodeValue());
- column= new VarCharColumn(fieldName, maxLength);
- } else if (sqlFieldType.equals("integer")) {
- column= new IntegerColumn(fieldName);
- }
- columns.add(column);
+ columns.add(createColumn(subColumnsNodes.item(x)));
} else {
// TODO There should be no other element types inside
<columns>
}
@@ -80,5 +77,32 @@
}
-
+ protected Column createColumn(Node columnNode) throws ActionException {
+ String sqlFieldType =
columnNode.getAttributes().getNamedItem("type").getNodeValue();
+ String fieldName =
columnNode.getAttributes().getNamedItem("name").getNodeValue();
+ Column column = null;
+ if (sqlFieldType.equals("varchar")) {
+ int maxLength =
Integer.parseInt(columnNode.getAttributes().getNamedItem("max").getNodeValue());
+ column= new VarCharColumn(fieldName, maxLength);
+ } else if (sqlFieldType.equals("integer")) {
+ column= new IntegerColumn(fieldName);
+ } else if (sqlFieldType.equals("date")) {
+ column= new DateColumn(fieldName);
+ } else if (sqlFieldType.equals("time")) {
+ column= new TimeColumn(fieldName);
+ } else if (sqlFieldType.equals("timestamp")) {
+ column= new TimestampColumn(fieldName);
+ } else if (sqlFieldType.equals("smallint")) {
+ column= new SmallIntColumn(fieldName);
+ } else if (sqlFieldType.equals("real")) {
+ column= new RealColumn(fieldName);
+ } else if (sqlFieldType.equals("bigint")) {
+ column= new BigIntColumn(fieldName);
+ } else if (sqlFieldType.equals("decimal")) {
+ column= new DecimalColumn(fieldName);
+ } else {
+ throw new ActionException("Column type " + sqlFieldType + " not
recognised");
+ }
+ return column;
+ }
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>