From 48965f101d6c07f6ac0d7ec0b48004deb5c6294a Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Mon, 31 Oct 2022 08:43:09 +0100 Subject: [PATCH] Mising ImExporter for PhaseDefinitions --- ccm-cms/package-lock.json | 4 +- ccm-cms/package.json | 2 +- .../lifecycle/PhaseDefinitionImExporter.java | 73 +++++++++++++++++++ 3 files changed, 76 insertions(+), 3 deletions(-) create mode 100644 ccm-cms/src/main/java/org/librecms/lifecycle/PhaseDefinitionImExporter.java diff --git a/ccm-cms/package-lock.json b/ccm-cms/package-lock.json index 000bed0bf..174578fe1 100644 --- a/ccm-cms/package-lock.json +++ b/ccm-cms/package-lock.json @@ -1,12 +1,12 @@ { "name": "@librecms/ccm-cms", - "version": "7.0.0-SNAPSHOT.2022-10-29T142641", + "version": "7.0.0-SNAPSHOT.2022-10-31T074006", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@librecms/ccm-cms", - "version": "7.0.0-SNAPSHOT.2022-10-29T142641", + "version": "7.0.0-SNAPSHOT.2022-10-31T074006", "license": "LGPL-3.0-or-later", "dependencies": { "@tiptap/core": "^2.0.0-beta.127", diff --git a/ccm-cms/package.json b/ccm-cms/package.json index 674361e73..f690dae5d 100644 --- a/ccm-cms/package.json +++ b/ccm-cms/package.json @@ -1,6 +1,6 @@ { "name": "@librecms/ccm-cms", - "version": "7.0.0-SNAPSHOT.2022-10-29T142641", + "version": "7.0.0-SNAPSHOT.2022-10-31T074006", "description": "JavaScript stuff for ccm-cms", "main": "target/generated-resources/assets/@content-sections/cms-admin.js", "types": "target/generated-resources/assets/@content-sections/cms-admin.d.ts", diff --git a/ccm-cms/src/main/java/org/librecms/lifecycle/PhaseDefinitionImExporter.java b/ccm-cms/src/main/java/org/librecms/lifecycle/PhaseDefinitionImExporter.java new file mode 100644 index 000000000..3fd7a52c6 --- /dev/null +++ b/ccm-cms/src/main/java/org/librecms/lifecycle/PhaseDefinitionImExporter.java @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2022 LibreCCM Foundation. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package org.librecms.lifecycle; + +import org.libreccm.imexport.AbstractEntityImExporter; +import org.libreccm.imexport.Exportable; +import org.libreccm.imexport.Processes; + +import java.util.Collections; +import java.util.Objects; +import java.util.Set; + +import javax.enterprise.context.RequestScoped; +import javax.inject.Inject; + +/** + * + * @author Jens Pelzetter + */ +@RequestScoped +@Processes(PhaseDefinition.class) +public class PhaseDefinitionImExporter + extends AbstractEntityImExporter { + + @Inject + private PhaseDefinititionRepository phaseDefinitionRepo; + + @Override + public Class getEntityClass() { + return PhaseDefinition.class; + } + + @Override + protected Set> getRequiredEntities() { + return Collections.emptySet(); + } + + @Override + protected void saveImportedEntity(final PhaseDefinition entity) { + phaseDefinitionRepo.save(entity); + } + + @Override + protected PhaseDefinition reloadEntity(final PhaseDefinition entity) { + return phaseDefinitionRepo + .findById(Objects.requireNonNull(entity).getDefinitionId()) + .orElseThrow( + () -> new IllegalArgumentException( + String.format( + "PhaseDefinition entity %s not found in database.", + Objects.toString(entity) + ) + ) + ); + } + +}