Author: bayard
Date: Wed Mar 16 05:04:45 2011
New Revision: 1082051

URL: http://svn.apache.org/viewvc?rev=1082051&view=rev
Log:
Moving abbreviate + abbreviateMiddle to CharSequences

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=1082051&r1=1082050&r2=1082051&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:04:45 2011
@@ -5641,7 +5641,7 @@ public class StringUtils {
      * <ul>
      *   <li>If {@code str} is less than {@code maxWidth} characters
      *       long, return it.</li>
-     *   <li>Else abbreviate it to {@code (substring(str, 0, max-3) + 
"...")}.</li>
+     *   <li>Else abbreviate it to {@code (substring(seq, 0, max-3) + 
"...")}.</li>
      *   <li>If {@code maxWidth} is less than {@code 4}, throw an
      *       {@code IllegalArgumentException}.</li>
      *   <li>In no case will it return a String of length greater than
@@ -5659,14 +5659,14 @@ public class StringUtils {
      * StringUtils.abbreviate("abcdefg", 3) = IllegalArgumentException
      * </pre>
      *
-     * @param str  the String to check, may be null
+     * @param seq  the CharSequence to check, may be null
      * @param maxWidth  maximum length of result String, must be at least 4
      * @return abbreviated String, {@code null} if null String input
      * @throws IllegalArgumentException if the width is too small
      * @since 2.0
      */
-    public static String abbreviate(String str, int maxWidth) {
-        return abbreviate(str, 0, maxWidth);
+    public static String abbreviate(CharSequence seq, int maxWidth) {
+        return abbreviate(seq, 0, maxWidth);
     }
 
     /**
@@ -5697,40 +5697,40 @@ public class StringUtils {
      * StringUtils.abbreviate("abcdefghij", 5, 6)        = 
IllegalArgumentException
      * </pre>
      *
-     * @param str  the String to check, may be null
+     * @param seq  the CharSequence to check, may be null
      * @param offset  left edge of source String
      * @param maxWidth  maximum length of result String, must be at least 4
      * @return abbreviated String, {@code null} if null String input
      * @throws IllegalArgumentException if the width is too small
      * @since 2.0
      */
-    public static String abbreviate(String str, int offset, int maxWidth) {
-        if (str == null) {
+    public static String abbreviate(CharSequence seq, int offset, int 
maxWidth) {
+        if (seq == null) {
             return null;
         }
         if (maxWidth < 4) {
             throw new IllegalArgumentException("Minimum abbreviation width is 
4");
         }
-        if (str.length() <= maxWidth) {
-            return str;
+        if (seq.length() <= maxWidth) {
+            return seq.toString();
         }
-        if (offset > str.length()) {
-            offset = str.length();
+        if (offset > seq.length()) {
+            offset = seq.length();
         }
-        if ((str.length() - offset) < (maxWidth - 3)) {
-            offset = str.length() - (maxWidth - 3);
+        if ((seq.length() - offset) < (maxWidth - 3)) {
+            offset = seq.length() - (maxWidth - 3);
         }
         final String abrevMarker = "...";
         if (offset <= 4) {
-            return str.substring(0, maxWidth - 3) + abrevMarker;
+            return seq.subSequence(0, maxWidth - 3) + abrevMarker;
         }
         if (maxWidth < 7) {
             throw new IllegalArgumentException("Minimum abbreviation width 
with offset is 7");
         }
-        if ((offset + (maxWidth - 3)) < str.length()) {
-            return abrevMarker + abbreviate(str.substring(offset), maxWidth - 
3);
+        if ((offset + (maxWidth - 3)) < seq.length()) {
+            return abrevMarker + abbreviate(StringUtils.subSequence(seq, 
offset), maxWidth - 3);
         }
-        return abrevMarker + str.substring(str.length() - (maxWidth - 3));
+        return abrevMarker + StringUtils.subSequence(seq, seq.length() - 
(maxWidth - 3));
     }
 
     /**
@@ -5756,29 +5756,32 @@ public class StringUtils {
      * StringUtils.abbreviateMiddle("abcdef", ".", 4)     = "ab.f"
      * </pre>
      *
-     * @param str  the String to abbreviate, may be null
-     * @param middle the String to replace the middle characters with, may be 
null
-     * @param length the length to abbreviate {@code str} to.
+     * @param seq  the CharSequence to abbreviate, may be null
+     * @param middle the CharSequence to replace the middle characters with, 
may be null
+     * @param length the length to abbreviate {@code seq} to.
      * @return the abbreviated String if the above criteria is met, or the 
original String supplied for abbreviation.
      * @since 2.5
      */
-    public static String abbreviateMiddle(String str, String middle, int 
length) {
-        if (isEmpty(str) || isEmpty(middle)) {
-            return str;
+    public static String abbreviateMiddle(CharSequence seq, CharSequence 
middle, int length) {
+        if (seq == null) {
+            return null;
+        }
+        if (isEmpty(seq) || isEmpty(middle)) {
+            return seq.toString();
         }
 
-        if (length >= str.length() || length < (middle.length()+2)) {
-            return str;
+        if (length >= seq.length() || length < (middle.length()+2)) {
+            return seq.toString();
         }
 
         int targetSting = length-middle.length();
         int startOffset = targetSting/2+targetSting%2;
-        int endOffset = str.length()-targetSting/2;
+        int endOffset = seq.length()-targetSting/2;
 
         StringBuilder builder = new StringBuilder(length);
-        builder.append(str.substring(0,startOffset));
+        builder.append(seq.subSequence(0,startOffset));
         builder.append(middle);
-        builder.append(str.substring(endOffset));
+        builder.append(StringUtils.subSequence(seq, endOffset));
 
         return builder.toString();
     }


Reply via email to