/**
   * Stores the data for the child records back into the Escher layer. Doesn't actually do the
   * writing out, that's left to the Escher layer to do. Must be called before writeOut/serialize is
   * called on the underlying Escher object!
   */
  public void writeOut(OutputStream out) throws IOException {
    // Write out our children, and stuff them into the Escher layer

    // Grab the children's data
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    for (int i = 0; i < _children.length; i++) {
      _children[i].writeOut(baos);
    }
    byte[] data = baos.toByteArray();

    // Save in the escher layer
    _escherRecord.setData(data);
  }