Class StringColumnVTI
- All Implemented Interfaces:
AutoCloseable
,ResultSet
,Wrapper
,AwareVTI
- Direct Known Subclasses:
XmlVTI
This is an abstract table function which assumes that all columns are strings and which coerces the strings to reasonable values for various getXXX() methods. Subclasses must implement the following ResultSet methods:
- next( )
- close()
and the following protected method introduced by this class:
- getRawColumn( int columnNumber )
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.derby.vti.VTITemplate
VTITemplate.ColumnDescriptor
-
Field Summary
FieldsFields inherited from interface java.sql.ResultSet
CLOSE_CURSORS_AT_COMMIT, CONCUR_READ_ONLY, CONCUR_UPDATABLE, FETCH_FORWARD, FETCH_REVERSE, FETCH_UNKNOWN, HOLD_CURSORS_OVER_COMMIT, TYPE_FORWARD_ONLY, TYPE_SCROLL_INSENSITIVE, TYPE_SCROLL_SENSITIVE
-
Constructor Summary
ConstructorsConstructorDescriptionStringColumnVTI
(String[] columnNames) Build a StringColumnVTI with the given column names -
Method Summary
Modifier and TypeMethodDescriptionprivate void
Set the wasNull flag based on whether this column value turned out to be null.int
findColumn
(String columnName) getAsciiStream
(int columnIndex) getBigDecimal
(int columnIndex) getBinaryStream
(int columnIndex) getBlob
(int columnIndex) boolean
getBoolean
(int columnIndex) byte
getByte
(int columnIndex) byte[]
getBytes
(int columnIndex) getClob
(int columnIndex) int
Get the number of columns.getColumnName
(int columnNumber) Get name of a column (1-based indexing).getDate
(int columnIndex) double
getDouble
(int columnIndex) private InputStream
getEncodedStream
(String columnValue, String encoding) Turn a string into an appropriately encoded ByteArrayInputStream.float
getFloat
(int columnIndex) int
getInt
(int columnIndex) long
getLong
(int columnIndex) protected abstract String
getRawColumn
(int columnNumber) Get the string value of the column in the current row identified by the 1-based columnNumber.short
getShort
(int columnIndex) getString
(int columnIndex) getTime
(int columnIndex) getTimestamp
(int columnIndex) private SQLException
makeSQLException
(String sqlstate, Object... args) Construct a SQLException from a SQLState and args.private long
parseDateTime
(String columnValue) Translate a date/time expression into the corresponding long number of milliseconds.void
setColumnNames
(String[] columnNames) Set the column names for this table function.boolean
wasNull()
private SQLException
Wrap an exception in a SQLException.Methods inherited from class org.apache.derby.vti.VTITemplate
absolute, afterLast, beforeFirst, cancelRowUpdates, clearWarnings, deleteRow, first, getArray, getArray, getAsciiStream, getBigDecimal, getBigDecimal, getBigDecimal, getBinaryStream, getBlob, getBoolean, getByte, getBytes, getCharacterStream, getCharacterStream, getClob, getConcurrency, getContext, getCursorName, getDate, getDate, getDate, getDouble, getFetchDirection, getFetchSize, getFloat, getHoldability, getInt, getLong, getMetaData, getNCharacterStream, getNCharacterStream, getNClob, getNClob, getNString, getNString, getObject, getObject, getObject, getObject, getObject, getObject, getRef, getRef, getReturnTableSignature, getRow, getRowId, getRowId, getShort, getSQLXML, getSQLXML, getStatement, getString, getTime, getTime, getTime, getTimestamp, getTimestamp, getTimestamp, getType, getUnicodeStream, getUnicodeStream, getURL, getURL, getWarnings, insertRow, isAfterLast, isBeforeFirst, isClosed, isFirst, isLast, isWrapperFor, last, moveToCurrentRow, moveToInsertRow, notImplemented, previous, refreshRow, relative, rowDeleted, rowInserted, rowUpdated, setContext, setFetchDirection, setFetchSize, unwrap, updateArray, updateArray, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateBigDecimal, updateBigDecimal, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBlob, updateBlob, updateBlob, updateBlob, updateBlob, updateBlob, updateBoolean, updateBoolean, updateByte, updateByte, updateBytes, updateBytes, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateClob, updateClob, updateClob, updateClob, updateClob, updateClob, updateDate, updateDate, updateDouble, updateDouble, updateFloat, updateFloat, updateInt, updateInt, updateLong, updateLong, updateNCharacterStream, updateNCharacterStream, updateNCharacterStream, updateNCharacterStream, updateNClob, updateNClob, updateNClob, updateNClob, updateNClob, updateNClob, updateNString, updateNString, updateNull, updateNull, updateObject, updateObject, updateObject, updateObject, updateRef, updateRef, updateRow, updateRowId, updateRowId, updateShort, updateShort, updateSQLXML, updateSQLXML, updateString, updateString, updateTime, updateTime, updateTimestamp, updateTimestamp
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.sql.ResultSet
close, next, updateObject, updateObject, updateObject, updateObject
-
Field Details
-
_columnNames
-
_lastColumnWasNull
private boolean _lastColumnWasNull
-
-
Constructor Details
-
StringColumnVTI
Build a StringColumnVTI with the given column names
-
-
Method Details
-
getRawColumn
Get the string value of the column in the current row identified by the 1-based columnNumber.
- Throws:
SQLException
-
setColumnNames
Set the column names for this table function. This is useful for AwareVTIs, which need to figure out their column names after analyzing their execution context. Throws an exception if the column names have already been set.
- Throws:
SQLException
-
getColumnCount
public int getColumnCount()Get the number of columns.
-
getColumnName
Get name of a column (1-based indexing).
-
wasNull
- Specified by:
wasNull
in interfaceResultSet
- Overrides:
wasNull
in classVTITemplate
- Throws:
SQLException
-
findColumn
- Specified by:
findColumn
in interfaceResultSet
- Overrides:
findColumn
in classVTITemplate
- Throws:
SQLException
-
getString
- Specified by:
getString
in interfaceResultSet
- Overrides:
getString
in classVTITemplate
- Throws:
SQLException
-
getBoolean
- Specified by:
getBoolean
in interfaceResultSet
- Overrides:
getBoolean
in classVTITemplate
- Throws:
SQLException
-
getByte
- Specified by:
getByte
in interfaceResultSet
- Overrides:
getByte
in classVTITemplate
- Throws:
SQLException
-
getShort
- Specified by:
getShort
in interfaceResultSet
- Overrides:
getShort
in classVTITemplate
- Throws:
SQLException
-
getInt
- Specified by:
getInt
in interfaceResultSet
- Overrides:
getInt
in classVTITemplate
- Throws:
SQLException
-
getLong
- Specified by:
getLong
in interfaceResultSet
- Overrides:
getLong
in classVTITemplate
- Throws:
SQLException
-
getFloat
- Specified by:
getFloat
in interfaceResultSet
- Overrides:
getFloat
in classVTITemplate
- Throws:
SQLException
-
getDouble
- Specified by:
getDouble
in interfaceResultSet
- Overrides:
getDouble
in classVTITemplate
- Throws:
SQLException
-
getBigDecimal
- Specified by:
getBigDecimal
in interfaceResultSet
- Overrides:
getBigDecimal
in classVTITemplate
- Throws:
SQLException
-
getBytes
- Specified by:
getBytes
in interfaceResultSet
- Overrides:
getBytes
in classVTITemplate
- Throws:
SQLException
-
getDate
- Specified by:
getDate
in interfaceResultSet
- Overrides:
getDate
in classVTITemplate
- Throws:
SQLException
-
getTime
- Specified by:
getTime
in interfaceResultSet
- Overrides:
getTime
in classVTITemplate
- Throws:
SQLException
-
getTimestamp
- Specified by:
getTimestamp
in interfaceResultSet
- Overrides:
getTimestamp
in classVTITemplate
- Throws:
SQLException
-
getAsciiStream
- Specified by:
getAsciiStream
in interfaceResultSet
- Overrides:
getAsciiStream
in classVTITemplate
- Throws:
SQLException
-
getBinaryStream
- Specified by:
getBinaryStream
in interfaceResultSet
- Overrides:
getBinaryStream
in classVTITemplate
- Throws:
SQLException
-
getBlob
- Specified by:
getBlob
in interfaceResultSet
- Overrides:
getBlob
in classVTITemplate
- Throws:
SQLException
-
getClob
- Specified by:
getClob
in interfaceResultSet
- Overrides:
getClob
in classVTITemplate
- Throws:
SQLException
-
checkNull
Set the wasNull flag based on whether this column value turned out to be null.
-
wrap
Wrap an exception in a SQLException.
-
parseDateTime
Translate a date/time expression into the corresponding long number of milliseconds.
- Throws:
SQLException
-
getEncodedStream
Turn a string into an appropriately encoded ByteArrayInputStream.
- Throws:
SQLException
-
makeSQLException
Construct a SQLException from a SQLState and args.
-