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]>

Reply via email to