]> gitweb.fperrin.net Git - DictionaryPC.git/blobdiff - src/com/hughes/android/dictionary/parser/enwiktionary/FunctionCallback.java
Major refactor in the way wikiText is parsed.
[DictionaryPC.git] / src / com / hughes / android / dictionary / parser / enwiktionary / FunctionCallback.java
index e9c9fb42c4018849171f0111deca0d7e0cb7458f..d908c333bcd88cec971cc31b08c63c5d321cf63e 100644 (file)
@@ -2,79 +2,17 @@ package com.hughes.android.dictionary.parser.enwiktionary;
 
 import java.util.List;
 import java.util.Map;
-import java.util.logging.Logger;
 
 import com.hughes.android.dictionary.parser.WikiTokenizer;
-import com.hughes.util.ListUtil;
 
 public interface FunctionCallback {
   
-  static final Logger LOG = Logger.getLogger(EnWiktionaryXmlParser.class.getName());
-  
   boolean onWikiFunction(
+      final WikiTokenizer tokenizer, 
       final String name,
       final List<String> args, 
       final Map<String,String> namedArgs,
       final EnWiktionaryXmlParser parser,
-      final AppendAndIndexWikiCallback appendAndIndexWikiCallback,
-      final String title);
-
-  static final class TranslationCallback implements FunctionCallback {
-    @Override
-    public boolean onWikiFunction(final String name, final List<String> args,
-        final Map<String, String> namedArgs, final EnWiktionaryXmlParser parser,
-        final AppendAndIndexWikiCallback appendAndIndexWikiCallback,
-        final String title) {
-
-      final String transliteration = namedArgs.remove("tr");
-      
-      if (args.size() < 2 || args.size() > 3 || namedArgs.isEmpty()) {
-        LOG.warning("{{t}} with too few args: " + ", title=" + title);
-        return false;
-      }
-      final String langCode = ListUtil.get(args, 0);
-      final String word = ListUtil.get(args, 1);
-      final String gender = ListUtil.get(args, 2);
-      
-// TODO      appendAndIndexWikiCallback we're inside translation....
-      //EntryTypeName.WIKTIONARY_TITLE_SINGLE, EntryTypeName.WIKTIONARY_TITLE_MULTI
-      new WikiTokenizer(word, false).dispatch(appendAndIndexWikiCallback);
-      
-      if (gender != null) {
-        appendAndIndexWikiCallback.builder.append(String.format(" {%s}", gender));
-      }
-      if (transliteration != null) {
-     // TODO      appendAndIndexWikiCallback we're inside translation....
-        // EntryTypeName.WIKTIONARY_TRANSLITERATION
-        appendAndIndexWikiCallback.builder.append("(tr. ");
-        new WikiTokenizer(transliteration).dispatch(appendAndIndexWikiCallback);
-        appendAndIndexWikiCallback.builder.append(")");
-      }
-      return true;
-    }
-    
-  }
-
-  // ------------------------------------------------------------------
-  
-  static final class QualifierCallback implements FunctionCallback {
-    @Override
-    public boolean onWikiFunction(final String name, final List<String> args,
-        final Map<String, String> namedArgs,
-        final EnWiktionaryXmlParser parser,
-        final AppendAndIndexWikiCallback appendAndIndexWikiCallback,
-        final String title) {
-      if (args.size() != 1 || !namedArgs.isEmpty()) {
-        LOG.warning("weird qualifier: ");
-        return false;
-      }
-      String qualifier = args.get(0);
-      // Unindexed!
-      appendAndIndexWikiCallback.builder.append("(");
-      new WikiTokenizer(qualifier, false).dispatch(appendAndIndexWikiCallback);
-      appendAndIndexWikiCallback.builder.append(")");
-      return true;
-    }
-  }
+      final AppendAndIndexWikiCallback appendAndIndexWikiCallback);
 
 }