X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Fdictionary%2Fparser%2Fwiktionary%2FEnTranslationToTranslationParser.java;h=042f0fac3289280cb91db44ac86f5404d09fba6d;hb=2fc669d88306d563fc9c899d8d91b25d591692ea;hp=14cf43c86c9c8eb4bad956c1e3416fc9516c61cc;hpb=e479ba38bbcb261951399326623c20ffacc147d4;p=DictionaryPC.git diff --git a/src/com/hughes/android/dictionary/parser/wiktionary/EnTranslationToTranslationParser.java b/src/com/hughes/android/dictionary/parser/wiktionary/EnTranslationToTranslationParser.java index 14cf43c..042f0fa 100644 --- a/src/com/hughes/android/dictionary/parser/wiktionary/EnTranslationToTranslationParser.java +++ b/src/com/hughes/android/dictionary/parser/wiktionary/EnTranslationToTranslationParser.java @@ -15,6 +15,7 @@ package com.hughes.android.dictionary.parser.wiktionary; import java.util.Arrays; +import java.util.HashSet; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; @@ -24,7 +25,6 @@ import java.util.regex.Pattern; import com.hughes.android.dictionary.engine.IndexBuilder; import com.hughes.android.dictionary.engine.IndexedEntry; import com.hughes.android.dictionary.engine.PairEntry; -import com.hughes.android.dictionary.engine.PairEntry.Pair; import com.hughes.android.dictionary.parser.WikiTokenizer; import com.hughes.android.dictionary.parser.wiktionary.EnFunctionCallbacks.TranslationCallback; import com.hughes.util.ListUtil; @@ -37,10 +37,11 @@ public final class EnTranslationToTranslationParser extends AbstractWiktionaryPa PairEntry pairEntry = null; IndexedEntry indexedEntry = null; StringBuilder[] builders = null; + final HashSet allPairs = new HashSet<>(); public static final String NAME = "EnTranslationToTranslation"; - final Set Ts = new LinkedHashSet(Arrays.asList("t", "t+", + final Set Ts = new LinkedHashSet<>(Arrays.asList("t", "t+", "t-", "tø", "apdx-t", "ttbc")); public EnTranslationToTranslationParser(final List indexBuilders, @@ -87,10 +88,10 @@ public final class EnTranslationToTranslationParser extends AbstractWiktionaryPa } } - final TranslationCallback translationCallback = new TranslationCallback(); + final TranslationCallback translationCallback = new TranslationCallback<>(); - final AppendAndIndexWikiCallback appendAndIndexWikiCallback = new AppendAndIndexWikiCallback( - this); + final AppendAndIndexWikiCallback appendAndIndexWikiCallback = new AppendAndIndexWikiCallback<>( + this); { for (final String t : Ts) { appendAndIndexWikiCallback.functionCallbacks.put(t, translationCallback); @@ -143,8 +144,14 @@ public final class EnTranslationToTranslationParser extends AbstractWiktionaryPa final String lang1 = builders[0].toString(); final String lang2 = builders[1].toString(); if (lang1.length() > 0 && lang2.length() > 0) { - pairEntry.pairs.add(new Pair(lang1, lang2)); - indexedEntry.isValid = true; + final PairEntry.Pair newPair = new PairEntry.Pair(lang1, lang2); + // brute-force approach to prevent adding duplicates + if (!allPairs.contains(newPair)) + { + allPairs.add(newPair); + pairEntry.pairs.add(new PairEntry.Pair(lang1, lang2)); + indexedEntry.isValid = true; + } } pairEntry = null; @@ -152,4 +159,4 @@ public final class EnTranslationToTranslationParser extends AbstractWiktionaryPa builders = null; } -} \ No newline at end of file +}