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