From 45303dc8e02707893d52df9981639728198ce7b0 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Fri, 20 Jun 2025 18:35:20 +0200 Subject: [PATCH] feat: common implementation for all subform data catalogues --- .../AbstractSubformDataCatalogue.java | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/main/java/dev/pcvolkmer/onco/datamapper/datacatalogues/AbstractSubformDataCatalogue.java diff --git a/src/main/java/dev/pcvolkmer/onco/datamapper/datacatalogues/AbstractSubformDataCatalogue.java b/src/main/java/dev/pcvolkmer/onco/datamapper/datacatalogues/AbstractSubformDataCatalogue.java new file mode 100644 index 0000000..c964c8d --- /dev/null +++ b/src/main/java/dev/pcvolkmer/onco/datamapper/datacatalogues/AbstractSubformDataCatalogue.java @@ -0,0 +1,42 @@ +package dev.pcvolkmer.onco.datamapper.datacatalogues; + +import dev.pcvolkmer.onco.datamapper.exceptions.DataAccessException; +import org.springframework.jdbc.core.JdbcTemplate; + +import java.sql.ResultSet; +import java.util.List; + +/** + * Common implementations for all data catalogues used in subforms + * + * @author Paul-Christian Volkmer + * @since 0.1 + */ +public abstract class AbstractSubformDataCatalogue extends AbstractDataCatalogue implements DataCatalogue { + + protected AbstractSubformDataCatalogue(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + protected abstract String getTableName(); + + /** + * Get procedure result sets by main procedure id + * + * @param id The procedure id + * @return The procedure id + */ + public List getAllByMainId(int id) { + var result = this.jdbcTemplate.query( + String.format("SELECT * FROM %s JOIN prozedur ON (prozedur.id = dk_dnpm_kpa.id) WHERE hauptprozedur = ?", getTableName()), + (resultSet, i) -> resultSet, + id); + + if (result.isEmpty()) { + throw new DataAccessException("No record found for id: " + id); + } + + return result; + } + +}