Skip to content
Snippets Groups Projects
Commit b8317d70 authored by Robert Goldmann's avatar Robert Goldmann
Browse files

#598 - externalized item parsin helper method

parent 2fa200fd
Branches
Tags
No related merge requests found
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;
}
}
package de.deadlocker8.budgetmaster.database; 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 de.deadlocker8.budgetmaster.database.model.v5.*;
import java.util.ArrayList;
import java.util.List;
public class DatabaseParser_v5 public class DatabaseParser_v5
{ {
private final String jsonString; private final String jsonString;
...@@ -23,24 +21,13 @@ public class DatabaseParser_v5 ...@@ -23,24 +21,13 @@ public class DatabaseParser_v5
database = new BackupDatabase_v5(); database = new BackupDatabase_v5();
final JsonObject root = JsonParser.parseString(jsonString).getAsJsonObject(); final JsonObject root = JsonParser.parseString(jsonString).getAsJsonObject();
database.setImages(parseItems(root.get("images").getAsJsonArray(), BackupImage_v5.class)); database.setImages(BackupItemParser.parseItems(root.get("images").getAsJsonArray(), BackupImage_v5.class));
database.setAccounts(parseItems(root.get("accounts").getAsJsonArray(), BackupAccount_v5.class)); database.setAccounts(BackupItemParser.parseItems(root.get("accounts").getAsJsonArray(), BackupAccount_v5.class));
database.setCategories(parseItems(root.get("categories").getAsJsonArray(), BackupCategory_v5.class)); database.setCategories(BackupItemParser.parseItems(root.get("categories").getAsJsonArray(), BackupCategory_v5.class));
database.setTransactions(parseItems(root.get("transactions").getAsJsonArray(), BackupTransaction_v5.class)); database.setTransactions(BackupItemParser.parseItems(root.get("transactions").getAsJsonArray(), BackupTransaction_v5.class));
database.setTemplates(parseItems(root.get("templates").getAsJsonArray(), BackupTemplate_v5.class)); database.setTemplates(BackupItemParser.parseItems(root.get("templates").getAsJsonArray(), BackupTemplate_v5.class));
database.setCharts(parseItems(root.get("charts").getAsJsonArray(), BackupChart_v5.class)); database.setCharts(BackupItemParser.parseItems(root.get("charts").getAsJsonArray(), BackupChart_v5.class));
return database; 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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment