private void writeDNA(final TCByteBufferOutputStream out, final DNAInternal dna) throws IOException,
ClassNotFoundException {
final DNAWriterInternal dnaWriter = new DNAWriterImpl(out, dna.getObjectID(), dna.getTypeName(), this.serializer,
DNA_STORAGE_ENCODING, dna.isDelta());
writeParentObjectID(dnaWriter, dna.getParentObjectID());
final DNACursor cursor = dna.getCursor();
addActions(dnaWriter, cursor, DNA_STORAGE_ENCODING, dna);
for (MetaDataDescriptorInternal mdd : dna.getMetaDataReader()) {
dnaWriter.addMetaData(mdd);
}
dnaWriter.markSectionEnd();
dnaWriter.finalizeHeader();
}