Author: bayard
Date: Wed Mar 16 05:31:51 2011
New Revision: 1082054

URL: http://svn.apache.org/viewvc?rev=1082054&view=rev
Log:
Moving center, left, leftPad, right, rightPad, mid, upperCase, lowerCase and 
swapCase over to CharSequence input. LANG-687

Modified:
    
commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/StringUtils.java

Modified: 
commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/StringUtils.java
URL: 
http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/StringUtils.java?rev=1082054&r1=1082053&r2=1082054&view=diff
==============================================================================
--- 
commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/StringUtils.java
 (original)
+++ 
commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/StringUtils.java
 Wed Mar 16 05:31:51 2011
@@ -2091,21 +2091,21 @@ public class StringUtils {
      * StringUtils.left("abc", 4)   = "abc"
      * </pre>
      *
-     * @param str  the String to get the leftmost characters from, may be null
+     * @param seq  the CharSequence to get the leftmost characters from, may 
be null
      * @param len  the length of the required String
      * @return the leftmost characters, {@code null} if null String input
      */
-    public static String left(String str, int len) {
-        if (str == null) {
+    public static String left(CharSequence seq, int len) {
+        if (seq == null) {
             return null;
         }
         if (len < 0) {
             return EMPTY;
         }
-        if (str.length() <= len) {
-            return str;
+        if (seq.length() <= len) {
+            return seq.toString();
         }
-        return str.substring(0, len);
+        return seq.subSequence(0, len).toString();
     }
 
     /**
@@ -2124,21 +2124,21 @@ public class StringUtils {
      * StringUtils.right("abc", 4)   = "abc"
      * </pre>
      *
-     * @param str  the String to get the rightmost characters from, may be null
+     * @param seq  the CharSequence to get the rightmost characters from, may 
be null
      * @param len  the length of the required String
      * @return the rightmost characters, {@code null} if null String input
      */
-    public static String right(String str, int len) {
-        if (str == null) {
+    public static String right(CharSequence seq, int len) {
+        if (seq == null) {
             return null;
         }
         if (len < 0) {
             return EMPTY;
         }
-        if (str.length() <= len) {
-            return str;
+        if (seq.length() <= len) {
+            return seq.toString();
         }
-        return str.substring(str.length() - len);
+        return StringUtils.subSequence(seq, seq.length() - len).toString();
     }
 
     /**
@@ -2148,7 +2148,7 @@ public class StringUtils {
      * of the String will be returned without an exception. If the
      * String is {@code null}, {@code null} will be returned.
      * An empty String is returned if len is negative or exceeds the
-     * length of {@code str}.</p>
+     * length of {@code seq}.</p>
      *
      * <pre>
      * StringUtils.mid(null, *, *)    = null
@@ -2161,25 +2161,25 @@ public class StringUtils {
      * StringUtils.mid("abc", -2, 2)  = "ab"
      * </pre>
      *
-     * @param str  the String to get the characters from, may be null
+     * @param seq  the CharSequence to get the characters from, may be null
      * @param pos  the position to start from, negative treated as zero
      * @param len  the length of the required String
      * @return the middle characters, {@code null} if null String input
      */
-    public static String mid(String str, int pos, int len) {
-        if (str == null) {
+    public static String mid(CharSequence seq, int pos, int len) {
+        if (seq == null) {
             return null;
         }
-        if (len < 0 || pos > str.length()) {
+        if (len < 0 || pos > seq.length()) {
             return EMPTY;
         }
         if (pos < 0) {
             pos = 0;
         }
-        if (str.length() <= (pos + len)) {
-            return str.substring(pos);
+        if (seq.length() <= (pos + len)) {
+            return StringUtils.subSequence(seq, pos).toString();
         }
-        return str.substring(pos, pos + len);
+        return seq.subSequence(pos, pos + len).toString();
     }
 
     // SubStringAfter/SubStringBefore
@@ -4555,13 +4555,13 @@ public class StringUtils {
      * StringUtils.rightPad("bat", -1) = "bat"
      * </pre>
      *
-     * @param str  the String to pad out, may be null
+     * @param seq  the CharSequence to pad out, may be null
      * @param size  the size to pad to
      * @return right padded String or original String if no padding is 
necessary,
      *  {@code null} if null String input
      */
-    public static String rightPad(String str, int size) {
-        return rightPad(str, size, ' ');
+    public static String rightPad(CharSequence seq, int size) {
+        return rightPad(seq, size, ' ');
     }
 
     /**
@@ -4578,25 +4578,25 @@ public class StringUtils {
      * StringUtils.rightPad("bat", -1, 'z') = "bat"
      * </pre>
      *
-     * @param str  the String to pad out, may be null
+     * @param seq  the CharSequence to pad out, may be null
      * @param size  the size to pad to
      * @param padChar  the character to pad with
      * @return right padded String or original String if no padding is 
necessary,
      *  {@code null} if null String input
      * @since 2.0
      */
-    public static String rightPad(String str, int size, char padChar) {
-        if (str == null) {
+    public static String rightPad(CharSequence seq, int size, char padChar) {
+        if (seq == null) {
             return null;
         }
-        int pads = size - str.length();
+        int pads = size - seq.length();
         if (pads <= 0) {
-            return str; // returns original String when possible
+            return seq.toString(); // returns original String when possible
         }
         if (pads > PAD_LIMIT) {
-            return rightPad(str, size, String.valueOf(padChar));
+            return rightPad(seq, size, String.valueOf(padChar));
         }
-        return str.concat(padding(pads, padChar));
+        return seq.toString().concat(padding(pads, padChar));
     }
 
     /**
@@ -4616,40 +4616,40 @@ public class StringUtils {
      * StringUtils.rightPad("bat", 5, "")    = "bat  "
      * </pre>
      *
-     * @param str  the String to pad out, may be null
+     * @param seq  the CharSequence to pad out, may be null
      * @param size  the size to pad to
      * @param padStr  the String to pad with, null or empty treated as single 
space
      * @return right padded String or original String if no padding is 
necessary,
      *  {@code null} if null String input
      */
-    public static String rightPad(String str, int size, String padStr) {
-        if (str == null) {
+    public static String rightPad(CharSequence seq, int size, CharSequence 
padStr) {
+        if (seq == null) {
             return null;
         }
         if (isEmpty(padStr)) {
             padStr = " ";
         }
         int padLen = padStr.length();
-        int strLen = str.length();
+        int strLen = seq.length();
         int pads = size - strLen;
         if (pads <= 0) {
-            return str; // returns original String when possible
+            return seq.toString(); // returns original String when possible
         }
         if (padLen == 1 && pads <= PAD_LIMIT) {
-            return rightPad(str, size, padStr.charAt(0));
+            return rightPad(seq, size, padStr.charAt(0));
         }
 
         if (pads == padLen) {
-            return str.concat(padStr);
+            return seq.toString().concat(padStr.toString());
         } else if (pads < padLen) {
-            return str.concat(padStr.substring(0, pads));
+            return seq.toString().concat(padStr.subSequence(0, 
pads).toString());
         } else {
             char[] padding = new char[pads];
-            char[] padChars = padStr.toCharArray();
+            char[] padChars = padStr.toString().toCharArray();
             for (int i = 0; i < pads; i++) {
                 padding[i] = padChars[i % padLen];
             }
-            return str.concat(new String(padding));
+            return seq.toString().concat(new String(padding));
         }
     }
 
@@ -4667,13 +4667,13 @@ public class StringUtils {
      * StringUtils.leftPad("bat", -1) = "bat"
      * </pre>
      *
-     * @param str  the String to pad out, may be null
+     * @param seq  the CharSequence to pad out, may be null
      * @param size  the size to pad to
      * @return left padded String or original String if no padding is 
necessary,
      *  {@code null} if null String input
      */
-    public static String leftPad(String str, int size) {
-        return leftPad(str, size, ' ');
+    public static String leftPad(CharSequence seq, int size) {
+        return leftPad(seq, size, ' ');
     }
 
     /**
@@ -4690,25 +4690,25 @@ public class StringUtils {
      * StringUtils.leftPad("bat", -1, 'z') = "bat"
      * </pre>
      *
-     * @param str  the String to pad out, may be null
+     * @param seq  the CharSequence to pad out, may be null
      * @param size  the size to pad to
      * @param padChar  the character to pad with
      * @return left padded String or original String if no padding is 
necessary,
      *  {@code null} if null String input
      * @since 2.0
      */
-    public static String leftPad(String str, int size, char padChar) {
-        if (str == null) {
+    public static String leftPad(CharSequence seq, int size, char padChar) {
+        if (seq == null) {
             return null;
         }
-        int pads = size - str.length();
+        int pads = size - seq.length();
         if (pads <= 0) {
-            return str; // returns original String when possible
+            return seq.toString(); // returns original String when possible
         }
         if (pads > PAD_LIMIT) {
-            return leftPad(str, size, String.valueOf(padChar));
+            return leftPad(seq, size, String.valueOf(padChar));
         }
-        return padding(pads, padChar).concat(str);
+        return padding(pads, padChar).concat(seq.toString());
     }
 
     /**
@@ -4728,40 +4728,40 @@ public class StringUtils {
      * StringUtils.leftPad("bat", 5, "")    = "  bat"
      * </pre>
      *
-     * @param str  the String to pad out, may be null
+     * @param seq  the CharSequence to pad out, may be null
      * @param size  the size to pad to
-     * @param padStr  the String to pad with, null or empty treated as single 
space
+     * @param padStr  the CharSequence to pad with, null or empty treated as 
single space
      * @return left padded String or original String if no padding is 
necessary,
      *  {@code null} if null String input
      */
-    public static String leftPad(String str, int size, String padStr) {
-        if (str == null) {
+    public static String leftPad(CharSequence seq, int size, CharSequence 
padStr) {
+        if (seq == null) {
             return null;
         }
         if (isEmpty(padStr)) {
             padStr = " ";
         }
         int padLen = padStr.length();
-        int strLen = str.length();
+        int strLen = seq.length();
         int pads = size - strLen;
         if (pads <= 0) {
-            return str; // returns original String when possible
+            return seq.toString(); // returns original String when possible
         }
         if (padLen == 1 && pads <= PAD_LIMIT) {
-            return leftPad(str, size, padStr.charAt(0));
+            return leftPad(seq, size, padStr.charAt(0));
         }
 
         if (pads == padLen) {
-            return padStr.concat(str);
+            return padStr.toString().concat(seq.toString());
         } else if (pads < padLen) {
-            return padStr.substring(0, pads).concat(str);
+            return padStr.subSequence(0, 
pads).toString().concat(seq.toString());
         } else {
             char[] padding = new char[pads];
-            char[] padChars = padStr.toCharArray();
+            char[] padChars = padStr.toString().toCharArray();
             for (int i = 0; i < pads; i++) {
                 padding[i] = padChars[i % padLen];
             }
-            return new String(padding).concat(str);
+            return new String(padding).concat(seq.toString());
         }
     }
 
@@ -4801,12 +4801,12 @@ public class StringUtils {
      * StringUtils.center("a", 4)    = " a  "
      * </pre>
      *
-     * @param str  the String to center, may be null
+     * @param seq  the CharSequence to center, may be null
      * @param size  the int size of new String, negative treated as zero
      * @return centered String, {@code null} if null String input
      */
-    public static String center(String str, int size) {
-        return center(str, size, ' ');
+    public static String center(CharSequence seq, int size) {
+        return center(seq, size, ' ');
     }
 
     /**
@@ -4827,24 +4827,27 @@ public class StringUtils {
      * StringUtils.center("a", 4, 'y')    = "yayy"
      * </pre>
      *
-     * @param str  the String to center, may be null
+     * @param seq  the CharSequence to center, may be null
      * @param size  the int size of new String, negative treated as zero
      * @param padChar  the character to pad the new String with
      * @return centered String, {@code null} if null String input
      * @since 2.0
      */
-    public static String center(String str, int size, char padChar) {
-        if (str == null || size <= 0) {
-            return str;
+    public static String center(CharSequence seq, int size, char padChar) {
+        if (seq == null) {
+            return null;
         }
-        int strLen = str.length();
+        if (size <= 0) {
+            return seq.toString();
+        }
+        int strLen = seq.length();
         int pads = size - strLen;
         if (pads <= 0) {
-            return str;
+            return seq.toString();
         }
-        str = leftPad(str, strLen + pads / 2, padChar);
-        str = rightPad(str, size, padChar);
-        return str;
+        String tmp = leftPad(seq, strLen + pads / 2, padChar);
+        tmp = rightPad(tmp, size, padChar);
+        return tmp;
     }
 
     /**
@@ -4867,27 +4870,30 @@ public class StringUtils {
      * StringUtils.center("abc", 7, "")   = "  abc  "
      * </pre>
      *
-     * @param str  the String to center, may be null
+     * @param seq  the CharSequence to center, may be null
      * @param size  the int size of new String, negative treated as zero
-     * @param padStr  the String to pad the new String with, must not be null 
or empty
+     * @param padStr  the CharSequence to pad the new String with, must not be 
null or empty
      * @return centered String, {@code null} if null String input
      * @throws IllegalArgumentException if padStr is {@code null} or empty
      */
-    public static String center(String str, int size, String padStr) {
-        if (str == null || size <= 0) {
-            return str;
+    public static String center(CharSequence seq, int size, CharSequence 
padStr) {
+        if (seq == null) {
+            return null;
+        }
+        if (size <= 0) {
+            return seq.toString();
         }
         if (isEmpty(padStr)) {
             padStr = " ";
         }
-        int strLen = str.length();
+        int strLen = seq.length();
         int pads = size - strLen;
         if (pads <= 0) {
-            return str;
+            return seq.toString();
         }
-        str = leftPad(str, strLen + pads / 2, padStr);
-        str = rightPad(str, size, padStr);
-        return str;
+        String tmp = leftPad(seq, strLen + pads / 2, padStr);
+        tmp = rightPad(tmp, size, padStr);
+        return tmp;
     }
 
     // Case conversion
@@ -4908,14 +4914,14 @@ public class StringUtils {
      * For platform-independent case transformations, the method {@link 
#lowerCase(String, Locale)}
      * should be used with a specific locale (e.g. {@link Locale#ENGLISH}).</p>
      *
-     * @param str  the String to upper case, may be null
+     * @param seq  the CharSequence to upper case, may be null
      * @return the upper cased String, {@code null} if null String input
      */
-    public static String upperCase(String str) {
-        if (str == null) {
+    public static String upperCase(CharSequence seq) {
+        if (seq == null) {
             return null;
         }
-        return str.toUpperCase();
+        return seq.toString().toUpperCase();
     }
 
     /**
@@ -4929,16 +4935,16 @@ public class StringUtils {
      * StringUtils.upperCase("aBc", Locale.ENGLISH) = "ABC"
      * </pre>
      *
-     * @param str  the String to upper case, may be null
+     * @param seq  the CharSequence to upper case, may be null
      * @param locale  the locale that defines the case transformation rules, 
must not be null
      * @return the upper cased String, {@code null} if null String input
      * @since 2.5
      */
-    public static String upperCase(String str, Locale locale) {
-        if (str == null) {
+    public static String upperCase(CharSequence seq, Locale locale) {
+        if (seq == null) {
             return null;
         }
-        return str.toUpperCase(locale);
+        return seq.toString().toUpperCase(locale);
     }
 
     /**
@@ -4957,14 +4963,14 @@ public class StringUtils {
      * For platform-independent case transformations, the method {@link 
#lowerCase(String, Locale)}
      * should be used with a specific locale (e.g. {@link Locale#ENGLISH}).</p>
      *
-     * @param str  the String to lower case, may be null
+     * @param seq  the CharSequence to lower case, may be null
      * @return the lower cased String, {@code null} if null String input
      */
-    public static String lowerCase(String str) {
-        if (str == null) {
+    public static String lowerCase(CharSequence seq) {
+        if (seq == null) {
             return null;
         }
-        return str.toLowerCase();
+        return seq.toString().toLowerCase();
     }
 
     /**
@@ -4978,16 +4984,16 @@ public class StringUtils {
      * StringUtils.lowerCase("aBc", Locale.ENGLISH) = "abc"
      * </pre>
      *
-     * @param str  the String to lower case, may be null
+     * @param seq  the CharSequence to lower case, may be null
      * @param locale  the locale that defines the case transformation rules, 
must not be null
      * @return the lower cased String, {@code null} if null String input
      * @since 2.5
      */
-    public static String lowerCase(String str, Locale locale) {
-        if (str == null) {
+    public static String lowerCase(CharSequence seq, Locale locale) {
+        if (seq == null) {
             return null;
         }
-        return str.toLowerCase(locale);
+        return seq.toString().toLowerCase(locale);
     }
 
     /**
@@ -5084,19 +5090,22 @@ public class StringUtils {
      * If you only use ASCII, you will notice no change.
      * That functionality is available in 
org.apache.commons.lang3.text.WordUtils.</p>
      *
-     * @param str  the String to swap case, may be null
+     * @param seq  the CharSequence to swap case, may be null
      * @return the changed String, {@code null} if null String input
      */
-    public static String swapCase(String str) {
+    public static String swapCase(CharSequence seq) {
         int strLen;
-        if (str == null || (strLen = str.length()) == 0) {
-            return str;
+        if (seq == null) {
+            return null;
+        }
+        if ( (strLen = seq.length()) == 0) {
+            return seq.toString();
         }
         StringBuilder buffer = new StringBuilder(strLen);
 
         char ch = 0;
         for (int i = 0; i < strLen; i++) {
-            ch = str.charAt(i);
+            ch = seq.charAt(i);
             if (Character.isUpperCase(ch)) {
                 ch = Character.toLowerCase(ch);
             } else if (Character.isTitleCase(ch)) {


Reply via email to