Author: krosenvold Date: Fri Aug 23 15:27:49 2013 New Revision: 1516882 URL: http://svn.apache.org/r1516882 Log: Minor performance tweaks
Modified: maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/StringUtils.java maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/xml/XMLEncode.java Modified: maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/StringUtils.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/StringUtils.java?rev=1516882&r1=1516881&r2=1516882&view=diff ============================================================================== --- maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/StringUtils.java (original) +++ maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/StringUtils.java Fri Aug 23 15:27:49 2013 @@ -772,7 +772,7 @@ public class StringUtils int start = 0, end; while ( ( end = text.indexOf( repl, start ) ) != -1 ) { - buf.append( text.substring( start, end ) ).append( with ); + buf.append( text, start, end ).append( with ); start = end + repl.length(); if ( --max == 0 ) @@ -780,7 +780,7 @@ public class StringUtils break; } } - buf.append( text.substring( start ) ); + buf.append( text, start, text.length()); return buf.toString(); } @@ -801,7 +801,11 @@ public class StringUtils { throw new NullPointerException( "overlay is null" ); } - return text.substring( 0, start ) + overlay + text.substring( end ); + return new StringBuilder( start + overlay.length() + text.length() - end + 1 ) + .append( text, 0, start ) + .append( overlay ) + .append( text, end, text.length() ) + .toString(); } // Centering @@ -1438,13 +1442,20 @@ public class StringUtils { return null; } - else if ( str.length() == 0 ) - { - return ""; - } else { - return String.valueOf( Character.toLowerCase( str.charAt( 0 ) ) ) + str.substring( 1 ); + int length = str.length(); + if ( length == 0 ) + { + return ""; + } + else + { + return new StringBuffer( length ) + .append( Character.toLowerCase( str.charAt( 0 ) ) ) + .append( str, 1, length ) + .toString(); + } } } @@ -1463,13 +1474,20 @@ public class StringUtils { return null; } - else if ( str.length() == 0 ) - { - return ""; - } else { - return String.valueOf( Character.toTitleCase( str.charAt( 0 ) ) ) + str.substring( 1 ); + int length = str.length(); + if ( length == 0 ) + { + return ""; + } + else + { + return new StringBuilder( length ) + .append( Character.toTitleCase( str.charAt( 0 ) ) ) + .append( str, 1, length ) + .toString(); + } } } @@ -2143,11 +2161,16 @@ public class StringUtils */ public @Nonnull static String capitalizeFirstLetter( @Nonnull String data ) { - char firstLetter = Character.toTitleCase( data.substring( 0, 1 ).charAt( 0 ) ); - - String restLetters = data.substring( 1 ); - - return firstLetter + restLetters; + char firstChar = data.charAt( 0 ); + char titleCase = Character.toTitleCase( firstChar ); + if (firstChar == titleCase) + { + return data; + } + StringBuilder result = new StringBuilder( data.length() ); + result.append( titleCase ); + result.append( data, 1, data.length() ); + return result.toString(); } /** Modified: maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/xml/XMLEncode.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/xml/XMLEncode.java?rev=1516882&r1=1516881&r2=1516882&view=diff ============================================================================== --- maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/xml/XMLEncode.java (original) +++ maven/shared/trunk/maven-shared-utils/src/main/java/org/apache/maven/shared/utils/xml/XMLEncode.java Fri Aug 23 15:27:49 2013 @@ -125,8 +125,14 @@ final class XMLEncode return null; } char c; - StringBuilder n = new StringBuilder( text.length() * 2 ); - for ( int i = 0; i < text.length(); i++ ) + int length = text.length(); + StringBuilder n = new StringBuilder( length * 2 ); + if ( forAttribute ) + { + n.append( quoteChar ); + } + + for ( int i = 0; i < length; i++ ) { c = text.charAt( i ); switch ( c ) @@ -163,7 +169,7 @@ final class XMLEncode case '\r': if ( forAttribute ) { - if ( i == ( text.length() - 1 ) || text.charAt( i + 1 ) != '\n' ) + if ( i == ( length - 1 ) || text.charAt( i + 1 ) != '\n' ) { n.append( " " ); } @@ -194,7 +200,6 @@ final class XMLEncode if ( forAttribute ) { n.append( quoteChar ); - n.insert( 0, quoteChar ); } return n.toString();