diff --git a/ccm-cms/src/main/java/org/librecms/assets/AbstractBinaryAssetImExporter.java b/ccm-cms/src/main/java/org/librecms/assets/AbstractBinaryAssetImExporter.java index 58d1cb43a..9641e8e00 100644 --- a/ccm-cms/src/main/java/org/librecms/assets/AbstractBinaryAssetImExporter.java +++ b/ccm-cms/src/main/java/org/librecms/assets/AbstractBinaryAssetImExporter.java @@ -20,7 +20,6 @@ package org.librecms.assets; import java.util.Objects; - /** * * @author Jens Pelzetter @@ -29,15 +28,42 @@ import java.util.Objects; public abstract class AbstractBinaryAssetImExporter extends AbstractAssetImExporter { + /** + * Implementation of + * {@link AbstractBinaryAssetImExporter#initAssetImExporter()} for subtypes + * of {@link BinaryAsset}. + * + * !!!Warning: Implementations of this abstract class MUST NEVER override + * this method. Instead they MUST implement + * {@link #initBinaryAssetImExporter()}. + * + * Unfortunetly, CDI does not support final methods, therefore we can't make + * this method final. + */ @Override - protected final void initAssetImExporter() { + protected void initAssetImExporter() { initBinaryAssetImExporter(); } protected abstract void initBinaryAssetImExporter(); + /** + * Implementation of + * {@link AbstractAssetImExporter#updateExistingAsset(org.librecms.contentsection.Asset, org.librecms.contentsection.Asset)} + * for subtypes of {@link BinaryAsset}. + * + * Implementations of this abstract class MUST NEVER override this method. + * Instead, they MUST implement + * {@link #updateExistingBinaryAsset(org.librecms.assets.BinaryAsset, org.librecms.assets.BinaryAsset)}. + * + * Unfortunetly, CDI does not support final methods, therefore we can't make + * this method final. + * + * @param existingAsset + * @param importedAsset + */ @Override - protected final void updateExistingAsset( + protected void updateExistingAsset( final T existingAsset, final T importedAsset ) { diff --git a/ccm-cms/src/main/java/org/librecms/assets/AbstractBookmarkImExporter.java b/ccm-cms/src/main/java/org/librecms/assets/AbstractBookmarkImExporter.java index bc1f8d7ad..02fc5caad 100644 --- a/ccm-cms/src/main/java/org/librecms/assets/AbstractBookmarkImExporter.java +++ b/ccm-cms/src/main/java/org/librecms/assets/AbstractBookmarkImExporter.java @@ -20,7 +20,6 @@ package org.librecms.assets; import java.util.Objects; - /** * * @author Jens Pelzetter @@ -29,14 +28,39 @@ import java.util.Objects; public abstract class AbstractBookmarkImExporter extends AbstractAssetImExporter { - + /** + * Implementation of {@link AbstractAssetImExporter#initAssetImExporter()} + * for {@link Bookmark} and subtypes of {@link Bookmark}. + * + * !!!Warning: Implementations of this abstract class MUST NEVER override + * this method. Instead, they MUST implement {@link #initBookmarkImExporter() + * }. + * + * Unfortunetly, CDI does not support final methods, therefore we can't make + * this method final. + */ @Override protected final void initAssetImExporter() { initBookmarkImExporter(); } - + protected abstract void initBookmarkImExporter(); - + + /** + * Implementation of {@link AbstractAssetImExporter#updateExistingAsset(org.librecms.contentsection.Asset, org.librecms.contentsection.Asset) + * } + * for {@link Bookmark} and subtypes of {@link Bookmark}. + * + * !!!Warning: Implementations of this abstract class MUST NEVER override + * this method. Instead, they MUST implement + * {@link #updateExistingBookmark(org.librecms.assets.Bookmark, org.librecms.assets.Bookmark)}. + * + * Unfortunetly, CDI does not support final methods, therefore we can't make + * this method final. + * + * @param existingAsset + * @param importedAsset + */ @Override protected final void updateExistingAsset( final T existingAsset, @@ -47,24 +71,24 @@ public abstract class AbstractBookmarkImExporter importedAsset.getDescription() )) { syncLocalizedStrings( - importedAsset.getDescription(), + importedAsset.getDescription(), existingAsset.getDescription() ); - } - + } + if (!Objects.equals( existingAsset.getUrl(), importedAsset.getUrl() )) { existingAsset.setUrl(importedAsset.getUrl()); } - + updateExistingBookmark(existingAsset, importedAsset); } - + protected abstract void updateExistingBookmark( final T existingBookmark, final T importedBookmark ); - + } diff --git a/ccm-cms/src/main/java/org/librecms/assets/AbstractContactableEntityImExporter.java b/ccm-cms/src/main/java/org/librecms/assets/AbstractContactableEntityImExporter.java index f03bc451e..c2e94202f 100644 --- a/ccm-cms/src/main/java/org/librecms/assets/AbstractContactableEntityImExporter.java +++ b/ccm-cms/src/main/java/org/librecms/assets/AbstractContactableEntityImExporter.java @@ -29,8 +29,19 @@ import java.util.Set; public abstract class AbstractContactableEntityImExporter extends AbstractAssetImExporter { + /** + * Implementation of {@link AbstractAssetImExporter#initAssetImExporter()} + * for subtypes of {@link ContactableEntity}. + * + * !!!Warning: Implementations of this abstract class MUST NEVER override + * this method. Instead, they MUST override + * {@link #initContactableEntityImExporter()} + * + * Unfortunetly, CDI does not support final methods, therefore we can't make + * this method final. + */ @Override - protected final void initAssetImExporter() { + protected void initAssetImExporter() { addRequiredEntities(Set.of(PostalAddress.class)); initContactableEntityImExporter(); @@ -38,8 +49,24 @@ public abstract class AbstractContactableEntityImExporter