From 059f9f8607f96ce6214da79d6f416d9df15ae273 Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Tue, 8 Nov 2022 20:33:28 +0100 Subject: [PATCH] Importers and Exporters --- .../publications/Authorship.java | 4 +- .../publications/AuthorshipImExporter.java | 87 ++++++++++++++++++ .../publications/VolumeInSeries.java | 8 +- .../VolumeInSeriesImExporter.java | 88 +++++++++++++++++++ .../assets/JournalAssetImExporter.java | 58 ++++++++++++ .../assets/PublisherAssetImExporter.java | 57 ++++++++++++ .../assets/SeriesAssetImExporter.java | 58 ++++++++++++ ...rticleInCollectedVolumeItemImExporter.java | 35 ++++++++ .../ArticleInJournalItemImExporter.java | 37 ++++++++ .../CollectedVolumeItemImExporter.java | 37 ++++++++ .../contenttypes/ExpertiseItemImExporter.java | 37 ++++++++ .../GreyLiteratureItemImExporter.java | 37 ++++++++ .../InProceedingsItemImExporter.java | 36 ++++++++ .../InternetArticleItemImExporter.java | 22 +++++ .../contenttypes/MonographItemImExporter.java | 37 ++++++++ .../ProceedingsItemImExporter.java | 39 ++++++++ .../contenttypes/TalkItemImExporter.java | 22 +++++ .../WorkingPaperItemImExporter.java | 37 ++++++++ .../scidepartment/ContactImExporter.java | 2 - .../DepartmentProjectImExporter.java | 2 + .../scidepartment/MembershipImExporter.java | 4 + .../sciproject/MembershipImExporter.java | 4 + .../sciproject/SponsoringImExporter.java | 5 +- 23 files changed, 743 insertions(+), 10 deletions(-) create mode 100644 sci-publications/src/main/java/org/scientificcms/publications/AuthorshipImExporter.java create mode 100644 sci-publications/src/main/java/org/scientificcms/publications/VolumeInSeriesImExporter.java create mode 100644 sci-publications/src/main/java/org/scientificcms/publications/assets/JournalAssetImExporter.java create mode 100644 sci-publications/src/main/java/org/scientificcms/publications/assets/PublisherAssetImExporter.java create mode 100644 sci-publications/src/main/java/org/scientificcms/publications/assets/SeriesAssetImExporter.java create mode 100644 sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ArticleInCollectedVolumeItemImExporter.java create mode 100644 sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ArticleInJournalItemImExporter.java create mode 100644 sci-publications/src/main/java/org/scientificcms/publications/contenttypes/CollectedVolumeItemImExporter.java create mode 100644 sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ExpertiseItemImExporter.java create mode 100644 sci-publications/src/main/java/org/scientificcms/publications/contenttypes/GreyLiteratureItemImExporter.java create mode 100644 sci-publications/src/main/java/org/scientificcms/publications/contenttypes/InProceedingsItemImExporter.java create mode 100644 sci-publications/src/main/java/org/scientificcms/publications/contenttypes/InternetArticleItemImExporter.java create mode 100644 sci-publications/src/main/java/org/scientificcms/publications/contenttypes/MonographItemImExporter.java create mode 100644 sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ProceedingsItemImExporter.java create mode 100644 sci-publications/src/main/java/org/scientificcms/publications/contenttypes/TalkItemImExporter.java create mode 100644 sci-publications/src/main/java/org/scientificcms/publications/contenttypes/WorkingPaperItemImExporter.java diff --git a/sci-publications/src/main/java/org/scientificcms/publications/Authorship.java b/sci-publications/src/main/java/org/scientificcms/publications/Authorship.java index 41ccd4f..6a53e17 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/Authorship.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/Authorship.java @@ -9,6 +9,7 @@ import com.fasterxml.jackson.annotation.JsonIdentityInfo; import com.fasterxml.jackson.annotation.JsonIdentityReference; import com.fasterxml.jackson.annotation.ObjectIdGenerators; import org.hibernate.envers.Audited; +import org.libreccm.imexport.Exportable; import org.librecms.assets.Person; import java.io.Serializable; @@ -36,7 +37,8 @@ import static org.scientificcms.publications.SciPublicationsConstants.*; generator = ObjectIdGenerators.PropertyGenerator.class, property = "uuid" ) -public class Authorship implements Serializable, Comparable { +public class Authorship + implements Exportable, Serializable, Comparable { private static final long serialVersionUID = 1L; diff --git a/sci-publications/src/main/java/org/scientificcms/publications/AuthorshipImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/AuthorshipImExporter.java new file mode 100644 index 0000000..62df69c --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/AuthorshipImExporter.java @@ -0,0 +1,87 @@ +package org.scientificcms.publications; + +import org.libreccm.imexport.AbstractEntityImExporter; +import org.libreccm.imexport.Processes; +import org.librecms.assets.Person; +import org.scientificcms.publications.contenttypes.ArticleInCollectedVolumeItem; +import org.scientificcms.publications.contenttypes.ArticleInJournalItem; +import org.scientificcms.publications.contenttypes.CollectedVolumeItem; +import org.scientificcms.publications.contenttypes.ExpertiseItem; +import org.scientificcms.publications.contenttypes.GreyLiteratureItem; +import org.scientificcms.publications.contenttypes.InProceedingsItem; +import org.scientificcms.publications.contenttypes.InternetArticleItem; +import org.scientificcms.publications.contenttypes.MonographItem; +import org.scientificcms.publications.contenttypes.ProceedingsItem; +import org.scientificcms.publications.contenttypes.TalkItem; +import org.scientificcms.publications.contenttypes.WorkingPaperItem; + +import java.util.Objects; +import java.util.Set; + +import javax.enterprise.context.RequestScoped; +import javax.inject.Inject; +import javax.persistence.EntityManager; +import javax.persistence.NoResultException; +import javax.transaction.Transactional; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(Authorship.class) +public class AuthorshipImExporter + extends AbstractEntityImExporter { + + @Inject + private EntityManager entityManager; + + @Override + protected void init() { + addRequiredEntities( + Set.of( + Person.class, + ArticleInCollectedVolumeItem.class, + ArticleInJournalItem.class, + CollectedVolumeItem.class, + ExpertiseItem.class, + GreyLiteratureItem.class, + InProceedingsItem.class, + InternetArticleItem.class, + MonographItem.class, + ProceedingsItem.class, + TalkItem.class, + WorkingPaperItem.class + ) + ); + } + + @Override + public Class getEntityClass() { + return Authorship.class; + } + + @Override + @Transactional(Transactional.TxType.REQUIRED) + protected void saveImportedEntity(final Authorship entity) { + entityManager.merge(entity); + } + + @Override + protected Authorship reloadEntity(final Authorship entity) { + try { + return entityManager.find( + Authorship.class, + entity.getAuthorshipId() + ); + } catch(NoResultException ex) { + throw new IllegalArgumentException( + String.format( + "The Authorship entity %s was not found in the database.", + Objects.toString(entity) + ) + ); + } + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/VolumeInSeries.java b/sci-publications/src/main/java/org/scientificcms/publications/VolumeInSeries.java index bf0dc2e..316731f 100644 --- a/sci-publications/src/main/java/org/scientificcms/publications/VolumeInSeries.java +++ b/sci-publications/src/main/java/org/scientificcms/publications/VolumeInSeries.java @@ -1,14 +1,10 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ package org.scientificcms.publications; import com.fasterxml.jackson.annotation.JsonIdentityInfo; import com.fasterxml.jackson.annotation.JsonIdentityReference; import com.fasterxml.jackson.annotation.ObjectIdGenerators; import org.hibernate.envers.Audited; +import org.libreccm.imexport.Exportable; import java.io.Serializable; import java.util.Objects; @@ -35,7 +31,7 @@ import static org.scientificcms.publications.SciPublicationsConstants.*; generator = ObjectIdGenerators.PropertyGenerator.class, property = "uuid" ) -public class VolumeInSeries implements Serializable { +public class VolumeInSeries implements Exportable, Serializable { private static final long serialVersionUID = 1L; diff --git a/sci-publications/src/main/java/org/scientificcms/publications/VolumeInSeriesImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/VolumeInSeriesImExporter.java new file mode 100644 index 0000000..b735f3b --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/VolumeInSeriesImExporter.java @@ -0,0 +1,88 @@ +package org.scientificcms.publications; + +import org.libreccm.imexport.AbstractEntityImExporter; +import org.libreccm.imexport.Processes; +import org.scientificcms.publications.assets.SeriesAsset; +import org.scientificcms.publications.contenttypes.ArticleInCollectedVolumeItem; +import org.scientificcms.publications.contenttypes.ArticleInJournalItem; +import org.scientificcms.publications.contenttypes.CollectedVolumeItem; +import org.scientificcms.publications.contenttypes.ExpertiseItem; +import org.scientificcms.publications.contenttypes.GreyLiteratureItem; +import org.scientificcms.publications.contenttypes.InProceedingsItem; +import org.scientificcms.publications.contenttypes.InternetArticleItem; +import org.scientificcms.publications.contenttypes.MonographItem; +import org.scientificcms.publications.contenttypes.ProceedingsItem; +import org.scientificcms.publications.contenttypes.TalkItem; +import org.scientificcms.publications.contenttypes.WorkingPaperItem; + +import java.util.Objects; +import java.util.Set; + +import javax.enterprise.context.RequestScoped; +import javax.inject.Inject; +import javax.persistence.EntityManager; +import javax.persistence.NoResultException; +import javax.transaction.Transactional; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(VolumeInSeries.class) +public class VolumeInSeriesImExporter + extends AbstractEntityImExporter { + + @Inject + private EntityManager entityManager; + + @Override + protected void init() { + addRequiredEntities( + Set.of( + SeriesAsset.class, + ArticleInCollectedVolumeItem.class, + ArticleInJournalItem.class, + CollectedVolumeItem.class, + ExpertiseItem.class, + GreyLiteratureItem.class, + InProceedingsItem.class, + InternetArticleItem.class, + MonographItem.class, + ProceedingsItem.class, + TalkItem.class, + WorkingPaperItem.class + ) + ); + } + + @Override + public Class getEntityClass() { + return VolumeInSeries.class; + } + + @Override + @Transactional(Transactional.TxType.REQUIRED) + protected void saveImportedEntity(final VolumeInSeries entity) { + entityManager.merge(entity); + } + + @Override + protected VolumeInSeries reloadEntity(final VolumeInSeries entity) { + try { + return entityManager.find( + VolumeInSeries.class, + entity.getVolumeId() + ); + } catch(NoResultException ex) { + throw new IllegalArgumentException( + String.format( + "The VolumeInSeries entity %s was not found in " + + "the database.", + Objects.toString(entity) + ) + ); + } + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/assets/JournalAssetImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/assets/JournalAssetImExporter.java new file mode 100644 index 0000000..d130c63 --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/assets/JournalAssetImExporter.java @@ -0,0 +1,58 @@ +package org.scientificcms.publications.assets; + +import org.libreccm.imexport.AbstractEntityImExporter; +import org.libreccm.imexport.Processes; +import org.librecms.contentsection.AssetRepository; + +import java.util.Objects; + +import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; +import javax.inject.Inject; +import javax.transaction.Transactional; + +/** + * Importer/Exporter for {@link JournalAsset}s. + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(JournalAsset.class) +public class JournalAssetImExporter + extends AbstractEntityImExporter { + + @Inject + private AssetRepository assetRepo; + + @PostConstruct + @Override + protected void init() { + // Nothing + } + + @Override + public Class getEntityClass() { + return JournalAsset.class; + } + + @Override + @Transactional(Transactional.TxType.REQUIRED) + protected void saveImportedEntity(final JournalAsset entity) { + assetRepo.save(entity); + } + + @Override + protected JournalAsset reloadEntity(final JournalAsset entity) { + return assetRepo + .findById(entity.getObjectId(), getEntityClass()) + .orElseThrow( + () -> new IllegalArgumentException( + String.format( + "The JournalAsset %s was not found in the database.", + Objects.toString(entity) + ) + ) + ); + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/assets/PublisherAssetImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/assets/PublisherAssetImExporter.java new file mode 100644 index 0000000..ab796aa --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/assets/PublisherAssetImExporter.java @@ -0,0 +1,57 @@ +package org.scientificcms.publications.assets; + +import org.libreccm.imexport.AbstractEntityImExporter; +import org.libreccm.imexport.Processes; +import org.librecms.contentsection.AssetRepository; + +import java.util.Objects; + +import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; +import javax.inject.Inject; +import javax.transaction.Transactional; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(PublisherAsset.class) +public class PublisherAssetImExporter + extends AbstractEntityImExporter { + + @Inject + private AssetRepository assetRepo; + + @PostConstruct + @Override + protected void init() { + // Nothing + } + + @Override + public Class getEntityClass() { + return PublisherAsset.class; + } + + @Override + @Transactional(Transactional.TxType.REQUIRED) + protected void saveImportedEntity(final PublisherAsset entity) { + assetRepo.save(entity); + } + + @Override + protected PublisherAsset reloadEntity(final PublisherAsset entity) { + return assetRepo + .findById(entity.getObjectId(), getEntityClass()) + .orElseThrow( + () -> new IllegalArgumentException( + String.format( + "The JournalAsset %s was not found in the database.", + Objects.toString(entity) + ) + ) + ); + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/assets/SeriesAssetImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/assets/SeriesAssetImExporter.java new file mode 100644 index 0000000..6a2fe9c --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/assets/SeriesAssetImExporter.java @@ -0,0 +1,58 @@ +package org.scientificcms.publications.assets; + +import org.libreccm.imexport.AbstractEntityImExporter; +import org.libreccm.imexport.Processes; +import org.librecms.contentsection.AssetRepository; + +import java.util.Objects; + +import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; +import javax.inject.Inject; +import javax.transaction.Transactional; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(PublisherAsset.class) +public class SeriesAssetImExporter +extends AbstractEntityImExporter { + + @Inject + private AssetRepository assetRepo; + + @PostConstruct + @Override + protected void init() { + // Nothing + } + + @Override + public Class getEntityClass() { + return SeriesAsset.class; + } + + @Override + @Transactional(Transactional.TxType.REQUIRED) + protected void saveImportedEntity(final SeriesAsset entity) { + assetRepo.save(entity); + } + + @Override + protected SeriesAsset reloadEntity(final SeriesAsset entity) { + return assetRepo + .findById(entity.getObjectId(), getEntityClass()) + .orElseThrow( + () -> new IllegalArgumentException( + String.format( + "The JournalAsset %s was not found in the database.", + Objects.toString(entity) + ) + ) + ); + } + + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ArticleInCollectedVolumeItemImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ArticleInCollectedVolumeItemImExporter.java new file mode 100644 index 0000000..b3d00fc --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ArticleInCollectedVolumeItemImExporter.java @@ -0,0 +1,35 @@ +package org.scientificcms.publications.contenttypes; + +import org.libreccm.imexport.Processes; +import org.librecms.contentsection.AbstractContentItemImExporter; + +import java.util.Set; + +import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(ArticleInCollectedVolumeItem.class) +public class ArticleInCollectedVolumeItemImExporter extends AbstractContentItemImExporter { + + @PostConstruct + @Override + protected void init() { + super.init(); + addRequiredEntities( + Set.of( + CollectedVolumeItem.class + ) + ); + } + + @Override + public Class getEntityClass() { + return ArticleInCollectedVolumeItem.class; + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ArticleInJournalItemImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ArticleInJournalItemImExporter.java new file mode 100644 index 0000000..e07832d --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ArticleInJournalItemImExporter.java @@ -0,0 +1,37 @@ +package org.scientificcms.publications.contenttypes; + +import org.libreccm.imexport.Processes; +import org.librecms.contentsection.AbstractContentItemImExporter; +import org.scientificcms.publications.assets.JournalAsset; + +import java.util.Set; + +import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(ArticleInCollectedVolumeItem.class) +public class ArticleInJournalItemImExporter + extends AbstractContentItemImExporter { + + @PostConstruct + @Override + protected void init() { + super.init(); + addRequiredEntities( + Set.of( + JournalAsset.class + ) + ); + } + + @Override + public Class getEntityClass() { + return ArticleInJournalItem.class; + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/CollectedVolumeItemImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/CollectedVolumeItemImExporter.java new file mode 100644 index 0000000..024dfce --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/CollectedVolumeItemImExporter.java @@ -0,0 +1,37 @@ +package org.scientificcms.publications.contenttypes; + +import org.libreccm.imexport.Processes; +import org.librecms.contentsection.AbstractContentItemImExporter; +import org.scientificcms.publications.assets.PublisherAsset; + +import java.util.Set; + +import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(CollectedVolumeItem.class) +public class CollectedVolumeItemImExporter + extends AbstractContentItemImExporter { + + @PostConstruct + @Override + protected void init() { + super.init(); + addRequiredEntities( + Set.of( + PublisherAsset.class + ) + ); + } + + @Override + public Class getEntityClass() { + return CollectedVolumeItem.class; + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ExpertiseItemImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ExpertiseItemImExporter.java new file mode 100644 index 0000000..7bd0a3e --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ExpertiseItemImExporter.java @@ -0,0 +1,37 @@ +package org.scientificcms.publications.contenttypes; + +import org.libreccm.imexport.Processes; +import org.librecms.assets.Organization; +import org.librecms.contentsection.AbstractContentItemImExporter; + +import java.util.Set; + +import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(ExpertiseItem.class) +public class ExpertiseItemImExporter + extends AbstractContentItemImExporter { + + @PostConstruct + @Override + protected void init() { + super.init(); + addRequiredEntities( + Set.of( + Organization.class + ) + ); + } + + @Override + public Class getEntityClass() { + return ExpertiseItem.class; + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/GreyLiteratureItemImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/GreyLiteratureItemImExporter.java new file mode 100644 index 0000000..83ae136 --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/GreyLiteratureItemImExporter.java @@ -0,0 +1,37 @@ +package org.scientificcms.publications.contenttypes; + +import org.libreccm.imexport.Processes; +import org.librecms.assets.Organization; +import org.librecms.contentsection.AbstractContentItemImExporter; + +import java.util.Set; + +import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(GreyLiteratureItem.class) +public class GreyLiteratureItemImExporter + extends AbstractContentItemImExporter { + + @PostConstruct + @Override + protected void init() { + super.init(); + addRequiredEntities( + Set.of( + Organization.class + ) + ); + } + + @Override + public Class getEntityClass() { + return GreyLiteratureItem.class; + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/InProceedingsItemImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/InProceedingsItemImExporter.java new file mode 100644 index 0000000..a0b4dc4 --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/InProceedingsItemImExporter.java @@ -0,0 +1,36 @@ +package org.scientificcms.publications.contenttypes; + +import org.libreccm.imexport.Processes; +import org.librecms.contentsection.AbstractContentItemImExporter; + +import java.util.Set; + +import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(InProceedingsItem.class) +public class InProceedingsItemImExporter + extends AbstractContentItemImExporter { + + @PostConstruct + @Override + protected void init() { + super.init(); + addRequiredEntities( + Set.of( + ProceedingsItem.class + ) + ); + } + + @Override + public Class getEntityClass() { + return InProceedingsItem.class; + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/InternetArticleItemImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/InternetArticleItemImExporter.java new file mode 100644 index 0000000..badae53 --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/InternetArticleItemImExporter.java @@ -0,0 +1,22 @@ +package org.scientificcms.publications.contenttypes; + +import org.libreccm.imexport.Processes; +import org.librecms.contentsection.AbstractContentItemImExporter; + +import javax.enterprise.context.RequestScoped; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(InternetArticleItem.class) +public class InternetArticleItemImExporter +extends AbstractContentItemImExporter{ + + @Override + public Class getEntityClass() { + return InternetArticleItem.class; + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/MonographItemImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/MonographItemImExporter.java new file mode 100644 index 0000000..50ba214 --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/MonographItemImExporter.java @@ -0,0 +1,37 @@ +package org.scientificcms.publications.contenttypes; + +import org.libreccm.imexport.Processes; +import org.librecms.contentsection.AbstractContentItemImExporter; +import org.scientificcms.publications.assets.PublisherAsset; + +import java.util.Set; + +import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(MonographItem.class) +public class MonographItemImExporter + extends AbstractContentItemImExporter { + + @PostConstruct + @Override + protected void init() { + super.init(); + addRequiredEntities( + Set.of( + PublisherAsset.class + ) + ); + } + + @Override + public Class getEntityClass() { + return MonographItem.class; + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ProceedingsItemImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ProceedingsItemImExporter.java new file mode 100644 index 0000000..bb5085e --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/ProceedingsItemImExporter.java @@ -0,0 +1,39 @@ +package org.scientificcms.publications.contenttypes; + +import org.libreccm.imexport.Processes; +import org.librecms.assets.Organization; +import org.librecms.contentsection.AbstractContentItemImExporter; +import org.scientificcms.publications.assets.PublisherAsset; + +import java.util.Set; + +import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(ProceedingsItem.class) +public class ProceedingsItemImExporter + extends AbstractContentItemImExporter { + + @PostConstruct + @Override + protected void init() { + super.init(); + addRequiredEntities( + Set.of( + Organization.class, + PublisherAsset.class + ) + ); + } + + @Override + public Class getEntityClass() { + return ProceedingsItem.class; + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/TalkItemImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/TalkItemImExporter.java new file mode 100644 index 0000000..04dc811 --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/TalkItemImExporter.java @@ -0,0 +1,22 @@ +package org.scientificcms.publications.contenttypes; + +import org.libreccm.imexport.Processes; +import org.librecms.contentsection.AbstractContentItemImExporter; + +import javax.enterprise.context.RequestScoped; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(TalkItem.class) +public class TalkItemImExporter + extends AbstractContentItemImExporter { + + @Override + public Class getEntityClass() { + return TalkItem.class; + } + +} diff --git a/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/WorkingPaperItemImExporter.java b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/WorkingPaperItemImExporter.java new file mode 100644 index 0000000..9570c83 --- /dev/null +++ b/sci-publications/src/main/java/org/scientificcms/publications/contenttypes/WorkingPaperItemImExporter.java @@ -0,0 +1,37 @@ +package org.scientificcms.publications.contenttypes; + +import org.libreccm.imexport.Processes; +import org.librecms.assets.Organization; +import org.librecms.contentsection.AbstractContentItemImExporter; + +import java.util.Set; + +import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(WorkingPaperItem.class) +public class WorkingPaperItemImExporter + extends AbstractContentItemImExporter { + + @PostConstruct + @Override + protected void init() { + super.init(); + addRequiredEntities( + Set.of( + Organization.class + ) + ); + } + + @Override + public Class getEntityClass() { + return WorkingPaperItem.class; + } + +} diff --git a/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/ContactImExporter.java b/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/ContactImExporter.java index 097ca80..045b227 100644 --- a/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/ContactImExporter.java +++ b/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/ContactImExporter.java @@ -11,8 +11,6 @@ import java.util.Set; import javax.annotation.PostConstruct; import javax.enterprise.context.RequestScoped; import javax.inject.Inject; -import javax.persistence.EntityManager; -import javax.persistence.NoResultException; import javax.transaction.Transactional; /** diff --git a/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/DepartmentProjectImExporter.java b/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/DepartmentProjectImExporter.java index cca0250..748ba59 100644 --- a/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/DepartmentProjectImExporter.java +++ b/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/DepartmentProjectImExporter.java @@ -10,6 +10,7 @@ import java.util.Set; import javax.annotation.PostConstruct; import javax.enterprise.context.RequestScoped; import javax.inject.Inject; +import javax.transaction.Transactional; /** * Importer/Exporter for {@link DepartmentProject} entities. @@ -41,6 +42,7 @@ public class DepartmentProjectImExporter } @Override + @Transactional(Transactional.TxType.REQUIRED) protected void saveImportedEntity( final DepartmentProject departmentProject ) { diff --git a/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/MembershipImExporter.java b/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/MembershipImExporter.java index 83e0c6e..6f58431 100644 --- a/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/MembershipImExporter.java +++ b/sci-types-department/src/main/java/org/scientificcms/contenttypes/scidepartment/MembershipImExporter.java @@ -1,12 +1,14 @@ package org.scientificcms.contenttypes.scidepartment; import org.libreccm.imexport.AbstractEntityImExporter; +import org.libreccm.imexport.Processes; import org.librecms.assets.Person; import java.util.Objects; import java.util.Set; import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; import javax.inject.Inject; import javax.transaction.Transactional; @@ -15,6 +17,8 @@ import javax.transaction.Transactional; * * @author Jens Pelzetter */ +@RequestScoped +@Processes(Membership.class) public class MembershipImExporter extends AbstractEntityImExporter { diff --git a/sci-types-project/src/main/java/org/scientificcms/contenttypes/sciproject/MembershipImExporter.java b/sci-types-project/src/main/java/org/scientificcms/contenttypes/sciproject/MembershipImExporter.java index 612f1bd..d146a3a 100644 --- a/sci-types-project/src/main/java/org/scientificcms/contenttypes/sciproject/MembershipImExporter.java +++ b/sci-types-project/src/main/java/org/scientificcms/contenttypes/sciproject/MembershipImExporter.java @@ -1,12 +1,14 @@ package org.scientificcms.contenttypes.sciproject; import org.libreccm.imexport.AbstractEntityImExporter; +import org.libreccm.imexport.Processes; import org.librecms.assets.Person; import java.util.Objects; import java.util.Set; import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; import javax.inject.Inject; import javax.transaction.Transactional; @@ -15,6 +17,8 @@ import javax.transaction.Transactional; * * @author Jens Pelzetter */ +@RequestScoped +@Processes(Membership.class) public class MembershipImExporter extends AbstractEntityImExporter { diff --git a/sci-types-project/src/main/java/org/scientificcms/contenttypes/sciproject/SponsoringImExporter.java b/sci-types-project/src/main/java/org/scientificcms/contenttypes/sciproject/SponsoringImExporter.java index 9caa76a..a734cfa 100644 --- a/sci-types-project/src/main/java/org/scientificcms/contenttypes/sciproject/SponsoringImExporter.java +++ b/sci-types-project/src/main/java/org/scientificcms/contenttypes/sciproject/SponsoringImExporter.java @@ -1,13 +1,14 @@ package org.scientificcms.contenttypes.sciproject; import org.libreccm.imexport.AbstractEntityImExporter; +import org.libreccm.imexport.Processes; import org.librecms.assets.Organization; -import org.librecms.assets.Person; import java.util.Objects; import java.util.Set; import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; import javax.inject.Inject; import javax.transaction.Transactional; @@ -16,6 +17,8 @@ import javax.transaction.Transactional; * * @author Jens Pelzetter */ +@RequestScoped +@Processes(Sponsoring.class) public class SponsoringImExporter extends AbstractEntityImExporter {