hammant     01/11/04 13:49:42

  Modified:    apps/db/src/java/org/apache/avalon/db/bcel/actions
                        BCELCreateTable.java
               apps/db/src/java/org/apache/avalon/db/bcel/parser
                        LXSQLParser.java
  Log:
  Table contains setters and member vars now.
  
  Revision  Changes    Path
  1.4       +2 -2      
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/bcel/actions/BCELCreateTable.java
  
  Index: BCELCreateTable.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/bcel/actions/BCELCreateTable.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- BCELCreateTable.java      2001/11/04 19:00:19     1.3
  +++ BCELCreateTable.java      2001/11/04 21:49:42     1.4
  @@ -27,7 +27,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
  - * @version $Revision: 1.3 $
  + * @version $Revision: 1.4 $
    */
   public class BCELCreateTable extends AbstractBCELAction implements 
CreateTable {
   
  @@ -67,7 +67,7 @@
           byte[] bytes = mPendingRowClass.getBytes();
           System.out.println("here 1");
           mBCELParser.addGeneratedClass(mTableName, bytes);
  -        //Class rowClass = mBCELSQLParser.getGeneratedClass(mTableName);
  +        //Class rowClass = mBCELParser.getGeneratedClass(mTableName);
           //Table table = new BCELTable(mTableName, (Column[]) 
mColumns.toArray(), rowClass);
           //mDatabasePersistor.addTable(mTableName, table);
       }
  
  
  
  1.5       +29 -14    
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/bcel/parser/LXSQLParser.java
  
  Index: LXSQLParser.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/bcel/parser/LXSQLParser.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- LXSQLParser.java  2001/11/04 19:00:19     1.4
  +++ LXSQLParser.java  2001/11/04 21:49:42     1.5
  @@ -74,7 +74,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
  - * @version $Revision: 1.4 $
  + * @version $Revision: 1.5 $
    */
   public class LXSQLParser extends BaseBCELParser {
   
  @@ -151,7 +151,6 @@
   
               String tableName = rootElement.getAttribute("name");
   
  -            NodeList columnNodes = 
doc.getElementsByTagName("columns/column");
   
               String newTableClassName = createUniqueClassName(tableName);
               ClassGen cg = new ClassGen(newTableClassName,
  @@ -159,24 +158,40 @@
                                      "<SQL Generated>", Constants.ACC_PUBLIC | 
Constants.ACC_SUPER,
                                      null);
               ConstantPoolGen cp = cg.getConstantPool();
  -            Vector columns = new Vector();
  +
  +            NodeList subRootNodes = rootElement.getChildNodes();
   
  -            for ( int i= 0; i < columnNodes.getLength(); i ++ ) {
  -                final Node columnNode = columnNodes.item(i);
  +            Vector columns = new Vector();
   
  -                String fieldName = 
columnNode.getAttributes().getNamedItem("name").getNodeValue();
  -                String sqlFieldType = 
columnNode.getAttributes().getNamedItem("type").getNodeValue();
  -                Type fieldType = getType(sqlFieldType);
  -                Column column = new DefaultColumn(fieldName, sqlFieldType, 
fieldType.toString());
  -
  -                columns.add(column);
  -                createField(cp, cg, fieldType, fieldName);
  -                createSetter(cp, cg, fieldType, fieldName, tableName);
  +            for (int f = 0 ; f < subRootNodes.getLength(); f++) {
  +                if (subRootNodes.item(f).getNodeName().equals("columns")) {
  +                    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();
  +                            Type fieldType = getType(sqlFieldType);
  +                            Column column = new DefaultColumn(fieldName, 
sqlFieldType, fieldType.toString());
  +
  +                            columns.add(column);
  +                            createField(cp, cg, fieldType, fieldName);
  +                            createSetter(cp, cg, fieldType, fieldName, 
tableName);
  +                        } else {
  +                            // TODO  There should be no other element types 
inside <columns>
  +                        }
  +
  +                    }
  +
  +                } else {
  +                    //TODO  Only <columns> is supported in <create-table> so 
far
  +                }
               }
   
               //TODO need to create constrcutor suitable for superclass.
  +
               try {
  -                cg.getJavaClass().dump(tableName + "Row.class");
  +                cg.getJavaClass().dump(newTableClassName + 
"_tableName.class");
               } catch (java.io.IOException e) {
                   System.err.println(e);
               }
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to