function addMetadata($doc, $submissionNode, $submission)
{
$this->createLocalizedNodes($doc, $submissionNode, 'title', $submission->getTitle(null, false));
$this->createLocalizedNodes($doc, $submissionNode, 'prefix', $submission->getPrefix(null));
$this->createLocalizedNodes($doc, $submissionNode, 'subtitle', $submission->getSubtitle(null));
$this->createLocalizedNodes($doc, $submissionNode, 'abstract', $submission->getAbstract(null));
$this->createLocalizedNodes($doc, $submissionNode, 'coverage', $submission->getCoverage(null));
$this->createLocalizedNodes($doc, $submissionNode, 'type', $submission->getType(null));
$this->createLocalizedNodes($doc, $submissionNode, 'source', $submission->getSource(null));
$this->createLocalizedNodes($doc, $submissionNode, 'rights', $submission->getRights(null));
// add controlled vocabularies
// get the supported locale keys
$supportedLocales = array_keys(AppLocale::getSupportedFormLocales());
$controlledVocabulariesMapping = $this->_getControlledVocabulariesMappings();
foreach ($controlledVocabulariesMapping as $controlledVocabulariesNodeName => $mappings) {
$dao = DAORegistry::getDAO($mappings[0]);
$getFunction = $mappings[1];
$controlledVocabularyNodeName = $mappings[2];
$controlledVocabulary = $dao->{$getFunction}($submission->getId(), $supportedLocales);
$this->addControlledVocabulary($doc, $submissionNode, $controlledVocabulariesNodeName, $controlledVocabularyNodeName, $controlledVocabulary);
}
$this->createOptionalNode($doc, $submissionNode, 'comments_to_editor', $submission->getCommentsToEditor());
}