hammant     01/10/31 08:06:24

  Modified:    apps/db/src/java/org/apache/avalon/db/data Column.java
               apps/db/src/java/org/apache/avalon/db/data/impl
                        DefaultColumn.java
               apps/db/src/java/org/apache/avalon/db/driver
                        AvalonDBConnection.java AvalonDBResultSet.java
               apps/db/src/java/org/apache/avalon/db/results Columns.java
               apps/db/src/java/org/apache/avalon/db/transport Reply.java
                        ResultSetReply.java
  Added:       apps/db/src/java/org/apache/avalon/db/driver
                        AvalonDBResultSetMetaData.java
               apps/db/src/java/org/apache/avalon/db/transport
                        ResultSetMetaDataReply.java
  Log:
  Gerhard Froehlich's patches for JDBC driver
  
  Revision  Changes    Path
  1.4       +22 -1     
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/Column.java
  
  Index: Column.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/Column.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Column.java       2001/10/30 17:45:14     1.3
  +++ Column.java       2001/10/31 16:06:23     1.4
  @@ -15,9 +15,30 @@
    *
    *
    * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
  - * @version * $Revision: 1.3 $
  + * @author Gerhard Froehlich <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
  + * @version * $Revision: 1.4 $
    */
   public interface Column extends Nameable {
       String getSQLType();
       String getJavaType();
  +    int getColumnDisplaySize();
  +    String getColumnLabel();
  +    String getColumnName();
  +    int getColumnType();
  +    String getColumnTypeName();
  +    int getPrecision();
  +    int getScale();
  +    String getSchemaName();
  +    String getCatalogName();
  +    String getColumnClassName();
  +    String getTableName();
  +    boolean isAutoIncrement();
  +    boolean isCaseSensitive();
  +    boolean isCurrency();
  +    boolean isDefinitelyWritable();
  +    int isNullable();
  +    boolean isReadOnly();
  +    boolean isSearchable();
  +    boolean isSigned();
  +    boolean isWritable();
   }
  
  
  
  1.2       +100 -0    
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/DefaultColumn.java
  
  Index: DefaultColumn.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/data/impl/DefaultColumn.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DefaultColumn.java        2001/10/30 17:45:14     1.1
  +++ DefaultColumn.java        2001/10/31 16:06:23     1.2
  @@ -20,7 +20,8 @@
    *
    *
    * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
  - * @version $Revision: 1.1 $
  + * @author Gerhard Froehlich <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>*
  + * @version $Revision: 1.2 $
    */
   public class DefaultColumn implements Column {
   
  @@ -76,4 +77,103 @@
       public String getJavaType() {
           return mJavaType;
       }
  +
  +    /** methods for the metadata */
  +    public int getColumnDisplaySize() {
  +        //ToDo: implementation
  +        return 0;
  +    }
  +
  +    public String getColumnLabel() {
  +        return mName;
  +    }
  +
  +    public String getColumnName() {
  +        return mName;
  +    }
  +
  +    public int getColumnType() {
  +        //ToDo: implementation
  +        return 0;
  +    }
  +
  +    public String getColumnTypeName() {
  +        return mSqlType;
  +    }
  +
  +    public int getPrecision() {
  +        //ToDo: implementation
  +        return 0;
  +    }
  +
  +    public int getScale() {
  +        //ToDo: implementation
  +        return 0;
  +    }
  +
  +    public String getSchemaName() {
  +        //ToDo: implementation
  +        return null;
  +    }
  +
  +    public String getCatalogName() {
  +        //ToDo: implementation
  +        return null;
  +    }
  +
  +    public String getColumnClassName() {
  +        //ToDo: implementation
  +        return null;
  +    }
  +
  +    public String getTableName() {
  +        //ToDo: implementation
  +        return null;
  +    }
  +
  +    public boolean isAutoIncrement() {
  +        //ToDo: implementation
  +        return false;
  +    }
  +
  +    public boolean isCaseSensitive() {
  +        //ToDo: implementation
  +        return false;
  +    }
  +
  +    public boolean isCurrency() {
  +        //ToDo: implementation
  +        return false;
  +    }
  +
  +    public boolean isDefinitelyWritable() {
  +        //ToDo: implementation
  +        return false;
  +    }
  +
  +    public int isNullable() {
  +        //ToDo: implementation
  +        return 0;
  +    }
  +
  +    public boolean isReadOnly() {
  +        //ToDo: implementation
  +        return false;
  +    }
  +
  +    public boolean isSearchable() {
  +        //ToDo: implementation
  +        return false;
  +    }
  +
  +    public boolean isSigned() {
  +        //ToDo: implementation
  +        return false;
  +    }
  +
  +    public boolean isWritable() {
  +        //ToDo: implementation
  +        return false;
  +     }
  +
   }
  
  
  
  1.2       +3 -5      
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/AvalonDBConnection.java
  
  Index: AvalonDBConnection.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/AvalonDBConnection.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AvalonDBConnection.java   2001/10/31 09:39:53     1.1
  +++ AvalonDBConnection.java   2001/10/31 16:06:23     1.2
  @@ -22,7 +22,8 @@
    *
    *
    * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
  - * @version $Revision: 1.1 $
  + * @author Gerhard Froehlich <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
  + * @version $Revision: 1.2 $
    */
   public abstract class AvalonDBConnection extends AbstractDriver implements 
Connection {
   
  @@ -243,10 +244,7 @@
        * @exception SQLException if a database access error occurs
        */
       public DatabaseMetaData getMetaData() throws SQLException {
  -
  -        debug();
  -
  -        return null;
  +        return new AvalonDBDatabaseMetaData();
       }
   
       /**
  
  
  
  1.2       +3 -5      
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/AvalonDBResultSet.java
  
  Index: AvalonDBResultSet.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/AvalonDBResultSet.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AvalonDBResultSet.java    2001/10/31 09:39:53     1.1
  +++ AvalonDBResultSet.java    2001/10/31 16:06:23     1.2
  @@ -31,7 +31,8 @@
    *
    *
    * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
  - * @version $Revision: 1.1 $
  + * @author Gerhard Froehlich <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
  + * @version $Revision: 1.2 $
    */
   public class AvalonDBResultSet extends AbstractDriver implements ResultSet {
   
  @@ -876,10 +877,7 @@
        * @exception SQLException if a database access error occurs
        */
       public ResultSetMetaData getMetaData() throws SQLException {
  -
  -        debug();
  -
  -        return null;
  +        return new AvalonDBResultSetMetaData(mAvalonDBConnection,mRowSet);
       }
   
       /**
  
  
  
  1.1                  
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/driver/AvalonDBResultSetMetaData.java
  
  Index: AvalonDBResultSetMetaData.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE file.
   */
  package org.apache.avalon.db.driver;
  
  import org.apache.avalon.db.common.FeatureNotImplemented;
  import org.apache.avalon.db.transport.ResultSetMetaDataReply;
  import org.apache.avalon.db.results.RowSet;
  import org.apache.avalon.db.results.Columns;
  import java.sql.ResultSetMetaData;
  import java.sql.SQLException;
  
  /**
   * Class AvalonDBResultSetMetaData
   *
   *
   * @author Gerhard Froehlich <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
   */
  public class AvalonDBResultSetMetaData extends AbstractDriver implements 
ResultSetMetaData {
    
      private AvalonDBConnection mAvalonDBConnection;
      private RowSet mRowSet;
       
      public AvalonDBResultSetMetaData(AvalonDBConnection apacheDBConnection, 
RowSet rowSet) {
          mAvalonDBConnection = apacheDBConnection;
          mRowSet = rowSet;
      }
  
      /**
       * Gets the designated column's table's catalog name.
       */
      public String getCatalogName(int column) throws SQLException {
          return mRowSet.getColumns().getCatalogName(column);
      }
           
      /**
       * Returns the fully-qualified name of the Java class whose instances are 
       * manufactured if the method ResultSet.getObject is called to retrieve a 
value 
       * from the column.
       */
      public String getColumnClassName(int column) throws SQLException { 
          return mRowSet.getColumns().getColumnClassName(column);
      }
      
      /**
       * Returns the number of columns in this ResultSet object.
       */
      public int getColumnCount() throws SQLException {
          return mRowSet.getColumns().getColumnCount();
      }
      
      /**
       * Indicates the designated column's normal maximum width in characters.
       */
      public int getColumnDisplaySize(int column) throws SQLException {
          return mRowSet.getColumns().getColumnDisplaySize(column);
      }
      
      /**
       * Gets the designated column's suggested title for use in printouts and 
displays.
       */
      public String getColumnLabel(int column) throws SQLException {
          return mRowSet.getColumns().getColumnLabel(column);
      }
      
      /**
       * Get the designated column's name.
       */
      public String getColumnName(int column) throws SQLException {
          return mRowSet.getColumns().getColumnName(column);
      }
      
      /**
       * Retrieves the designated column's SQL type.
       */
      public int getColumnType(int column) throws SQLException {
          return mRowSet.getColumns().getColumnType(column);
      }
            
      /**
       * Retrieves the designated column's database-specific type name.
       */
      public String getColumnTypeName(int column) throws SQLException {
          return mRowSet.getColumns().getColumnTypeName(column);
      }
            
      /**
       * Get the designated column's number of decimal digits.
       */
      public int getPrecision(int column) throws SQLException {
          return mRowSet.getColumns().getPrecision(column);
      }
      
      /**
       * Gets the designated column's number of digits to right of the decimal 
point.
       */
      public int getScale(int column) throws SQLException {
          return mRowSet.getColumns().getScale(column);
      }
      
      /**
       * Get the designated column's table's schema.
       */
      public String getSchemaName(int column) throws SQLException {
          return mRowSet.getColumns().getSchemaName(column);
      }
      
      /**
       * Gets the designated column's table name.
       */
      public String getTableName(int column) throws SQLException {
          return mRowSet.getColumns().getTableName(column);
      }
      
      /**
       * Indicates whether the designated column is automatically numbered, 
thus read-only.
       */
      public boolean isAutoIncrement(int column) throws SQLException {
          return mRowSet.getColumns().isAutoIncrement(column);
      }
      
      /**
       * Indicates whether a column's case matters.
       */
      public boolean isCaseSensitive(int column) throws SQLException {
          return mRowSet.getColumns().isCaseSensitive(column);
      }
      
      /**
       * Indicates whether the designated column is a cash value.
       */
      public boolean isCurrency(int column) throws SQLException {
          return mRowSet.getColumns().isCurrency(column);
      }
         
      /**
       * Indicates whether a write on the designated column will definitely 
succeed.
       */   
      public boolean isDefinitelyWritable(int column) throws SQLException {
          return mRowSet.getColumns().isDefinitelyWritable(column);
      }
      
      /**
       * Indicates the nullability of values in the designated column.
       */
      public int isNullable(int column) throws SQLException {
          return mRowSet.getColumns().isNullable(column);
      }
      
      /**
       * Indicates whether the designated column is definitely not writable.
       */ 
      public boolean isReadOnly(int column) throws SQLException {
          return mRowSet.getColumns().isReadOnly(column);
      }
      
      /**
       * Indicates whether the designated column can be used in a where clause.
       */ 
      public boolean isSearchable(int column) throws SQLException {
          return mRowSet.getColumns().isSearchable(column);
      }
      
      /**
       * Indicates whether values in the designated column are signed numbers.
       */     
      public boolean isSigned(int column) throws SQLException {
          return mRowSet.getColumns().isSigned(column);
      }
      
      /**
       * Indicates whether it is possible for a write on the designated column 
to succeed.
       */   
      public boolean isWritable(int column) throws SQLException {
          return mRowSet.getColumns().isWritable(column);
      }
  }
  
  
  1.2       +33 -6     
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/results/Columns.java
  
  Index: Columns.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/results/Columns.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Columns.java      2001/10/29 17:59:23     1.1
  +++ Columns.java      2001/10/31 16:06:23     1.2
  @@ -1,17 +1,44 @@
   /*
  - * Created by IntelliJ IDEA.
  - * User: Administrator
  - * Date: Oct 29, 2001
  - * Time: 5:24:50 PM
  - * To change template for new interface use 
  - * Code Style | Class Templates options (Tools | IDE Options).
  + * Copyright (C) The Apache Software Foundation. All rights reserved.
  + *
  + * This software is published under the terms of the Apache Software License
  + * version 1.1, a copy of which has been included with this distribution in
  + * the LICENSE file.
    */
   package org.apache.avalon.db.results;
   
   import java.io.Serializable;
   
  +/**
  + * Interface Column
  + *
  + *
  + * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
  + * @author Gerhard Froehlich <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
  + */
   public interface Columns extends Serializable {
       String[] getHeadings();
       String[] getTypes();
       int getIndex(String columnName);
  +    int getColumnDisplaySize(int column);
  +    String getColumnLabel(int column);
  +    String getColumnName(int column);
  +    int getColumnType(int column);
  +    String getColumnTypeName(int column);
  +    int getPrecision(int column);
  +    int getScale(int column);
  +    String getSchemaName(int column);
  +    String getCatalogName(int column);
  +    String getColumnClassName(int column);
  +    String getTableName(int column);
  +    boolean isAutoIncrement(int column);
  +    boolean isCaseSensitive(int column);
  +    boolean isCurrency(int column);
  +    boolean isDefinitelyWritable(int column);
  +    int isNullable(int column);
  +    boolean isReadOnly(int column);
  +    boolean isSearchable(int column);
  +    boolean isSigned(int column);
  +    boolean isWritable(int column);
  +    int getColumnCount();
   }
  
  
  
  1.6       +3 -2      
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/Reply.java
  
  Index: Reply.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/Reply.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- Reply.java        2001/10/30 23:15:47     1.5
  +++ Reply.java        2001/10/31 16:06:23     1.6
  @@ -12,13 +12,12 @@
   
   import java.io.Serializable;
   
  -
   /**
    * Class Reply
    *
    *
    * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
  - * @version $Revision: 1.5 $
  + * @version $Revision: 1.6 $
    */
   public abstract class Reply implements Serializable {
   
  @@ -30,6 +29,8 @@
       public static final int TRANSACTIONISOLATIONREPLY = 15;
       public static final int CATALOGREPLY = 16;
       public static final int UPDATEREPLY = 17;
  +    public static final int RESULTSETMETADATA = 18;
  +
   
       private int mReplyCode;
   
  
  
  
  1.3       +1 -2      
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/ResultSetReply.java
  
  Index: ResultSetReply.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/ResultSetReply.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ResultSetReply.java       2001/10/29 15:18:16     1.2
  +++ ResultSetReply.java       2001/10/31 16:06:23     1.3
  @@ -12,13 +12,12 @@
   
   import org.apache.avalon.db.results.RowSet;
   
  -
   /**
    * Class ResultSetReply
    *
    *
    * @author Paul Hammant <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
  - * @version $Revision: 1.2 $
  + * @version $Revision: 1.3 $
    */
   public class ResultSetReply extends Reply {
   
  
  
  
  1.1                  
jakarta-avalon-cornerstone/apps/db/src/java/org/apache/avalon/db/transport/ResultSetMetaDataReply.java
  
  Index: ResultSetMetaDataReply.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE file.
   */
  package org.apache.avalon.db.transport;
  
  import org.apache.avalon.db.results.RowSet;
  
  /**
   * Class ResultSetMetaDataReply
   *
   *
   * @author Gerhard Froehlich <a href="mailto:[EMAIL PROTECTED]">[EMAIL 
PROTECTED]</a>
   */
  public class ResultSetMetaDataReply extends Reply {
  
      private RowSet mRowSet;
  
      /**
       * Constructor ResultSetMetaDataReply
       *
       *
       * @param rowSet
       *
       */
      public ResultSetMetaDataReply(RowSet rowSet) {
  
          super(Reply.RESULTSETMETADATA);
          this.mRowSet = rowSet;
      }
  
      public RowSet getRowSet() {
          return mRowSet;
      }
  }
  
  
  

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

Reply via email to