@Override
 public byte[] getBytes(final Page page) {
   final byte[] bytes = MethodPageValueManager.getIntBytes(page);
   final int size = MethodPageValueManager.getIntValue(bytes);
   final byte[] valueBytes = new byte[size + 4];
   System.arraycopy(bytes, 0, valueBytes, 0, 4);
   page.readBytes(valueBytes, 4, size);
   return null;
 }
  @Override
  public byte[] getBytes(final T value) {
    try {
      final ByteArrayOutputStream bOut = new ByteArrayOutputStream();
      final ObjectOutputStream out = new ObjectOutputStream(bOut);
      out.writeObject(value);
      out.close();
      final byte[] valueBytes = bOut.toByteArray();

      final int size = valueBytes.length;
      final byte[] sizeBytes = MethodPageValueManager.getValueIntBytes(size);
      final byte[] bytes = new byte[valueBytes.length + sizeBytes.length];
      System.arraycopy(sizeBytes, 0, bytes, 0, sizeBytes.length);
      System.arraycopy(valueBytes, 0, bytes, sizeBytes.length, valueBytes.length);
      return bytes;
    } catch (final Exception e) {
      return (byte[]) Exceptions.throwUncheckedException(e);
    }
  }