Open Source Repository

Home /spring/spring-jdbc-3.0.5 | Repository Home



org/springframework/jdbc/support/rowset/SqlRowSetMetaData.java
/*
 * Copyright 2002-2005 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.springframework.jdbc.support.rowset;

import org.springframework.jdbc.InvalidResultSetAccessException;

/**
 * Meta data interface for Spring's SqlRowSet,
 * analogous to <code>javax.sql.ResultSetMetaData</code>
 *
 <p>The main difference to the standard JDBC RowSetMetaData is that an SQLException
 * is never thrown here. This allows a SqlRowSetMetaData to be used without having
 * to deal with checked exceptions. A SqlRowSetMetaData will throw Spring's
 <code>org.springframework.jdbc.InvalidResultSetAccessException</code>
 * instead (when appropriate).
 *
 @author Thomas Risberg
 @since 1.2
 @see SqlRowSet#getMetaData
 @see java.sql.ResultSetMetaData
 @see org.springframework.jdbc.InvalidResultSetAccessException
 */
public interface SqlRowSetMetaData {

  /**
   * Retrieves the catalog name of the table that served as the source for the specified column.
   @param columnIndex the index of the column
   @return the catalog name
   @see java.sql.ResultSetMetaData#getCatalogName(int)
   */
  String getCatalogName(int columnIndexthrows InvalidResultSetAccessException;

  /**
   * Retrieves the fully qualified class that the specified column will be mapped to.
   @param columnIndex the index of the column
   @return the class name as a String
   @see java.sql.ResultSetMetaData#getColumnClassName(int)
   */
  String getColumnClassName(int columnIndexthrows InvalidResultSetAccessException;

  /**
   * Retrives the number of columns in the RowSet.
   @return the number of columns
   @see java.sql.ResultSetMetaData#getColumnCount()
   */
  int getColumnCount() throws InvalidResultSetAccessException;

  /**
   * Return the column names of the table that the result set represents.
   @return the column names
   */
  String[] getColumnNames() throws InvalidResultSetAccessException;

  /**
   * Retrieves the maximum width of the designated column.
   @param columnIndex the index of the column
   @return the width of the column
   @see java.sql.ResultSetMetaData#getColumnDisplaySize(int)
   */
  int getColumnDisplaySize(int columnIndexthrows InvalidResultSetAccessException;

  /**
   * Retrieve the suggested column title for the column specified.
   @param columnIndex the index of the column
   @return the column title
   @see java.sql.ResultSetMetaData#getColumnLabel(int)
   */
  String getColumnLabel(int columnIndexthrows InvalidResultSetAccessException;

  /**
   * Retrieve the column name for the indicated column.
   @param columnIndex the index of the column
   @return the column name
   @see java.sql.ResultSetMetaData#getColumnName(int)
   */
  String getColumnName(int columnIndexthrows InvalidResultSetAccessException;

  /**
   * Retrieve the SQL type code for the indicated column.
   @param columnIndex the index of the column
   @return the SQL type code
   @see java.sql.ResultSetMetaData#getColumnType(int)
   @see java.sql.Types
   */
  int getColumnType(int columnIndexthrows InvalidResultSetAccessException;

  /**
   * Retrieves the DBMS-specific type name for the indicated column.
   @param columnIndex the index of the column
   @return the type name
   @see java.sql.ResultSetMetaData#getColumnTypeName(int)
   */
  String getColumnTypeName(int columnIndexthrows InvalidResultSetAccessException;

  /**
   * Retrieves the precision for the indicated column.
   @param columnIndex the index of the column
   @return the precision
   @see java.sql.ResultSetMetaData#getPrecision(int)
   */
  int getPrecision(int columnIndexthrows InvalidResultSetAccessException;

  /**
   * Retrieves the scale of the indicated column.
   @param columnIndex the index of the column
   @return the scale
   @see java.sql.ResultSetMetaData#getScale(int)
   */
  int getScale(int columnIndexthrows InvalidResultSetAccessException;

  /**
   * Retrieves the schema name of the table that served as the source for the specified column.
   @param columnIndex the index of the column
   @return the schema name
   @see java.sql.ResultSetMetaData#getSchemaName(int)
   */
  String getSchemaName(int columnIndexthrows InvalidResultSetAccessException;

  /**
   * Retrieves the name of the table that served as the source for the specified column.
   @param columnIndex the index of the column
   @return the name of the table
   @see java.sql.ResultSetMetaData#getTableName(int)
   */
  String getTableName(int columnIndexthrows InvalidResultSetAccessException;

  /**
   * Indicates whether the case of the designated column is significant.
   @param columnIndex the index of the column
   @return true if the case sensitive, false otherwise
   @see java.sql.ResultSetMetaData#isCaseSensitive(int)
   */
  boolean isCaseSensitive(int columnIndexthrows InvalidResultSetAccessException;

  /**
   * Indicates whether the designated column contains a currency value.
   @param columnIndex the index of the column
   @return true if the value is a currency value, false otherwise
   @see java.sql.ResultSetMetaData#isCurrency(int)
   */
  boolean isCurrency(int columnIndexthrows InvalidResultSetAccessException;

  /**
   * Indicates whether the designated column contains a signed number.
   @param columnIndex the index of the column
   @return true if the column contains a signed number, false otherwise
   @see java.sql.ResultSetMetaData#isSigned(int)
   */
  boolean isSigned(int columnIndexthrows InvalidResultSetAccessException;

}