hammant 01/12/20 04:31:16
Modified: apps/db/src/java/org/apache/avalon/db/basic/actions
BasicSelectSimple.java
apps/db/src/java/org/apache/avalon/db/basic/handlers
ContrivedColumnNameHolder.java
apps/db/src/java/org/apache/avalon/db/basic/handlers/lxsql
BasicLXSQLCreateViewHandler.java
SelectColumnHelper.java
apps/db/src/java/org/apache/avalon/db/basic/results
BasicColumns.java
apps/db/src/java/org/apache/avalon/db/data/impl
AbstractDelegatedColumn.java AbstractQueryable.java
DefaultDelegatedBooleanColumn.java
DefaultDelegatedNumericColumn.java
DefaultDelegatedTemporalColumn.java
DefaultDelegatedVarcharColumn.java
apps/db/src/java/org/apache/avalon/db/test Tester.java
Log:
work on metadata
Revision Changes Path
1.5 +11 -2
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicSelectSimple.java
Index: BasicSelectSimple.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/actions/BasicSelectSimple.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- BasicSelectSimple.java 2001/12/17 15:59:31 1.4
+++ BasicSelectSimple.java 2001/12/20 12:31:15 1.5
@@ -32,7 +32,7 @@
* [EMAIL PROTECTED]</a>
* @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">
* [EMAIL PROTECTED]</a>
- * @version $Revision: 1.4 $
+ * @version $Revision: 1.5 $
*/
public class BasicSelectSimple
extends AbstractAction
@@ -180,7 +180,16 @@
}
}
getLogger().debug("selectedRows.size()=" + selectedRows.size());
- mColumns = new BasicColumns();
+ String[] columnNames = new String[mCols.length];
+ int[] jdbcTypes = new int[mCols.length];
+ for (int j = 0; j < mCols.length; j++) {
+ columnNames[j] = mCols[j].getColumnName();
+ jdbcTypes[j] = mCols[j].getSQLType().getJDBCType();
+ }
+
+
+
+ mColumns = new BasicColumns(columnNames, jdbcTypes);
mRowSet = new BasicRowSet(mColumns, selectedRows);
}
}
1.2 +1 -1
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/ContrivedColumnNameHolder.java
Index: ContrivedColumnNameHolder.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/ContrivedColumnNameHolder.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ContrivedColumnNameHolder.java 2001/12/18 23:34:32 1.1
+++ ContrivedColumnNameHolder.java 2001/12/20 12:31:15 1.2
@@ -12,6 +12,6 @@
int mColNumber;
public String getNextColumn() {
- return "C" + mColNumber++;
+ return "Contrived_Column_" + mColNumber++;
}
}
1.15 +4 -4
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/lxsql/BasicLXSQLCreateViewHandler.java
Index: BasicLXSQLCreateViewHandler.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/lxsql/BasicLXSQLCreateViewHandler.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- BasicLXSQLCreateViewHandler.java 2001/12/20 11:08:16 1.14
+++ BasicLXSQLCreateViewHandler.java 2001/12/20 12:31:15 1.15
@@ -43,7 +43,7 @@
*
*
* @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL
PROTECTED]</a>
- * @version $Revision: 1.14 $
+ * @version $Revision: 1.15 $
*/
public class BasicLXSQLCreateViewHandler extends BasicLXSQLHandler {
@@ -147,11 +147,11 @@
Column column = null;
if (queryable.containsColumn(col)) {
if (col instanceof StringColumn) {
- column = new
DefaultDelegatedVarcharColumn((StringColumn)col,null);
+ column = new
DefaultDelegatedVarcharColumn((StringColumn)col);
} else if (col instanceof NumericColumn) {
- column = new
DefaultDelegatedNumericColumn((NumericColumn)col,null);
+ column = new
DefaultDelegatedNumericColumn((NumericColumn)col);
} else if (col instanceof TemporalColumn) {
- column = new
DefaultDelegatedTemporalColumn((TemporalColumn)col,null);
+ column = new
DefaultDelegatedTemporalColumn((TemporalColumn)col);
} // TODO boolean & other types ?
} else {
column = col;
1.3 +4 -4
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/lxsql/SelectColumnHelper.java
Index: SelectColumnHelper.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/handlers/lxsql/SelectColumnHelper.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SelectColumnHelper.java 2001/12/19 18:59:26 1.2
+++ SelectColumnHelper.java 2001/12/20 12:31:15 1.3
@@ -44,7 +44,7 @@
*
*
* @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL
PROTECTED]</a>
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
*/
public class SelectColumnHelper {
@@ -105,7 +105,7 @@
ContrivedColumnNameHolder colHldr) throws ActionException {
String value = aElem.getAttribute("value");
String as = aElem.getAttribute("as");
- if (as == null) {
+ if (as.equals("")) {
as = colHldr.getNextColumn();
}
// TODO more types
@@ -120,7 +120,7 @@
protected Column getStringColumnFromStringFunction(AbstractQueryable
queryable,
Element aElem, StringFunction function,
ContrivedColumnNameHolder colHldr) throws ActionException {
String as = aElem.getAttribute("as");
- if (as == null) {
+ if (as.equals("")) {
as = colHldr.getNextColumn();
}
// TODO as might be missing
@@ -155,7 +155,7 @@
protected Column getIntegerColumnFromIntegerFunction(AbstractQueryable
queryable, Element aElem,
NumericFunction function, ContrivedColumnNameHolder colHldr)
throws ActionException {
String as = aElem.getAttribute("as");
- if (as == null) {
+ if (as.equals("")) {
as = colHldr.getNextColumn();
}
// TODO as might be missing
1.3 +20 -6
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/results/BasicColumns.java
Index: BasicColumns.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/basic/results/BasicColumns.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- BasicColumns.java 2001/11/10 21:45:03 1.2
+++ BasicColumns.java 2001/12/20 12:31:16 1.3
@@ -19,8 +19,17 @@
*/
public class BasicColumns implements Columns {
+ private String[] mColumnNames;
+ private int[] mJdbcTypes;
+
+ public BasicColumns(String[] columnNames, int[] jdbcTypes) {
+ mColumnNames = columnNames;
+ mJdbcTypes = jdbcTypes;
+ }
+
+
public String[] getHeadings() {
- return new String[0];
+ return mColumnNames;
}
public String[] getTypes() {
@@ -28,7 +37,12 @@
}
public int getIndex(String columnName) {
- return 0;
+ for (int x = 0; x < mColumnNames.length; x++) {
+ if (mColumnNames[x].equals(columnName)) {
+ return x;
+ }
+ }
+ return -1;
}
public int getColumnDisplaySize(int column) {
@@ -36,15 +50,15 @@
}
public String getColumnLabel(int column) {
- return null;
+ return mColumnNames[column];
}
public String getColumnName(int column) {
- return null;
+ return mColumnNames[column];
}
public int getColumnType(int column) {
- return 0;
+ return mJdbcTypes[column];
}
public String getColumnTypeName(int column) {
@@ -112,6 +126,6 @@
}
public int getColumnCount() {
- return 0;
+ return mColumnNames.length;
}
}
1.4 +4 -6
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/AbstractDelegatedColumn.java
Index: AbstractDelegatedColumn.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/AbstractDelegatedColumn.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- AbstractDelegatedColumn.java 2001/12/20 11:08:16 1.3
+++ AbstractDelegatedColumn.java 2001/12/20 12:31:16 1.4
@@ -21,11 +21,10 @@
*
*
* @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL
PROTECTED]</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
public class AbstractDelegatedColumn implements Column {
- protected String mAlias;
protected Column mColumn;
protected int mIndex;
@@ -36,8 +35,7 @@
* @param name
*
*/
- public AbstractDelegatedColumn(Column column, String alias) throws
ActionException {
- mAlias = alias;
+ public AbstractDelegatedColumn(Column column) throws ActionException {
mColumn = column;
}
@@ -96,7 +94,7 @@
*
*/
public String getName() {
- return mAlias;
+ return mColumn.getColumnName();
}
@@ -110,7 +108,7 @@
}
public String getColumnName() {
- return mAlias;
+ return mColumn.getColumnName();
}
public int getColumnType() {
1.15 +1 -3
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/AbstractQueryable.java
Index: AbstractQueryable.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/AbstractQueryable.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- AbstractQueryable.java 2001/12/20 11:08:16 1.14
+++ AbstractQueryable.java 2001/12/20 12:31:16 1.15
@@ -26,7 +26,7 @@
*
*
* @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL
PROTECTED]</a>
- * @version $Revision: 1.14 $
+ * @version $Revision: 1.15 $
*/
public abstract class AbstractQueryable extends AbstractNameable implements
Queryable {
@@ -190,8 +190,6 @@
public Column getColumn(String columnName, boolean throwExcpt) {
Column col = null;
- System.out.println("columnName=" + columnName);
-
for (int x = 0; x < mColumns.length; x++) {
if
(mColumns[x].getColumnName().equals(StringUtils.normalize(columnName))) {
col = mColumns[x];
1.2 +3 -3
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/DefaultDelegatedBooleanColumn.java
Index: DefaultDelegatedBooleanColumn.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/DefaultDelegatedBooleanColumn.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DefaultDelegatedBooleanColumn.java 2001/12/20 11:08:16 1.1
+++ DefaultDelegatedBooleanColumn.java 2001/12/20 12:31:16 1.2
@@ -18,7 +18,7 @@
*
*
* @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL
PROTECTED]</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public class DefaultDelegatedBooleanColumn extends AbstractDelegatedColumn
implements BooleanColumn {
@@ -30,8 +30,8 @@
* @param name
*
*/
- public DefaultDelegatedBooleanColumn(BooleanColumn booleanColumn, String
alias) throws ActionException {
- super(booleanColumn, alias);
+ public DefaultDelegatedBooleanColumn(BooleanColumn booleanColumn) throws
ActionException {
+ super(booleanColumn);
}
public boolean getBooleanValue(Row row) {
1.2 +3 -3
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/DefaultDelegatedNumericColumn.java
Index: DefaultDelegatedNumericColumn.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/DefaultDelegatedNumericColumn.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DefaultDelegatedNumericColumn.java 2001/12/20 11:08:16 1.1
+++ DefaultDelegatedNumericColumn.java 2001/12/20 12:31:16 1.2
@@ -17,7 +17,7 @@
*
*
* @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL
PROTECTED]</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public class DefaultDelegatedNumericColumn extends AbstractDelegatedColumn
implements NumericColumn {
@@ -29,8 +29,8 @@
* @param name
*
*/
- public DefaultDelegatedNumericColumn(NumericColumn numericColumn, String
alias) throws ActionException {
- super(numericColumn, alias);
+ public DefaultDelegatedNumericColumn(NumericColumn numericColumn) throws
ActionException {
+ super(numericColumn);
}
}
1.2 +2 -2
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/DefaultDelegatedTemporalColumn.java
Index: DefaultDelegatedTemporalColumn.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/DefaultDelegatedTemporalColumn.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DefaultDelegatedTemporalColumn.java 2001/12/20 11:08:16 1.1
+++ DefaultDelegatedTemporalColumn.java 2001/12/20 12:31:16 1.2
@@ -19,7 +19,7 @@
*
*
* @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL
PROTECTED]</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public class DefaultDelegatedTemporalColumn extends AbstractDelegatedColumn
implements TemporalColumn {
@@ -31,8 +31,8 @@
* @param name
*
*/
- public DefaultDelegatedTemporalColumn(TemporalColumn temporalColumn,
String alias) throws ActionException {
- super(temporalColumn, alias);
+ public DefaultDelegatedTemporalColumn(TemporalColumn temporalColumn)
throws ActionException {
+ super(temporalColumn);
}
}
1.4 +3 -3
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/DefaultDelegatedVarcharColumn.java
Index: DefaultDelegatedVarcharColumn.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/DefaultDelegatedVarcharColumn.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- DefaultDelegatedVarcharColumn.java 2001/12/20 11:08:16 1.3
+++ DefaultDelegatedVarcharColumn.java 2001/12/20 12:31:16 1.4
@@ -17,7 +17,7 @@
*
*
* @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL
PROTECTED]</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
public class DefaultDelegatedVarcharColumn extends AbstractDelegatedColumn
implements StringColumn {
@@ -29,8 +29,8 @@
* @param name
*
*/
- public DefaultDelegatedVarcharColumn(StringColumn stringColumn, String
alias) throws ActionException {
- super(stringColumn, alias);
+ public DefaultDelegatedVarcharColumn(StringColumn stringColumn) throws
ActionException {
+ super(stringColumn);
}
public int getMaxLength() {
1.39 +20 -13
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/test/Tester.java
Index: Tester.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/test/Tester.java,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -r1.38 -r1.39
--- Tester.java 2001/12/04 06:35:43 1.38
+++ Tester.java 2001/12/20 12:31:16 1.39
@@ -12,6 +12,7 @@
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
+import java.sql.ResultSetMetaData;
import java.io.File;
import java.io.StringReader;
import java.io.FileInputStream;
@@ -63,20 +64,26 @@
if (sql.indexOf("<simple-select") >= 0 |
sql.startsWith("SELECT")) {
System.out.println("<<SEL");
ResultSet rs = st.executeQuery(sql);
- System.out.println("Results:");
- while (rs.next()) {
- System.out.print(" Row:" + rs.getString(0));
- try {
- String col1 = rs.getString(1);
- System.out.print(", " + col1);
- } catch (ArrayIndexOutOfBoundsException aiobe) {
- System.out.println(", [no col 1]");
+ ResultSetMetaData rsmd = rs.getMetaData();
+ int colCount = rsmd.getColumnCount();
+ System.out.println("Results: (col count = " + colCount +
")");
+ System.out.print(" Hdgs:");
+ for (int x = 0; x < colCount; x++) {
+ String col = rsmd.getColumnName(x);
+ if (x > 0) {
+ System.out.print(", ");
}
- try {
- String col2 = rs.getString(2);
- System.out.print(", " + col2);
- } catch (ArrayIndexOutOfBoundsException aiobe) {
- System.out.println(", [no col 2]");
+ System.out.print(col);
+ }
+ System.out.println("");
+ while (rs.next()) {
+ System.out.print(" Row :");
+ for (int x = 0; x < colCount; x++) {
+ String col = rs.getString(x);
+ if (x > 0) {
+ System.out.print(", ");
+ }
+ System.out.print(col);
}
System.out.println("");
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>