froehlich 01/11/09 08:35:56
Modified: apps/db/src/java/org/apache/avalon/db/basic/actions
BasicSelect.java
Log:
added select support
Revision Changes Path
1.5 +50 -19
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicSelect.java
Index: BasicSelect.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicSelect.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- BasicSelect.java 2001/11/09 13:16:48 1.4
+++ BasicSelect.java 2001/11/09 16:35:56 1.5
@@ -1,4 +1,3 @@
-
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
@@ -14,51 +13,83 @@
import org.apache.avalon.db.actions.impl.AbstractAction;
import org.apache.avalon.db.data.impl.AbstractTableRow;
import org.apache.avalon.db.results.RowSet;
+import org.apache.avalon.db.results.Columns;
import org.apache.avalon.db.basic.data.BasicTable;
-import org.w3c.dom.Document;
+import org.apache.avalon.db.basic.results.BasicRowSet;
+import org.apache.avalon.db.basic.results.BasicColumns;
+import org.apache.avalon.db.utils.RhinoHelper;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
-
+import java.util.Vector;
+import java.util.Iterator;
+import java.sql.SQLException;
/**
- * Class BasicSelect
- *
- *
+ * This class represents a the BasicSelect action impl.
* @author Gerhard Froehlich <a href="mailto:[EMAIL PROTECTED]">[EMAIL
PROTECTED]</a>
+ * @version
*/
public class BasicSelect extends AbstractAction implements
Select,ParameterAdaptable {
+ private RowSet mRowSet;
+ private Columns mColumns;
private Element mRootElement;
private boolean mPrepared;
private boolean mWithParams;
private int mParamCount;
/**
- * Constructor BCELInsert
- *
+ * The Constructor
*
- * @param table
* @param document
- *
*/
public BasicSelect(Element rootElement) {
mRootElement = rootElement;
}
/**
- * Method execute
- *
- *
+ * The execute method for this action
*/
public void execute() throws ActionException {
- System.out.println("select execute");
-
- if(getPrepared()) {
- //only check params and stuff
- //no results
+ StringBuffer strbuf = new StringBuffer();
+ Vector selectedRows = new Vector();
+ //Rhino makes problems...causes EOFException...
+ //RhinoHelper = new RhinoHelper();
+ BasicTable table = null;
+ String tablename = "";
+ try {
+ NodeList subRootNodes = mRootElement.getChildNodes();
+ /** traverse the dom tree */
+ System.out.println("traverse the dom tree");
+ for (int i = 0 ; i < subRootNodes.getLength(); i++) {
+ if (subRootNodes.item(i).getNodeName().equals("columns")) {
+ //TODO process colums and store them temporary for
+ //further usage...
+ } else if
(subRootNodes.item(i).getNodeName().equals("from")) {
+ NodeList subFromNodes =
subRootNodes.item(i).getChildNodes();
+ for(int j = 0; j < subFromNodes.getLength(); j++) {
+ if
(subFromNodes.item(j).getNodeName().equals("table")) {
+ //ToDo store the tablename for further lookups
+ Element rowNode = (Element)subFromNodes.item(j);
+ tablename = rowNode.getAttribute("name");
+ System.out.println("tablename=" + tablename);
+ table = (BasicTable)
mDatabasePersistor.getTable(tablename);
+ }
+ }
+ } //implement where clause
+ }
+
+ Iterator it = table.getRows().iterator();
+ while (it.hasNext()) {
+ selectedRows.add(it.next());
+ }
+ mColumns = new BasicColumns();
+ mRowSet = new BasicRowSet(mColumns,selectedRows);
+ } catch (Exception e) {
+ e.printStackTrace();
}
}
@@ -83,7 +114,7 @@
}
public RowSet getRowSet() {
- return null;
+ return mRowSet;
}
public int getParamCount() {
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>