package me.prettyprint.cassandra.model; import java.util.*; import me.prettyprint.hector.api.Serializer; import me.prettyprint.hector.api.beans.OrderedRows; import me.prettyprint.hector.api.beans.Row; import org.apache.cassandra.thrift.Column; /** * Return type from get_range_slices for simple columns * @author Ran Tavory * @author zznate * * @param <N> * @param <V> */ public class OrderedRowsImpl<K,N,V> extends RowsImpl<K,N,V> implements OrderedRows<K, N, V> { protected final List<Row<K,N,V>> rowsList; public OrderedRowsImpl(LinkedHashMap<K, List<Column>> thriftRet, Serializer<N> nameSerializer, Serializer<V> valueSerializer) { super(thriftRet, nameSerializer, valueSerializer); rowsList = new ArrayList<Row<K,N,V>>(rows.values()); } protected OrderedRowsImpl() { super(); rowsList = new ArrayList<Row<K,N,V>>(); } /** * Preserves rows order * @return an unmodifiable list of Rows */ @Override public List<Row<K,N,V>> getList() { return rowsList; } /** * Returns the last element in this row result. Helpful for passing along for paging situations. * @return */ @Override public Row<K, N, V> peekLast() { return rowsList != null && rowsList.size() > 0 ? rowsList.get(rowsList.size()-1) : null; } }