in vault-core/src/main/java/org/apache/jackrabbit/vault/util/Text.java [223:269]
public static String encodeIllegalXMLCharacters(String text) {
if (text == null) {
throw new IllegalArgumentException("null argument");
}
StringBuffer buf = null;
int length = text.length();
int pos = 0;
for (int i = 0; i < length; i++) {
int ch = text.charAt(i);
switch (ch) {
case '<':
case '>':
case '&':
case '"':
case '\'':
if (buf == null) {
buf = new StringBuffer();
}
if (i > 0) {
buf.append(text.substring(pos, i));
}
pos = i + 1;
break;
default:
continue;
}
if (ch == '<') {
buf.append("<");
} else if (ch == '>') {
buf.append(">");
} else if (ch == '&') {
buf.append("&");
} else if (ch == '"') {
buf.append(""");
} else if (ch == '\'') {
buf.append("'");
}
}
if (buf == null) {
return text;
} else {
if (pos < length) {
buf.append(text.substring(pos));
}
return buf.toString();
}
}