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

Reply via email to