]> gitweb.fperrin.net Git - Dictionary.git/blobdiff - src/com/hughes/android/dictionary/engine/NormalizeComparator.java
Allow caching normalization step of comparator.
[Dictionary.git] / src / com / hughes / android / dictionary / engine / NormalizeComparator.java
index c744334b150ea5073aa9081e71915a40de606656..fcd7fc27a95857d201a11790ac642be70fed797e 100644 (file)
 
 package com.hughes.android.dictionary.engine;
 
-import com.ibm.icu.text.Transliterator;
-
 import java.util.Comparator;
 
+import com.ibm.icu.text.Transliterator;
+
 public class NormalizeComparator implements Comparator<String> {
 
     private final Transliterator normalizer;
@@ -44,10 +44,11 @@ public class NormalizeComparator implements Comparator<String> {
         return c.compare(s1, s2);
     }
 
-    @Override
-    public int compare(final String s1, final String s2) {
-        final String n1 = normalizer == null ? s1.toLowerCase() : normalizer.transform(s1);
-        final String n2 = normalizer == null ? s2.toLowerCase() : normalizer.transform(s2);
+    public String normalize(String s) {
+        return normalizer == null ? s.toLowerCase() : normalizer.transform(s);
+    }
+
+    public int compareNormalized(final String s1, final String s2, final String n1, final String n2) {
         int cn = compareWithoutDash(n1, n2, comparator, version);
         if (cn != 0) {
             return cn;
@@ -59,4 +60,11 @@ public class NormalizeComparator implements Comparator<String> {
         return comparator.compare(s1, s2);
     }
 
+    @Override
+    public int compare(final String s1, final String s2) {
+        final String n1 = normalize(s1);
+        final String n2 = normalize(s2);
+        return compareNormalized(s1, s2, n1, n2);
+    }
+
 }