]> gitweb.fperrin.net Git - DictionaryPC.git/blobdiff - src/com/hughes/android/dictionary/engine/DictionaryBuilder.java
Enable single-language dictionary
[DictionaryPC.git] / src / com / hughes / android / dictionary / engine / DictionaryBuilder.java
index d105af2d4764e45778b12b574c3eeeebe47c1401..5d5eb5e5e67030dfcb4f33fb06cf650e30971e60 100644 (file)
@@ -32,6 +32,7 @@ import org.xml.sax.SAXException;
 
 import com.hughes.android.dictionary.parser.DictFileParser;
 import com.hughes.android.dictionary.parser.Parser;
+import com.hughes.android.dictionary.parser.SingleDictFileParser;
 import com.hughes.android.dictionary.parser.wiktionary.EnForeignParser;
 import com.hughes.android.dictionary.parser.wiktionary.EnToTranslationParser;
 import com.hughes.android.dictionary.parser.wiktionary.EnTranslationToTranslationParser;
@@ -42,7 +43,7 @@ import com.hughes.util.FileUtil;
 public class DictionaryBuilder {
 
     public final Dictionary dictionary;
-    public final List<IndexBuilder> indexBuilders = new ArrayList<IndexBuilder>();
+    public final List<IndexBuilder> indexBuilders = new ArrayList<>();
 
     public DictionaryBuilder(final String dictInfoString, final Language lang0, final Language lang1, final String normalizerRules1, final String normalizerRules2, final Set<String> lang1Stoplist, final Set<String> lang2Stoplist) {
         dictionary = new Dictionary(dictInfoString);
@@ -61,7 +62,7 @@ public class DictionaryBuilder {
         }
     }
 
-    public static void main(final String[] args) throws IOException, ParserConfigurationException, SAXException {
+    public static void main(final String[] args) throws IOException {
         System.out.println("Running with arguments:");
         for (final String arg : args) {
             System.out.println(arg);
@@ -80,8 +81,8 @@ public class DictionaryBuilder {
             lang2 = null;
         }
 
-        final Set<String> lang1Stoplist = new LinkedHashSet<String>();
-        final Set<String> lang2Stoplist = new LinkedHashSet<String>();
+        final Set<String> lang1Stoplist = new LinkedHashSet<>();
+        final Set<String> lang2Stoplist = new LinkedHashSet<>();
         final String lang1StoplistFile = keyValueArgs.remove("lang1Stoplist");
         final String lang2StoplistFile = keyValueArgs.remove("lang2Stoplist");
         if (lang1StoplistFile != null) {
@@ -145,15 +146,18 @@ public class DictionaryBuilder {
                 final int pageLimit = Integer.parseInt(pageLimitString);
 
                 final EntrySource entrySource = new EntrySource(dictionaryBuilder.dictionary.sources.size(), inputName, 0);
-                System.out.println("");
+                System.out.println();
 
                 String inputFormat = keyValueArgs.remove(prefix + "Format");
                 if ("tab_separated".equals(inputFormat)) {
                     final boolean flipColumns = "true".equals(keyValueArgs.remove(prefix + "FlipColumns"));
-                    new DictFileParser(charset, flipColumns, DictFileParser.TAB, null, dictionaryBuilder, dictionaryBuilder.indexBuilders.toArray(new IndexBuilder[0]), null).parse(file, entrySource, pageLimit);
+                    new DictFileParser(charset, flipColumns, DictFileParser.TAB, null, (lang2 == null), dictionaryBuilder).parse(file, entrySource, pageLimit);
+               } else if ("html_tab_separated".equals(inputFormat)) {
+                    new SingleDictFileParser(charset, DictFileParser.TAB, dictionaryBuilder).parse(file, entrySource, pageLimit);
+               
                 } else if ("chemnitz".equals(inputFormat)) {
                     final boolean flipColumns = "true".equals(keyValueArgs.remove(prefix + "FlipColumns"));
-                    new DictFileParser(charset, flipColumns, DictFileParser.DOUBLE_COLON, DictFileParser.PIPE, dictionaryBuilder, dictionaryBuilder.indexBuilders.toArray(new IndexBuilder[0]), null).parse(file, entrySource, pageLimit);
+                    new DictFileParser(charset, flipColumns, DictFileParser.DOUBLE_COLON, DictFileParser.PIPE, (lang2 == null), dictionaryBuilder).parse(file, entrySource, pageLimit);
                 } else if ("enwiktionary".equals(inputFormat)) {
                     final String type = keyValueArgs.remove(prefix + "WiktionaryType");
                     final Pattern langPattern = Pattern.compile(keyValueArgs.remove(prefix + "LangPattern"), Pattern.CASE_INSENSITIVE);