From e5b0844c4f49d5913f54bb5982284f5e7b76240a Mon Sep 17 00:00:00 2001 From: Henri Yandell Date: Wed, 16 Mar 2011 04:26:58 +0000 Subject: [PATCH] Adding lots of @since 3.0s git-svn-id: https://svn.apache.org/repos/asf/commons/proper/lang/trunk@1082044 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/commons/lang3/ObjectUtils.java | 1 + .../commons/lang3/StringEscapeUtils.java | 35 +++++++++++++++++ .../org/apache/commons/lang3/Validate.java | 38 +++++++++++++++++++ .../builder/ReflectionToStringBuilder.java | 2 + .../lang3/concurrent/AtomicInitializer.java | 1 + .../concurrent/AtomicSafeInitializer.java | 1 + .../concurrent/BackgroundInitializer.java | 1 + .../CallableBackgroundInitializer.java | 1 + .../lang3/concurrent/ConcurrentException.java | 1 + .../concurrent/ConcurrentInitializer.java | 1 + .../ConcurrentRuntimeException.java | 1 + .../lang3/concurrent/ConcurrentUtils.java | 1 + .../lang3/concurrent/ConstantInitializer.java | 1 + .../lang3/concurrent/LazyInitializer.java | 1 + .../MultiBackgroundInitializer.java | 1 + .../lang3/concurrent/TimedSemaphore.java | 3 +- .../apache/commons/lang3/text/StrBuilder.java | 4 ++ 17 files changed, 93 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/apache/commons/lang3/ObjectUtils.java b/src/main/java/org/apache/commons/lang3/ObjectUtils.java index 147fd0caf..178de5ea4 100644 --- a/src/main/java/org/apache/commons/lang3/ObjectUtils.java +++ b/src/main/java/org/apache/commons/lang3/ObjectUtils.java @@ -113,6 +113,7 @@ public static T defaultIfNull(T object, T defaultValue) { * @param values the values to test, may be {@code null} or empty * @return the first value from {@code values} which is not {@code null}, * or {@code null} if there are no non-null values + * @since 3.0 */ public static T firstNonNull(T... values) { if (values != null) { diff --git a/src/main/java/org/apache/commons/lang3/StringEscapeUtils.java b/src/main/java/org/apache/commons/lang3/StringEscapeUtils.java index f1098ea00..a8099e10c 100644 --- a/src/main/java/org/apache/commons/lang3/StringEscapeUtils.java +++ b/src/main/java/org/apache/commons/lang3/StringEscapeUtils.java @@ -56,6 +56,8 @@ public class StringEscapeUtils { * While {@link #escapeJava(String)} is the expected method of use, this * object allows the Java escaping functionality to be used * as the foundation for a custom translator. + * + * @since 3.0 */ public static final CharSequenceTranslator ESCAPE_JAVA = new LookupTranslator( @@ -74,6 +76,8 @@ public class StringEscapeUtils { * While {@link #escapeEcmaScript(String)} is the expected method of use, this * object allows the EcmaScript escaping functionality to be used * as the foundation for a custom translator. + * + * @since 3.0 */ public static final CharSequenceTranslator ESCAPE_ECMASCRIPT = new AggregateTranslator( @@ -94,6 +98,8 @@ public class StringEscapeUtils { * While {@link #escapeXml(String)} is the expected method of use, this * object allows the XML escaping functionality to be used * as the foundation for a custom translator. + * + * @since 3.0 */ public static final CharSequenceTranslator ESCAPE_XML = new AggregateTranslator( @@ -107,6 +113,8 @@ public class StringEscapeUtils { * While {@link #escapeHtml3(String)} is the expected method of use, this * object allows the HTML escaping functionality to be used * as the foundation for a custom translator. + * + * @since 3.0 */ public static final CharSequenceTranslator ESCAPE_HTML3 = new AggregateTranslator( @@ -120,6 +128,8 @@ public class StringEscapeUtils { * While {@link #escapeHtml4(String)} is the expected method of use, this * object allows the HTML escaping functionality to be used * as the foundation for a custom translator. + * + * @since 3.0 */ public static final CharSequenceTranslator ESCAPE_HTML4 = new AggregateTranslator( @@ -134,6 +144,8 @@ public class StringEscapeUtils { * While {@link #escapeCsv(String)} is the expected method of use, this * object allows the CSV escaping functionality to be used * as the foundation for a custom translator. + * + * @since 3.0 */ public static final CharSequenceTranslator ESCAPE_CSV = new CsvEscaper(); @@ -174,6 +186,8 @@ public int translate(CharSequence input, int index, Writer out) throws IOExcepti * While {@link #unescapeJava(String)} is the expected method of use, this * object allows the Java unescaping functionality to be used * as the foundation for a custom translator. + * + * @since 3.0 */ // TODO: throw "illegal character: \92" as an Exception if a \ on the end of the Java (as per the compiler)? public static final CharSequenceTranslator UNESCAPE_JAVA = @@ -196,6 +210,8 @@ public int translate(CharSequence input, int index, Writer out) throws IOExcepti * While {@link #unescapeEcmaScript(String)} is the expected method of use, this * object allows the EcmaScript unescaping functionality to be used * as the foundation for a custom translator. + * + * @since 3.0 */ public static final CharSequenceTranslator UNESCAPE_ECMASCRIPT = UNESCAPE_JAVA; @@ -205,6 +221,8 @@ public int translate(CharSequence input, int index, Writer out) throws IOExcepti * While {@link #unescapeHtml3(String)} is the expected method of use, this * object allows the HTML unescaping functionality to be used * as the foundation for a custom translator. + * + * @since 3.0 */ public static final CharSequenceTranslator UNESCAPE_HTML3 = new AggregateTranslator( @@ -219,6 +237,8 @@ public int translate(CharSequence input, int index, Writer out) throws IOExcepti * While {@link #unescapeHtml4(String)} is the expected method of use, this * object allows the HTML unescaping functionality to be used * as the foundation for a custom translator. + * + * @since 3.0 */ public static final CharSequenceTranslator UNESCAPE_HTML4 = new AggregateTranslator( @@ -234,6 +254,8 @@ public int translate(CharSequence input, int index, Writer out) throws IOExcepti * While {@link #unescapeXml(String)} is the expected method of use, this * object allows the XML unescaping functionality to be used * as the foundation for a custom translator. + * + * @since 3.0 */ public static final CharSequenceTranslator UNESCAPE_XML = new AggregateTranslator( @@ -248,6 +270,8 @@ public int translate(CharSequence input, int index, Writer out) throws IOExcepti * While {@link #unescapeCsv(String)} is the expected method of use, this * object allows the CSV unescaping functionality to be used * as the foundation for a custom translator. + * + * @since 3.0 */ public static final CharSequenceTranslator UNESCAPE_CSV = new CsvUnescaper(); @@ -349,6 +373,8 @@ public static final String escapeJava(String input) { * * @param input String to escape values in, may be null * @return String with escaped values, {@code null} if null string input + * + * @since 3.0 */ public static final String escapeEcmaScript(String input) { return ESCAPE_ECMASCRIPT.translate(input); @@ -377,6 +403,8 @@ public static final String unescapeJava(String input) { * @see #unescapeJava(String) * @param input the {@code String} to unescape, may be null * @return A new unescaped {@code String}, {@code null} if null string input + * + * @since 3.0 */ public static final String unescapeEcmaScript(String input) { return UNESCAPE_ECMASCRIPT.translate(input); @@ -408,6 +436,8 @@ public static final String unescapeEcmaScript(String input) { * @see HTML 4.0 Character entity references * @see HTML 4.01 Character References * @see HTML 4.01 Code positions + * + * @since 3.0 */ public static final String escapeHtml4(String input) { return ESCAPE_HTML4.translate(input); @@ -420,6 +450,7 @@ public static final String escapeHtml4(String input) { * @param input the {@code String} to escape, may be null * @return a new escaped {@code String}, {@code null} if null string input * + * @since 3.0 */ public static final String escapeHtml3(String input) { return ESCAPE_HTML3.translate(input); @@ -440,6 +471,8 @@ public static final String escapeHtml3(String input) { * * @param input the {@code String} to unescape, may be null * @return a new unescaped {@code String}, {@code null} if null string input + * + * @since 3.0 */ public static final String unescapeHtml4(String input) { return UNESCAPE_HTML4.translate(input); @@ -452,6 +485,8 @@ public static final String unescapeHtml4(String input) { * * @param input the {@code String} to unescape, may be null * @return a new unescaped {@code String}, {@code null} if null string input + * + * @since 3.0 */ public static final String unescapeHtml3(String input) { return UNESCAPE_HTML3.translate(input); diff --git a/src/main/java/org/apache/commons/lang3/Validate.java b/src/main/java/org/apache/commons/lang3/Validate.java index f546a74dd..e94afaf65 100644 --- a/src/main/java/org/apache/commons/lang3/Validate.java +++ b/src/main/java/org/apache/commons/lang3/Validate.java @@ -437,6 +437,8 @@ public static T notEmpty(T chars) { * @throws NullPointerException if the character sequence is {@code null} * @throws IllegalArgumentException if the character sequence is blank * @see #notBlank(CharSequence) + * + * @since 3.0 */ public static T notBlank(T chars, String message, Object... values) { if (chars == null) { @@ -464,6 +466,8 @@ public static T notBlank(T chars, String message, Objec * @throws NullPointerException if the character sequence is {@code null} * @throws IllegalArgumentException if the character sequence is blank * @see #notBlank(CharSequence, String, Object...) + * + * @since 3.0 */ public static T notBlank(T chars) { return notBlank(chars, DEFAULT_NOT_BLANK_EX_MESSAGE); @@ -615,6 +619,8 @@ public static > T noNullElements(T iterable) { * @throws NullPointerException if the array is {@code null} * @throws IndexOutOfBoundsException if the index is invalid * @see #validIndex(Object[], int) + * + * @since 3.0 */ public static T[] validIndex(T[] array, int index, String message, Object... values) { Validate.notNull(array); @@ -644,6 +650,8 @@ public static T[] validIndex(T[] array, int index, String message, Object... * @throws NullPointerException if the array is {@code null} * @throws IndexOutOfBoundsException if the index is invalid * @see #validIndex(Object[], int, String, Object...) + * + * @since 3.0 */ public static T[] validIndex(T[] array, int index) { return validIndex(array, index, DEFAULT_VALID_INDEX_ARRAY_EX_MESSAGE, Integer.valueOf(index)); @@ -670,6 +678,8 @@ public static T[] validIndex(T[] array, int index) { * @throws NullPointerException if the collection is {@code null} * @throws IndexOutOfBoundsException if the index is invalid * @see #validIndex(Collection, int) + * + * @since 3.0 */ public static > T validIndex(T collection, int index, String message, Object... values) { Validate.notNull(collection); @@ -696,6 +706,8 @@ public static > T validIndex(T collection, int index, St * @throws NullPointerException if the collection is {@code null} * @throws IndexOutOfBoundsException if the index is invalid * @see #validIndex(Collection, int, String, Object...) + * + * @since 3.0 */ public static > T validIndex(T collection, int index) { return validIndex(collection, index, DEFAULT_VALID_INDEX_COLLECTION_EX_MESSAGE, Integer.valueOf(index)); @@ -723,6 +735,8 @@ public static > T validIndex(T collection, int index) { * @throws NullPointerException if the character sequence is {@code null} * @throws IndexOutOfBoundsException if the index is invalid * @see #validIndex(CharSequence, int) + * + * @since 3.0 */ public static T validIndex(T chars, int index, String message, Object... values) { Validate.notNull(chars); @@ -753,6 +767,8 @@ public static T validIndex(T chars, int index, String m * @throws NullPointerException if the character sequence is {@code null} * @throws IndexOutOfBoundsException if the index is invalid * @see #validIndex(CharSequence, int, String, Object...) + * + * @since 3.0 */ public static T validIndex(T chars, int index) { return validIndex(chars, index, DEFAULT_VALID_INDEX_CHAR_SEQUENCE_EX_MESSAGE, Integer.valueOf(index)); @@ -777,6 +793,8 @@ public static T validIndex(T chars, int index) { * @param expression the boolean expression to check * @throws IllegalStateException if expression is {@code false} * @see #validState(boolean, String, Object...) + * + * @since 3.0 */ public static void validState(boolean expression) { if (expression == false) { @@ -797,6 +815,8 @@ public static void validState(boolean expression) { * @param values the optional values for the formatted exception message, null array not recommended * @throws IllegalStateException if expression is {@code false} * @see #validState(boolean) + * + * @since 3.0 */ public static void validState(boolean expression, String message, Object... values) { if (expression == false) { @@ -819,6 +839,8 @@ public static void validState(boolean expression, String message, Object... valu * @param pattern the regular expression pattern, not null * @throws IllegalArgumentException if the character sequence does not match the pattern * @see #matchesPattern(CharSequence, String, String, Object...) + * + * @since 3.0 */ public static void matchesPattern(CharSequence input, String pattern) { if (Pattern.matches(pattern, input) == false) { @@ -840,6 +862,8 @@ public static void matchesPattern(CharSequence input, String pattern) { * @param values the optional values for the formatted exception message, null array not recommended * @throws IllegalArgumentException if the character sequence does not match the pattern * @see #matchesPattern(CharSequence, String) + * + * @since 3.0 */ public static void matchesPattern(CharSequence input, String pattern, String message, Object... values) { if (Pattern.matches(pattern, input) == false) { @@ -861,6 +885,8 @@ public static void matchesPattern(CharSequence input, String pattern, String mes * @param value the object to validate, not null * @throws IllegalArgumentException if the value falls out of the boundaries * @see #inclusiveBetween(Object, Object, Comparable, String, Object...) + * + * @since 3.0 */ public static void inclusiveBetween(T start, T end, Comparable value) { if (value.compareTo(start) < 0 || value.compareTo(end) > 0) { @@ -882,6 +908,8 @@ public static void inclusiveBetween(T start, T end, Comparable value) { * @param values the optional values for the formatted exception message, null array not recommended * @throws IllegalArgumentException if the value falls out of the boundaries * @see #inclusiveBetween(Object, Object, Comparable) + * + * @since 3.0 */ public static void inclusiveBetween(T start, T end, Comparable value, String message, Object... values) { if (value.compareTo(start) < 0 || value.compareTo(end) > 0) { @@ -903,6 +931,8 @@ public static void inclusiveBetween(T start, T end, Comparable value, Str * @param value the object to validate, not null * @throws IllegalArgumentException if the value falls out of the boundaries * @see #exclusiveBetween(Object, Object, Comparable, String, Object...) + * + * @since 3.0 */ public static void exclusiveBetween(T start, T end, Comparable value) { if (value.compareTo(start) <= 0 || value.compareTo(end) >= 0) { @@ -924,6 +954,8 @@ public static void exclusiveBetween(T start, T end, Comparable value) { * @param values the optional values for the formatted exception message, null array not recommended * @throws IllegalArgumentException if the value falls out of the boundaries * @see #exclusiveBetween(Object, Object, Comparable) + * + * @since 3.0 */ public static void exclusiveBetween(T start, T end, Comparable value, String message, Object... values) { if (value.compareTo(start) <= 0 || value.compareTo(end) >= 0) { @@ -948,6 +980,8 @@ public static void exclusiveBetween(T start, T end, Comparable value, Str * @param obj the object to check, null throws an exception * @throws IllegalArgumentException if argument is not of specified class * @see #isInstanceOf(Class, Object, String, Object...) + * + * @since 3.0 */ public static void isInstanceOf(Class type, Object obj) { if (type.isInstance(obj) == false) { @@ -968,6 +1002,8 @@ public static void isInstanceOf(Class type, Object obj) { * @param values the optional values for the formatted exception message, null array not recommended * @throws IllegalArgumentException if argument is not of specified class * @see #isInstanceOf(Class, Object) + * + * @since 3.0 */ public static void isInstanceOf(Class type, Object obj, String message, Object... values) { if (type.isInstance(obj) == false) { @@ -992,6 +1028,8 @@ public static void isInstanceOf(Class type, Object obj, String message, Objec * @param type the class to check, not null * @throws IllegalArgumentException if argument can not be converted to the specified class * @see #isAssignableFrom(Class, Class, String, Object...) + * + * @since 3.0 */ public static void isAssignableFrom(Class superType, Class type) { if (superType.isAssignableFrom(type) == false) { diff --git a/src/main/java/org/apache/commons/lang3/builder/ReflectionToStringBuilder.java b/src/main/java/org/apache/commons/lang3/builder/ReflectionToStringBuilder.java index 5752f6b2d..bc3fdbb1a 100644 --- a/src/main/java/org/apache/commons/lang3/builder/ReflectionToStringBuilder.java +++ b/src/main/java/org/apache/commons/lang3/builder/ReflectionToStringBuilder.java @@ -377,6 +377,8 @@ public static String toStringExclude(Object object, String[] excludeFieldNames) /** * Which field names to exclude from output. Intended for fields like "password". + * + * @since 3.0 this is protected instead of private */ protected String[] excludeFieldNames; diff --git a/src/main/java/org/apache/commons/lang3/concurrent/AtomicInitializer.java b/src/main/java/org/apache/commons/lang3/concurrent/AtomicInitializer.java index 0af2db24b..cd9ef7c9e 100644 --- a/src/main/java/org/apache/commons/lang3/concurrent/AtomicInitializer.java +++ b/src/main/java/org/apache/commons/lang3/concurrent/AtomicInitializer.java @@ -61,6 +61,7 @@ *

* * @author Apache Software Foundation + * @since 3.0 * @version $Id$ * @param the type of the object managed by this initializer class */ diff --git a/src/main/java/org/apache/commons/lang3/concurrent/AtomicSafeInitializer.java b/src/main/java/org/apache/commons/lang3/concurrent/AtomicSafeInitializer.java index cd41090b8..687ece49b 100644 --- a/src/main/java/org/apache/commons/lang3/concurrent/AtomicSafeInitializer.java +++ b/src/main/java/org/apache/commons/lang3/concurrent/AtomicSafeInitializer.java @@ -50,6 +50,7 @@ *

* * @author Apache Software Foundation + * @since 3.0 * @version $Id$ * @param the type of the object managed by this initializer class */ diff --git a/src/main/java/org/apache/commons/lang3/concurrent/BackgroundInitializer.java b/src/main/java/org/apache/commons/lang3/concurrent/BackgroundInitializer.java index 330f326cd..bd1335de3 100644 --- a/src/main/java/org/apache/commons/lang3/concurrent/BackgroundInitializer.java +++ b/src/main/java/org/apache/commons/lang3/concurrent/BackgroundInitializer.java @@ -79,6 +79,7 @@ * operation is complete or to cancel the operation. *

* + * @since 3.0 * @version $Id$ * @param the type of the object managed by this initializer class */ diff --git a/src/main/java/org/apache/commons/lang3/concurrent/CallableBackgroundInitializer.java b/src/main/java/org/apache/commons/lang3/concurrent/CallableBackgroundInitializer.java index 138ff7c98..386fe60cc 100644 --- a/src/main/java/org/apache/commons/lang3/concurrent/CallableBackgroundInitializer.java +++ b/src/main/java/org/apache/commons/lang3/concurrent/CallableBackgroundInitializer.java @@ -61,6 +61,7 @@ * *

* + * @since 3.0 * @version $Id$ * @param the type of the object managed by this initializer class */ diff --git a/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentException.java b/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentException.java index 5d5831f3e..e3aff8531 100644 --- a/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentException.java +++ b/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentException.java @@ -30,6 +30,7 @@ *

* * @author Apache Software Foundation + * @since 3.0 * @version $Id$ */ public class ConcurrentException extends Exception { diff --git a/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentInitializer.java b/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentInitializer.java index 1fa355cc3..858c520f8 100644 --- a/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentInitializer.java +++ b/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentInitializer.java @@ -35,6 +35,7 @@ *

* * @author Apache Software Foundation + * @since 3.0 * @version $Id$ * @param the type of the object managed by this initializer class */ diff --git a/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentRuntimeException.java b/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentRuntimeException.java index 8aac75aaa..bd1a85f0c 100644 --- a/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentRuntimeException.java +++ b/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentRuntimeException.java @@ -31,6 +31,7 @@ *

* * @author Apache Software Foundation + * @since 3.0 * @version $Id$ */ public class ConcurrentRuntimeException extends RuntimeException { diff --git a/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentUtils.java b/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentUtils.java index f37c4bbe2..7bf324e76 100644 --- a/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentUtils.java +++ b/src/main/java/org/apache/commons/lang3/concurrent/ConcurrentUtils.java @@ -28,6 +28,7 @@ *

* * @author Apache Software Foundation + * @since 3.0 * @version $Id$ */ public class ConcurrentUtils { diff --git a/src/main/java/org/apache/commons/lang3/concurrent/ConstantInitializer.java b/src/main/java/org/apache/commons/lang3/concurrent/ConstantInitializer.java index 480a42cb5..0a6eb1547 100644 --- a/src/main/java/org/apache/commons/lang3/concurrent/ConstantInitializer.java +++ b/src/main/java/org/apache/commons/lang3/concurrent/ConstantInitializer.java @@ -35,6 +35,7 @@ *

* * @author Apache Software Foundation + * @since 3.0 * @version $Id$ * @param the type of the object managed by this initializer */ diff --git a/src/main/java/org/apache/commons/lang3/concurrent/LazyInitializer.java b/src/main/java/org/apache/commons/lang3/concurrent/LazyInitializer.java index 2bec56e8c..e59875b9b 100644 --- a/src/main/java/org/apache/commons/lang3/concurrent/LazyInitializer.java +++ b/src/main/java/org/apache/commons/lang3/concurrent/LazyInitializer.java @@ -73,6 +73,7 @@ *

* * @author Apache Software Foundation + * @since 3.0 * @version $Id$ * @param the type of the object managed by this initializer class */ diff --git a/src/main/java/org/apache/commons/lang3/concurrent/MultiBackgroundInitializer.java b/src/main/java/org/apache/commons/lang3/concurrent/MultiBackgroundInitializer.java index 17d1b10d6..4be6b8480 100644 --- a/src/main/java/org/apache/commons/lang3/concurrent/MultiBackgroundInitializer.java +++ b/src/main/java/org/apache/commons/lang3/concurrent/MultiBackgroundInitializer.java @@ -91,6 +91,7 @@ * by {@code MultiBackgroundInitializer} waits forever. *

* + * @since 3.0 * @version $Id$ */ public class MultiBackgroundInitializer diff --git a/src/main/java/org/apache/commons/lang3/concurrent/TimedSemaphore.java b/src/main/java/org/apache/commons/lang3/concurrent/TimedSemaphore.java index 21f23846b..e80d6c081 100644 --- a/src/main/java/org/apache/commons/lang3/concurrent/TimedSemaphore.java +++ b/src/main/java/org/apache/commons/lang3/concurrent/TimedSemaphore.java @@ -122,7 +122,8 @@ * resources. After that {@link #acquire()} must not be called any more. *

* - * @version $Id:$ + * @since 3.0 + * @version $Id$ */ public class TimedSemaphore { /** diff --git a/src/main/java/org/apache/commons/lang3/text/StrBuilder.java b/src/main/java/org/apache/commons/lang3/text/StrBuilder.java index 3318f100c..bd433b1d8 100644 --- a/src/main/java/org/apache/commons/lang3/text/StrBuilder.java +++ b/src/main/java/org/apache/commons/lang3/text/StrBuilder.java @@ -468,6 +468,7 @@ public StrBuilder append(Object obj) { * * @param seq the CharSequence to append * @return this, to enable chaining + * @since 3.0 */ public StrBuilder append(CharSequence seq) { if (seq == null) { @@ -484,6 +485,7 @@ public StrBuilder append(CharSequence seq) { * @param startIndex the start index, inclusive, must be valid * @param length the length to append, must be valid * @return this, to enable chaining + * @since 3.0 */ public StrBuilder append(CharSequence seq, int startIndex, int length) { if (seq == null) { @@ -717,6 +719,7 @@ public StrBuilder append(boolean value) { * * @param ch the value to append * @return this, to enable chaining + * @since 3.0 */ public StrBuilder append(char ch) { int len = length(); @@ -2000,6 +2003,7 @@ public boolean endsWith(String str) { //----------------------------------------------------------------------- /** * {@inheritDoc} + * @since 3.0 */ public CharSequence subSequence(int startIndex, int endIndex) { if (startIndex < 0) {