diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/BackupItemParser.java b/src/main/java/de/deadlocker8/budgetmaster/database/BackupItemParser.java new file mode 100644 index 0000000000000000000000000000000000000000..c189b88acc881055e461f6560b84123036ded37a --- /dev/null +++ b/src/main/java/de/deadlocker8/budgetmaster/database/BackupItemParser.java @@ -0,0 +1,22 @@ +package de.deadlocker8.budgetmaster.database; + +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; + +import java.util.ArrayList; +import java.util.List; + +public class BackupItemParser +{ + public static <T> List<T> parseItems(JsonArray jsonArray, Class<T> itemType) + { + List<T> parsedItems = new ArrayList<>(); + for(JsonElement currentItem : jsonArray) + { + parsedItems.add(new Gson().fromJson(currentItem, itemType)); + } + + return parsedItems; + } +} diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v5.java b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v5.java index c5e86fa870318db466922bed4d479f9a9792e384..df94a65f4b97e9993308de920984f52997f99443 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v5.java +++ b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v5.java @@ -1,11 +1,9 @@ package de.deadlocker8.budgetmaster.database; -import com.google.gson.*; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; import de.deadlocker8.budgetmaster.database.model.v5.*; -import java.util.ArrayList; -import java.util.List; - public class DatabaseParser_v5 { private final String jsonString; @@ -23,24 +21,13 @@ public class DatabaseParser_v5 database = new BackupDatabase_v5(); final JsonObject root = JsonParser.parseString(jsonString).getAsJsonObject(); - database.setImages(parseItems(root.get("images").getAsJsonArray(), BackupImage_v5.class)); - database.setAccounts(parseItems(root.get("accounts").getAsJsonArray(), BackupAccount_v5.class)); - database.setCategories(parseItems(root.get("categories").getAsJsonArray(), BackupCategory_v5.class)); - database.setTransactions(parseItems(root.get("transactions").getAsJsonArray(), BackupTransaction_v5.class)); - database.setTemplates(parseItems(root.get("templates").getAsJsonArray(), BackupTemplate_v5.class)); - database.setCharts(parseItems(root.get("charts").getAsJsonArray(), BackupChart_v5.class)); + database.setImages(BackupItemParser.parseItems(root.get("images").getAsJsonArray(), BackupImage_v5.class)); + database.setAccounts(BackupItemParser.parseItems(root.get("accounts").getAsJsonArray(), BackupAccount_v5.class)); + database.setCategories(BackupItemParser.parseItems(root.get("categories").getAsJsonArray(), BackupCategory_v5.class)); + database.setTransactions(BackupItemParser.parseItems(root.get("transactions").getAsJsonArray(), BackupTransaction_v5.class)); + database.setTemplates(BackupItemParser.parseItems(root.get("templates").getAsJsonArray(), BackupTemplate_v5.class)); + database.setCharts(BackupItemParser.parseItems(root.get("charts").getAsJsonArray(), BackupChart_v5.class)); return database; } - - private <T> List<T> parseItems(JsonArray jsonArray, Class<T> itemType) - { - List<T> parsedItems = new ArrayList<>(); - for(JsonElement currentItem : jsonArray) - { - parsedItems.add(new Gson().fromJson(currentItem, itemType)); - } - - return parsedItems; - } } \ No newline at end of file