From 56c22acad5939e66db5192e7c2ffaf429525a3de Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Thu, 21 Sep 2017 17:52:27 +0200
Subject: [PATCH] improvements for handling of save files

---
 .../budgetmaster/logic/Settings.java          | 20 ++++++++++++++++++-
 .../logic/report/ReportPreferences.java       | 14 +++++++++++++
 .../budgetmaster/logic/tag/TagMatch.java      |  2 +-
 .../logic/utils/SaveFileType.java             |  8 ++++++++
 .../logic/database/Database.java              |  3 ++-
 .../{ => database}/DatabaseImportExport.java  |  2 +-
 6 files changed, 45 insertions(+), 4 deletions(-)
 create mode 100644 src/de/deadlocker8/budgetmaster/logic/utils/SaveFileType.java
 rename src/de/deadlocker8/budgetmasterserver/logic/{ => database}/DatabaseImportExport.java (73%)

diff --git a/src/de/deadlocker8/budgetmaster/logic/Settings.java b/src/de/deadlocker8/budgetmaster/logic/Settings.java
index 2d8612467..aede2c726 100644
--- a/src/de/deadlocker8/budgetmaster/logic/Settings.java
+++ b/src/de/deadlocker8/budgetmaster/logic/Settings.java
@@ -3,9 +3,21 @@ package de.deadlocker8.budgetmaster.logic;
 import java.util.ArrayList;
 
 import de.deadlocker8.budgetmaster.logic.utils.LanguageType;
+import de.deadlocker8.budgetmaster.logic.utils.SaveFileType;
 
 public class Settings
 {
+	/*
+	 * VERSIONS 
+	 * 
+	 * --> 1
+	 * initial
+	 * 
+	 */	
+	
+	@SuppressWarnings("unused")
+	private final String TYPE = SaveFileType.BUDGETMASTER_SETTINGS.toString();
+	private final int VERSION = 1;	
 	private String clientSecret;
 	private String url;
 	private String secret;
@@ -112,9 +124,15 @@ public class Settings
 		return true;
 	}
 
+	public int getVERSION()
+	{
+		return VERSION;
+	}
+
 	@Override
 	public String toString()
 	{
-		return "Settings [clientSecret=" + clientSecret + ", url=" + url + ", secret=" + secret + ", currency=" + currency + ", restActivated=" + restActivated + ", trustedHosts=" + trustedHosts + ", language=" + language + ", autoUpdateCheckEnabled=" + autoUpdateCheckEnabled + "]";
+		return "Settings [TYPE=" + TYPE + ", VERSION=" + VERSION + ", clientSecret=" + clientSecret + ", url=" + url + ", secret=" + secret + ", currency=" + currency + ", restActivated=" + restActivated + ", trustedHosts=" + trustedHosts + ", language=" + language + ", autoUpdateCheckEnabled="
+				+ autoUpdateCheckEnabled + "]";
 	}
 }
\ No newline at end of file
diff --git a/src/de/deadlocker8/budgetmaster/logic/report/ReportPreferences.java b/src/de/deadlocker8/budgetmaster/logic/report/ReportPreferences.java
index fb97b91f7..e358e1817 100644
--- a/src/de/deadlocker8/budgetmaster/logic/report/ReportPreferences.java
+++ b/src/de/deadlocker8/budgetmaster/logic/report/ReportPreferences.java
@@ -1,7 +1,21 @@
 package de.deadlocker8.budgetmaster.logic.report;
 
+import de.deadlocker8.budgetmaster.logic.utils.SaveFileType;
+
 public class ReportPreferences
 {
+	/*
+	 * VERSIONS 
+	 * 
+	 * --> 1
+	 * initial
+	 * 
+	 * --> 2
+	 * added last export folder as reportFolderPath
+	 */	
+	
+	@SuppressWarnings("unused")
+	private final String TYPE = SaveFileType.BUDGETMASTER_REPORT_PREFERENCES.toString();
 	private final int VERSION = 2;
 	private ColumnOrder columnOrder;
 	private boolean includeBudget;
diff --git a/src/de/deadlocker8/budgetmaster/logic/tag/TagMatch.java b/src/de/deadlocker8/budgetmaster/logic/tag/TagMatch.java
index c09722461..460c927bb 100644
--- a/src/de/deadlocker8/budgetmaster/logic/tag/TagMatch.java
+++ b/src/de/deadlocker8/budgetmaster/logic/tag/TagMatch.java
@@ -1,6 +1,6 @@
 package de.deadlocker8.budgetmaster.logic.tag;
 
-import de.deadlocker8.budgetmasterserver.logic.DatabaseImportExport;
+import de.deadlocker8.budgetmasterserver.logic.database.DatabaseImportExport;
 
 @DatabaseImportExport
 public class TagMatch
diff --git a/src/de/deadlocker8/budgetmaster/logic/utils/SaveFileType.java b/src/de/deadlocker8/budgetmaster/logic/utils/SaveFileType.java
new file mode 100644
index 000000000..a5cf884f0
--- /dev/null
+++ b/src/de/deadlocker8/budgetmaster/logic/utils/SaveFileType.java
@@ -0,0 +1,8 @@
+package de.deadlocker8.budgetmaster.logic.utils;
+
+public enum SaveFileType
+{
+	BUDGETMASTER_DATABASE,
+	BUDGETMASTER_REPORT_PREFERENCES,
+	BUDGETMASTER_SETTINGS
+}
\ No newline at end of file
diff --git a/src/de/deadlocker8/budgetmasterserver/logic/database/Database.java b/src/de/deadlocker8/budgetmasterserver/logic/database/Database.java
index e398a5e7e..b631d7346 100644
--- a/src/de/deadlocker8/budgetmasterserver/logic/database/Database.java
+++ b/src/de/deadlocker8/budgetmasterserver/logic/database/Database.java
@@ -7,6 +7,7 @@ import de.deadlocker8.budgetmaster.logic.payment.NormalPayment;
 import de.deadlocker8.budgetmaster.logic.payment.RepeatingPayment;
 import de.deadlocker8.budgetmaster.logic.tag.Tag;
 import de.deadlocker8.budgetmaster.logic.tag.TagMatch;
+import de.deadlocker8.budgetmaster.logic.utils.SaveFileType;
 
 public class Database
 {
@@ -21,7 +22,7 @@ public class Database
 	 */	
 	
 	@SuppressWarnings("unused")
-	private final String TYPE = "BUDGETMASTER_DATABASE";
+	private final String TYPE = SaveFileType.BUDGETMASTER_DATABASE.toString();
 	private final int VERSION = 2;
 	private ArrayList<Category> categoriesX;
 	private ArrayList<NormalPayment> normalPayments;
diff --git a/src/de/deadlocker8/budgetmasterserver/logic/DatabaseImportExport.java b/src/de/deadlocker8/budgetmasterserver/logic/database/DatabaseImportExport.java
similarity index 73%
rename from src/de/deadlocker8/budgetmasterserver/logic/DatabaseImportExport.java
rename to src/de/deadlocker8/budgetmasterserver/logic/database/DatabaseImportExport.java
index 9ea98c3f7..977bc2ace 100644
--- a/src/de/deadlocker8/budgetmasterserver/logic/DatabaseImportExport.java
+++ b/src/de/deadlocker8/budgetmasterserver/logic/database/DatabaseImportExport.java
@@ -1,4 +1,4 @@
-package de.deadlocker8.budgetmasterserver.logic;
+package de.deadlocker8.budgetmasterserver.logic.database;
 
 /**
  * Used to mark model classes that only exists in order to allow gson to import and export the database  
-- 
GitLab