From 4fdba3e7c961f1bc959b03af83d75154c86156d8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Reimar=20D=C3=B6ffinger?= Date: Sun, 13 Aug 2017 13:38:46 +0200 Subject: [PATCH] Prevent inserting duplicate Pairs. A rather brute-force approach and not generic, but it's at least an improvement. --- .../hughes/android/dictionary/FeatureConfig.java | 5 +++++ .../EnTranslationToTranslationParser.java | 14 +++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 src/com/hughes/android/dictionary/FeatureConfig.java diff --git a/src/com/hughes/android/dictionary/FeatureConfig.java b/src/com/hughes/android/dictionary/FeatureConfig.java new file mode 100644 index 0000000..4642e11 --- /dev/null +++ b/src/com/hughes/android/dictionary/FeatureConfig.java @@ -0,0 +1,5 @@ +package com.hughes.android.dictionary; + +final public class FeatureConfig { + final static public boolean enableWrite = true; +} diff --git a/src/com/hughes/android/dictionary/parser/wiktionary/EnTranslationToTranslationParser.java b/src/com/hughes/android/dictionary/parser/wiktionary/EnTranslationToTranslationParser.java index 14cf43c..4bf4903 100644 --- a/src/com/hughes/android/dictionary/parser/wiktionary/EnTranslationToTranslationParser.java +++ b/src/com/hughes/android/dictionary/parser/wiktionary/EnTranslationToTranslationParser.java @@ -19,6 +19,7 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.HashSet; import java.util.regex.Pattern; import com.hughes.android.dictionary.engine.IndexBuilder; @@ -37,6 +38,7 @@ public final class EnTranslationToTranslationParser extends AbstractWiktionaryPa PairEntry pairEntry = null; IndexedEntry indexedEntry = null; StringBuilder[] builders = null; + HashSet allPairs = new HashSet(); public static final String NAME = "EnTranslationToTranslation"; @@ -143,8 +145,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 Pair newPair = new Pair(lang1, lang2); + // brute-force approach to prevent adding duplicates + if (!allPairs.contains(newPair)) + { + allPairs.add(newPair); + pairEntry.pairs.add(new Pair(lang1, lang2)); + indexedEntry.isValid = true; + } } pairEntry = null; @@ -152,4 +160,4 @@ public final class EnTranslationToTranslationParser extends AbstractWiktionaryPa builders = null; } -} \ No newline at end of file +} -- 2.43.0