You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2019/03/05 13:09:44 UTC

[commons-text] branch master updated: TEXT-153: Make prefixSet a BitSet. (#108)

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


The following commit(s) were added to refs/heads/master by this push:
     new 0ada5fa  TEXT-153: Make prefixSet a BitSet. (#108)
0ada5fa is described below

commit 0ada5faf1f3a2c59fa832fc4223aad7f6c150917
Author: amirhadadi <am...@hotmail.com>
AuthorDate: Tue Mar 5 15:09:40 2019 +0200

    TEXT-153: Make prefixSet a BitSet. (#108)
    
    * TEXT-153: Make prefixSet a BitSet.
---
 src/changes/changes.xml                                        |  1 +
 .../org/apache/commons/text/translate/LookupTranslator.java    | 10 +++++-----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index f3dc906..410c5ab 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -52,6 +52,7 @@ The <action> type attribute can be add,update,fix,remove.
     <action issue="TEXT-127" type="add" dev="ggregory" due-to="Jean-Baptiste REICH, Sebb, Don Jeba, Gary Gregory">Add a toggle to throw an exception when a variable is unknown in StringSubstitutor</action>
     <action issue="TEXT-138" type="add" dev="ggregory" due-to="Neal Johnson, Don Jeba">TextStringBuilder append sub-sequence not consistent with Appendable.</action>
     <action issue="TEXT-152" type="add" dev="" due-to="@CAPS50">Fix possible infinite loop in WordUtils.wrap for a regex pattern that would trigger on a match of 0 length</action>
+    <action issue="TEXT-153" type="update" dev="" due-to="amirhadadi">Make prefixSet in LookupTranslator a BitSet</action>
   </release>
 
   <release version="1.6" date="2018-10-12" description="Release 1.6">
diff --git a/src/main/java/org/apache/commons/text/translate/LookupTranslator.java b/src/main/java/org/apache/commons/text/translate/LookupTranslator.java
index 22143f7..b072b05 100644
--- a/src/main/java/org/apache/commons/text/translate/LookupTranslator.java
+++ b/src/main/java/org/apache/commons/text/translate/LookupTranslator.java
@@ -19,8 +19,8 @@ package org.apache.commons.text.translate;
 import java.io.IOException;
 import java.io.Writer;
 import java.security.InvalidParameterException;
+import java.util.BitSet;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.Map;
 
 /**
@@ -33,7 +33,7 @@ public class LookupTranslator extends CharSequenceTranslator {
     /** The mapping to be used in translation. */
     private final Map<String, String> lookupMap;
     /** The first character of each key in the lookupMap. */
-    private final HashSet<Character> prefixSet;
+    private final BitSet prefixSet;
     /** The length of the shortest key in the lookupMap. */
     private final int shortest;
     /** The length of the longest key in the lookupMap. */
@@ -55,13 +55,13 @@ public class LookupTranslator extends CharSequenceTranslator {
             throw new InvalidParameterException("lookupMap cannot be null");
         }
         this.lookupMap = new HashMap<>();
-        this.prefixSet = new HashSet<>();
+        this.prefixSet = new BitSet();
         int currentShortest = Integer.MAX_VALUE;
         int currentLongest = 0;
 
         for (final Map.Entry<CharSequence, CharSequence> pair : lookupMap.entrySet()) {
             this.lookupMap.put(pair.getKey().toString(), pair.getValue().toString());
-            this.prefixSet.add(pair.getKey().charAt(0));
+            this.prefixSet.set(pair.getKey().charAt(0));
             final int sz = pair.getKey().length();
             if (sz < currentShortest) {
                 currentShortest = sz;
@@ -80,7 +80,7 @@ public class LookupTranslator extends CharSequenceTranslator {
     @Override
     public int translate(final CharSequence input, final int index, final Writer out) throws IOException {
         // check if translation exists for the input at position index
-        if (prefixSet.contains(input.charAt(index))) {
+        if (prefixSet.get(input.charAt(index))) {
             int max = longest;
             if (index + longest > input.length()) {
                 max = input.length() - index;