X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.ui%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2Futil%2FJsonHandler.java;h=df48266622a22efe78cc8c18a907b0d2dcf2574c;hb=78c6c20a637ade903ee41b9e557bde0c30c08218;hp=99ff8d1dd409efbe62e5cde663ea5007a4587804;hpb=c5b5d3cb19298d33d787b5a3e0a87ce5d7f4a1a0;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 index 99ff8d1d..df482666 100644 --- 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 @@ -6,6 +6,7 @@ import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.util.stream.Collectors; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -29,18 +30,27 @@ public class JsonHandler { try (InputStreamReader reader = new InputStreamReader(input); BufferedReader bf = new BufferedReader(reader)) { - String json = bf.lines().dropWhile(s -> s.length() == 0 || s.charAt(0) != '{').reduce("", (x, y) -> x.concat(y)); - T params = parser.fromJson(json, type); - return params; + return fromJson(bf.lines().collect(Collectors.joining("\n")), type); } } + public static T fromJson(String src, Class type) + { + // TODO actually parse and compare version + String rawJson = src.lines().dropWhile(s -> s.length() == 0 || s.charAt(0) != '{').collect(Collectors.joining()); + return parser.fromJson(rawJson, type); + } + public static void writeJson(Object o, String path) throws IOException { try (FileWriter writer = new FileWriter(path)) { - writer.write(String.format("mograsim version: %s\n", Version.jsonCompVersion.toString())); - writer.write(parser.toJson(o)); + writer.write(toJson(o)); } } + + public static String toJson(Object o) + { + return String.format("mograsim version: %s\n%s", Version.jsonCompVersion.toString(), parser.toJson(o)); + } }