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 2018/02/12 18:13:54 UTC

[4/4] [text] [TEXT-115] Add a StrBuilder replacement based on the StringMatcher interface: TextStringBuilder.

[TEXT-115] Add a StrBuilder replacement based on the StringMatcher
interface: TextStringBuilder.

Project: http://git-wip-us.apache.org/repos/asf/commons-text/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-text/commit/978e2896
Tree: http://git-wip-us.apache.org/repos/asf/commons-text/tree/978e2896
Diff: http://git-wip-us.apache.org/repos/asf/commons-text/diff/978e2896

Branch: refs/heads/master
Commit: 978e2896dbaeeb24eaed566972a09b0653b39f2b
Parents: 0bf361a
Author: Gary Gregory <ga...@gmail.com>
Authored: Mon Feb 12 11:13:48 2018 -0700
Committer: Gary Gregory <ga...@gmail.com>
Committed: Mon Feb 12 11:13:48 2018 -0700

----------------------------------------------------------------------
 checkstyle-suppressions.xml                     |    6 +-
 src/changes/changes.xml                         |    3 +-
 .../org/apache/commons/text/StrBuilder.java     |    2 +
 .../apache/commons/text/StringSubstitutor.java  |   43 +-
 .../apache/commons/text/TextStringBuilder.java  | 3216 ++++++++++++++++++
 .../commons/text/StringSubstitutorTest.java     |   93 +-
 .../text/TextStringBuilderAppendInsertTest.java | 1607 +++++++++
 .../commons/text/TextStringBuilderTest.java     | 2147 ++++++++++++
 .../LevenshteinDetailedDistanceTest.java        |    4 +-
 9 files changed, 7042 insertions(+), 79 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-text/blob/978e2896/checkstyle-suppressions.xml
----------------------------------------------------------------------
diff --git a/checkstyle-suppressions.xml b/checkstyle-suppressions.xml
index be52c13..d93989a 100644
--- a/checkstyle-suppressions.xml
+++ b/checkstyle-suppressions.xml
@@ -30,8 +30,8 @@
   <suppress checks="MagicNumber" files="JaccardDistance.java" lines="0-99999" />
   <suppress checks="MagicNumber" files="JaccardSimilarity.java" lines="0-99999" />
   <suppress checks="MagicNumber" files="JaroWinklerDistance.java" lines="0-99999" />
-  <suppress checks="FileLength" files="StrBuilder.java" lines="0-99999" />
   <suppress checks="MagicNumber" files="StrBuilder.java" lines="0-99999" />
+  <suppress checks="MagicNumber" files="TextStringBuilder.java" lines="0-99999" />
   <suppress checks="MagicNumber" files="StringEscapeUtils.java" lines="0-99999" />
   <suppress checks="MagicNumber" files="StrMatcher.java" lines="0-99999" />
   <suppress checks="MagicNumber" files="NumericEntityEscaper.java" lines="0-99999" />
@@ -44,7 +44,11 @@
   <suppress checks="MethodName" files=".*[/\\]test[/\\].*" />
   <suppress checks="Javadoc" files=".*[/\\]test[/\\].*" />
   <suppress checks="FileLength" files="StrBuilderTest.java" />
+  <suppress checks="FileLength" files="StrBuilder.java" lines="0-99999" />
+  <suppress checks="FileLength" files="TextStringBuilderTest.java" />
+  <suppress checks="FileLength" files="TextStringBuilder.java" lines="0-99999" />
   <suppress checks="MethodLength" files="LevenshteinDetailedDistanceTest.java" />
   <suppress checks="MethodLength" files="StrBuilderAppendInsertTest.java" />
+  <suppress checks="MethodLength" files="TextStringBuilderAppendInsertTest.java" />
   <suppress checks="TodoComment" files="StringEscapeUtilsTest.java" />
 </suppressions>

http://git-wip-us.apache.org/repos/asf/commons-text/blob/978e2896/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 778d77a..59a17cd 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -49,7 +49,8 @@ The <action> type attribute can be add,update,fix,remove.
     <action issue="TEXT-110" type="add" dev="pschumacher">Add Automatic-Module-Name MANIFEST entry for Java 9 compatibility</action>
     <action issue="TEXT-70" type="fix" dev="pschumacher">Build failure with java 9-ea+159</action>
     <action issue="TEXT-113" type="add" dev="ggregory">Add an interpolator string lookup</action>
-    <action issue="TEXT-114" type="add" dev="ggregory">Add a replacement for StrSubstitutor based on interfaces: StringSubstitutor</action>
+    <action issue="TEXT-114" type="add" dev="ggregory">Add a StrSubstitutor replacement based on interfaces: StringSubstitutor</action>
+    <action issue="TEXT-115" type="add" dev="ggregory">Add a StrBuilder replacement based on the StringMatcher interface: TextStringBuilder</action>
   </release>
 
   <release version="1.2" date="2017-12-12" description="Release 1.2">

http://git-wip-us.apache.org/repos/asf/commons-text/blob/978e2896/src/main/java/org/apache/commons/text/StrBuilder.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/text/StrBuilder.java b/src/main/java/org/apache/commons/text/StrBuilder.java
index 79d57c8..8fde14e 100644
--- a/src/main/java/org/apache/commons/text/StrBuilder.java
+++ b/src/main/java/org/apache/commons/text/StrBuilder.java
@@ -65,7 +65,9 @@ import java.util.Objects;
  * </p>
  *
  * @since 1.0
+ * @deprecated Use {@link TextStringBuilder}. This class will be removed in 2.0.
  */
+@Deprecated
 public class StrBuilder implements CharSequence, Appendable, Serializable, Builder<String> {
 
     /**

http://git-wip-us.apache.org/repos/asf/commons-text/blob/978e2896/src/main/java/org/apache/commons/text/StringSubstitutor.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/text/StringSubstitutor.java b/src/main/java/org/apache/commons/text/StringSubstitutor.java
index 583cd37..30180f0 100644
--- a/src/main/java/org/apache/commons/text/StringSubstitutor.java
+++ b/src/main/java/org/apache/commons/text/StringSubstitutor.java
@@ -466,7 +466,7 @@ public class StringSubstitutor {
         if (!priorVariables.contains(varName)) {
             return;
         }
-        final StrBuilder buf = new StrBuilder(256);
+        final TextStringBuilder buf = new TextStringBuilder(256);
         buf.append("Infinite loop in property interpolation of ");
         buf.append(priorVariables.remove(0));
         buf.append(": ");
@@ -599,7 +599,7 @@ public class StringSubstitutor {
         if (source == null) {
             return null;
         }
-        final StrBuilder buf = new StrBuilder(source.length).append(source);
+        final TextStringBuilder buf = new TextStringBuilder(source.length).append(source);
         substitute(buf, 0, source.length);
         return buf.toString();
     }
@@ -623,7 +623,7 @@ public class StringSubstitutor {
         if (source == null) {
             return null;
         }
-        final StrBuilder buf = new StrBuilder(length).append(source, offset, length);
+        final TextStringBuilder buf = new TextStringBuilder(length).append(source, offset, length);
         substitute(buf, 0, length);
         return buf.toString();
     }
@@ -662,7 +662,7 @@ public class StringSubstitutor {
         if (source == null) {
             return null;
         }
-        final StrBuilder buf = new StrBuilder(length).append(source, offset, length);
+        final TextStringBuilder buf = new TextStringBuilder(length).append(source, offset, length);
         substitute(buf, 0, length);
         return buf.toString();
     }
@@ -680,7 +680,7 @@ public class StringSubstitutor {
         if (source == null) {
             return null;
         }
-        final StrBuilder buf = new StrBuilder().append(source);
+        final TextStringBuilder buf = new TextStringBuilder().append(source);
         substitute(buf, 0, buf.length());
         return buf.toString();
     }
@@ -694,11 +694,11 @@ public class StringSubstitutor {
      *            the builder to use as a template, not changed, null returns null
      * @return the result of the replace operation
      */
-    public String replace(final StrBuilder source) {
+    public String replace(final TextStringBuilder source) {
         if (source == null) {
             return null;
         }
-        final StrBuilder buf = new StrBuilder(source.length()).append(source);
+        final TextStringBuilder buf = new TextStringBuilder(source.length()).append(source);
         substitute(buf, 0, buf.length());
         return buf.toString();
     }
@@ -718,11 +718,11 @@ public class StringSubstitutor {
      *            the length within the array to be processed, must be valid
      * @return the result of the replace operation
      */
-    public String replace(final StrBuilder source, final int offset, final int length) {
+    public String replace(final TextStringBuilder source, final int offset, final int length) {
         if (source == null) {
             return null;
         }
-        final StrBuilder buf = new StrBuilder(length).append(source, offset, length);
+        final TextStringBuilder buf = new TextStringBuilder(length).append(source, offset, length);
         substitute(buf, 0, length);
         return buf.toString();
     }
@@ -740,7 +740,7 @@ public class StringSubstitutor {
         if (source == null) {
             return null;
         }
-        final StrBuilder buf = new StrBuilder(source);
+        final TextStringBuilder buf = new TextStringBuilder(source);
         if (!substitute(buf, 0, source.length())) {
             return source;
         }
@@ -766,7 +766,7 @@ public class StringSubstitutor {
         if (source == null) {
             return null;
         }
-        final StrBuilder buf = new StrBuilder(length).append(source, offset, length);
+        final TextStringBuilder buf = new TextStringBuilder(length).append(source, offset, length);
         if (!substitute(buf, 0, length)) {
             return source.substring(offset, offset + length);
         }
@@ -786,7 +786,7 @@ public class StringSubstitutor {
         if (source == null) {
             return null;
         }
-        final StrBuilder buf = new StrBuilder(source.length()).append(source);
+        final TextStringBuilder buf = new TextStringBuilder(source.length()).append(source);
         substitute(buf, 0, buf.length());
         return buf.toString();
     }
@@ -810,7 +810,7 @@ public class StringSubstitutor {
         if (source == null) {
             return null;
         }
-        final StrBuilder buf = new StrBuilder(length).append(source, offset, length);
+        final TextStringBuilder buf = new TextStringBuilder(length).append(source, offset, length);
         substitute(buf, 0, length);
         return buf.toString();
     }
@@ -824,7 +824,7 @@ public class StringSubstitutor {
      *            the builder to replace in, updated, null returns zero
      * @return true if altered
      */
-    public boolean replaceIn(final StrBuilder source) {
+    public boolean replaceIn(final TextStringBuilder source) {
         if (source == null) {
             return false;
         }
@@ -846,7 +846,7 @@ public class StringSubstitutor {
      *            the length within the builder to be processed, must be valid
      * @return true if altered
      */
-    public boolean replaceIn(final StrBuilder source, final int offset, final int length) {
+    public boolean replaceIn(final TextStringBuilder source, final int offset, final int length) {
         if (source == null) {
             return false;
         }
@@ -888,7 +888,7 @@ public class StringSubstitutor {
         if (source == null) {
             return false;
         }
-        final StrBuilder buf = new StrBuilder(length).append(source, offset, length);
+        final TextStringBuilder buf = new TextStringBuilder(length).append(source, offset, length);
         if (!substitute(buf, 0, length)) {
             return false;
         }
@@ -931,7 +931,7 @@ public class StringSubstitutor {
         if (source == null) {
             return false;
         }
-        final StrBuilder buf = new StrBuilder(length).append(source, offset, length);
+        final TextStringBuilder buf = new TextStringBuilder(length).append(source, offset, length);
         if (!substitute(buf, 0, length)) {
             return false;
         }
@@ -959,7 +959,7 @@ public class StringSubstitutor {
      *            the end position of the variable including the suffix, valid
      * @return the variable's value or <b>null</b> if the variable is unknown
      */
-    protected String resolveVariable(final String variableName, final StrBuilder buf, final int startPos,
+    protected String resolveVariable(final String variableName, final TextStringBuilder buf, final int startPos,
             final int endPos) {
         final StringLookup resolver = getStringLookup();
         if (resolver == null) {
@@ -1204,7 +1204,7 @@ public class StringSubstitutor {
      *            the length within the builder to be processed, must be valid
      * @return true if altered
      */
-    protected boolean substitute(final StrBuilder buf, final int offset, final int length) {
+    protected boolean substitute(final TextStringBuilder buf, final int offset, final int length) {
         return substitute(buf, offset, length, null) > 0;
     }
 
@@ -1223,7 +1223,8 @@ public class StringSubstitutor {
      * @return the length change that occurs, unless priorVariables is null when the int represents a boolean flag as to
      *         whether any change occurred.
      */
-    private int substitute(final StrBuilder buf, final int offset, final int length, List<String> priorVariables) {
+    private int substitute(final TextStringBuilder buf, final int offset, final int length,
+            List<String> priorVariables) {
         final StringMatcher pfxMatcher = getVariablePrefixMatcher();
         final StringMatcher suffMatcher = getVariableSuffixMatcher();
         final char escape = getEscapeChar();
@@ -1278,7 +1279,7 @@ public class StringSubstitutor {
                                 String varNameExpr = new String(chars, startPos + startMatchLen,
                                         pos - startPos - startMatchLen);
                                 if (substitutionInVariablesEnabled) {
-                                    final StrBuilder bufName = new StrBuilder(varNameExpr);
+                                    final TextStringBuilder bufName = new TextStringBuilder(varNameExpr);
                                     substitute(bufName, 0, bufName.length());
                                     varNameExpr = bufName.toString();
                                 }