diff --git a/sci-publications/src/main/java/org/scientificcms/publications/AbstractPublicationWithPublisherImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/AbstractPublicationWithPublisherImExporter.java index 8456220..59533da 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/AbstractPublicationWithPublisherImExporter.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/AbstractPublicationWithPublisherImExporter.java @@ -1,10 +1,8 @@ package org.scientificcms.publications; +import java.util.Objects; import java.util.Set; -import javax.annotation.PostConstruct; - - /** * * @author Jens Pelzetter @@ -12,7 +10,7 @@ import javax.annotation.PostConstruct; */ public abstract class AbstractPublicationWithPublisherImExporter extends AbstractPublicationImExporter { - + @Override protected final void initPublicationImExporter() { addRequiredEntities( @@ -22,7 +20,81 @@ public abstract class AbstractPublicationWithPublisherImExporter protected abstract void initUnPublishedImExporter(); + @Override + protected final void updateExistingPublication( + final T existingPublication, + final T withImportedPublication + ) { + if (!Objects.equals( + existingPublication.getPlace(), + withImportedPublication.getPlace() + )) { + existingPublication.setPlace(withImportedPublication.getPlace()); + } + + if (!Objects.equals( + existingPublication.getNumber(), + withImportedPublication.getNumber() + )) { + existingPublication.setNumber( + withImportedPublication.getNumber() + ); + } + + if (existingPublication.getNumberOfPages() != withImportedPublication + .getNumberOfPages()) { + existingPublication.setNumberOfPages( + withImportedPublication.getNumberOfPages() + ); + } + + if (!Objects.equals( + existingPublication.getOrganization(), + withImportedPublication.getOrganization() + )) { + existingPublication.setOrganization( + withImportedPublication.getOrganization() + ); + } + + updateExistingUnPublished(existingPublication, withImportedPublication); + } + + protected abstract void updateExistingUnPublished( + final T existingPublication, + final T withImportedPublication + ); + }