hammant     01/11/13 07:02:05

  Modified:    apps/db/src/java/org/apache/avalon/db/basic/actions
                        BasicSelect.java
  Log:
  setup of select and execution now separate
  
  Revision  Changes    Path
  1.17      +22 -28    
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.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- BasicSelect.java  2001/11/13 14:16:23     1.16
  +++ BasicSelect.java  2001/11/13 15:02:05     1.17
  @@ -43,7 +43,10 @@
       private boolean mPrepared;
       private boolean mWithParams;
       private int mParamCount;
  -    StringBuffer mWhereBuffer = new StringBuffer();
  +    private StringBuffer mWhereBuffer = new StringBuffer();
  +    private BasicTable mTable = null;
  +    private String[] mCols;
  +    private String[] mTablenames;
   
       /**
        * The Constructor
  @@ -55,7 +58,12 @@
       }
   
       public void initialize() throws ActionException {
  -        getLogger().debug("TEST");
  +        getLogger().debug("BasicSelect.initialize()");
  +        mCols = parseSelect(mRootElement);
  +        mTablenames = parseFrom(mRootElement);
  +        parseLXSQL(mRootElement);
  +        System.out.println("cols.length=" + mCols.length);
  +        System.out.println("tablenames.length=" + mTablenames.length);
       }
   
       /**
  @@ -64,45 +72,31 @@
       public void execute() throws ActionException {
           StringBuffer strbuf = new StringBuffer();
           Vector selectedRows = new Vector();
  -        BasicTable table = null;
  -        String[] cols;
  -        String[] tablenames;
  -        Object[] selectedrow = null;
  +        Object[] selectedRow = null;
   
  -        System.out.println("execute(): select without params");
  -        if(true) {
  -            cols = parseSelect(mRootElement);
  -            tablenames = parseFrom(mRootElement);
  -            parseLXSQL(mRootElement);
  -            System.out.println("cols.length=" + cols.length);
  -            System.out.println("tablenames.length=" + tablenames.length);
  -        } else {
  -            throw new ActionException("invalid select syntax");
  -        }
  -
           selectedRows = new Vector();
           if(true) {
               /** without where all rows */
  -            for(int i=0; i < tablenames.length; i++) {
  +            for(int i=0; i < mTablenames.length; i++) {
                   /** get the table, should be only one */
  -                table = 
(BasicTable)mDatabasePersistor.getQueryable(tablenames[i]);
  -                Iterator it = table.getRows().iterator();
  +                mTable = 
(BasicTable)mDatabasePersistor.getQueryable(mTablenames[i]);
  +                Iterator it = mTable.getRows().iterator();
                   while(it.hasNext()) {
                       /** iterate rows and select only the needed cols */
                       BasicRow row = (BasicRow)it.next();
                       if (testRow(row)) {
  -                        if(((String)cols[0]).equals("*")) {
  -                            selectedrow = new Object[row.getColumsLength()];
  -                            for (int j=0; j < cols.length; j++) {
  -                               selectedrow[j] = row.getValue(j);
  +                        if(((String)mCols[0]).equals("*")) {
  +                            selectedRow = new Object[row.getColumsLength()];
  +                            for (int j=0; j < mCols.length; j++) {
  +                               selectedRow[j] = row.getValue(j);
                               }
                           } else {
  -                            selectedrow = new Object[cols.length];
  -                            for (int j=0; j < cols.length; j++) {
  -                               selectedrow[j] = row.getValue(j);
  +                            selectedRow = new Object[mCols.length];
  +                            for (int j=0; j < mCols.length; j++) {
  +                               selectedRow[j] = row.getValue(j);
                               }
                           }
  -                        selectedRows.add(selectedrow);
  +                        selectedRows.add(selectedRow);
                       }
                   }
               }
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to