diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/model/BackupDatabase.java b/src/main/java/de/deadlocker8/budgetmaster/database/model/BackupDatabase.java index a3e15926c4ba3fc3ae76bd919f618f0168b0ffba..07a2070f75ce187f07ec1b40a508992a030535ac 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/database/model/BackupDatabase.java +++ b/src/main/java/de/deadlocker8/budgetmaster/database/model/BackupDatabase.java @@ -22,4 +22,24 @@ public interface BackupDatabase } return upgradedItems; } + + default <T, S> List<T> convertItemsToInternal(List<S> backupItems, Converter<T, S> converter) + { + List<T> convertedItems = new ArrayList<>(); + for(S backupItem : backupItems) + { + convertedItems.add(converter.convertToInternalForm(backupItem)); + } + return convertedItems; + } + + default <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; + } } 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 de8c6985aa011c3e10221819982533c14fa7a3b4..fd29511e2e56f7cde17a3dea5962f29701bed68d 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 @@ -6,13 +6,11 @@ import de.deadlocker8.budgetmaster.charts.Chart; import de.deadlocker8.budgetmaster.database.InternalDatabase; import de.deadlocker8.budgetmaster.database.JSONIdentifier; 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; import de.deadlocker8.budgetmaster.transactions.Transaction; -import java.util.ArrayList; import java.util.List; public class BackupDatabase_v5 implements BackupDatabase @@ -117,16 +115,6 @@ public class BackupDatabase_v5 implements BackupDatabase return new InternalDatabase(convertedCategories, convertedAccounts, convertedTransactions, convertedTemplates, convertedCharts, convertedImages); } - private <T, S> List<T> convertItemsToInternal(List<S> backupItems, Converter<T, S> converter) - { - List<T> convertedItems = new ArrayList<>(); - for(S backupItem : backupItems) - { - convertedItems.add(converter.convertToInternalForm(backupItem)); - } - return convertedItems; - } - @Override public int getVersion() { @@ -141,23 +129,15 @@ public class BackupDatabase_v5 implements BackupDatabase public static BackupDatabase_v5 createFromInternalEntities(InternalDatabase 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()); + final BackupDatabase_v5 externalDatabase = new BackupDatabase_v5(); - return new BackupDatabase_v5(convertedCategories, convertedAccounts, convertedTransactions, convertedTemplates, convertedCharts, convertedImages); - } + externalDatabase.setCategories(externalDatabase.convertItemsToExternal(database.getCategories(), new CategoryConverter_v5())); + externalDatabase.setAccounts(externalDatabase.convertItemsToExternal(database.getAccounts(), new AccountConverter_v5())); + externalDatabase.setTransactions(externalDatabase.convertItemsToExternal(database.getTransactions(), new TransactionConverter_v5())); + externalDatabase.setTemplates(externalDatabase.convertItemsToExternal(database.getTemplates(), new TemplateConverter_v5())); + externalDatabase.setCharts(externalDatabase.convertItemsToExternal(database.getCharts(), new ChartConverter_v5())); + externalDatabase.setImages(externalDatabase.convertItemsToExternal(database.getImages(), new ImageConverter_v5())); - 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; + return externalDatabase; } }