code: public PageTree copy(TableKelp table, int newPid)
    {
      PageTree newTree = new PageTree(newPid, getNextId(), getSequence(),
                                      getMinKey(), getMaxKey());
      
      for (BlockTree block : _blocks) {
        block.copyTo(table, newTree);
      }
      
      return newTree;
    }
docs: /*
  @InService(TableServiceImpl.class)
  static PageTree read(TableKelp table,
  TableServiceImpl pageActor,
  ReadStream is,
  int length,
  int pid,
  int nextPid,
  long sequence)
  throws IOException
  {
  byte []minKey = new byte[table.getKeyLength()];
  byte []maxKey = new byte[table.getKeyLength()];
  
  is.readAll(minKey, 0, minKey.length);
  is.readAll(maxKey, 0, maxKey.length);
  
  length -= minKey.length + maxKey.length;
  
  PageTree page = new PageTree(pid, nextPid, sequence, minKey, maxKey);
  
  int len = 2 * table.getKeyLength() + 4;
  
  byte []min = new byte[table.getKeyLength()];
  byte []max = new byte[table.getKeyLength()];
  
  for (; length > 0; length -= len) {
  is.readAll(min, 0, min.length);
  is.readAll(max, 0, max.length);
  
  int id = BitsUtil.readInt(is);
  
  page.insert(min, max, id);
  }
  
  page.clearDirty();
  
  return page;
  }