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

Reply via email to