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