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.CounterSuperRow;
import me.prettyprint.hector.api.beans.CounterSuperSlice;
import org.apache.cassandra.thrift.CounterSuperColumn;
/**
* A SuperRow is a touple consisting of a Key and a SuperSlice.
*
* 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
*
*/
public final class CounterSuperRowImpl<K, SN, N> implements CounterSuperRow<K, SN, N> {
private final K rowKey;
private final CounterSuperSlice<SN, N> slice;
/*package*/CounterSuperRowImpl(K bs, List<CounterSuperColumn> thriftSuperColumns,
Serializer<SN> sNameSerializer, Serializer<N> nameSerializer) {
Assert.noneNull(bs, thriftSuperColumns, nameSerializer);
this.rowKey = bs;
slice = new CounterSuperSliceImpl<SN, N>(thriftSuperColumns, sNameSerializer, nameSerializer);
}
@Override
public K getKey() {
return rowKey;
}
@Override
public CounterSuperSlice<SN, N> getSuperSlice() {
return slice;
}
@Override
public String toString() {
return "SuperRow(" + rowKey + "," + slice + ")";
}
}