@Override
  protected void writeInternal(ObjectDataOutput out) throws IOException {
    super.writeInternal(out);

    out.writeInt(overflowPolicy.getId());

    out.writeInt(items.length);
    for (Data item : items) {
      out.writeData(item);
    }
  }
  @Override
  protected void readInternal(ObjectDataInput in) throws IOException {
    super.readInternal(in);

    overflowPolicy = OverflowPolicy.getById(in.readInt());

    int length = in.readInt();
    items = new Data[length];
    for (int k = 0; k < items.length; k++) {
      items[k] = in.readData();
    }
  }