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;
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);
}
}
- 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);
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) {
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);