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