@Override
public void filterRow(List<KeyValue> kvs) {
byte[] dataBytes = null;
byte[] metaBytes = null;
byte[] stateBytes = null;
for (KeyValue kv : kvs) {
if (hasQualifier(kv, QueueEntryRow.DATA_COLUMN)) {
dataBytes = kv.getValue();
} else if (hasQualifier(kv, QueueEntryRow.META_COLUMN)) {
metaBytes = kv.getValue();
} else if (hasQualifier(kv, stateColumnName)) {
stateBytes = kv.getValue();
}
}
if (dataBytes == null || metaBytes == null) {
skipRow = true;
return;
}
QueueEntryRow.CanConsume canConsume =
QueueEntryRow.canConsume(consumerConfig, transaction, writePointer, counter, metaBytes, stateBytes);
skipRow = canConsume == QueueEntryRow.CanConsume.NO;
}