From ed13e314299dbf76b777b4b7f672187b4d68625c Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Wed, 27 Nov 2019 20:30:59 +0100 Subject: [PATCH] Provide a way to dependencies to the CategorizationImExporter --- .../CategorizationImExporter.java | 12 ++++++++++- ...izationImExporterDependenciesProvider.java | 20 +++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 ccm-core/src/main/java/org/libreccm/categorization/CategorizationImExporterDependenciesProvider.java diff --git a/ccm-core/src/main/java/org/libreccm/categorization/CategorizationImExporter.java b/ccm-core/src/main/java/org/libreccm/categorization/CategorizationImExporter.java index a69d2ddd4..8a9ff2ef5 100644 --- a/ccm-core/src/main/java/org/libreccm/categorization/CategorizationImExporter.java +++ b/ccm-core/src/main/java/org/libreccm/categorization/CategorizationImExporter.java @@ -25,6 +25,8 @@ import org.libreccm.imexport.Processes; import java.util.HashSet; import java.util.Set; +import javax.enterprise.context.RequestScoped; +import javax.enterprise.inject.Instance; import javax.inject.Inject; import javax.persistence.EntityManager; import javax.transaction.Transactional; @@ -33,6 +35,7 @@ import javax.transaction.Transactional; * * @author Jens Pelzetter */ +@RequestScoped @Processes(Categorization.class) public class CategorizationImExporter extends AbstractEntityImExporter { @@ -40,6 +43,9 @@ public class CategorizationImExporter @Inject private EntityManager entityManager; + @Inject + private Instance dependenciesProviders; + @Override protected Class getEntityClass() { @@ -48,10 +54,14 @@ public class CategorizationImExporter @Override protected Set> getRequiredEntities() { - + final Set> entities = new HashSet<>(); entities.add(Category.class); + dependenciesProviders.forEach( + provider -> entities.addAll(provider.getCategorizableEntities()) + ); + return entities; } diff --git a/ccm-core/src/main/java/org/libreccm/categorization/CategorizationImExporterDependenciesProvider.java b/ccm-core/src/main/java/org/libreccm/categorization/CategorizationImExporterDependenciesProvider.java new file mode 100644 index 000000000..9f6d8d626 --- /dev/null +++ b/ccm-core/src/main/java/org/libreccm/categorization/CategorizationImExporterDependenciesProvider.java @@ -0,0 +1,20 @@ +/* + * 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.libreccm.categorization; + +import org.libreccm.imexport.Exportable; + +import java.util.Set; + +/** + * + * @author Jens Pelzetter + */ +public interface CategorizationImExporterDependenciesProvider { + + Set> getCategorizableEntities(); + +}