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 2020/06/30 12:19:07 UTC

[commons-text] branch master updated (a22e4da -> d48c65c)

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

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


    from a22e4da  More tests.
     new df38b3c  Sort members.
     new d48c65c  Add org.apache.commons.text.TextStringBuilder.TextStringBuilder(CharSequence).

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 src/changes/changes.xml                            |  1 +
 .../org/apache/commons/text/TextStringBuilder.java | 20 +++++--
 .../apache/commons/text/TextStringBuilderTest.java | 65 +++++++++++++++-------
 3 files changed, 62 insertions(+), 24 deletions(-)


[commons-text] 02/02: Add org.apache.commons.text.TextStringBuilder.TextStringBuilder(CharSequence).

Posted by gg...@apache.org.
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 d48c65c5d7116297de131e4e39d0dd5db8805416
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Tue Jun 30 08:19:01 2020 -0400

    Add org.apache.commons.text.TextStringBuilder.TextStringBuilder(CharSequence).
---
 src/changes/changes.xml                            |  1 +
 .../org/apache/commons/text/TextStringBuilder.java | 20 +++++++++++---
 .../apache/commons/text/TextStringBuilderTest.java | 31 +++++++++++++++++++---
 3 files changed, 45 insertions(+), 7 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index a411a6c..8e67b46 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -60,6 +60,7 @@ The <action> type attribute can be add,update,fix,remove.
     <action                  type="add" dev="ggregory" due-to="Gary Gregory">Add org.apache.commons.text.TextStringBuilder.toString(int, int).</action>
     <action                  type="add" dev="ggregory" due-to="Gary Gregory">Add org.apache.commons.text.TextStringBuilder.readFrom(Reader, int).</action>
     <action                  type="add" dev="ggregory" due-to="Gary Gregory">Add org.apache.commons.text.TextStringBuilder.charAtDelete(int).</action>
+    <action                  type="add" dev="ggregory" due-to="Gary Gregory">Add org.apache.commons.text.TextStringBuilder.TextStringBuilder(CharSequence).</action>    
     <action                  type="update" dev="ggregory" due-to="Gary Gregory">[test] junit-jupiter 5.5.1 -> 5.5.2.</action>
     <action                  type="update" dev="ggregory" due-to="Gary Gregory">[test] org.assertj:assertj-core 3.13.2 -> 3.16.1.</action>
     <action                  type="update" dev="ggregory" due-to="Gary Gregory">[build] com.puppycrawl.tools:checkstyle 8.23 -> 8.27.</action>
diff --git a/src/main/java/org/apache/commons/text/TextStringBuilder.java b/src/main/java/org/apache/commons/text/TextStringBuilder.java
index a48069a..a0f7480 100644
--- a/src/main/java/org/apache/commons/text/TextStringBuilder.java
+++ b/src/main/java/org/apache/commons/text/TextStringBuilder.java
@@ -295,7 +295,7 @@ public class TextStringBuilder implements CharSequence, Appendable, Serializable
     }
 
     /**
-     * Constructor that creates an empty builder the specified initial capacity.
+     * Constructs an instance with the specified initial capacity.
      *
      * @param initialCapacity
      *            the initial capacity, zero or less will be converted to 32
@@ -306,14 +306,26 @@ public class TextStringBuilder implements CharSequence, Appendable, Serializable
     }
 
     /**
-     * Constructor that creates a builder from the string, allocating 32 extra characters for growth.
+     * Constructs an instance from a character sequence, allocating 32 extra characters for growth.
+     *
+     * @param seq the string to copy, null treated as blank string
+     * @since 1.9
+     */
+    public TextStringBuilder(final CharSequence seq) {
+        this(StringUtils.length(seq) + CAPACITY);
+        if (seq != null) {
+            append(seq);
+        }
+    }
+
+    /**
+     * Constructs an instance from a string, allocating 32 extra characters for growth.
      *
      * @param str
      *            the string to copy, null treated as blank string
      */
     public TextStringBuilder(final String str) {
-        super();
-        buffer = new char[StringUtils.length(str) + CAPACITY];
+        this(StringUtils.length(str) + CAPACITY);
         if (str != null) {
             append(str);
         }
diff --git a/src/test/java/org/apache/commons/text/TextStringBuilderTest.java b/src/test/java/org/apache/commons/text/TextStringBuilderTest.java
index e43fc0f..51161f6 100644
--- a/src/test/java/org/apache/commons/text/TextStringBuilderTest.java
+++ b/src/test/java/org/apache/commons/text/TextStringBuilderTest.java
@@ -550,6 +550,22 @@ public class TextStringBuilderTest {
         assertTrue(sb.getBuffer().length >= 5);
     }
 
+    @Test
+    public void testConstructorCharSequence() {
+        final CharBuffer str = CharBuffer.wrap("A");
+        final int length = str.length();
+        final TextStringBuilder sb = new TextStringBuilder(str);
+        assertEquals(TextStringBuilder.CAPACITY + length, sb.capacity());
+        assertEquals(length, sb.toCharArray().length);
+    }
+
+    @Test
+    public void testConstructorDefault() {
+        final TextStringBuilder sb = new TextStringBuilder();
+        assertEquals(TextStringBuilder.CAPACITY, sb.capacity());
+        assertEquals(0, sb.toCharArray().length);
+    }
+
     // -----------------------------------------------------------------------
     @Test
     public void testConstructors() {
@@ -594,6 +610,15 @@ public class TextStringBuilderTest {
         assertEquals(3, sb7.size());
     }
 
+    @Test
+    public void testConstructorString() {
+        final String str = "A";
+        final int length = str.length();
+        final TextStringBuilder sb = new TextStringBuilder(str);
+        assertEquals(TextStringBuilder.CAPACITY + length, sb.capacity());
+        assertEquals(length, sb.toCharArray().length);
+    }
+
     // -----------------------------------------------------------------------
     @Test
     public void testContains_char() {
@@ -888,7 +913,7 @@ public class TextStringBuilderTest {
         sb.append("junit");
         a = sb.getChars(input);
         assertSame(input, a);
-        assertTrue(Arrays.equals(new char[] {'j', 'u', 'n', 'i', 't', 0, 0, 0, 0, 0 }, a));
+        assertTrue(Arrays.equals(new char[] {'j', 'u', 'n', 'i', 't', 0, 0, 0, 0, 0}, a));
 
         a = sb.getChars(null);
         assertNotSame(input, a);
@@ -911,11 +936,11 @@ public class TextStringBuilderTest {
         sb.append("junit");
         char[] a = new char[5];
         sb.getChars(0, 5, a, 0);
-        assertTrue(Arrays.equals(new char[] {'j', 'u', 'n', 'i', 't' }, a));
+        assertTrue(Arrays.equals(new char[] {'j', 'u', 'n', 'i', 't'}, a));
 
         a = new char[5];
         sb.getChars(0, 2, a, 3);
-        assertTrue(Arrays.equals(new char[] {0, 0, 0, 'j', 'u' }, a));
+        assertTrue(Arrays.equals(new char[] {0, 0, 0, 'j', 'u'}, a));
 
         try {
             sb.getChars(-1, 0, a, 0);


[commons-text] 01/02: Sort members.

Posted by gg...@apache.org.
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 df38b3cd28224469bf6af0b28d9a805c4b8f1070
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Tue Jun 30 08:07:12 2020 -0400

    Sort members.
---
 .../apache/commons/text/TextStringBuilderTest.java | 34 +++++++++++-----------
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/src/test/java/org/apache/commons/text/TextStringBuilderTest.java b/src/test/java/org/apache/commons/text/TextStringBuilderTest.java
index 94cac23..e43fc0f 100644
--- a/src/test/java/org/apache/commons/text/TextStringBuilderTest.java
+++ b/src/test/java/org/apache/commons/text/TextStringBuilderTest.java
@@ -525,6 +525,23 @@ public class TextStringBuilderTest {
     }
 
     @Test
+    public void testCharAtDelete() {
+        final String str = "abc";
+        //
+        final TextStringBuilder sb1 = new TextStringBuilder(str);
+        assertEquals('a', sb1.charAtDelete(0));
+        assertEquals("bc", sb1.toString());
+        //
+        final TextStringBuilder sb2 = new TextStringBuilder(str);
+        assertEquals('c', sb2.charAtDelete(str.length() - 1));
+        assertEquals("ab", sb2.toString());
+        //
+        final TextStringBuilder sb3 = new TextStringBuilder(str);
+        assertThrows(IndexOutOfBoundsException.class, () -> sb3.charAtDelete(str.length()));
+        assertThrows(IndexOutOfBoundsException.class, () -> sb3.charAtDelete(1000));
+    }
+
+    @Test
     public void testClear() {
         final TextStringBuilder sb = new TextStringBuilder();
         sb.append("Hello");
@@ -693,23 +710,6 @@ public class TextStringBuilderTest {
     }
 
     @Test
-    public void testCharAtDelete() {
-        final String str = "abc";
-        //
-        final TextStringBuilder sb1 = new TextStringBuilder(str);
-        assertEquals('a', sb1.charAtDelete(0));
-        assertEquals("bc", sb1.toString());
-        //
-        final TextStringBuilder sb2 = new TextStringBuilder(str);
-        assertEquals('c', sb2.charAtDelete(str.length() - 1));
-        assertEquals("ab", sb2.toString());
-        //
-        final TextStringBuilder sb3 = new TextStringBuilder(str);
-        assertThrows(IndexOutOfBoundsException.class, () -> sb3.charAtDelete(str.length()));
-        assertThrows(IndexOutOfBoundsException.class, () -> sb3.charAtDelete(1000));
-    }
-
-    @Test
     public void testDeleteCharAtWithNegative() {
         assertThatExceptionOfType(StringIndexOutOfBoundsException.class).isThrownBy(() -> {
             new TextStringBuilder().deleteCharAt((-1258));