This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-text.git

commit f848519ca2230f096b074f193d99c39f02cfa9df
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Sat Jan 14 09:05:37 2023 -0500

    Add and use a package-private singleton for JaroWinklerSimilarity
---
 src/changes/changes.xml                                            | 1 +
 .../org/apache/commons/text/similarity/JaroWinklerDistance.java    | 7 +------
 .../org/apache/commons/text/similarity/JaroWinklerSimilarity.java  | 5 +++++
 3 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index c3b33d32..cb0067d8 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -53,6 +53,7 @@ The <action> type attribute can be add,update,fix,remove.
     <action                  type="fix" dev="ggregory" due-to="Gary 
Gregory">Add and use a package-private singleton for RegexTokenizer.</action>
     <action                  type="fix" dev="ggregory" due-to="Gary 
Gregory">Add and use a package-private singleton for CosineSimilarity.</action>
     <action                  type="fix" dev="ggregory" due-to="Gary 
Gregory">Add and use a package-private singleton for 
LongestCommonSubsequence.</action>
+    <action                  type="fix" dev="ggregory" due-to="Gary 
Gregory">Add and use a package-private singleton for 
JaroWinklerSimilarity.</action>
     <!-- ADD -->
     <!-- UPDATE -->
     <action                  type="update" dev="ggregory" 
due-to="Dependabot">Bump actions/cache from 3.0.8 to 3.0.10 #361, #365.</action>
diff --git 
a/src/main/java/org/apache/commons/text/similarity/JaroWinklerDistance.java 
b/src/main/java/org/apache/commons/text/similarity/JaroWinklerDistance.java
index 1d13c280..924013b6 100644
--- a/src/main/java/org/apache/commons/text/similarity/JaroWinklerDistance.java
+++ b/src/main/java/org/apache/commons/text/similarity/JaroWinklerDistance.java
@@ -44,11 +44,6 @@ public class JaroWinklerDistance implements 
EditDistance<Double> {
         return JaroWinklerSimilarity.matches(first, second);
     }
 
-    /**
-     * Jaro Winkler similarity object used to calculate the distance (1 - 
similarity).
-     */
-    private final JaroWinklerSimilarity similarity = new 
JaroWinklerSimilarity();
-
     /**
      * Computes the Jaro Winkler Distance between two character sequences.
      *
@@ -88,6 +83,6 @@ public class JaroWinklerDistance implements 
EditDistance<Double> {
             throw new IllegalArgumentException("CharSequences must not be 
null");
         }
 
-        return 1 - similarity.apply(left, right);
+        return 1 - JaroWinklerSimilarity.INSTANCE.apply(left, right);
     }
 }
diff --git 
a/src/main/java/org/apache/commons/text/similarity/JaroWinklerSimilarity.java 
b/src/main/java/org/apache/commons/text/similarity/JaroWinklerSimilarity.java
index 3659d4d9..b2e27315 100644
--- 
a/src/main/java/org/apache/commons/text/similarity/JaroWinklerSimilarity.java
+++ 
b/src/main/java/org/apache/commons/text/similarity/JaroWinklerSimilarity.java
@@ -43,6 +43,11 @@ import org.apache.commons.lang3.StringUtils;
  */
 public class JaroWinklerSimilarity implements SimilarityScore<Double> {
 
+    /**
+     * Singleton instance.
+     */
+    static final JaroWinklerSimilarity INSTANCE = new JaroWinklerSimilarity();
+
     /**
      * This method returns the Jaro-Winkler string matches, half 
transpositions, prefix array.
      *

Reply via email to