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