From 23876821927b72836a858ea333060574cd332047 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Sun, 23 May 2021 15:30:05 +0200
Subject: [PATCH] #598 - upgrade database

---
 .../database/model/v4/BackupDatabase_v4.java  |  1 +
 .../database/model/v5/BackupDatabase_v5.java  | 12 +++-
 .../database/model/v6/BackupDatabase_v6.java  | 56 ++++++++++---------
 3 files changed, 42 insertions(+), 27 deletions(-)

diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/model/v4/BackupDatabase_v4.java b/src/main/java/de/deadlocker8/budgetmaster/database/model/v4/BackupDatabase_v4.java
index 4214cb37b..1e86a7656 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/database/model/v4/BackupDatabase_v4.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/model/v4/BackupDatabase_v4.java
@@ -80,6 +80,7 @@ public class BackupDatabase_v4 implements BackupDatabase
 		return this.VERSION;
 	}
 
+	@Override
 	public BackupDatabase upgrade()
 	{
 		final BackupDatabase_v5 upgradedDatabase = new BackupDatabase_v5();
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 fd29511e2..257a0d0b7 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
@@ -7,6 +7,7 @@ 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.v5.converter.*;
+import de.deadlocker8.budgetmaster.database.model.v6.BackupDatabase_v6;
 import de.deadlocker8.budgetmaster.images.Image;
 import de.deadlocker8.budgetmaster.templates.Template;
 import de.deadlocker8.budgetmaster.transactions.Transaction;
@@ -124,7 +125,16 @@ public class BackupDatabase_v5 implements BackupDatabase
 	@Override
 	public BackupDatabase upgrade()
 	{
-		throw new UnsupportedOperationException();
+		final BackupDatabase_v6 upgradedDatabase = new BackupDatabase_v6();
+
+		upgradedDatabase.setCategories(categories);
+		upgradedDatabase.setAccounts(upgradeItems(accounts));
+		upgradedDatabase.setTransactions(upgradeItems(transactions));
+		upgradedDatabase.setTemplates(upgradeItems(templates));
+		upgradedDatabase.setCharts(charts);
+		upgradedDatabase.setImages(images);
+
+		return upgradedDatabase;
 	}
 
 	public static BackupDatabase_v5 createFromInternalEntities(InternalDatabase database)
diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/model/v6/BackupDatabase_v6.java b/src/main/java/de/deadlocker8/budgetmaster/database/model/v6/BackupDatabase_v6.java
index e95be8962..0847306d3 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/database/model/v6/BackupDatabase_v6.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/model/v6/BackupDatabase_v6.java
@@ -6,6 +6,9 @@ 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.v5.BackupCategory_v5;
+import de.deadlocker8.budgetmaster.database.model.v5.BackupChart_v5;
+import de.deadlocker8.budgetmaster.database.model.v5.BackupImage_v5;
 import de.deadlocker8.budgetmaster.database.model.v5.converter.*;
 import de.deadlocker8.budgetmaster.images.Image;
 import de.deadlocker8.budgetmaster.templates.Template;
@@ -21,19 +24,19 @@ public class BackupDatabase_v6 implements BackupDatabase
 	@SuppressWarnings("FieldCanBeLocal")
 	private final int VERSION = 5;
 
-	private List<BackupCategory_v6> categories;
+	private List<BackupCategory_v5> categories;
 	private List<BackupAccount_v6> accounts;
 	private List<BackupTransaction_v6> transactions;
 	private List<BackupTemplate_v6> templates;
-	private List<BackupChart_v6> charts;
-	private List<BackupImage_v6> images;
+	private List<BackupChart_v5> charts;
+	private List<BackupImage_v5> images;
 
 	public BackupDatabase_v6()
 	{
 		// for GSON
 	}
 
-	public BackupDatabase_v6(List<BackupCategory_v6> categories, List<BackupAccount_v6> accounts, List<BackupTransaction_v6> transactions, List<BackupTemplate_v6> templates, List<BackupChart_v6> charts, List<BackupImage_v6> images)
+	public BackupDatabase_v6(List<BackupCategory_v5> categories, List<BackupAccount_v6> accounts, List<BackupTransaction_v6> transactions, List<BackupTemplate_v6> templates, List<BackupChart_v5> charts, List<BackupImage_v5> images)
 	{
 		this.categories = categories;
 		this.accounts = accounts;
@@ -43,12 +46,12 @@ public class BackupDatabase_v6 implements BackupDatabase
 		this.images = images;
 	}
 
-	public List<BackupCategory_v6> getCategories()
+	public List<BackupCategory_v5> getCategories()
 	{
 		return categories;
 	}
 
-	public void setCategories(List<BackupCategory_v6> categories)
+	public void setCategories(List<BackupCategory_v5> categories)
 	{
 		this.categories = categories;
 	}
@@ -83,36 +86,37 @@ public class BackupDatabase_v6 implements BackupDatabase
 		this.templates = templates;
 	}
 
-	public List<BackupChart_v6> getCharts()
+	public List<BackupChart_v5> getCharts()
 	{
 		return charts;
 	}
 
-	public void setCharts(List<BackupChart_v6> charts)
+	public void setCharts(List<BackupChart_v5> charts)
 	{
 		this.charts = charts;
 	}
 
-	public List<BackupImage_v6> getImages()
+	public List<BackupImage_v5> getImages()
 	{
 		return images;
 	}
 
-	public void setImages(List<BackupImage_v6> images)
+	public void setImages(List<BackupImage_v5> images)
 	{
 		this.images = images;
 	}
 
 	public InternalDatabase convertToInternal()
 	{
-		final List<Category> convertedCategories = convertItemsToInternal(categories, new CategoryConverter_v5());
-		final List<Account> convertedAccounts = convertItemsToInternal(accounts, new AccountConverter_v5());
-		final List<Transaction> convertedTransactions = convertItemsToInternal(this.transactions, new TransactionConverter_v5());
-		final List<Template> convertedTemplates = convertItemsToInternal(this.templates, new TemplateConverter_v5());
-		final List<Chart> convertedCharts = convertItemsToInternal(this.charts, new ChartConverter_v5());
-		final List<Image> convertedImages = convertItemsToInternal(this.images, new ImageConverter_v5());
-
-		return new InternalDatabase(convertedCategories, convertedAccounts, convertedTransactions, convertedTemplates, convertedCharts, convertedImages);
+//		final List<Category> convertedCategories = convertItemsToInternal(categories, new CategoryConverter_v5());
+//		final List<Account> convertedAccounts = convertItemsToInternal(accounts, new AccountConverter_v5());
+//		final List<Transaction> convertedTransactions = convertItemsToInternal(this.transactions, new TransactionConverter_v5());
+//		final List<Template> convertedTemplates = convertItemsToInternal(this.templates, new TemplateConverter_v5());
+//		final List<Chart> convertedCharts = convertItemsToInternal(this.charts, new ChartConverter_v5());
+//		final List<Image> convertedImages = convertItemsToInternal(this.images, new ImageConverter_v5());
+//
+//		return new InternalDatabase(convertedCategories, convertedAccounts, convertedTransactions, convertedTemplates, convertedCharts, convertedImages);
+		return null;
 	}
 
 	@Override
@@ -130,14 +134,14 @@ public class BackupDatabase_v6 implements BackupDatabase
 	public static BackupDatabase_v6 createFromInternalEntities(InternalDatabase database)
 	{
 		final BackupDatabase_v6 externalDatabase = new BackupDatabase_v6();
-
-		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()));
-
+//
+//		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()));
+//
 		return externalDatabase;
 	}
 }
-- 
GitLab