static void xmlEncodeTextAsPCDATA()

in src/main/java/org/apache/maven/shared/utils/xml/XMLEncode.java [58:120]


    static void xmlEncodeTextAsPCDATA(String text, boolean forAttribute, char quoteChar, Writer n) throws IOException {
        if (text == null) {
            return;
        }

        int length = text.length();
        if (forAttribute) {
            n.append(quoteChar);
        }

        for (int i = 0; i < length; i++) {
            char c = text.charAt(i);
            switch (c) {
                case '&':
                    n.append("&amp;");
                    break;
                case '<':
                    n.append("&lt;");
                    break;
                case '>': // FIX for sourceforge bug #802520 ("]]>" needs encoding)
                    n.append("&gt;");
                    break;
                case '"':
                    if (forAttribute) {
                        n.append("&quot;");
                    } else {
                        n.append(c);
                    }
                    break;
                case '\'':
                    if (forAttribute) {
                        n.append("&apos;");
                    } else {
                        n.append(c);
                    }
                    break;
                case '\r':
                    if (forAttribute) {
                        if (i == (length - 1) || text.charAt(i + 1) != '\n') {
                            n.append("&#13;");
                        }
                    } else {
                        n.append(c);
                    }
                    // but skip the \r in \r\n

                    break;
                case '\n':
                    if (forAttribute) {
                        n.append("&#10;");
                    }
                    break;

                default:
                    n.append(c);
                    break;
            }
        }

        if (forAttribute) {
            n.append(quoteChar);
        }
    }