You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by ha...@apache.org on 2001/11/09 12:16:59 UTC
cvs commit: jakarta-avalon-cornerstone/apps/db/src/xdocs/lxsqlsamples select01.txt
hammant 01/11/09 03:16:59
Modified: apps/db/src/java/org/apache/avalon/db/actions/impl
AbstractAction.java
apps/db/src/java/org/apache/avalon/db/basic/actions
BasicCreateTable.java
apps/db/src/java/org/apache/avalon/db/basic/parser
BasicLXSQLParser.java
apps/db/src/java/org/apache/avalon/db/data/impl
AbstractTable.java
Added: apps/db/src/java/org/apache/avalon/db/basic/actions
BasicCreateView.java
apps/db/src/java/org/apache/avalon/db/basic/data
BasicView.java
apps/db/src/java/org/apache/avalon/db/data/impl
AbstractView.java
apps/db/src/xdocs/lxsqlsamples select01.txt
Log:
start of basic view
Revision Changes Path
1.2 +15 -0 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/actions/impl/AbstractAction.java
Index: AbstractAction.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/actions/impl/AbstractAction.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AbstractAction.java 2001/11/07 12:24:20 1.1
+++ AbstractAction.java 2001/11/09 11:16:59 1.2
@@ -8,6 +8,7 @@
package org.apache.avalon.db.actions.impl;
import org.apache.avalon.db.services.DatabasePersistor;
+import org.apache.avalon.db.actions.ActionException;
public class AbstractAction {
@@ -16,5 +17,19 @@
public void setDatabasePersistor(DatabasePersistor databasePersistor) {
mDatabasePersistor = databasePersistor;
}
+
+ protected Class getJavaType(String sqlType) throws ActionException {
+
+ System.out.println("Type=(" + sqlType + ")");
+
+ if (sqlType.equals("varchar")) {
+ return String.class;
+ } else if (sqlType.equals("char")) {
+ return String.class;
+ }
+
+ throw new ActionException("Type " + sqlType + " not supported yet");
+ }
+
}
1.2 +38 -4 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicCreateTable.java
Index: BasicCreateTable.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicCreateTable.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- BasicCreateTable.java 2001/11/07 12:24:20 1.1
+++ BasicCreateTable.java 2001/11/09 11:16:59 1.2
@@ -13,7 +13,12 @@
import org.apache.avalon.db.actions.impl.AbstractAction;
import org.apache.avalon.db.data.Column;
import org.apache.avalon.db.data.Table;
+import org.apache.avalon.db.data.impl.DefaultColumn;
import org.apache.avalon.db.basic.data.BasicTable;
+import org.apache.avalon.db.services.DatabasePersistor;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.Node;
import java.util.Vector;
@@ -30,6 +35,7 @@
private String mTableName;
private Column[] mColumns;
private int mRecordCount;
+ private Element mLxsql;
/**
* Constructor BCELCreateTable
@@ -39,14 +45,12 @@
* @param tableName
*
*/
- public BasicCreateTable(String tableName, Vector columns) {
+ public BasicCreateTable(String tableName, Element lxsql) {
mTableName = tableName;
- mColumns = new Column[columns.size()];
- columns.toArray(mColumns);
+ mLxsql = lxsql;
}
-
/**
* Method execute
*
@@ -55,6 +59,36 @@
public void execute() throws ActionException {
System.out.println("ct execute");
+
+ NodeList subRootNodes = mLxsql.getChildNodes();
+
+ Vector columns = new Vector();
+
+ 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();
+ String fieldType = getJavaType(sqlFieldType).toString();
+ Column column = new DefaultColumn(fieldName, sqlFieldType, fieldType);
+ columns.add(column);
+ } 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.
+ columns.toArray(mColumns);
+
/*
if (mDatabasePersistor.tableExists(mTableName)) {
1.1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicCreateView.java
Index: BasicCreateView.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE file.
*/
package org.apache.avalon.db.basic.actions;
import org.apache.avalon.db.actions.CreateTable;
import org.apache.avalon.db.actions.ActionException;
import org.apache.avalon.db.actions.impl.AbstractAction;
import org.apache.avalon.db.data.Column;
import org.apache.avalon.db.data.Table;
import org.apache.avalon.db.basic.data.BasicTable;
import org.apache.avalon.db.services.DatabasePersistor;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Element;
import java.util.Vector;
/**
* Class BCELCreateTable
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
* @version $Revision: 1.1 $
*/
public class BasicCreateView extends AbstractAction implements CreateTable {
private String mViewName;
private BasicCreateTable basicCreateTable;
private BasicSelect basicSelect;
/**
* Constructor BCELCreateTable
*
*
* @param pendingClass
* @param tableName
*
*/
public BasicCreateView(String viewName, Document lxsql) {
mViewName = viewName;
NodeList subRootNodes = lxsql.getChildNodes();
for (int i = 0; i < subRootNodes.getLength(); i++) {
if (subRootNodes.item(i).getNodeName().equals("create-table")) {
basicCreateTable = new BasicCreateTable(viewName, (Element) subRootNodes.item(i));
} else if (subRootNodes.item(i).getNodeName().equals("select-simple")) {
//basicSelect = new BasicSelect(tableName, (Element) subRootNodes.item(i));
// TODO
}
}
}
/**
* Method execute
*
*
*/
public void execute() throws ActionException {
System.out.println("cv execute");
if (basicCreateTable != null) {
basicCreateTable.execute();
}
if (basicSelect != null) {
basicSelect.execute();
}
}
public void setDatabasePersistor(DatabasePersistor databasePersistor) {
super.setDatabasePersistor(databasePersistor);
if (basicCreateTable != null) {
basicCreateTable.setDatabasePersistor(databasePersistor);
}
if (basicSelect != null) {
basicSelect.setDatabasePersistor(databasePersistor);
}
}
public int getRecordCount() {
//return basicSelect.get..
return 0; //TODO
}
}
1.1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/data/BasicView.java
Index: BasicView.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE file.
*/
package org.apache.avalon.db.basic.data;
import org.apache.avalon.db.data.impl.AbstractView;
import org.apache.avalon.db.data.Column;
/**
* Class BasicView
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
* @version $Revision: 1.1 $
*/
public class BasicView extends AbstractView {
public BasicView(String name, Column[] columns) {
super(name, columns);
}
public int getColumnIndex(String columnName) {
for (int x = 0; x < mColumns.length; x++) {
if (mColumns[x].getColumnName().equals(columnName)) {
return x;
}
}
return -1;
}
}
1.2 +1 -31 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/parser/BasicLXSQLParser.java
Index: BasicLXSQLParser.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/parser/BasicLXSQLParser.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- BasicLXSQLParser.java 2001/11/07 13:28:35 1.1
+++ BasicLXSQLParser.java 2001/11/09 11:16:59 1.2
@@ -76,39 +76,9 @@
Document doc = parseLXSQLString(request.getSql());
Element rootElement = doc.getDocumentElement();
- getLogger().debug("rootElement=" + rootElement.getTagName());
-
String tableName = rootElement.getAttribute("name");
-
- NodeList subRootNodes = rootElement.getChildNodes();
-
- Vector columns = new Vector();
-
- 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();
- String fieldType = getJavaType(sqlFieldType).toString();
- Column column = new DefaultColumn(fieldName, sqlFieldType, fieldType);
- columns.add(column);
- } 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.
- CreateTable action = new BasicCreateTable(tableName, columns);
+ CreateTable action = new BasicCreateTable(tableName, rootElement);
action.setDatabasePersistor(mDatabasePersistor);
return action;
1.4 +1 -2 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/AbstractTable.java
Index: AbstractTable.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/AbstractTable.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- AbstractTable.java 2001/11/05 18:49:49 1.3
+++ AbstractTable.java 2001/11/09 11:16:59 1.4
@@ -24,7 +24,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
public abstract class AbstractTable extends AbstractRowHolder implements Table {
@@ -37,7 +37,6 @@
*
* @param name
* @param columns
- * @param rowClass
*
*/
public AbstractTable(String name, Column[] columns) {
1.1 jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/AbstractView.java
Index: AbstractView.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE file.
*/
package org.apache.avalon.db.data.impl;
import org.apache.avalon.db.data.Table;
import org.apache.avalon.db.data.RowHolder;
import org.apache.avalon.db.data.Column;
import java.util.Vector;
import java.util.Collections;
import java.util.Collection;
/**
* Class AbstractView
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
* @version $Revision: 1.1 $
*/
public abstract class AbstractView extends AbstractRowHolder implements Table {
private Vector rows = new Vector();
/**
* Constructor AbstractView
*
*
* @param name
* @param columns
*
*/
public AbstractView(String name, Column[] columns) {
super(name, columns);
}
public void addRow(AbstractTableRow atr) {
rows.add(atr);
}
public void removeRow(AbstractTableRow atr) {
rows.remove(atr);
}
public Collection getRows() {
return Collections.unmodifiableCollection(rows);
}
}
1.1 jakarta-avalon-cornerstone/apps/db/src/xdocs/lxsqlsamples/select01.txt
Index: select01.txt
===================================================================
<create-table name="Flintstones">
<columns>
<column name="forename" type="varchar" max="20"/>
<column name="surname" type="varchar" max="20"/>
</columns>
</create-table>
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>