in src/main/java/org/apache/maven/shared/utils/StringUtils.java [1353:1383]
public static String swapCase(String str) {
if (str == null) {
return null;
}
int sz = str.length();
StringBuilder buffer = new StringBuilder(sz);
boolean whitespace = false;
char ch;
char tmp;
for (int i = 0; i < sz; i++) {
ch = str.charAt(i);
if (Character.isUpperCase(ch)) {
tmp = Character.toLowerCase(ch);
} else if (Character.isTitleCase(ch)) {
tmp = Character.toLowerCase(ch);
} else if (Character.isLowerCase(ch)) {
if (whitespace) {
tmp = Character.toTitleCase(ch);
} else {
tmp = Character.toUpperCase(ch);
}
} else {
tmp = ch;
}
buffer.append(tmp);
whitespace = Character.isWhitespace(ch);
}
return buffer.toString();
}