package me.prettyprint.hector.api.beans; import java.nio.ByteBuffer; import java.util.List; import me.prettyprint.hector.api.Serializer; /** * Models a SuperColumn in a protocol independant manner * * @param <SN> * SuperColumn name type * @param <N> * Column name type * @param <V> * Column value type * * @author zznate */ public interface HSuperColumn<SN, N, V> { HSuperColumn<SN, N, V> setName(SN name); HSuperColumn<SN, N, V> setSubcolumns(List<HColumn<N, V>> subcolumns); HSuperColumn<SN, N, V> setClock(long clock); public long getClock(); int getSize(); SN getName(); /** * * @return an unmodifiable list of columns */ List<HColumn<N, V>> getColumns(); HColumn<N, V> get(int i); HColumn<N, V> getSubColumnByName(N subColumnName); Serializer<SN> getNameSerializer(); byte[] getNameBytes(); ByteBuffer getNameByteBuffer(); Serializer<SN> getSuperNameSerializer(); Serializer<V> getValueSerializer(); }