code: @Override
    public void writeExternal(ObjectOutput out) throws IOException {
      out.writeInt(getPageID());
      out.writeBoolean(isLeaf());
      out.writeBoolean(supernode);
      out.writeInt(numEntries);
      out.writeInt(entries.length);
      if(isSuperNode())
        return; // cannot fit this into out
      for(Entry entry : entries) {
        if(entry == null) {
          break;
        }
        entry.writeExternal(out);
      }
    }
docs: Calls the super method and writes the id of this node, the numEntries and
  the entries array to the specified stream. If this node is a supernode, it
  cannot fit into <code>out</code> and thus, only the header is written. The
  remaining space is left empty, since supernodes are to be written to the
  end of the file via {@link #writeSuperNode(ObjectOutput)}.