From 9e252145f0ec370b86e2641e7217600e12aa5998 Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Tue, 24 Jan 2023 20:45:56 +0100 Subject: [PATCH] Removed final modifier from some methods since CDI does not support final methods --- .../AbstractPublicationImExporter.java | 32 +++++++++++++++++-- ...actPublicationWithPublisherImExporter.java | 31 ++++++++++++++++-- .../AbstractUnPublishedImExporter.java | 31 ++++++++++++++++-- 3 files changed, 87 insertions(+), 7 deletions(-) diff --git a/sci-publications/src/main/java/org/scientificcms/publications/AbstractPublicationImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/AbstractPublicationImExporter.java index a08f448..2f306c6 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/AbstractPublicationImExporter.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/AbstractPublicationImExporter.java @@ -19,12 +19,23 @@ public abstract class AbstractPublicationImExporter @Inject private PublicationRepository publicationRepo; + /** + * Implementation of {@link AbstractEntityImExporter#init() } + * for subtypes of {@link Publication}. + * + * !!!Warning: Implementations of this abstract class MUST NEVER override + * this method. Instead, they MUST implement + * {@link #initPublicationImExporter()}. + * + * Unfortunetly, CDI does not support final methods, therefore we can't make + * this method final. + */ @Override @PostConstruct - protected final void init() { + protected void init() { initPublicationImExporter(); } - + protected abstract void initPublicationImExporter(); @Override @@ -37,8 +48,23 @@ public abstract class AbstractPublicationImExporter publicationRepo.save(publication); } + /** + * Implementation of + * {@link AbstractEntityImExporter#updateExistingEntity(org.libreccm.imexport.Exportable, org.libreccm.imexport.Exportable)} + * for subtypes of {@link Publication}. + * + * !!!Warning: Implementations of this abstract class MUST NEVER override + * this method.Instead, they MUST implement + * {@link #updateExistingPublication(org.scientificcms.publications.Publication, org.scientificcms.publications.Publication)}. + * + * Unfortunetly, CDI does not support final methods, therefore we can't make + * this method final. + * + * @param existingEntity Exiting publication. + * @param importedEntity Imported publication. + */ @Override - protected final void updateExistingEntity( + protected void updateExistingEntity( final T existingEntity, final T importedEntity ) { 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 59533da..fb1888f 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/AbstractPublicationWithPublisherImExporter.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/AbstractPublicationWithPublisherImExporter.java @@ -11,8 +11,20 @@ import java.util.Set; public abstract class AbstractPublicationWithPublisherImExporter extends AbstractPublicationImExporter { + /** + * Implementation of + * {@link AbstractPublicationImExporter#initPublicationImExporter()} for + * subtypes of {@link PublicationWithPublisher}. + * + * !!!Warning: Implementations of this abstract class MUST NEVER override + * this method. Instead, they MUST implement + * {@link #initPublicationWithPublisherImExporter()}. + * + * Unfortunetly, CDI does not support final methods, therefore we can't make + * this method final. + */ @Override - protected final void initPublicationImExporter() { + protected void initPublicationImExporter() { addRequiredEntities( Set.of( Publisher.class @@ -23,8 +35,23 @@ public abstract class AbstractPublicationWithPublisherImExporter extends AbstractPublicationImExporter { + /** + * Implementation of + * {@link AbstractPublicationImExporter#initPublicationImExporter()} for + * subtypes of {@link UnPublished}. + * + * !!!Warning: Implementations of this abstract class MUST NEVER override + * this method. Instead, they MUST implement + * {@link #initUnPublishedImExporter()}. + * + * Unfortunetly, CDI does not support final methods, therefore we can't make + * this method final. + */ @Override - protected final void initPublicationImExporter() { + protected void initPublicationImExporter() { addRequiredEntities( Set.of(Organization.class) ); @@ -24,8 +36,23 @@ public abstract class AbstractUnPublishedImExporter protected abstract void initUnPublishedImExporter(); + /** + * Implementation of + * {@link AbstractPublicationImExporter#updateExistingPublication(org.scientificcms.publications.Publication, org.scientificcms.publications.Publication)} + * for subtypes of {@link UnPublished}. + * + * !!!Warning: Implementations of this abstract class MUST NEVER override + * this method.Instead, they MUST implement + * {@link #updateExistingUnPublished(org.scientificcms.publications.UnPublished, org.scientificcms.publications.UnPublished)}. + * + * Unfortunetly, CDI does not support final methods, therefore we can't make + * this method final. + * + * @param existingPublication Exiting publication. + * @param withImportedPublication Imported publication. + */ @Override - protected final void updateExistingPublication( + protected void updateExistingPublication( final T existingPublication, final T withImportedPublication ) {