From 88671184e20b3ad3791125cf96c83ca048cb2861 Mon Sep 17 00:00:00 2001 From: jeff Date: Sat, 28 Feb 2015 23:36:47 -0500 Subject: refactor converter a bit for upcoming convert gui --- src/cuchaz/enigma/convert/MatchesReader.java | 45 ++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/cuchaz/enigma/convert/MatchesReader.java (limited to 'src/cuchaz/enigma/convert/MatchesReader.java') diff --git a/src/cuchaz/enigma/convert/MatchesReader.java b/src/cuchaz/enigma/convert/MatchesReader.java new file mode 100644 index 0000000..808f8d0 --- /dev/null +++ b/src/cuchaz/enigma/convert/MatchesReader.java @@ -0,0 +1,45 @@ +package cuchaz.enigma.convert; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.util.Collection; +import java.util.List; + +import com.beust.jcommander.internal.Lists; + +import cuchaz.enigma.mapping.ClassEntry; + + +public class MatchesReader { + + public static Matches read(File file) + throws IOException { + try (BufferedReader in = new BufferedReader(new FileReader(file))) { + Matches matches = new Matches(); + String line = null; + while ((line = in.readLine()) != null) { + matches.add(readMatch(line)); + } + return matches; + } + } + + private static ClassMatch readMatch(String line) + throws IOException { + String[] sides = line.split(":", 2); + return new ClassMatch(readClasses(sides[0]), readClasses(sides[1])); + } + + private static Collection readClasses(String in) { + List entries = Lists.newArrayList(); + for (String className : in.split(",")) { + className = className.trim(); + if (className.length() > 0) { + entries.add(new ClassEntry(className)); + } + } + return entries; + } +} -- cgit v1.2.3