src/share/classes/com/sun/org/apache/xml/internal/security/signature/XMLSignatureInputDebugger.java

Print this page

        

@@ -1,24 +1,26 @@
 /*
  * reserved comment block
  * DO NOT REMOVE OR ALTER!
  */
-/*
- * Copyright  1999-2004 The Apache Software Foundation.
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
  *
  *      http://www.apache.org/licenses/LICENSE-2.0
  *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
  */
 package com.sun.org.apache.xml.internal.security.signature;
 
 import java.io.IOException;
 import java.io.StringWriter;

@@ -36,41 +38,27 @@
 import org.w3c.dom.Node;
 import org.w3c.dom.ProcessingInstruction;
 
 /**
  * Class XMLSignatureInputDebugger
- *
- * @author $Author: mullan $
- * @version $Revision: 1.3 $
  */
 public class XMLSignatureInputDebugger {
 
-
-
         /** Field _xmlSignatureInput */
-        private Set<Node> _xpathNodeSet;
+    private Set<Node> xpathNodeSet;
 
-        private Set<String> _inclusiveNamespaces;
+    private Set<String> inclusiveNamespaces;
 
-        /** Field _doc */
-        private Document _doc = null;
+    /** Field doc */
+    private Document doc = null;
+
+    /** Field writer */
+    private Writer writer = null;
 
-        /** Field _writer */
-        private Writer _writer = null;
-
-        // J-
-        // public static final String HTMLPrefix = "<!DOCTYPE HTML PUBLIC
-        // \"-//W3C//DTD HTML 4.01 Transitional//EN\"><html><head><style
-        // type=\"text/css\"><!-- .INCLUDED { color: #000000; background-color:
-        // #FFFFFF; font-weight: bold; } .EXCLUDED { color: #666666;
-        // background-color: #999999; } .INCLUDEDINCLUSIVENAMESPACE { color:
-        // #0000FF; background-color: #FFFFFF; font-weight: bold; font-style:
-        // italic; } .EXCLUDEDINCLUSIVENAMESPACE { color: #0000FF; background-color:
-        // #999999; font-style: italic; } --> </style> </head><body
-        // bgcolor=\"#999999\"><pre>";
         /** The HTML Prefix* */
-        static final String HTMLPrefix = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n"
+    static final String HTMLPrefix = 
+        "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n"
                         + "<html>\n"
                         + "<head>\n"
                         + "<title>Caninical XML node set</title>\n"
                         + "<style type=\"text/css\">\n"
                         + "<!-- \n"

@@ -108,100 +96,82 @@
         /** HTML Suffix * */
         static final String HTMLSuffix = "</pre></body></html>";
 
         static final String HTMLExcludePrefix = "<span class=\"EXCLUDED\">";
 
-        static final String HTMLExcludeSuffix = "</span>";
-
         static final String HTMLIncludePrefix = "<span class=\"INCLUDED\">";
 
-        static final String HTMLIncludeSuffix = "</span>";
+    static final String HTMLIncludeOrExcludeSuffix = "</span>";
 
         static final String HTMLIncludedInclusiveNamespacePrefix = "<span class=\"INCLUDEDINCLUSIVENAMESPACE\">";
 
-        static final String HTMLIncludedInclusiveNamespaceSuffix = "</span>";
-
         static final String HTMLExcludedInclusiveNamespacePrefix = "<span class=\"EXCLUDEDINCLUSIVENAMESPACE\">";
 
-        static final String HTMLExcludedInclusiveNamespaceSuffix = "</span>";
-
         private static final int NODE_BEFORE_DOCUMENT_ELEMENT = -1;
 
         private static final int NODE_NOT_BEFORE_OR_AFTER_DOCUMENT_ELEMENT = 0;
 
         private static final int NODE_AFTER_DOCUMENT_ELEMENT = 1;
 
         static final AttrCompare ATTR_COMPARE = new AttrCompare();
 
-        // J+
-        private XMLSignatureInputDebugger() {
-                // do nothing
-        }
-
         /**
          * Constructor XMLSignatureInputDebugger
          *
-         * @param xmlSignatureInput the signatur to pretty print
+     * @param xmlSignatureInput the signature to pretty print
          */
-        public XMLSignatureInputDebugger(
-                        XMLSignatureInput xmlSignatureInput) {
-
+    public XMLSignatureInputDebugger(XMLSignatureInput xmlSignatureInput) {
                 if (!xmlSignatureInput.isNodeSet()) {
-                        this._xpathNodeSet = null;
+            this.xpathNodeSet = null;
                 } else {
-                        this._xpathNodeSet = xmlSignatureInput._inputNodeSet;
+            this.xpathNodeSet = xmlSignatureInput.getInputNodeSet();
                 }
         }
 
         /**
          * Constructor XMLSignatureInputDebugger
          *
          * @param xmlSignatureInput the signatur to pretty print
          * @param inclusiveNamespace
          */
         public XMLSignatureInputDebugger(
-                        XMLSignatureInput xmlSignatureInput, Set<String> inclusiveNamespace) {
-
+        XMLSignatureInput xmlSignatureInput, 
+        Set<String> inclusiveNamespace
+    ) {
                 this(xmlSignatureInput);
-
-                this._inclusiveNamespaces = inclusiveNamespace;
+        this.inclusiveNamespaces = inclusiveNamespace;
         }
 
         /**
          * Method getHTMLRepresentation
          *
          * @return The HTML Representation.
          * @throws XMLSignatureException
          */
         public String getHTMLRepresentation() throws XMLSignatureException {
-
-                if ((this._xpathNodeSet == null) || (this._xpathNodeSet.size() == 0)) {
-                        return HTMLPrefix + "<blink>no node set, sorry</blink>"
-                                        + HTMLSuffix;
+        if ((this.xpathNodeSet == null) || (this.xpathNodeSet.size() == 0)) {
+            return HTMLPrefix + "<blink>no node set, sorry</blink>" + HTMLSuffix;
                 }
 
-                {
-
                         // get only a single node as anchor to fetch the owner document
-                        Node n = this._xpathNodeSet.iterator().next();
+        Node n = this.xpathNodeSet.iterator().next();
 
-                        this._doc = XMLUtils.getOwnerDocument(n);
-                }
+        this.doc = XMLUtils.getOwnerDocument(n);
 
                 try {
-                        this._writer = new StringWriter();
+            this.writer = new StringWriter();
 
-                        this.canonicalizeXPathNodeSet(this._doc);
-                        this._writer.close();
+            this.canonicalizeXPathNodeSet(this.doc);
+            this.writer.close();
 
-                        return this._writer.toString();
+            return this.writer.toString();
                 } catch (IOException ex) {
                         throw new XMLSignatureException("empty", ex);
                 } finally {
-                        this._xpathNodeSet = null;
-                        this._doc = null;
-                        this._writer = null;
+            this.xpathNodeSet = null;
+            this.doc = null;
+            this.writer = null;
                 }
         }
 
         /**
          * Method canonicalizeXPathNodeSet

@@ -214,131 +184,112 @@
                         throws XMLSignatureException, IOException {
 
                 int currentNodeType = currentNode.getNodeType();
                 switch (currentNodeType) {
 
-                case Node.DOCUMENT_TYPE_NODE:
-                default:
-                        break;
 
                 case Node.ENTITY_NODE:
                 case Node.NOTATION_NODE:
                 case Node.DOCUMENT_FRAGMENT_NODE:
                 case Node.ATTRIBUTE_NODE:
                         throw new XMLSignatureException("empty");
                 case Node.DOCUMENT_NODE:
-                        this._writer.write(HTMLPrefix);
+            this.writer.write(HTMLPrefix);
 
-                        for (Node currentChild = currentNode.getFirstChild(); currentChild != null; currentChild = currentChild
-                                        .getNextSibling()) {
+            for (Node currentChild = currentNode.getFirstChild(); 
+                currentChild != null; currentChild = currentChild.getNextSibling()) {
                                 this.canonicalizeXPathNodeSet(currentChild);
                         }
 
-                        this._writer.write(HTMLSuffix);
+            this.writer.write(HTMLSuffix);
                         break;
 
                 case Node.COMMENT_NODE:
-                        if (this._xpathNodeSet.contains(currentNode)) {
-                                this._writer.write(HTMLIncludePrefix);
+            if (this.xpathNodeSet.contains(currentNode)) {
+                this.writer.write(HTMLIncludePrefix);
                         } else {
-                                this._writer.write(HTMLExcludePrefix);
+                this.writer.write(HTMLExcludePrefix);
                         }
 
                         int position = getPositionRelativeToDocumentElement(currentNode);
 
                         if (position == NODE_AFTER_DOCUMENT_ELEMENT) {
-                                this._writer.write("\n");
+                this.writer.write("\n");
                         }
 
                         this.outputCommentToWriter((Comment) currentNode);
 
                         if (position == NODE_BEFORE_DOCUMENT_ELEMENT) {
-                                this._writer.write("\n");
+                this.writer.write("\n");
                         }
 
-                        if (this._xpathNodeSet.contains(currentNode)) {
-                                this._writer.write(HTMLIncludeSuffix);
-                        } else {
-                                this._writer.write(HTMLExcludeSuffix);
-                        }
+            this.writer.write(HTMLIncludeOrExcludeSuffix);
                         break;
 
                 case Node.PROCESSING_INSTRUCTION_NODE:
-                        if (this._xpathNodeSet.contains(currentNode)) {
-                                this._writer.write(HTMLIncludePrefix);
+            if (this.xpathNodeSet.contains(currentNode)) {
+                this.writer.write(HTMLIncludePrefix);
                         } else {
-                                this._writer.write(HTMLExcludePrefix);
+                this.writer.write(HTMLExcludePrefix);
                         }
 
                         position = getPositionRelativeToDocumentElement(currentNode);
 
                         if (position == NODE_AFTER_DOCUMENT_ELEMENT) {
-                                this._writer.write("\n");
+                this.writer.write("\n");
                         }
 
                         this.outputPItoWriter((ProcessingInstruction) currentNode);
 
                         if (position == NODE_BEFORE_DOCUMENT_ELEMENT) {
-                                this._writer.write("\n");
+                this.writer.write("\n");
                         }
 
-                        if (this._xpathNodeSet.contains(currentNode)) {
-                                this._writer.write(HTMLIncludeSuffix);
-                        } else {
-                                this._writer.write(HTMLExcludeSuffix);
-                        }
+            this.writer.write(HTMLIncludeOrExcludeSuffix);
                         break;
 
                 case Node.TEXT_NODE:
                 case Node.CDATA_SECTION_NODE:
-                        if (this._xpathNodeSet.contains(currentNode)) {
-                                this._writer.write(HTMLIncludePrefix);
+            if (this.xpathNodeSet.contains(currentNode)) {
+                this.writer.write(HTMLIncludePrefix);
                         } else {
-                                this._writer.write(HTMLExcludePrefix);
+                this.writer.write(HTMLExcludePrefix);
                         }
 
                         outputTextToWriter(currentNode.getNodeValue());
 
-                        for (Node nextSibling = currentNode.getNextSibling(); (nextSibling != null)
-                                        && ((nextSibling.getNodeType() == Node.TEXT_NODE) || (nextSibling
-                                                        .getNodeType() == Node.CDATA_SECTION_NODE)); nextSibling = nextSibling
-                                        .getNextSibling()) {
-
+            for (Node nextSibling = currentNode.getNextSibling(); 
+                (nextSibling != null) 
+                && ((nextSibling.getNodeType() == Node.TEXT_NODE) 
+                    || (nextSibling.getNodeType() == Node.CDATA_SECTION_NODE)); 
+                nextSibling = nextSibling.getNextSibling()) {
                                 /*
                                  * The XPath data model allows to select only the first of a
                                  * sequence of mixed text and CDATA nodes. But we must output
                                  * them all, so we must search:
                                  *
                                  * @see http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6329
                                  */
                                 this.outputTextToWriter(nextSibling.getNodeValue());
                         }
 
-                        if (this._xpathNodeSet.contains(currentNode)) {
-                                this._writer.write(HTMLIncludeSuffix);
-                        } else {
-                                this._writer.write(HTMLExcludeSuffix);
-                        }
+            this.writer.write(HTMLIncludeOrExcludeSuffix);
                         break;
 
                 case Node.ELEMENT_NODE:
                         Element currentElement = (Element) currentNode;
 
-                        if (this._xpathNodeSet.contains(currentNode)) {
-                                this._writer.write(HTMLIncludePrefix);
+            if (this.xpathNodeSet.contains(currentNode)) {
+                this.writer.write(HTMLIncludePrefix);
                         } else {
-                                this._writer.write(HTMLExcludePrefix);
+                this.writer.write(HTMLExcludePrefix);
                         }
 
-                        this._writer.write("&lt;");
-                        this._writer.write(currentElement.getTagName());
+            this.writer.write("&lt;");
+            this.writer.write(currentElement.getTagName());
 
-                        if (this._xpathNodeSet.contains(currentNode)) {
-                                this._writer.write(HTMLIncludeSuffix);
-                        } else {
-                                this._writer.write(HTMLExcludeSuffix);
-                        }
+            this.writer.write(HTMLIncludeOrExcludeSuffix);
 
                         // we output all Attrs which are available
                         NamedNodeMap attrs = currentElement.getAttributes();
                         int attrsLength = attrs.getLength();
                         Attr attrs2[] = new Attr[attrsLength];

@@ -350,100 +301,67 @@
                         Arrays.sort(attrs2, ATTR_COMPARE);
                         Object attrs3[] = attrs2;
 
                         for (int i = 0; i < attrsLength; i++) {
                                 Attr a = (Attr) attrs3[i];
-                                boolean included = this._xpathNodeSet.contains(a);
-                                boolean inclusive = this._inclusiveNamespaces.contains(a
-                                                .getName());
+                boolean included = this.xpathNodeSet.contains(a);
+                boolean inclusive = this.inclusiveNamespaces.contains(a.getName());
 
                                 if (included) {
                                         if (inclusive) {
-
                                                 // included and inclusive
-                                                this._writer
-                                                                .write(HTMLIncludedInclusiveNamespacePrefix);
+                        this.writer.write(HTMLIncludedInclusiveNamespacePrefix);
                                         } else {
-
                                                 // included and not inclusive
-                                                this._writer.write(HTMLIncludePrefix);
+                        this.writer.write(HTMLIncludePrefix);
                                         }
                                 } else {
                                         if (inclusive) {
-
                                                 // excluded and inclusive
-                                                this._writer
-                                                                .write(HTMLExcludedInclusiveNamespacePrefix);
+                        this.writer.write(HTMLExcludedInclusiveNamespacePrefix);
                                         } else {
-
                                                 // excluded and not inclusive
-                                                this._writer.write(HTMLExcludePrefix);
+                        this.writer.write(HTMLExcludePrefix);
                                         }
                                 }
 
                                 this.outputAttrToWriter(a.getNodeName(), a.getNodeValue());
-
-                                if (included) {
-                                        if (inclusive) {
-
-                                                // included and inclusive
-                                                this._writer
-                                                                .write(HTMLIncludedInclusiveNamespaceSuffix);
-                                        } else {
-
-                                                // included and not inclusive
-                                                this._writer.write(HTMLIncludeSuffix);
+                this.writer.write(HTMLIncludeOrExcludeSuffix);
                                         }
-                                } else {
-                                        if (inclusive) {
 
-                                                // excluded and inclusive
-                                                this._writer
-                                                                .write(HTMLExcludedInclusiveNamespaceSuffix);
+            if (this.xpathNodeSet.contains(currentNode)) {
+                this.writer.write(HTMLIncludePrefix);
                                         } else {
-
-                                                // excluded and not inclusive
-                                                this._writer.write(HTMLExcludeSuffix);
-                                        }
-                                }
-                        }
-
-                        if (this._xpathNodeSet.contains(currentNode)) {
-                                this._writer.write(HTMLIncludePrefix);
-                        } else {
-                                this._writer.write(HTMLExcludePrefix);
+                this.writer.write(HTMLExcludePrefix);
                         }
 
-                        this._writer.write("&gt;");
+            this.writer.write("&gt;");
 
-                        if (this._xpathNodeSet.contains(currentNode)) {
-                                this._writer.write(HTMLIncludeSuffix);
-                        } else {
-                                this._writer.write(HTMLExcludeSuffix);
-                        }
+            this.writer.write(HTMLIncludeOrExcludeSuffix);
 
                         // traversal
-                        for (Node currentChild = currentNode.getFirstChild(); currentChild != null; currentChild = currentChild
-                                        .getNextSibling()) {
+            for (Node currentChild = currentNode.getFirstChild(); 
+                currentChild != null; 
+                currentChild = currentChild.getNextSibling()) {
                                 this.canonicalizeXPathNodeSet(currentChild);
                         }
 
-                        if (this._xpathNodeSet.contains(currentNode)) {
-                                this._writer.write(HTMLIncludePrefix);
+            if (this.xpathNodeSet.contains(currentNode)) {
+                this.writer.write(HTMLIncludePrefix);
                         } else {
-                                this._writer.write(HTMLExcludePrefix);
+                this.writer.write(HTMLExcludePrefix);
                         }
 
-                        this._writer.write("&lt;/");
-                        this._writer.write(currentElement.getTagName());
-                        this._writer.write("&gt;");
+            this.writer.write("&lt;/");
+            this.writer.write(currentElement.getTagName());
+            this.writer.write("&gt;");
 
-                        if (this._xpathNodeSet.contains(currentNode)) {
-                                this._writer.write(HTMLIncludeSuffix);
-                        } else {
-                                this._writer.write(HTMLExcludeSuffix);
-                        }
+            this.writer.write(HTMLIncludeOrExcludeSuffix);
+            break;
+            
+        case Node.DOCUMENT_TYPE_NODE:
+        default:
                         break;
                 }
         }
 
         /**

@@ -458,11 +376,10 @@
          * @see #NODE_BEFORE_DOCUMENT_ELEMENT
          * @see #NODE_NOT_BEFORE_OR_AFTER_DOCUMENT_ELEMENT
          * @see #NODE_AFTER_DOCUMENT_ELEMENT
          */
         private int getPositionRelativeToDocumentElement(Node currentNode) {
-
                 if (currentNode == null) {
                         return NODE_NOT_BEFORE_OR_AFTER_DOCUMENT_ELEMENT;
                 }
 
                 Document doc = currentNode.getOwnerDocument();

@@ -506,176 +423,171 @@
          *
          * @param name
          * @param value
          * @throws IOException
          */
-        private void outputAttrToWriter(String name, String value)
-                        throws IOException {
-
-                this._writer.write(" ");
-                this._writer.write(name);
-                this._writer.write("=\"");
+    private void outputAttrToWriter(String name, String value) throws IOException {
+        this.writer.write(" ");
+        this.writer.write(name);
+        this.writer.write("=\"");
 
                 int length = value.length();
 
                 for (int i = 0; i < length; i++) {
                         char c = value.charAt(i);
 
                         switch (c) {
 
                         case '&':
-                                this._writer.write("&amp;amp;");
+                this.writer.write("&amp;amp;");
                                 break;
 
                         case '<':
-                                this._writer.write("&amp;lt;");
+                this.writer.write("&amp;lt;");
                                 break;
 
                         case '"':
-                                this._writer.write("&amp;quot;");
+                this.writer.write("&amp;quot;");
                                 break;
 
                         case 0x09: // '\t'
-                                this._writer.write("&amp;#x9;");
+                this.writer.write("&amp;#x9;");
                                 break;
 
                         case 0x0A: // '\n'
-                                this._writer.write("&amp;#xA;");
+                this.writer.write("&amp;#xA;");
                                 break;
 
                         case 0x0D: // '\r'
-                                this._writer.write("&amp;#xD;");
+                this.writer.write("&amp;#xD;");
                                 break;
 
                         default:
-                                this._writer.write(c);
+                this.writer.write(c);
                                 break;
                         }
                 }
 
-                this._writer.write("\"");
+        this.writer.write("\"");
         }
 
         /**
          * Normalizes a {@link org.w3c.dom.Comment} value
          *
          * @param currentPI
          * @throws IOException
          */
-        private void outputPItoWriter(ProcessingInstruction currentPI)
-                        throws IOException {
+    private void outputPItoWriter(ProcessingInstruction currentPI) throws IOException {
 
                 if (currentPI == null) {
                         return;
                 }
 
-                this._writer.write("&lt;?");
+        this.writer.write("&lt;?");
 
                 String target = currentPI.getTarget();
                 int length = target.length();
 
                 for (int i = 0; i < length; i++) {
                         char c = target.charAt(i);
 
                         switch (c) {
 
                         case 0x0D:
-                                this._writer.write("&amp;#xD;");
+                this.writer.write("&amp;#xD;");
                                 break;
 
                         case ' ':
-                                this._writer.write("&middot;");
+                this.writer.write("&middot;");
                                 break;
 
                         case '\n':
-                                this._writer.write("&para;\n");
+                this.writer.write("&para;\n");
                                 break;
 
                         default:
-                                this._writer.write(c);
+                this.writer.write(c);
                                 break;
                         }
                 }
 
                 String data = currentPI.getData();
 
                 length = data.length();
 
                 if (length > 0) {
-                    this._writer.write(" ");
+            this.writer.write(" ");
 
                     for (int i = 0; i < length; i++) {
                         char c = data.charAt(i);
 
                         switch (c) {
 
                             case 0x0D:
-                                this._writer.write("&amp;#xD;");
+                    this.writer.write("&amp;#xD;");
                                 break;
 
                             default:
-                                this._writer.write(c);
+                    this.writer.write(c);
                                 break;
                         }
                     }
                 }
 
-                this._writer.write("?&gt;");
+        this.writer.write("?&gt;");
         }
 
         /**
          * Method outputCommentToWriter
          *
          * @param currentComment
          * @throws IOException
          */
-        private void outputCommentToWriter(Comment currentComment)
-                        throws IOException {
+    private void outputCommentToWriter(Comment currentComment) throws IOException {
 
                 if (currentComment == null) {
                         return;
                 }
 
-                this._writer.write("&lt;!--");
+        this.writer.write("&lt;!--");
 
                 String data = currentComment.getData();
                 int length = data.length();
 
                 for (int i = 0; i < length; i++) {
                         char c = data.charAt(i);
 
                         switch (c) {
 
                         case 0x0D:
-                                this._writer.write("&amp;#xD;");
+                this.writer.write("&amp;#xD;");
                                 break;
 
                         case ' ':
-                                this._writer.write("&middot;");
+                this.writer.write("&middot;");
                                 break;
 
                         case '\n':
-                                this._writer.write("&para;\n");
+                this.writer.write("&para;\n");
                                 break;
 
                         default:
-                                this._writer.write(c);
+                this.writer.write(c);
                                 break;
                         }
                 }
 
-                this._writer.write("--&gt;");
+        this.writer.write("--&gt;");
         }
 
         /**
          * Method outputTextToWriter
          *
          * @param text
          * @throws IOException
          */
         private void outputTextToWriter(String text) throws IOException {
-
                 if (text == null) {
                         return;
                 }
 
                 int length = text.length();

@@ -684,35 +596,35 @@
                         char c = text.charAt(i);
 
                         switch (c) {
 
                         case '&':
-                                this._writer.write("&amp;amp;");
+                this.writer.write("&amp;amp;");
                                 break;
 
                         case '<':
-                                this._writer.write("&amp;lt;");
+                this.writer.write("&amp;lt;");
                                 break;
 
                         case '>':
-                                this._writer.write("&amp;gt;");
+                this.writer.write("&amp;gt;");
                                 break;
 
                         case 0xD:
-                                this._writer.write("&amp;#xD;");
+                this.writer.write("&amp;#xD;");
                                 break;
 
                         case ' ':
-                                this._writer.write("&middot;");
+                this.writer.write("&middot;");
                                 break;
 
                         case '\n':
-                                this._writer.write("&para;\n");
+                this.writer.write("&para;\n");
                                 break;
 
                         default:
-                                this._writer.write(c);
+                this.writer.write(c);
                                 break;
                         }
                 }
         }
 }