X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Fdictionary%2Fparser%2Fenwiktionary%2FFunctionCallback.java;h=d908c333bcd88cec971cc31b08c63c5d321cf63e;hb=794c2989d4ff4c456c9aa1066150c6d51a5aae84;hp=e9c9fb42c4018849171f0111deca0d7e0cb7458f;hpb=52123581b0c4aa46298b9d6cbc4697accffc1cc7;p=DictionaryPC.git diff --git a/src/com/hughes/android/dictionary/parser/enwiktionary/FunctionCallback.java b/src/com/hughes/android/dictionary/parser/enwiktionary/FunctionCallback.java index e9c9fb4..d908c33 100644 --- a/src/com/hughes/android/dictionary/parser/enwiktionary/FunctionCallback.java +++ b/src/com/hughes/android/dictionary/parser/enwiktionary/FunctionCallback.java @@ -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 args, final Map 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 args, - final Map 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 args, - final Map 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); }