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