From ae8da39512f32f155392c9fd4708e205cae33b86 Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Sun, 22 Jan 2023 10:38:17 +0100 Subject: [PATCH] Additional improvements for structure for publication im/exporters --- ...actPublicationWithPublisherImExporter.java | 82 +++++++++++++++++-- .../AbstractUnPublishedImExporter.java | 46 +++++++++++ 2 files changed, 123 insertions(+), 5 deletions(-) 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 + ); + }