diff --git a/sci-publications/src/main/java/org/scientificcms/publications/InternetArticleImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/InternetArticleImExporter.java index cb6a537..49c8910 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/InternetArticleImExporter.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/InternetArticleImExporter.java @@ -3,9 +3,9 @@ package org.scientificcms.publications; import org.libreccm.imexport.Processes; import org.librecms.assets.Organization; +import java.util.Objects; import java.util.Set; -import javax.annotation.PostConstruct; import javax.enterprise.context.RequestScoped; /** @@ -23,9 +23,109 @@ public class InternetArticleImExporter } @Override - @PostConstruct - protected void init() { + protected void initPublicationImExporter() { addRequiredEntities(Set.of(Organization.class)); } + @Override + protected void updateExistingPublication( + final InternetArticle existingPublication, + final InternetArticle withImportedPublication + ) { + if (!Objects.equals( + existingPublication.getPlace(), + withImportedPublication.getPlace() + )) { + existingPublication.setPlace(withImportedPublication.getPlace()); + } + + if (!Objects.equals( + existingPublication.getNumber(), + withImportedPublication.getNumber() + )) { + existingPublication.setNumber(withImportedPublication.getNumber()); + } + + if (!Objects.equals( + existingPublication.getNumberOfPages(), + withImportedPublication.getNumberOfPages() + )) { + existingPublication.setNumberOfPages( + withImportedPublication.getNumberOfPages() + ); + } + + if (!Objects.equals( + existingPublication.getEdition(), + withImportedPublication.getEdition() + )) { + existingPublication.setEdition( + withImportedPublication.getEdition() + ); + } + + if (!Objects.equals( + existingPublication.getIssn(), + withImportedPublication.getIssn() + )) { + existingPublication.setIssn( + withImportedPublication.getIssn() + ); + } + + if (!Objects.equals( + existingPublication.getLastAccessed(), + withImportedPublication.getLastAccessed() + )) { + existingPublication.setLastAccessed( + withImportedPublication.getLastAccessed() + ); + } + + if (!Objects.equals( + existingPublication.getPublicationDate(), + withImportedPublication.getPublicationDate() + )) { + existingPublication.setPublicationDate( + withImportedPublication.getPublicationDate() + ); + } + + if (!Objects.equals( + existingPublication.getUrl(), + withImportedPublication.getUrl() + )) { + existingPublication.setUrl( + withImportedPublication.getUrl() + ); + } + + if (!Objects.equals( + existingPublication.getUrn(), + withImportedPublication.getUrn() + )) { + existingPublication.setUrn( + withImportedPublication.getUrn() + ); + } + + if (!Objects.equals( + existingPublication.getDoi(), + withImportedPublication.getDoi() + )) { + existingPublication.setDoi( + withImportedPublication.getDoi() + ); + } + + if (!Objects.equals( + existingPublication.getOrganization(), + withImportedPublication.getOrganization() + )) { + existingPublication.setOrganization( + withImportedPublication.getOrganization() + ); + } + } + }