public interface StructReader
A base interface for reading the fields of a STRUCT. The Cloud Spanner yields
StructReader instances as one of the subclasses ResultSet or Struct, most
commonly as the result of a read or query operation. At any point in time, a StructReader
provides access to a single tuple of data comprising multiple typed columns. Each column may have
a NULL or non-NULL value; in both cases, columns always have a type.
Column values are accessed using the getTypeName() methods; a set of methods exists
for each Java type that a column may be read as, and depending on the type of the column, only a
subset of those methods will be appropriate. For example, #getString(int) and #getString(String) exist for reading columns of type Type#string(); attempting to call
those methods for columns of other types will result in an IllegalStateException. The
getTypeName() methods should only be called for non-NULL values, otherwise a
NullPointerException is raised; #isNull(int)/#isNull(String) can be used
to test for NULL-ness if necessary.
All methods for accessing a column have overloads that accept an int column index and
a String column name. Column indices are zero-based. The column name overloads will fail
with IllegalArgumentException if the column name does not appear exactly once in this
instance's #getType(). The int overloads are typically more efficient than their
String counterparts.
StructReader itself does not define whether the implementing type is mutable or
immutable. For example, ResultSet is a mutable implementation of StructReader,
where the StructReader methods provide access to the row that the result set is currently
positioned over and ResultSet#next() changes that view to the next row, whereas Struct is an immutable implementation of StructReader.
Methods
getBigDecimal(int columnIndex)
public abstract BigDecimal getBigDecimal(int columnIndex)
| Parameter |
| Name |
Description |
columnIndex |
int
|
getBigDecimal(String columnName)
public abstract BigDecimal getBigDecimal(String columnName)
| Parameter |
| Name |
Description |
columnName |
String
|
getBigDecimalList(int columnIndex)
public abstract List<BigDecimal> getBigDecimalList(int columnIndex)
Returns the value of a non-NULL column with type Type.array(Type.numeric()).
| Parameter |
| Name |
Description |
columnIndex |
int
|
getBigDecimalList(String columnName)
public abstract List<BigDecimal> getBigDecimalList(String columnName)
Returns the value of a non-NULL column with type Type.array(Type.numeric()).
| Parameter |
| Name |
Description |
columnName |
String
|
getBoolean(int columnIndex)
public abstract boolean getBoolean(int columnIndex)
Returns the value of a non-NULL column with type Type#bool().
| Parameter |
| Name |
Description |
columnIndex |
int
|
getBoolean(String columnName)
public abstract boolean getBoolean(String columnName)
Returns the value of a non-NULL column with type Type#bool().
| Parameter |
| Name |
Description |
columnName |
String
|
getBooleanArray(int columnIndex)
public abstract boolean[] getBooleanArray(int columnIndex)
Returns the value of a non-NULL column with type Type.array(Type.bool()).
| Parameter |
| Name |
Description |
columnIndex |
int
|
getBooleanArray(String columnName)
public abstract boolean[] getBooleanArray(String columnName)
Returns the value of a non-NULL column with type Type.array(Type.bool()).
| Parameter |
| Name |
Description |
columnName |
String
|
getBooleanList(int columnIndex)
public abstract List<Boolean> getBooleanList(int columnIndex)
Returns the value of a non-NULL column with type Type.array(Type.bool()).
| Parameter |
| Name |
Description |
columnIndex |
int
|
getBooleanList(String columnName)
public abstract List<Boolean> getBooleanList(String columnName)
Returns the value of a non-NULL column with type Type.array(Type.bool()).
| Parameter |
| Name |
Description |
columnName |
String
|
getBytes(int columnIndex)
public abstract ByteArray getBytes(int columnIndex)
Returns the value of a non-NULL column with type Type#bytes().
| Parameter |
| Name |
Description |
columnIndex |
int
|
| Returns |
| Type |
Description |
com.google.cloud.ByteArray |
|
getBytes(String columnName)
public abstract ByteArray getBytes(String columnName)
Returns the value of a non-NULL column with type Type#bytes().
| Parameter |
| Name |
Description |
columnName |
String
|
| Returns |
| Type |
Description |
com.google.cloud.ByteArray |
|
getBytesList(int columnIndex)
public abstract List<ByteArray> getBytesList(int columnIndex)
Returns the value of a non-NULL column with type Type.array(Type.bytes()).
| Parameter |
| Name |
Description |
columnIndex |
int
|
| Returns |
| Type |
Description |
List<com.google.cloud.ByteArray> |
|
getBytesList(String columnName)
public abstract List<ByteArray> getBytesList(String columnName)
Returns the value of a non-NULL column with type Type.array(Type.bytes()).
| Parameter |
| Name |
Description |
columnName |
String
|
| Returns |
| Type |
Description |
List<com.google.cloud.ByteArray> |
|
getColumnCount()
public abstract int getColumnCount()
Returns the number of columns in the underlying data. This includes any columns with
NULL values.
| Returns |
| Type |
Description |
int |
|
getColumnIndex(String columnName)
public abstract int getColumnIndex(String columnName)
Returns the index of the column named columnName.
| Parameter |
| Name |
Description |
columnName |
String
|
| Returns |
| Type |
Description |
int |
|
getColumnType(int columnIndex)
public abstract Type getColumnType(int columnIndex)
Returns the type of a column.
| Parameter |
| Name |
Description |
columnIndex |
int
|
| Returns |
| Type |
Description |
Type |
|
getColumnType(String columnName)
public abstract Type getColumnType(String columnName)
Returns the type of a column.
| Parameter |
| Name |
Description |
columnName |
String
|
| Returns |
| Type |
Description |
Type |
|
getDate(int columnIndex)
public abstract Date getDate(int columnIndex)
Returns the value of a non-NULL column with type Type#date().
| Parameter |
| Name |
Description |
columnIndex |
int
|
| Returns |
| Type |
Description |
com.google.cloud.Date |
|
getDate(String columnName)
public abstract Date getDate(String columnName)
Returns the value of a non-NULL column with type Type#date().
| Parameter |
| Name |
Description |
columnName |
String
|
| Returns |
| Type |
Description |
com.google.cloud.Date |
|
getDateList(int columnIndex)
public abstract List<Date> getDateList(int columnIndex)
Returns the value of a non-NULL column with type Type.array(Type.date()).
| Parameter |
| Name |
Description |
columnIndex |
int
|
| Returns |
| Type |
Description |
List<com.google.cloud.Date> |
|
getDateList(String columnName)
public abstract List<Date> getDateList(String columnName)
Returns the value of a non-NULL column with type Type.array(Type.date()).
| Parameter |
| Name |
Description |
columnName |
String
|
| Returns |
| Type |
Description |
List<com.google.cloud.Date> |
|
getDouble(int columnIndex)
public abstract double getDouble(int columnIndex)
| Parameter |
| Name |
Description |
columnIndex |
int
|
| Returns |
| Type |
Description |
double |
|
getDouble(String columnName)
public abstract double getDouble(String columnName)
| Parameter |
| Name |
Description |
columnName |
String
|
| Returns |
| Type |
Description |
double |
|
getDoubleArray(int columnIndex)
public abstract double[] getDoubleArray(int columnIndex)
Returns the value of a non-NULL column with type Type.array(Type.float64()).
| Parameter |
| Name |
Description |
columnIndex |
int
|
| Returns |
| Type |
Description |
double[] |
|
getDoubleArray(String columnName)
public abstract double[] getDoubleArray(String columnName)
Returns the value of a non-NULL column with type Type.array(Type.float64()).
| Parameter |
| Name |
Description |
columnName |
String
|
| Returns |
| Type |
Description |
double[] |
|
getDoubleList(int columnIndex)
public abstract List<Double> getDoubleList(int columnIndex)
Returns the value of a non-NULL column with type Type.array(Type.float64()).
| Parameter |
| Name |
Description |
columnIndex |
int
|
getDoubleList(String columnName)
public abstract List<Double> getDoubleList(String columnName)
Returns the value of a non-NULL column with type Type.array(Type.float64()).
| Parameter |
| Name |
Description |
columnName |
String
|
getJson(int columnIndex)
public default String getJson(int columnIndex)
| Parameter |
| Name |
Description |
columnIndex |
int
|
| Returns |
| Type |
Description |
String |
|
getJson(String columnName)
public default String getJson(String columnName)
| Parameter |
| Name |
Description |
columnName |
String
|
| Returns |
| Type |
Description |
String |
|
getJsonList(int columnIndex)
public default List<String> getJsonList(int columnIndex)
Returns the value of a non-NULL column with type Type.array(Type.string()).
| Parameter |
| Name |
Description |
columnIndex |
int
|
getJsonList(String columnName)
public default List<String> getJsonList(String columnName)
Returns the value of a non-NULL column with type Type.array(Type.string()).
| Parameter |
| Name |
Description |
columnName |
String
|
getLong(int columnIndex)
public abstract long getLong(int columnIndex)
Returns the value of a non-NULL column with type Type#int64().
| Parameter |
| Name |
Description |
columnIndex |
int
|
| Returns |
| Type |
Description |
long |
|
getLong(String columnName)
public abstract long getLong(String columnName)
Returns the value of a non-NULL column with type Type#int64().
| Parameter |
| Name |
Description |
columnName |
String
|
| Returns |
| Type |
Description |
long |
|
getLongArray(int columnIndex)
public abstract long[] getLongArray(int columnIndex)
Returns the value of a non-NULL column with type Type.array(Type.int64()).
| Parameter |
| Name |
Description |
columnIndex |
int
|
| Returns |
| Type |
Description |
long[] |
|
getLongArray(String columnName)
public abstract long[] getLongArray(String columnName)
Returns the value of a non-NULL column with type Type.array(Type.int64()).
| Parameter |
| Name |
Description |
columnName |
String
|
| Returns |
| Type |
Description |
long[] |
|
getLongList(int columnIndex)
public abstract List<Long> getLongList(int columnIndex)
Returns the value of a non-NULL column with type Type.array(Type.int64()).
| Parameter |
| Name |
Description |
columnIndex |
int
|
getLongList(String columnName)
public abstract List<Long> getLongList(String columnName)
Returns the value of a non-NULL column with type Type.array(Type.int64()).
| Parameter |
| Name |
Description |
columnName |
String
|
getString(int columnIndex)
public abstract String getString(int columnIndex)
| Parameter |
| Name |
Description |
columnIndex |
int
|
| Returns |
| Type |
Description |
String |
|
getString(String columnName)
public abstract String getString(String columnName)
| Parameter |
| Name |
Description |
columnName |
String
|
| Returns |
| Type |
Description |
String |
|
getStringList(int columnIndex)
public abstract List<String> getStringList(int columnIndex)
Returns the value of a non-NULL column with type Type.array(Type.string()).
| Parameter |
| Name |
Description |
columnIndex |
int
|
getStringList(String columnName)
public abstract List<String> getStringList(String columnName)
Returns the value of a non-NULL column with type Type.array(Type.string()).
| Parameter |
| Name |
Description |
columnName |
String
|
getStructList(int columnIndex)
public abstract List<Struct> getStructList(int columnIndex)
Returns the value of a non-NULL column with type Type.array(Type.struct(...)).
| Parameter |
| Name |
Description |
columnIndex |
int
|
getStructList(String columnName)
public abstract List<Struct> getStructList(String columnName)
Returns the value of a non-NULL column with type Type.array(Type.struct(...)).
| Parameter |
| Name |
Description |
columnName |
String
|
getTimestamp(int columnIndex)
public abstract Timestamp getTimestamp(int columnIndex)
| Parameter |
| Name |
Description |
columnIndex |
int
|
| Returns |
| Type |
Description |
com.google.cloud.Timestamp |
|
getTimestamp(String columnName)
public abstract Timestamp getTimestamp(String columnName)
| Parameter |
| Name |
Description |
columnName |
String
|
| Returns |
| Type |
Description |
com.google.cloud.Timestamp |
|
getTimestampList(int columnIndex)
public abstract List<Timestamp> getTimestampList(int columnIndex)
Returns the value of a non-NULL column with type Type.array(Type.timestamp()).
| Parameter |
| Name |
Description |
columnIndex |
int
|
| Returns |
| Type |
Description |
List<com.google.cloud.Timestamp> |
|
getTimestampList(String columnName)
public abstract List<Timestamp> getTimestampList(String columnName)
Returns the value of a non-NULL column with type Type.array(Type.timestamp()).
| Parameter |
| Name |
Description |
columnName |
String
|
| Returns |
| Type |
Description |
List<com.google.cloud.Timestamp> |
|
getType()
public abstract Type getType()
Returns the type of the underlying data. This will always be a STRUCT type, with fields
corresponding to the data's columns. For the result of a read or query, this will always match
the columns passed to the read() call or named in the query text, in order.
| Returns |
| Type |
Description |
Type |
|
getValue(int columnIndex)
public default Value getValue(int columnIndex)
Returns the value of a nullable column as a Value.
| Parameter |
| Name |
Description |
columnIndex |
int
|
| Returns |
| Type |
Description |
Value |
|
getValue(String columnName)
public default Value getValue(String columnName)
Returns the value of a nullable column as a Value.
| Parameter |
| Name |
Description |
columnName |
String
|
| Returns |
| Type |
Description |
Value |
|
isNull(int columnIndex)
public abstract boolean isNull(int columnIndex)
Returns true if a column contains a NULL value.
| Parameter |
| Name |
Description |
columnIndex |
int
|
isNull(String columnName)
public abstract boolean isNull(String columnName)
Returns true if a column contains a NULL value.
| Parameter |
| Name |
Description |
columnName |
String
|