Transformpublic class Transform extends Object Utility class for transforming strings. |
Fields Summary |
---|
private static final String | CDATA_START | private static final String | CDATA_END | private static final String | CDATA_PSEUDO_END | private static final String | CDATA_EMBEDED_END | private static final int | CDATA_END_LEN |
Methods Summary |
---|
public static void | appendEscapingCDATA(java.lang.StringBuffer buf, java.lang.String str)Ensures that embeded CDEnd strings (]]>) are handled properly
within message, NDC and throwable tag text.
if (str != null) {
int end = str.indexOf(CDATA_END);
if (end < 0) {
buf.append(str);
} else {
int start = 0;
while (end > -1) {
buf.append(str.substring(start, end));
buf.append(CDATA_EMBEDED_END);
start = end + CDATA_END_LEN;
if (start < str.length()) {
end = str.indexOf(CDATA_END, start);
} else {
return;
}
}
buf.append(str.substring(start));
}
}
| public static java.lang.String | escapeTags(java.lang.String input)This method takes a string which may contain HTML tags (ie,
<b>, <table>, etc) and replaces any
'<', '>' , '&' or '"'
characters with respective predefined entity references.
//Check if the string is null, zero length or devoid of special characters
// if so, return what was sent in.
if(input == null
|| input.length() == 0
|| (input.indexOf('"") == -1 &&
input.indexOf('&") == -1 &&
input.indexOf('<") == -1 &&
input.indexOf('>") == -1)) {
return input;
}
//Use a StringBuffer in lieu of String concatenation -- it is
//much more efficient this way.
StringBuffer buf = new StringBuffer(input.length() + 6);
char ch = ' ";
int len = input.length();
for(int i=0; i < len; i++) {
ch = input.charAt(i);
if (ch > '>") {
buf.append(ch);
} else if(ch == '<") {
buf.append("<");
} else if(ch == '>") {
buf.append(">");
} else if(ch == '&") {
buf.append("&");
} else if(ch == '"") {
buf.append(""");
} else {
buf.append(ch);
}
}
return buf.toString();
|
|