/
CounterSuperSliceImpl.java
55 lines (46 loc) · 1.76 KB
/
CounterSuperSliceImpl.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package me.prettyprint.cassandra.model;
import me.prettyprint.cassandra.utils.Assert;
import me.prettyprint.hector.api.Serializer;
import me.prettyprint.hector.api.beans.CounterSuperSlice;
import me.prettyprint.hector.api.beans.HCounterSuperColumn;
import org.apache.cassandra.thrift.CounterSuperColumn;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Represents a return of the get_slice query for supercolumns
*
* @param <SN> Super column name type
* @param <N> Column name type
*/
public final class CounterSuperSliceImpl<SN,N> implements CounterSuperSlice<SN, N> {
private final Map<SN,HCounterSuperColumn<SN,N>> columnsMap;
private final List<HCounterSuperColumn<SN,N>> columnsList;
public CounterSuperSliceImpl(List<CounterSuperColumn> tSuperColumns, Serializer<SN> sNameSerializer,
Serializer<N> nameSerializer) {
Assert.noneNull(tSuperColumns, sNameSerializer, nameSerializer);
columnsMap = new HashMap<SN,HCounterSuperColumn<SN,N>>(tSuperColumns.size());
columnsList = new ArrayList<HCounterSuperColumn<SN,N>>(tSuperColumns.size());
for (CounterSuperColumn sc: tSuperColumns) {
HCounterSuperColumn<SN,N> column = new HCounterSuperColumnImpl<SN,N>(sc, sNameSerializer, nameSerializer);
columnsMap.put(column.getName(), column);
columnsList.add(column);
}
}
/**
* @return an unmodifiable list of supercolumns
*/
@Override
public List<HCounterSuperColumn<SN,N>> getSuperColumns() {
return columnsList;
}
@Override
public HCounterSuperColumn<SN, N> getColumnByName(SN columnName) {
return columnsMap.get(columnName);
}
@Override
public String toString() {
return "SuperSlice(" + columnsList.toString() + ")";
}
}