From b8317d7027fe395bfecff07424aea7af7d645f6a Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sat, 22 May 2021 22:20:52 +0200 Subject: [PATCH] #598 - externalized item parsin helper method --- .../database/BackupItemParser.java | 22 ++++++++++++++ .../database/DatabaseParser_v5.java | 29 +++++-------------- 2 files changed, 30 insertions(+), 21 deletions(-) create mode 100644 src/main/java/de/deadlocker8/budgetmaster/database/BackupItemParser.java 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 000000000..c189b88ac --- /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 c5e86fa87..df94a65f4 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 -- GitLab