org.apache.derby.vti
Class VTIMetaDataTemplate

java.lang.Object
  extended by org.apache.derby.vti.VTIMetaDataTemplate
All Implemented Interfaces:
java.sql.ResultSetMetaData, java.sql.Wrapper
Direct Known Subclasses:
ImportResultSetMetaData

public abstract class VTIMetaDataTemplate
extends java.lang.Object
implements java.sql.ResultSetMetaData

An abstract implementation of ResultSetMetaData (JDBC 1.2) that is useful when writing a VTI (virtual table interface). This class implements most of the methods of ResultSetMetaData, each one throwing a SQLException with the name of the method. A concrete subclass can then just implement the methods not implemented here and override any methods it needs to implement for correct functionality.

The methods not implemented here are


For virtual tables the database engine only calls methods defined in the JDBC 1.2 definition of java.sql.ResultSetMetaData.
Classes that implement a JDBC 2.0 conformant java.sql.ResultSetMetaData can be used as the meta data for virtual tables.
Developers can use the VTIMetaDataTemplate20 instead of this class when developing in a Java 2 environment.


Field Summary
 
Fields inherited from interface java.sql.ResultSetMetaData
columnNoNulls, columnNullable, columnNullableUnknown
 
Constructor Summary
VTIMetaDataTemplate()
           
 
Method Summary
 java.lang.String getCatalogName(int column)
          What's a column's table's catalog name?
 java.lang.String getColumnClassName(int column)
          Returns the fully-qualified name of the Java class whose instances are manufactured if the method ResultSet.
 int getColumnDisplaySize(int column)
          What's the column's normal maximum width in chars?
 java.lang.String getColumnLabel(int column)
          What's the suggested column title for use in printouts and displays?
 java.lang.String getColumnName(int column)
          What's a column's name?
 java.lang.String getColumnTypeName(int column)
          What's a column's data source specific type name?
 int getPrecision(int column)
          How many decimal digits are in the column?
 int getScale(int column)
          What's a column's number of digits to the right of the decimal point?
 java.lang.String getSchemaName(int column)
          What's a column's table's schema?
 java.lang.String getTableName(int column)
          What's a column's table name?
 boolean isAutoIncrement(int column)
          Is the column automatically numbered, and thus read-only?
 boolean isCaseSensitive(int column)
          Does a column's case matter?
 boolean isCurrency(int column)
          Is the column a cash value?
 boolean isDefinitelyWritable(int column)
          Will a write on the column definitely succeed?
 int isNullable(int column)
          Can you put a NULL in this column?
 boolean isReadOnly(int column)
          Is a column definitely not writable?
 boolean isSearchable(int column)
          Can the column be used in a WHERE clause?
 boolean isSigned(int column)
          Is the column a signed number?
 boolean isWritable(int column)
          Is it possible for a write on the column to succeed?
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.sql.ResultSetMetaData
getColumnCount, getColumnType
 
Methods inherited from interface java.sql.Wrapper
isWrapperFor, unwrap
 

Constructor Detail

VTIMetaDataTemplate

public VTIMetaDataTemplate()
Method Detail

isAutoIncrement

public boolean isAutoIncrement(int column)
                        throws java.sql.SQLException
Is the column automatically numbered, and thus read-only?

Specified by:
isAutoIncrement in interface java.sql.ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
true if the column is automatically numbered
Throws:
java.sql.SQLException - if a database-access error occurs.

isCaseSensitive

public boolean isCaseSensitive(int column)
                        throws java.sql.SQLException
Does a column's case matter?

Specified by:
isCaseSensitive in interface java.sql.ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
true if the column is case-sensitive
Throws:
java.sql.SQLException - if a database-access error occurs.

isSearchable

public boolean isSearchable(int column)
                     throws java.sql.SQLException
Can the column be used in a WHERE clause?

Specified by:
isSearchable in interface java.sql.ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
true if the column is searchable
Throws:
java.sql.SQLException - if a database-access error occurs.

isCurrency

public boolean isCurrency(int column)
                   throws java.sql.SQLException
Is the column a cash value?

Specified by:
isCurrency in interface java.sql.ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
true if the column is a cash value
Throws:
java.sql.SQLException - if a database-access error occurs.

isNullable

public int isNullable(int column)
               throws java.sql.SQLException
Can you put a NULL in this column?

Specified by:
isNullable in interface java.sql.ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
columnNoNulls, columnNullable or columnNullableUnknown
Throws:
java.sql.SQLException - if a database-access error occurs.

isSigned

public boolean isSigned(int column)
                 throws java.sql.SQLException
Is the column a signed number?

Specified by:
isSigned in interface java.sql.ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
true if the column is a signed number
Throws:
java.sql.SQLException - if a database-access error occurs.

getColumnDisplaySize

public int getColumnDisplaySize(int column)
                         throws java.sql.SQLException
What's the column's normal maximum width in chars?

Specified by:
getColumnDisplaySize in interface java.sql.ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
the column's maximum width
Throws:
java.sql.SQLException - if a database-access error occurs.

getColumnLabel

public java.lang.String getColumnLabel(int column)
                                throws java.sql.SQLException
What's the suggested column title for use in printouts and displays?

Specified by:
getColumnLabel in interface java.sql.ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
the column's title
Throws:
java.sql.SQLException - if a database-access error occurs.

getColumnName

public java.lang.String getColumnName(int column)
                               throws java.sql.SQLException
What's a column's name?

Specified by:
getColumnName in interface java.sql.ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
column name
Throws:
java.sql.SQLException - if a database-access error occurs.

getSchemaName

public java.lang.String getSchemaName(int column)
                               throws java.sql.SQLException
What's a column's table's schema?

Specified by:
getSchemaName in interface java.sql.ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
schema name or "" if not applicable
Throws:
java.sql.SQLException - if a database-access error occurs.

getPrecision

public int getPrecision(int column)
                 throws java.sql.SQLException
How many decimal digits are in the column?

Specified by:
getPrecision in interface java.sql.ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
the column's precision
Throws:
java.sql.SQLException - if a database-access error occurs.

getScale

public int getScale(int column)
             throws java.sql.SQLException
What's a column's number of digits to the right of the decimal point?

Specified by:
getScale in interface java.sql.ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
the column's scale
Throws:
java.sql.SQLException - if a database-access error occurs.

getTableName

public java.lang.String getTableName(int column)
                              throws java.sql.SQLException
What's a column's table name?

Specified by:
getTableName in interface java.sql.ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
the column's table name or "" if not applicable
Throws:
java.sql.SQLException - if a database-access error occurs.

getCatalogName

public java.lang.String getCatalogName(int column)
                                throws java.sql.SQLException
What's a column's table's catalog name?

Specified by:
getCatalogName in interface java.sql.ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
the column's table's catalog name or "" if not applicable.
Throws:
java.sql.SQLException - if a database-access error occurs.

getColumnTypeName

public java.lang.String getColumnTypeName(int column)
                                   throws java.sql.SQLException
What's a column's data source specific type name?

Specified by:
getColumnTypeName in interface java.sql.ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
the column's type name
Throws:
java.sql.SQLException - if a database-access error occurs.

isReadOnly

public boolean isReadOnly(int column)
                   throws java.sql.SQLException
Is a column definitely not writable?

Specified by:
isReadOnly in interface java.sql.ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
true - vti's are read only false - column is not read-only
Throws:
java.sql.SQLException - if a database-access error occurs.

isWritable

public boolean isWritable(int column)
                   throws java.sql.SQLException
Is it possible for a write on the column to succeed?

Specified by:
isWritable in interface java.sql.ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
true if column is possibly writable
Throws:
java.sql.SQLException - if a database-access error occurs.

isDefinitelyWritable

public boolean isDefinitelyWritable(int column)
                             throws java.sql.SQLException
Will a write on the column definitely succeed?

Specified by:
isDefinitelyWritable in interface java.sql.ResultSetMetaData
Parameters:
column - the first column is 1, the second is 2, ...
Returns:
true if column is definitely writable
Throws:
java.sql.SQLException - if a database-access error occurs.

getColumnClassName

public java.lang.String getColumnClassName(int column)
                                    throws java.sql.SQLException
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. JDBC 2.0.

Specified by:
getColumnClassName in interface java.sql.ResultSetMetaData
Throws:
java.sql.SQLException - if a database-access error occurs

Built on Thu 2012-03-29 21:53:33+0000, from revision ???

Apache Derby V10.6 Internals - Copyright © 2004,2007 The Apache Software Foundation. All Rights Reserved.