package me.prettyprint.cassandra.model;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import me.prettyprint.cassandra.utils.Assert;
import me.prettyprint.hector.api.Serializer;
import me.prettyprint.hector.api.beans.CounterRow;
import me.prettyprint.hector.api.beans.CounterRows;
import org.apache.cassandra.thrift.CounterColumn;
/**
* Returned by a MultigetSliceQuery (multiget_slice thrift call)
*
*
* @param <N>
*/
public class CounterRowsImpl<K, N> implements CounterRows<K, N> {
protected final Map<K, CounterRow<K, N>> rows;
public CounterRowsImpl(Map<K, List<CounterColumn>> thriftRet, Serializer<N> nameSerializer) {
Assert.noneNull(thriftRet, nameSerializer);
rows = new LinkedHashMap<K, CounterRow<K, N>>(thriftRet.size());
for (Map.Entry<K, List<CounterColumn>> entry : thriftRet.entrySet()) {
rows.put(entry.getKey(), new CounterRowImpl<K, N>(entry.getKey(), entry.getValue(), nameSerializer));
}
}
@Override
public CounterRow<K, N> getByKey(K key) {
return rows.get(key);
}
@Override
public int getCount() {
return rows.size();
}
@Override
public Iterator<CounterRow<K, N>> iterator() {
return rows.values().iterator();
}
@Override
public String toString() {
return "Rows(" + rows + ")";
}
}