private void collectKeyValues(Slice slice, int col, BitMapContainer container, // ArrayList<Pair<ImmutableBytesWritable, ImmutableBytesWritable>> result) { List<ImmutableBytesWritable> values = container.toBytes(); for (int v = 0; v < values.size(); v++) { ImmutableBytesWritable key = encodeKey(slice.getShard(), slice.getTimestamp(), col, v); result.add(new Pair<ImmutableBytesWritable, ImmutableBytesWritable>( key, values.get(v))); } }
@Test public void testBitMapContainer() { // create container BitMapContainer container = new BitMapContainer(info.getDigest(), 0); Dictionary<String> dict = info.dict(0); for (int v = dict.getMinId(); v <= dict.getMaxId(); v++) { container.append(v); } container.append(Dictionary.NULL_ID[dict.getSizeOfId()]); container.closeForChange(); // copy by serialization List<ImmutableBytesWritable> bytes = container.toBytes(); BitMapContainer container2 = new BitMapContainer(info.getDigest(), 0); container2.fromBytes(bytes); // check the copy int i = 0; for (int v = dict.getMinId(); v <= dict.getMaxId(); v++) { int value = container2.getValueIntAt(i++); assertEquals(v, value); } assertEquals(Dictionary.NULL_ID[dict.getSizeOfId()], container2.getValueIntAt(i++)); assertEquals(container, container2); }