From 90bb7e959496c3a12bebe055f6344b9f06f22809 Mon Sep 17 00:00:00 2001 From: Nathanael Sensfelder Date: Thu, 3 Aug 2017 15:28:17 +0200 Subject: Improving clarity through better Makefiles. --- sol-pretty-printer/src/Solutions.java | 96 +++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 sol-pretty-printer/src/Solutions.java (limited to 'sol-pretty-printer/src/Solutions.java') diff --git a/sol-pretty-printer/src/Solutions.java b/sol-pretty-printer/src/Solutions.java new file mode 100644 index 0000000..38a426a --- /dev/null +++ b/sol-pretty-printer/src/Solutions.java @@ -0,0 +1,96 @@ +import java.util.Map; +import java.util.List; + +import java.io.IOException; + +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.charset.StandardCharsets; + + +public class Solutions +{ + private static String load_file (final String filename) + throws IOException + { + return + new String + ( + Files.readAllBytes(Paths.get(filename)), + StandardCharsets.UTF_8 + ); + } + + public static boolean print (final String sol_file, final String pp_file) + throws IOException + { + final String pp_content; + final QuickSolParser qsp; + List solution; + + pp_content = load_file(pp_file); + + qsp = new QuickSolParser(sol_file); + + for (;;) + { + solution = qsp.next_solution(); + + if (solution == null) + { + return true; + } + + if (!handle_solution(solution, pp_content)) + { + return false; + } + } + } + + private static boolean handle_solution + ( + final List solution, + String pp_content + ) + { + for (final String[] sol_data: solution) + { + final SolutionItem si; + + si = SolutionItem.get_item_from_id(sol_data[1]); + + if (si == null) + { + System.err.println + ( + "[E] There is no element in the model with an ID of \"" + + sol_data[1] + + "\", yet the solution file refers to it." + ); + + return false; + } + + for (final Map.Entry me: si.get_functions_data()) + { + pp_content = + pp_content.replace + ( + ( + "$" + + sol_data[0] + + "." + + me.getKey().toUpperCase() + + "$" + ), + Strings.get_string_from_id(me.getValue()) + ); + } + } + + System.out.println(pp_content); + + return true; + } +} -- cgit v1.2.3-70-g09d2