Skip to content
Snippets Groups Projects

feat(MetadataExtractorV1): complete ids/values replaced between form data and XML metadata

Merged Nicolas.Rod requested to merge rodn-metadata-extractor-complete-ids-replacements into master
3 files
+ 194
20
Compare changes
  • Side-by-side
  • Inline
Files
3
@@ -81,6 +81,7 @@ import ch.unige.aou.model.xml.deposit.v1.Fundings;
import ch.unige.aou.model.xml.deposit.v1.Group;
import ch.unige.aou.model.xml.deposit.v1.Groups;
import ch.unige.aou.model.xml.deposit.v1.Keywords;
import ch.unige.aou.model.xml.deposit.v1.Link;
import ch.unige.aou.model.xml.deposit.v1.Links;
import ch.unige.aou.model.xml.deposit.v1.Pages;
import ch.unige.aou.model.xml.deposit.v1.Publisher;
@@ -485,6 +486,68 @@ public class MetadataExtractorV1 extends MetadataExtractor {
Optional<Language> language = this.languageService.findById(depositDoc.getLanguage());
language.ifPresent(lang -> depositDoc.setLanguage(lang.getCode()));
}
/*
* Title's language
*/
if (!StringTool.isNullOrEmpty(depositDoc.getTitle().getLang())) {
Optional<Language> language = this.languageService.findById(depositDoc.getTitle().getLang());
language.ifPresent(lang -> depositDoc.getTitle().setLang(lang.getCode()));
}
/*
* Original Title's language
*/
if (!StringTool.isNullOrEmpty(depositDoc.getOriginalTitle().getLang())) {
Optional<Language> language = this.languageService.findById(depositDoc.getOriginalTitle().getLang());
language.ifPresent(lang -> depositDoc.getOriginalTitle().setLang(lang.getCode()));
}
/*
* Abstracts' languages
*/
if (depositDoc.getAbstracts() != null && depositDoc.getAbstracts().getAbstract() != null) {
for (Text abstractText : depositDoc.getAbstracts().getAbstract()) {
if (!StringTool.isNullOrEmpty(abstractText.getLang())) {
Optional<Language> language = this.languageService.findById(abstractText.getLang());
language.ifPresent(lang -> abstractText.setLang(lang.getCode()));
}
}
}
/*
* Citations' languages
*/
if (depositDoc.getCitations() != null && depositDoc.getCitations().getCitation() != null) {
for (Text citation : depositDoc.getCitations().getCitation()) {
if (!StringTool.isNullOrEmpty(citation.getLang())) {
Optional<Language> language = this.languageService.findById(citation.getLang());
language.ifPresent(lang -> citation.setLang(lang.getCode()));
}
}
}
/*
* Container's title language
*/
if (depositDoc.getContainer() != null && depositDoc.getContainer().getTitle() != null) {
if (!StringTool.isNullOrEmpty(depositDoc.getContainer().getTitle().getLang())) {
Optional<Language> language = this.languageService.findById(depositDoc.getContainer().getTitle().getLang());
language.ifPresent(lang -> depositDoc.getContainer().getTitle().setLang(lang.getCode()));
}
}
/*
* Links descriptions language
*/
if (depositDoc.getLinks() != null && depositDoc.getLinks().getLink() != null) {
for (Link link : depositDoc.getLinks().getLink()) {
if (link.getDescription() != null && !StringTool.isNullOrEmpty(link.getDescription().getLang())) {
Optional<Language> language = this.languageService.findById(link.getDescription().getLang());
language.ifPresent(lang -> link.getDescription().setLang(lang.getCode()));
}
}
}
}
@Override
@@ -535,6 +598,80 @@ public class MetadataExtractorV1 extends MetadataExtractor {
depositDoc.setLanguage(language.getResId());
}
}
/*
* Title's language
*/
if (!StringTool.isNullOrEmpty(depositDoc.getTitle().getLang())) {
Language language = this.languageService.findByCode(depositDoc.getTitle().getLang());
if (language != null) {
depositDoc.getTitle().setLang(language.getResId());
}
}
/*
* Original title's language
*/
if (!StringTool.isNullOrEmpty(depositDoc.getOriginalTitle().getLang())) {
Language language = this.languageService.findByCode(depositDoc.getOriginalTitle().getLang());
if (language != null) {
depositDoc.getOriginalTitle().setLang(language.getResId());
}
}
/*
* Abstracts' languages
*/
if (depositDoc.getAbstracts() != null && depositDoc.getAbstracts().getAbstract() != null) {
for (Text abstractText : depositDoc.getAbstracts().getAbstract()) {
if (!StringTool.isNullOrEmpty(abstractText.getLang())) {
Language language = this.languageService.findByCode(abstractText.getLang());
if (language != null) {
abstractText.setLang(language.getResId());
}
}
}
}
/*
* Citations' languages
*/
if (depositDoc.getCitations() != null && depositDoc.getCitations().getCitation() != null) {
for (Text citation : depositDoc.getCitations().getCitation()) {
if (!StringTool.isNullOrEmpty(citation.getLang())) {
Language language = this.languageService.findByCode(citation.getLang());
if (language != null) {
citation.setLang(language.getResId());
}
}
}
}
/*
* Container's title language
*/
if (depositDoc.getContainer() != null && depositDoc.getContainer().getTitle() != null) {
if (!StringTool.isNullOrEmpty(depositDoc.getContainer().getTitle().getLang())) {
Language language = this.languageService.findByCode(depositDoc.getContainer().getTitle().getLang());
if (language != null) {
depositDoc.getContainer().getTitle().setLang(language.getResId());
}
}
}
/*
* Links descriptions language
*/
if (depositDoc.getLinks() != null && depositDoc.getLinks().getLink() != null) {
for (Link link : depositDoc.getLinks().getLink()) {
if (link.getDescription() != null && !StringTool.isNullOrEmpty(link.getDescription().getLang())) {
Language language = this.languageService.findByCode(link.getDescription().getLang());
if (language != null) {
link.getDescription().setLang(language.getResId());
}
}
}
}
}
@Override
Loading