]> gitweb.fperrin.net Git - DictionaryPC.git/blobdiff - src/com/hughes/android/dictionary/engine/DictionaryBuilder.java
Added WholeSection entries and parser.
[DictionaryPC.git] / src / com / hughes / android / dictionary / engine / DictionaryBuilder.java
index 10c52a5c9a0824a23e24126c691de284357a3e79..8d7f4842cfe4d2629be88485d2bc7ae9205109ff 100644 (file)
@@ -34,6 +34,8 @@ import com.hughes.android.dictionary.parser.DictFileParser;
 import com.hughes.android.dictionary.parser.Parser;
 import com.hughes.android.dictionary.parser.wiktionary.EnForeignParser;
 import com.hughes.android.dictionary.parser.wiktionary.EnToTranslationParser;
+import com.hughes.android.dictionary.parser.wiktionary.EnTranslationToTranslationParser;
+import com.hughes.android.dictionary.parser.wiktionary.WholeSectionToHtmlParser;
 import com.hughes.util.Args;
 import com.hughes.util.FileUtil;
 
@@ -164,6 +166,19 @@ public class DictionaryBuilder {
             return;
           }
           parser.parse(file, entrySource, pageLimit);
+        } else if (EnTranslationToTranslationParser.NAME.equals(inputFormat)) {
+          final String code1 = keyValueArgs.remove(prefix + "LangPattern1");
+          final String code2 = keyValueArgs.remove(prefix + "LangPattern2");
+          if (code1 == null || code2 == null) {
+            fatalError("Must specify LangPattern1 and LangPattern2.");
+            return;
+          }
+          final Pattern codePattern1 = Pattern.compile(code1, Pattern.CASE_INSENSITIVE);
+          final Pattern codePattern2 = Pattern.compile(code2, Pattern.CASE_INSENSITIVE);
+          new EnTranslationToTranslationParser(dictionaryBuilder.indexBuilders, new Pattern[] {codePattern1, codePattern2}).parse(file, entrySource, pageLimit);
+        } else if (WholeSectionToHtmlParser.NAME.equals(inputFormat)) {
+          final int titleIndex = Integer.parseInt(keyValueArgs.remove(prefix + "TitleIndex")) - 1;
+          new WholeSectionToHtmlParser(dictionaryBuilder.indexBuilders.get(titleIndex)).parse(file, entrySource, pageLimit);
         } else {
           fatalError("Invalid or missing input format: " + inputFormat);
         }