.build();
LOG.debug("HBaseMapPager data request: {} and page size {}", nextPageDataRequest, pageSize);
final KijiTableLayout layout = mTable.getLayout();
final HBaseColumnNameTranslator translator = HBaseColumnNameTranslator.from(layout);
final HBaseDataRequestAdapter adapter =
new HBaseDataRequestAdapter(nextPageDataRequest, translator);
try {
final Get hbaseGet = adapter.toGet(mEntityId, layout);
if (LOG.isDebugEnabled()) {
LOG.debug("Sending HBase Get: {} with filter {}",
hbaseGet, Debug.toDebugString(hbaseGet.getFilter()));
}
final Result result = doHBaseGet(hbaseGet);
LOG.debug("Got {} cells over {} requested", result.size(), pageSize);
final KeyValue[] kvs = result.raw();
final String[] qualifiers = new String[kvs.length];
for (int i = 0; i < kvs.length; ++i) {
final HBaseColumnName hbaseColumn =
new HBaseColumnName(kvs[i].getFamily(), kvs[i].getQualifier());
final KijiColumnName kijiColumn = translator.toKijiColumnName(hbaseColumn);
qualifiers[i] = kijiColumn.getQualifier();
}
// There is an HBase bug that leads to less KeyValue being returned than expected.
// An empty result appears to be a reliable way to detect the end of the iteration.