X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Fdictionary%2Fengine%2FDictionaryBuilder.java;h=5d5eb5e5e67030dfcb4f33fb06cf650e30971e60;hb=020aa910526ece05ee8514e55a9a951b45ce1fea;hp=d105af2d4764e45778b12b574c3eeeebe47c1401;hpb=e479ba38bbcb261951399326623c20ffacc147d4;p=DictionaryPC.git diff --git a/src/com/hughes/android/dictionary/engine/DictionaryBuilder.java b/src/com/hughes/android/dictionary/engine/DictionaryBuilder.java index d105af2..5d5eb5e 100644 --- a/src/com/hughes/android/dictionary/engine/DictionaryBuilder.java +++ b/src/com/hughes/android/dictionary/engine/DictionaryBuilder.java @@ -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 indexBuilders = new ArrayList(); + public final List indexBuilders = new ArrayList<>(); public DictionaryBuilder(final String dictInfoString, final Language lang0, final Language lang1, final String normalizerRules1, final String normalizerRules2, final Set lang1Stoplist, final Set 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 lang1Stoplist = new LinkedHashSet(); - final Set lang2Stoplist = new LinkedHashSet(); + final Set lang1Stoplist = new LinkedHashSet<>(); + final Set 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);