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
|
getDouble(String columnName)
public abstract double getDouble(String columnName)
Parameter |
---|
Name | Description |
columnName | String
|
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
|
getJson(String columnName)
public default String getJson(String columnName)
Parameter |
---|
Name | Description |
columnName | 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
|
getString(String columnName)
public abstract String getString(String columnName)
Parameter |
---|
Name | Description |
columnName | 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
|