package com.netflix.astyanax.cql.direct;
import java.util.List;
import com.datastax.driver.core.ResultSet;
import com.netflix.astyanax.cql.CqlSchema;
import com.netflix.astyanax.cql.CqlStatementResult;
import com.netflix.astyanax.cql.reads.model.CqlRowListImpl;
import com.netflix.astyanax.model.ColumnFamily;
import com.netflix.astyanax.model.Rows;
/**
* Impl of {@link CqlStatementResult} that parses the result set from java driver query operations.
*
* @author poberai
*/
public class DirectCqlStatementResultImpl implements CqlStatementResult {
private final ResultSet rs;
public DirectCqlStatementResultImpl(ResultSet rs) {
this.rs = rs;
}
@Override
public long asCount() {
return rs.one().getLong(0);
}
@Override
public <K, C> Rows<K, C> getRows(ColumnFamily<K, C> columnFamily) {
List<com.datastax.driver.core.Row> rows = rs.all();
return new CqlRowListImpl<K, C>(rows, columnFamily);
}
@Override
public CqlSchema getSchema() {
return new DirectCqlSchema(rs);
}
public static class DirectCqlSchema implements CqlSchema {
private final ResultSet rs;
public DirectCqlSchema(ResultSet result) {
this.rs = result;
}
public ResultSet getResultSet() {
return rs;
}
}
}