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));