package me.prettyprint.cassandra.model;
import java.util.List;
import me.prettyprint.cassandra.utils.Assert;
import me.prettyprint.hector.api.Serializer;
import me.prettyprint.hector.api.beans.ColumnSlice;
import me.prettyprint.hector.api.beans.Row;
import org.apache.cassandra.thrift.Column;
/**
* A Row is a touple consisting of a Key and a Column Slice.
*
* A Row may be used to hold the returned value from queries such as get_range_slices.
*
* @author Ran Tavory
*
* @param <N> Column name type
* @param <V> Column value type
*
*/
public final class RowImpl<K,N,V> implements Row<K, N, V>{
private final K rowKey;
private final ColumnSlice<N,V> columnSlice;
/*package*/ RowImpl(K k, List<Column> columns, Serializer<N> nameSerializer,
Serializer<V> valueSerializer) {
Assert.noneNull(k, columns, nameSerializer, valueSerializer);
this.rowKey = k;
columnSlice = new ColumnSliceImpl<N,V>(columns, nameSerializer, valueSerializer);
}
@Override
public K getKey() {
return rowKey;
}
@Override
public ColumnSlice<N, V> getColumnSlice() {
return columnSlice;
}
@Override
public String toString() {
return "Row(" + rowKey + "," + columnSlice + ")";
}
}