You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Henri Yandell (JIRA)" <ji...@apache.org> on 2011/04/06 07:14:06 UTC

[jira] [Updated] (LANG-687) Convert more of the StringUtils API to take CharSequence

     [ https://issues.apache.org/jira/browse/LANG-687?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Henri Yandell updated LANG-687:
-------------------------------

    Description: 
Use CharSequence and not String in the StringUtils API for non-mutating operations.

Anything which has to choose between the mutable and immutable nature of CharSequence subclasses (i.e. takes a String and returns a String), should not be changed. Anything that does not mutate the input (even in spirit) should use CharSequence.

Additionally there should be a unit test that uses reflection to confirm this rule is in place.

Listing remaining methods to move to CharSequence:

    public static boolean equalsIgnoreCase(String str1, String str2) {
    public static int ordinalIndexOf(String str, String searchStr, int ordinal) {
    public static int indexOfIgnoreCase(String str, String searchStr) {
    public static int indexOfIgnoreCase(String str, String searchStr, int startPos) {
    public static int lastOrdinalIndexOf(String str, String searchStr, int ordinal) {
    public static int lastIndexOfIgnoreCase(String str, String searchStr) {
    public static int lastIndexOfIgnoreCase(String str, String searchStr, int startPos) {
    public static boolean containsIgnoreCase(String str, String searchStr) {
    public static int countMatches(String str, String sub) {
    public static boolean startsWith(String str, String prefix) {
    public static boolean startsWithIgnoreCase(String str, String prefix) {
    public static boolean startsWithAny(String string, String... searchStrings) {
    public static boolean endsWith(String str, String suffix) {
    public static boolean endsWithIgnoreCase(String str, String suffix) {
    public static boolean endsWithAny(String string, String... searchStrings) {


  was:
Wherever possible, use CharSequence and not String in the StringUtils API.

Here is the working list of unique method names that don't take CharSequence. Let's update the description in place to show status.

[DONE] abbreviate
[DONE] abbreviateMiddle
[DONE] center
chomp
chop
[DONE] contains
[DONE] containsAny
containsIgnoreCase
[DONE] containsWhitespace
countMatches
defaultString
deleteWhitespace
difference
endsWith
endsWithAny
endsWithIgnoreCase
equalsIgnoreCase
getCommonPrefix
[DONE] indexOf
[DONE] indexOfAny
[DONE] indexOfAnyBut
indexOfIgnoreCase
join
[DONE] lastIndexOf
[DONE] lastIndexOfAny
lastIndexOfIgnoreCase
lastOrdinalIndexOf
[DONE] left
[DONE] leftPad
[DONE] lowerCase
[DONE] mid
normalizeSpace
ordinalIndexOf
overlay
remove
removeEnd
removeEndIgnoreCase
removeStart
removeStartIgnoreCase
repeat
replace
replaceChars
replaceEach
replaceEachRepeatedly
replaceOnce
reverse
reverseDelimited
[DONE] right
[DONE] rightPad
split
splitByCharacterType
splitByCharacterTypeCamelCase
splitByWholeSeparator
splitByWholeSeparatorPreserveAllTokens
splitPreserveAllTokens
startsWith
startsWithAny
startsWithIgnoreCase
strip
stripAll
stripEnd
stripStart
stripToEmpty
stripToNull
[DONE] substring
substringAfter
substringAfterLast
substringBefore
substringBeforeLast
substringBetween
substringsBetween
[DONE] swapCase
trim
trimToEmpty
trimToNull
[DONE] upperCase



> Convert more of the StringUtils API to take CharSequence
> --------------------------------------------------------
>
>                 Key: LANG-687
>                 URL: https://issues.apache.org/jira/browse/LANG-687
>             Project: Commons Lang
>          Issue Type: Improvement
>          Components: lang.*
>            Reporter: Henri Yandell
>             Fix For: 3.0
>
>
> Use CharSequence and not String in the StringUtils API for non-mutating operations.
> Anything which has to choose between the mutable and immutable nature of CharSequence subclasses (i.e. takes a String and returns a String), should not be changed. Anything that does not mutate the input (even in spirit) should use CharSequence.
> Additionally there should be a unit test that uses reflection to confirm this rule is in place.
> Listing remaining methods to move to CharSequence:
>     public static boolean equalsIgnoreCase(String str1, String str2) {
>     public static int ordinalIndexOf(String str, String searchStr, int ordinal) {
>     public static int indexOfIgnoreCase(String str, String searchStr) {
>     public static int indexOfIgnoreCase(String str, String searchStr, int startPos) {
>     public static int lastOrdinalIndexOf(String str, String searchStr, int ordinal) {
>     public static int lastIndexOfIgnoreCase(String str, String searchStr) {
>     public static int lastIndexOfIgnoreCase(String str, String searchStr, int startPos) {
>     public static boolean containsIgnoreCase(String str, String searchStr) {
>     public static int countMatches(String str, String sub) {
>     public static boolean startsWith(String str, String prefix) {
>     public static boolean startsWithIgnoreCase(String str, String prefix) {
>     public static boolean startsWithAny(String string, String... searchStrings) {
>     public static boolean endsWith(String str, String suffix) {
>     public static boolean endsWithIgnoreCase(String str, String suffix) {
>     public static boolean endsWithAny(String string, String... searchStrings) {

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira