Class CassandraEnumerator
- java.lang.Object
-
- org.apache.calcite.adapter.cassandra.CassandraEnumerator
-
- All Implemented Interfaces:
java.lang.AutoCloseable
,Enumerator<java.lang.Object>
class CassandraEnumerator extends java.lang.Object implements Enumerator<java.lang.Object>
Enumerator that reads from a Cassandra column family.
-
-
Field Summary
Fields Modifier and Type Field Description private com.datastax.driver.core.Row
current
private java.util.List<RelDataTypeField>
fieldTypes
private java.util.Iterator<com.datastax.driver.core.Row>
iterator
-
Constructor Summary
Constructors Constructor Description CassandraEnumerator(com.datastax.driver.core.ResultSet results, RelProtoDataType protoRowType)
Creates a CassandraEnumerator.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Closes this enumerable and releases resources.java.lang.Object
current()
Produce the next row from the resultsprivate java.lang.Object
currentRowField(int index, SqlTypeName typeName)
Get a field for the current row from the underlying object.boolean
moveNext()
Advances the enumerator to the next element of the collection.void
reset()
Sets the enumerator to its initial position, which is before the first element in the collection.
-
-
-
Field Detail
-
iterator
private java.util.Iterator<com.datastax.driver.core.Row> iterator
-
current
private com.datastax.driver.core.Row current
-
fieldTypes
private java.util.List<RelDataTypeField> fieldTypes
-
-
Constructor Detail
-
CassandraEnumerator
CassandraEnumerator(com.datastax.driver.core.ResultSet results, RelProtoDataType protoRowType)
Creates a CassandraEnumerator.- Parameters:
results
- Cassandra result set (ResultSet
)protoRowType
- The type of resulting rows
-
-
Method Detail
-
current
public java.lang.Object current()
Produce the next row from the results- Specified by:
current
in interfaceEnumerator<java.lang.Object>
- Returns:
- A new row from the results
-
currentRowField
private java.lang.Object currentRowField(int index, SqlTypeName typeName)
Get a field for the current row from the underlying object.- Parameters:
index
- Index of the field within the Row objecttypeName
- Type of the field in this row
-
moveNext
public boolean moveNext()
Description copied from interface:Enumerator
Advances the enumerator to the next element of the collection.After an enumerator is created or after the
reset
method is called, an enumerator is positioned before the first element of the collection, and the first call to themoveNext
method moves the enumerator over the first element of the collection.If
moveNext
passes the end of the collection, the enumerator is positioned after the last element in the collection andmoveNext
returnsfalse
. When the enumerator is at this position, subsequent calls tomoveNext
also returnfalse
until#reset
is called.An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection, such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated. The next call to
moveNext
orEnumerator.reset()
may, at the discretion of the implementation, throw aConcurrentModificationException
.- Specified by:
moveNext
in interfaceEnumerator<java.lang.Object>
- Returns:
true
if the enumerator was successfully advanced to the next element;false
if the enumerator has passed the end of the collection
-
reset
public void reset()
Description copied from interface:Enumerator
Sets the enumerator to its initial position, which is before the first element in the collection.An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection, such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated. The next call to
Enumerator.moveNext()
orreset
may, at the discretion of the implementation, throw aConcurrentModificationException
.This method is optional; it may throw
UnsupportedOperationException
.Notes to Implementers
All calls to Reset must result in the same state for the enumerator. The preferred implementation is to move the enumerator to the beginning of the collection, before the first element. This invalidates the enumerator if the collection has been modified since the enumerator was created, which is consistent with
Enumerator.moveNext()
andEnumerator.current()
.- Specified by:
reset
in interfaceEnumerator<java.lang.Object>
-
close
public void close()
Description copied from interface:Enumerator
Closes this enumerable and releases resources.This method is idempotent. Calling it multiple times has the same effect as calling it once.
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfaceEnumerator<java.lang.Object>
-
-