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 cc08da5c7acbc281ac899c2f2ddeb79979c51a9b..7040a7e28e8e5593e912f6e7fa9d9e4cb6ba7fa2 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; + } }