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
|