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;
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;
PairEntry pairEntry = null;
IndexedEntry indexedEntry = null;
StringBuilder[] builders = null;
+ final HashSet<PairEntry.Pair> allPairs = new HashSet<>();
public static final String NAME = "EnTranslationToTranslation";
- final Set<String> Ts = new LinkedHashSet<String>(Arrays.asList("t", "t+",
+ final Set<String> Ts = new LinkedHashSet<>(Arrays.asList("t", "t+",
"t-", "tø", "apdx-t", "ttbc"));
public EnTranslationToTranslationParser(final List<IndexBuilder> indexBuilders,
}
}
- final TranslationCallback<EnTranslationToTranslationParser> translationCallback = new TranslationCallback<EnTranslationToTranslationParser>();
+ final TranslationCallback<EnTranslationToTranslationParser> translationCallback = new TranslationCallback<>();
- final AppendAndIndexWikiCallback<EnTranslationToTranslationParser> appendAndIndexWikiCallback = new AppendAndIndexWikiCallback<EnTranslationToTranslationParser>(
- this);
+ final AppendAndIndexWikiCallback<EnTranslationToTranslationParser> appendAndIndexWikiCallback = new AppendAndIndexWikiCallback<>(
+ this);
{
for (final String t : Ts) {
appendAndIndexWikiCallback.functionCallbacks.put(t, translationCallback);
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;
builders = null;
}
-}
\ No newline at end of file
+}