X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.ui%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2Futil%2FJsonHandler.java;fp=net.mograsim.logic.ui%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2Futil%2FJsonHandler.java;h=94231a3d80ab65f48b716a1a1f21d131334c51d2;hb=6432c12630fa3f80ec19bf23229844abd42105e3;hp=0000000000000000000000000000000000000000;hpb=82cc1d386820c179be331790fa3c1fae22bada76;p=Mograsim.git diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/util/JsonHandler.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/util/JsonHandler.java new file mode 100644 index 00000000..94231a3d --- /dev/null +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/util/JsonHandler.java @@ -0,0 +1,35 @@ +package net.mograsim.logic.ui.util; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + +public class JsonHandler +{ + private static Gson parser = new GsonBuilder().setPrettyPrinting().create(); + + @SuppressWarnings("resource") + public static T readJson(String path, Class type) throws IOException + { + FileReader reader = new FileReader(path); + BufferedReader bf = new BufferedReader(reader); + bf.readLine(); // Skip version + String json = bf.lines().dropWhile(s -> s.length() == 0 || s.charAt(0) != '{').reduce("", (x, y) -> x.concat(y)); + T params = parser.fromJson(json, type); + reader.close(); + return params; + } + + public static void writeJson(Object o, String path) throws IOException + { + @SuppressWarnings("resource") + FileWriter writer = new FileWriter(path); + writer.write(String.format("mograsim version: %s\n", Version.current.toString())); + writer.write(parser.toJson(o)); + writer.close(); // TODO: Insure that writer is closed + } +}