public DocumentDTO transformYElement(
      YExportable yExportable, ZipArchive currentZipArchive, String currentXmlPath) {

    DocumentDTO productObject = null;

    if (yExportable instanceof YElement) {
      YElement yElement = (YElement) yExportable;

      MetadataToProtoMetadataParser mtd2prt = new MetadataToProtoMetadataParserImpl();
      DocumentMetadata docMetadata =
          mtd2prt.yelementToDocumentMetadata(
              yElement, currentZipArchive, currentXmlPath, collection);

      if (docMetadata != null) {
        productObject = new DocumentDTO();
        productObject.setKey(docMetadata.getKey());
        // Document and DocumentMetadata should have the same key?
        productObject.setDocumentMetadata(docMetadata);

        List<YContentEntry> contents = yElement.getContents();
        for (YContentEntry content : contents) {
          // get a media path from yElement
          handleContent(productObject, content, currentZipArchive);
        }
      }
    }
    return productObject;
  }