]> gitweb.fperrin.net Git - DictionaryPC.git/blobdiff - src/com/hughes/android/dictionary/DictionaryBuilder.java
a
[DictionaryPC.git] / src / com / hughes / android / dictionary / DictionaryBuilder.java
index bb1301ee1a9789b02a920d59286ea24f90b4a607..408908e01c61a0ee3d1d7de1033fa9bc82cce84d 100755 (executable)
@@ -8,6 +8,7 @@ import java.io.InputStreamReader;
 import java.io.RandomAccessFile;\r
 import java.nio.charset.Charset;\r
 import java.util.ArrayList;\r
+import java.util.Arrays;\r
 import java.util.Collections;\r
 import java.util.Comparator;\r
 import java.util.HashMap;\r
@@ -19,25 +20,37 @@ import com.hughes.android.dictionary.Dictionary.IndexEntry;
 import com.hughes.android.dictionary.Dictionary.Row;\r
 \r
 public class DictionaryBuilder {\r
+  \r
+  static final List<InputFile> inputFiles = Arrays.asList(\r
+      new InputFile("c:\\thad\\de-en-chemnitz.txt", Charset.forName("UTF8"), true),\r
+      // Thad's extra sauce: \r
+      new InputFile("c:\\thad\\de-en-dictcc.txt", Charset.forName("Cp1252"), false)\r
+      );\r
+  static final String dictOutFilename = "c:\\thad\\de-en.dict";\r
+  \r
+  static class InputFile {\r
+    final String file;\r
+    final Charset charset;\r
+    final boolean hasMultipleSubentries;\r
+    public InputFile(String file, Charset charset, boolean hasMultipleSubentries) {\r
+      this.file = file;\r
+      this.charset = charset;\r
+      this.hasMultipleSubentries = hasMultipleSubentries;\r
+    }\r
+  }\r
 \r
   public static void main(String[] args) throws IOException,\r
       ClassNotFoundException {\r
-    if (args.length != 1) {\r
-      System.err.println("outputfile");\r
-      return;\r
-    }\r
-    final String dictOutFilename = args[0];\r
 \r
     final Dictionary dict = new Dictionary("de-en.txt - a German-English dictionary\n" +\r
                "Version: devel, 2009-04-17\n" +\r
                "Source: http://dict.tu-chemnitz.de/\n" +\r
                "Thanks to Frank Richter.", Language.DE, Language.EN);\r
     System.out.println(Charset.forName("Cp1252"));\r
-    processInputFile("c:\\de-en-chemnitz.txt", dict, true, Charset.forName("UTF8"));\r
+    for (final InputFile inputFile : inputFiles) {\r
+      processInputFile(dict, inputFile);\r
+    }\r
     \r
-    // Thad's extra sauce: \r
-//    processInputFile("c:\\de-en-dictcc.txt", dict, false, Charset.forName("Cp1252"));\r
-\r
     createIndex(dict, Entry.LANG1);\r
     createIndex(dict, Entry.LANG2);\r
 \r
@@ -48,9 +61,8 @@ public class DictionaryBuilder {
     dictOut.close();\r
   }\r
 \r
-  private static void processInputFile(final String filename,\r
-      final Dictionary dict, final boolean hasMultipleSubentries, final Charset charset) throws FileNotFoundException, IOException {\r
-    final BufferedReader dictionaryIn = new BufferedReader(new InputStreamReader(new FileInputStream(filename), charset));\r
+  private static void processInputFile(final Dictionary dict, final InputFile inputFile) throws FileNotFoundException, IOException {\r
+    final BufferedReader dictionaryIn = new BufferedReader(new InputStreamReader(new FileInputStream(inputFile.file), inputFile.charset));\r
     String line;\r
     int lineCount = 0;\r
     while ((line = dictionaryIn.readLine()) != null) {\r
@@ -60,7 +72,7 @@ public class DictionaryBuilder {
         continue;\r
       }\r
 \r
-      final Entry entry = Entry.parseFromLine(line, hasMultipleSubentries);\r
+      final Entry entry = Entry.parseFromLine(line, inputFile.hasMultipleSubentries);\r
       if (entry == null) {\r
         System.err.println("Invalid entry: " + line);\r
         continue;\r