summaryrefslogtreecommitdiff
path: root/platform/util/src/com/intellij/openapi/util/JDOMUtil.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/util/src/com/intellij/openapi/util/JDOMUtil.java')
-rw-r--r--platform/util/src/com/intellij/openapi/util/JDOMUtil.java42
1 files changed, 21 insertions, 21 deletions
diff --git a/platform/util/src/com/intellij/openapi/util/JDOMUtil.java b/platform/util/src/com/intellij/openapi/util/JDOMUtil.java
index 2cd5ed09bfdc..c82ee6df346b 100644
--- a/platform/util/src/com/intellij/openapi/util/JDOMUtil.java
+++ b/platform/util/src/com/intellij/openapi/util/JDOMUtil.java
@@ -204,34 +204,34 @@ public class JDOMUtil {
@NotNull
private static String intern(@NotNull final StringInterner interner, @NotNull final String s) {
- synchronized (interner) {
- return interner.intern(s);
- }
+ return interner.intern(s);
}
@NotNull
- public static String legalizeText(@NotNull final String str) {
- StringReader reader = new StringReader(str);
- StringBuilder result = new StringBuilder();
-
- while(true) {
- try {
- int each = reader.read();
- if (each == -1) break;
+ public static String legalizeText(@NotNull String str) {
+ return legalizeChars(str).toString();
+ }
- if (Verifier.isXMLCharacter(each)) {
- result.append((char)each);
- } else {
- result.append("0x").append(StringUtil.toUpperCase(Long.toHexString(each)));
- }
- }
- catch (IOException ignored) {
- }
+ @NotNull
+ public static CharSequence legalizeChars(@NotNull CharSequence str) {
+ StringBuilder result = new StringBuilder(str.length());
+ for (int i = 0, len = str.length(); i < len; i ++) {
+ appendLegalized(result, str.charAt(i));
}
-
- return result.toString().replaceAll("<", "&lt;").replaceAll(">", "&gt;");
+ return result;
}
+ public static void appendLegalized(@NotNull StringBuilder sb, char each) {
+ if (each == '<' || each == '>') {
+ sb.append(each == '<' ? "&lt;" : "&gt;");
+ }
+ else if (!Verifier.isXMLCharacter(each)) {
+ sb.append("0x").append(StringUtil.toUpperCase(Long.toHexString(each)));
+ }
+ else {
+ sb.append(each);
+ }
+ }
private static class EmptyTextFilter implements Filter {
@Override