]> gitweb.fperrin.net Git - DictionaryPC.git/commitdiff
Prevent inserting duplicate Pairs.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sun, 13 Aug 2017 11:38:46 +0000 (13:38 +0200)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sun, 13 Aug 2017 11:38:46 +0000 (13:38 +0200)
A rather brute-force approach and not
generic, but it's at least an improvement.

src/com/hughes/android/dictionary/FeatureConfig.java [new file with mode: 0644]
src/com/hughes/android/dictionary/parser/wiktionary/EnTranslationToTranslationParser.java

diff --git a/src/com/hughes/android/dictionary/FeatureConfig.java b/src/com/hughes/android/dictionary/FeatureConfig.java
new file mode 100644 (file)
index 0000000..4642e11
--- /dev/null
@@ -0,0 +1,5 @@
+package com.hughes.android.dictionary;
+
+final public class FeatureConfig {
+    final static public boolean enableWrite = true;
+}
index 14cf43c86c9c8eb4bad956c1e3416fc9516c61cc..4bf49033dca99a39c6e1ada0eefde892d283c8f2 100644 (file)
@@ -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<Pair> allPairs = new HashSet<Pair>();
 
     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
+}