From e5bc47014dc1fd17c9288f049c830fbf7d932d71 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sat, 22 May 2021 23:20:38 +0200 Subject: [PATCH] #598 - added method to create an instance of BackupDatabase_v5 from internal Database --- .../database/model/v5/BackupDatabase_v5.java | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/BackupDatabase_v5.java b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/BackupDatabase_v5.java index cc08da5c7..7040a7e28 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/BackupDatabase_v5.java +++ b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/BackupDatabase_v5.java @@ -3,9 +3,9 @@ package de.deadlocker8.budgetmaster.database.model.v5; import de.deadlocker8.budgetmaster.accounts.Account; import de.deadlocker8.budgetmaster.categories.Category; import de.deadlocker8.budgetmaster.charts.Chart; -import de.deadlocker8.budgetmaster.database.model.Converter; import de.deadlocker8.budgetmaster.database.Database; import de.deadlocker8.budgetmaster.database.model.BackupDatabase; +import de.deadlocker8.budgetmaster.database.model.Converter; import de.deadlocker8.budgetmaster.database.model.v5.converter.*; import de.deadlocker8.budgetmaster.images.Image; import de.deadlocker8.budgetmaster.templates.Template; @@ -132,4 +132,26 @@ public class BackupDatabase_v5 implements BackupDatabase { return null; } + + public static BackupDatabase_v5 createFromInternalEntities(Database database) + { + final List<BackupCategory_v5> convertedCategories = convertItemsToExternal(database.getCategories(), new CategoryConverter_v5()); + final List<BackupAccount_v5> convertedAccounts = convertItemsToExternal(database.getAccounts(), new AccountConverter_v5()); + final List<BackupTransaction_v5> convertedTransactions = convertItemsToExternal(database.getTransactions(), new TransactionConverter_v5()); + final List<BackupTemplate_v5> convertedTemplates = convertItemsToExternal(database.getTemplates(), new TemplateConverter_v5()); + final List<BackupChart_v5> convertedCharts = convertItemsToExternal(database.getCharts(), new ChartConverter_v5()); + final List<BackupImage_v5> convertedImages = convertItemsToExternal(database.getImages(), new ImageConverter_v5()); + + return new BackupDatabase_v5(convertedCategories, convertedAccounts, convertedTransactions, convertedTemplates, convertedCharts, convertedImages); + } + + private static <T, S> List<S> convertItemsToExternal(List<T> backupItems, Converter<T, S> converter) + { + List<S> convertedItems = new ArrayList<>(); + for(T backupItem : backupItems) + { + convertedItems.add(converter.convertToExternalForm(backupItem)); + } + return convertedItems; + } } -- GitLab