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.SuperRow; import me.prettyprint.hector.api.beans.SuperSlice; import org.apache.cassandra.thrift.SuperColumn; /** * 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 * @param <V> * Column value type * */ public final class SuperRowImpl<K, SN, N, V> implements SuperRow<K, SN, N, V>{ private final K rowKey; private final SuperSlice<SN, N, V> slice; /*package*/SuperRowImpl(K bs, List<SuperColumn> thriftSuperColumns, Serializer<SN> sNameSerializer, Serializer<N> nameSerializer, Serializer<V> valueSerializer) { Assert.noneNull(bs, thriftSuperColumns, nameSerializer, valueSerializer); this.rowKey = bs; slice = new SuperSliceImpl<SN, N, V>(thriftSuperColumns, sNameSerializer, nameSerializer, valueSerializer); } @Override public K getKey() { return rowKey; } @Override public SuperSlice<SN, N, V> getSuperSlice() { return slice; } @Override public String toString() { return "SuperRow(" + rowKey + "," + slice + ")"; } }