From b972b427a3e951e8f5b644d0b934c3fd22905d28 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Sat, 22 May 2021 11:57:06 +0200
Subject: [PATCH] #598 - added converter to convert backup models into database
 entities

---
 .../v5/converter/AccountConverter_v5.java     | 25 ++++++++++++++++
 .../v5/converter/CategoryConverter_v5.java    | 23 +++++++++++++++
 .../model/v5/converter/ChartConverter_v5.java | 23 +++++++++++++++
 .../model/v5/converter/Converter.java         |  6 ++++
 .../model/v5/converter/ImageConverter_v5.java | 22 ++++++++++++++
 .../v5/converter/TemplateConverter_v5.java    | 29 +++++++++++++++++++
 .../v5/converter/TransactionConverter_v5.java | 29 +++++++++++++++++++
 7 files changed, 157 insertions(+)
 create mode 100644 src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/AccountConverter_v5.java
 create mode 100644 src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/CategoryConverter_v5.java
 create mode 100644 src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/ChartConverter_v5.java
 create mode 100644 src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/Converter.java
 create mode 100644 src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/ImageConverter_v5.java
 create mode 100644 src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/TemplateConverter_v5.java
 create mode 100644 src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/TransactionConverter_v5.java

diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/AccountConverter_v5.java b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/AccountConverter_v5.java
new file mode 100644
index 000000000..54ef6c3b6
--- /dev/null
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/AccountConverter_v5.java
@@ -0,0 +1,25 @@
+package de.deadlocker8.budgetmaster.database.model.v5.converter;
+
+import de.deadlocker8.budgetmaster.accounts.Account;
+import de.deadlocker8.budgetmaster.database.model.v5.BackupAccount_v5;
+
+public class AccountConverter_v5 implements Converter<Account, BackupAccount_v5>
+{
+	public Account convert(BackupAccount_v5 backupAccount)
+	{
+		if(backupAccount == null)
+		{
+			return null;
+		}
+
+		final Account account = new Account();
+		account.setID(backupAccount.getID());
+		account.setName(backupAccount.getName());
+		account.setDefault(backupAccount.getDefault());
+		account.setSelected(backupAccount.getSelected());
+		account.setAccountState(backupAccount.getAccountState());
+		account.setType(backupAccount.getType());
+		account.setIcon(new ImageConverter_v5().convert(backupAccount.getIcon()));
+		return account;
+	}
+}
diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/CategoryConverter_v5.java b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/CategoryConverter_v5.java
new file mode 100644
index 000000000..b11cc2571
--- /dev/null
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/CategoryConverter_v5.java
@@ -0,0 +1,23 @@
+package de.deadlocker8.budgetmaster.database.model.v5.converter;
+
+import de.deadlocker8.budgetmaster.categories.Category;
+import de.deadlocker8.budgetmaster.database.model.v5.BackupCategory_v5;
+
+public class CategoryConverter_v5 implements Converter<Category, BackupCategory_v5>
+{
+	public Category convert(BackupCategory_v5 backupCategory)
+	{
+		if(backupCategory == null)
+		{
+			return null;
+		}
+
+		final Category category = new Category();
+		category.setID(backupCategory.getID());
+		category.setName(backupCategory.getName());
+		category.setColor(backupCategory.getColor());
+		category.setType(backupCategory.getType());
+		category.setIcon(backupCategory.getIcon());
+		return category;
+	}
+}
diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/ChartConverter_v5.java b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/ChartConverter_v5.java
new file mode 100644
index 000000000..cc8954cee
--- /dev/null
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/ChartConverter_v5.java
@@ -0,0 +1,23 @@
+package de.deadlocker8.budgetmaster.database.model.v5.converter;
+
+import de.deadlocker8.budgetmaster.charts.Chart;
+import de.deadlocker8.budgetmaster.database.model.v5.BackupChart_v5;
+
+public class ChartConverter_v5 implements Converter<Chart, BackupChart_v5>
+{
+	public Chart convert(BackupChart_v5 backupChart)
+	{
+		if(backupChart == null)
+		{
+			return null;
+		}
+
+		final Chart chart = new Chart();
+		chart.setID(backupChart.getID());
+		chart.setName(backupChart.getName());
+		chart.setType(backupChart.getType());
+		chart.setVersion(backupChart.getVersion());
+		chart.setScript(backupChart.getScript());
+		return chart;
+	}
+}
diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/Converter.java b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/Converter.java
new file mode 100644
index 000000000..55b387749
--- /dev/null
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/Converter.java
@@ -0,0 +1,6 @@
+package de.deadlocker8.budgetmaster.database.model.v5.converter;
+
+public interface Converter<T, S>
+{
+	T convert(S backupItem);
+}
diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/ImageConverter_v5.java b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/ImageConverter_v5.java
new file mode 100644
index 000000000..1a2cb60fb
--- /dev/null
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/ImageConverter_v5.java
@@ -0,0 +1,22 @@
+package de.deadlocker8.budgetmaster.database.model.v5.converter;
+
+import de.deadlocker8.budgetmaster.database.model.v5.BackupImage_v5;
+import de.deadlocker8.budgetmaster.images.Image;
+
+public class ImageConverter_v5 implements Converter<Image, BackupImage_v5>
+{
+	public Image convert(BackupImage_v5 backupImage)
+	{
+		if(backupImage == null)
+		{
+			return null;
+		}
+
+		final Image image = new Image();
+		image.setID(backupImage.getID());
+		image.setFileName(backupImage.getFileName());
+		image.setFileExtension(backupImage.getFileExtension());
+		image.setImage(backupImage.getImage());
+		return image;
+	}
+}
diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/TemplateConverter_v5.java b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/TemplateConverter_v5.java
new file mode 100644
index 000000000..79dd501be
--- /dev/null
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/TemplateConverter_v5.java
@@ -0,0 +1,29 @@
+package de.deadlocker8.budgetmaster.database.model.v5.converter;
+
+import de.deadlocker8.budgetmaster.database.model.v5.BackupTemplate_v5;
+import de.deadlocker8.budgetmaster.templates.Template;
+
+public class TemplateConverter_v5 implements Converter<Template, BackupTemplate_v5>
+{
+	public Template convert(BackupTemplate_v5 backupTemplate)
+	{
+		if(backupTemplate == null)
+		{
+			return null;
+		}
+
+		final Template template = new Template();
+		template.setID(backupTemplate.getID());
+		template.setAmount(backupTemplate.getAmount());
+		template.setName(backupTemplate.getName());
+		template.setCategory(new CategoryConverter_v5().convert(backupTemplate.getCategory()));
+		template.setDescription(backupTemplate.getDescription());
+		template.setIsExpenditure(backupTemplate.getExpenditure());
+		template.setAccount(new AccountConverter_v5().convert(backupTemplate.getAccount()));
+		template.setTransferAccount(new AccountConverter_v5().convert(backupTemplate.getTransferAccount()));
+		template.setTags(backupTemplate.getTags());
+		template.setTemplateName(backupTemplate.getTemplateName());
+		template.setIcon(new ImageConverter_v5().convert(backupTemplate.getIcon()));
+		return template;
+	}
+}
diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/TransactionConverter_v5.java b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/TransactionConverter_v5.java
new file mode 100644
index 000000000..b3a083b32
--- /dev/null
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/model/v5/converter/TransactionConverter_v5.java
@@ -0,0 +1,29 @@
+package de.deadlocker8.budgetmaster.database.model.v5.converter;
+
+import de.deadlocker8.budgetmaster.database.model.v5.BackupTransaction_v5;
+import de.deadlocker8.budgetmaster.transactions.Transaction;
+
+public class TransactionConverter_v5 implements Converter<Transaction, BackupTransaction_v5>
+{
+	public Transaction convert(BackupTransaction_v5 backupTransaction)
+	{
+		if(backupTransaction == null)
+		{
+			return null;
+		}
+
+		final Transaction transaction = new Transaction();
+		transaction.setID(backupTransaction.getID());
+		transaction.setAmount(backupTransaction.getAmount());
+		transaction.setName(backupTransaction.getName());
+		transaction.setCategory(new CategoryConverter_v5().convert(backupTransaction.getCategory()));
+		transaction.setDescription(backupTransaction.getDescription());
+		transaction.setIsExpenditure(backupTransaction.getExpenditure());
+		transaction.setAccount(new AccountConverter_v5().convert(backupTransaction.getAccount()));
+		transaction.setTransferAccount(new AccountConverter_v5().convert(backupTransaction.getTransferAccount()));
+		transaction.setDate(backupTransaction.getDate());
+		transaction.setTags(backupTransaction.getTags());
+		transaction.setRepeatingOption(backupTransaction.getRepeatingOption());
+		return transaction;
+	}
+}
-- 
GitLab