* the return value.
* @return The decoded KijiCell.
* @throws IOException If there is an error.
*/
private DecodedCell<T> decode(byte[] bytes, T reuse) throws IOException {
final ByteStreamArray byteStream = new ByteStreamArray(bytes);
final Schema writerSchema = mSchemaDecoder.decode(byteStream);
final Schema readerSchema = (mReaderSchema != null) ? mReaderSchema : writerSchema;
final ByteBuffer binaryData =
ByteBuffer.wrap(bytes, byteStream.getOffset(), bytes.length - byteStream.getOffset());
final T data = decodeAvro(binaryData, writerSchema, readerSchema, reuse);
return new DecodedCell<T>(writerSchema, readerSchema, data);
}