public static final Value encodeRow(List<Key> keys, List<Value> values) throws IOException {
ByteArrayOutputStream out = new ByteArrayOutputStream();
DataOutputStream dout = new DataOutputStream(out);
dout.writeInt(keys.size());
for (int i = 0; i < keys.size(); i++) {
Key k = keys.get(i);
Value v = values.get(i);
// write the colfam
{
ByteSequence bs = k.getColumnFamilyData();
dout.writeInt(bs.length());
dout.write(bs.getBackingArray(), bs.offset(), bs.length());
}
// write the colqual
{
ByteSequence bs = k.getColumnQualifierData();
dout.writeInt(bs.length());
dout.write(bs.getBackingArray(), bs.offset(), bs.length());
}
// write the column visibility
{
ByteSequence bs = k.getColumnVisibilityData();
dout.writeInt(bs.length());
dout.write(bs.getBackingArray(), bs.offset(), bs.length());
}
// write the timestamp
dout.writeLong(k.getTimestamp());
// write the value
byte[] valBytes = v.get();
dout.writeInt(valBytes.length);
dout.write(valBytes);
}