Package org.apache.derby.impl.sql
Class GenericResultDescription
- java.lang.Object
-
- org.apache.derby.impl.sql.GenericResultDescription
-
- All Implemented Interfaces:
java.io.Externalizable,java.io.Serializable,Formatable,TypedFormat,ResultDescription
public final class GenericResultDescription extends java.lang.Object implements ResultDescription, Formatable
GenericResultDescription: basic implementation of result description, used in conjunction with the other implementations in this package. This implementation of ResultDescription may be used by anyone.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<java.lang.String,java.lang.Integer>columnNameMapA map which maps a column name to a column number.private ResultColumnDescriptor[]columnsThis class implements Formatable.private java.sql.ResultSetMetaDatametaDataSaved JDBC ResultSetMetaData object.private java.lang.StringstatementType
-
Constructor Summary
Constructors Constructor Description GenericResultDescription()Niladic constructor for FormatableGenericResultDescription(ResultColumnDescriptor[] columns, java.lang.String statementType)Build a GenericResultDescription from columns and typeGenericResultDescription(ResultDescription rd, int[] theCols)Build a GenericResultDescription
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intfindColumnInsenstive(java.lang.String columnName)Find a column name based upon the JDBC rules for getXXX and setXXX.intgetColumnCount()Returns the number of columns in the result set.ResultColumnDescriptorgetColumnDescriptor(int position)position is 1-based.ResultColumnDescriptor[]getColumnInfo()Return information about all the columns.ResultColumnDescriptorgetColumnInfo(int idx)Return the information about a single column (0-based indexing)java.sql.ResultSetMetaDatagetMetaData()Get the saved meta data.java.lang.StringgetStatementType()Returns an identifier that tells what type of statement has been executed.intgetTypeFormatId()Get the formatID which corresponds to this class.voidreadExternal(java.io.ObjectInput in)Read this object from a stream of stored objects.voidsetMetaData(java.sql.ResultSetMetaData rsmd)Set the meta data if it has not already been set.java.lang.StringtoString()ResultDescriptiontruncateColumns(int truncateFrom)Get a new result description that has been truncated from input column number.voidwriteExternal(java.io.ObjectOutput out)Write this object out
-
-
-
Field Detail
-
columns
private ResultColumnDescriptor[] columns
This class implements Formatable. That means that it can write itself to and from a formatted stream. If you add more fields to this class, make sure that you also write/read them with the writeExternal()/readExternal() methods. If, inbetween releases, you add more fields to this class, then you should bump the version number emitted by the getTypeFormatId() method.
-
statementType
private java.lang.String statementType
-
metaData
private transient java.sql.ResultSetMetaData metaData
Saved JDBC ResultSetMetaData object.
-
columnNameMap
private java.util.Map<java.lang.String,java.lang.Integer> columnNameMap
A map which maps a column name to a column number. Entries only added when accessing columns with the name.
-
-
Constructor Detail
-
GenericResultDescription
public GenericResultDescription()
Niladic constructor for Formatable
-
GenericResultDescription
public GenericResultDescription(ResultColumnDescriptor[] columns, java.lang.String statementType)
Build a GenericResultDescription from columns and type- Parameters:
columns- an array of col descriptorsstatementType- the type
-
GenericResultDescription
public GenericResultDescription(ResultDescription rd, int[] theCols)
Build a GenericResultDescription- Parameters:
rd- the result descriptiontheCols- the columns to take from the input rd
-
-
Method Detail
-
getStatementType
public java.lang.String getStatementType()
Description copied from interface:ResultDescriptionReturns an identifier that tells what type of statement has been executed. This can be used to determine what other methods to call to get the results back from a statement. For example, a SELECT statement returns rows and columns, while other statements don't, so you would only call getColumnCount() or getColumnType() for SELECT statements.- Specified by:
getStatementTypein interfaceResultDescription- Returns:
- A String identifier telling what type of statement this is.
- See Also:
ResultDescription.getStatementType()
-
getColumnCount
public int getColumnCount()
Description copied from interface:ResultDescriptionReturns the number of columns in the result set.- Specified by:
getColumnCountin interfaceResultDescription- Returns:
- The number of columns in the result set.
- See Also:
ResultDescription.getColumnCount()
-
getColumnInfo
public ResultColumnDescriptor[] getColumnInfo()
Description copied from interface:ResultDescriptionReturn information about all the columns.- Specified by:
getColumnInfoin interfaceResultDescription
-
getColumnInfo
public ResultColumnDescriptor getColumnInfo(int idx)
Description copied from interface:ResultDescriptionReturn the information about a single column (0-based indexing)- Specified by:
getColumnInfoin interfaceResultDescription
-
getColumnDescriptor
public ResultColumnDescriptor getColumnDescriptor(int position)
position is 1-based.- Specified by:
getColumnDescriptorin interfaceResultDescription- Parameters:
position- The oridinal position of a column in the ResultSet.- Returns:
- A ResultColumnDescriptor describing the column in the ResultSet.
- See Also:
ResultDescription.getColumnDescriptor(int)
-
truncateColumns
public ResultDescription truncateColumns(int truncateFrom)
Get a new result description that has been truncated from input column number. If the input column is 5, then columns 5 to getColumnCount() are removed. The new ResultDescription points to the same ColumnDescriptors (this method performs a shallow copy.- Specified by:
truncateColumnsin interfaceResultDescription- Parameters:
truncateFrom- the starting column to remove- Returns:
- a new ResultDescription
-
writeExternal
public void writeExternal(java.io.ObjectOutput out) throws java.io.IOExceptionWrite this object out- Specified by:
writeExternalin interfacejava.io.Externalizable- Parameters:
out- write bytes here- Throws:
java.io.IOException- thrown on error
-
readExternal
public void readExternal(java.io.ObjectInput in) throws java.io.IOException, java.lang.ClassNotFoundExceptionRead this object from a stream of stored objects.- Specified by:
readExternalin interfacejava.io.Externalizable- Parameters:
in- read this.- Throws:
java.io.IOException- thrown on errorjava.lang.ClassNotFoundException- thrown on error
-
getTypeFormatId
public int getTypeFormatId()
Get the formatID which corresponds to this class.- Specified by:
getTypeFormatIdin interfaceTypedFormat- Returns:
- the formatID of this class
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
setMetaData
public void setMetaData(java.sql.ResultSetMetaData rsmd)
Set the meta data if it has not already been set.- Specified by:
setMetaDatain interfaceResultDescription
-
getMetaData
public java.sql.ResultSetMetaData getMetaData()
Get the saved meta data.- Specified by:
getMetaDatain interfaceResultDescription
-
findColumnInsenstive
public int findColumnInsenstive(java.lang.String columnName)
Find a column name based upon the JDBC rules for getXXX and setXXX. Name matching is case-insensitive, matching the first name (1-based) if there are multiple columns that map to the same name.- Specified by:
findColumnInsenstivein interfaceResultDescription- Returns:
- Position of the column (1-based), -1 if no match.
-
-