| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package com.dom_distiller.client; | 5 package com.dom_distiller.client; |
| 6 | 6 |
| 7 import com.dom_distiller.client.sax.Attributes; | 7 import com.dom_distiller.client.sax.Attributes; |
| 8 import com.dom_distiller.client.sax.ContentHandler; | 8 import com.dom_distiller.client.sax.ContentHandler; |
| 9 import com.google.gwt.core.client.JsArray; |
| 10 import com.google.gwt.dom.client.Element; |
| 11 import com.google.gwt.dom.client.Node; |
| 9 | 12 |
| 10 /** | 13 /** |
| 11 * This is a simple SAX content handler that converts sax events to an xml docum
ent. It only handles | 14 * This is a simple SAX content handler that converts sax events to an xml docum
ent. It only handles |
| 12 * a small subset of those events. | 15 * a small subset of those events. |
| 13 */ | 16 */ |
| 14 class SimpleContentHandler implements ContentHandler { | 17 class SimpleContentHandler implements ContentHandler { |
| 15 | 18 |
| 19 private StringBuilder documentStringBuilder; |
| 20 |
| 16 SimpleContentHandler() { | 21 SimpleContentHandler() { |
| 17 documentStringBuilder = new StringBuilder(); | 22 documentStringBuilder = new StringBuilder(); |
| 18 } | 23 } |
| 19 | 24 |
| 20 String getDocumentString() { | 25 String getDocumentString() { |
| 21 return documentStringBuilder.toString(); | 26 return documentStringBuilder.toString(); |
| 22 } | 27 } |
| 23 | 28 |
| 24 @Override | 29 @Override |
| 25 public void endDocument() {} | 30 public void endDocument() {} |
| 26 | 31 |
| 27 @Override | 32 @Override |
| 28 public void ignorableWhitespace(char[] ch, int start, int length) {} | 33 public void ignorableWhitespace(char[] ch, int start, int length) {} |
| 29 | 34 |
| 30 @Override | 35 @Override |
| 31 public void startDocument() {} | 36 public void startDocument() {} |
| 32 | 37 |
| 33 @Override | 38 @Override |
| 34 public void startElement(String uri, String localName, String qName, Attribu
tes atts) { | 39 public void startElement(Element element, Attributes atts) { |
| 35 documentStringBuilder.append("<" + localName); | 40 documentStringBuilder.append("<"); |
| 36 for (int i = 0; i < atts.getLength(); i++) { | 41 documentStringBuilder.append(element.getTagName()); |
| 42 JsArray<Node> attributes = DomUtil.getAttributes(element); |
| 43 for (int i = 0; i < attributes.length(); i++) { |
| 44 Node node = attributes.get(i); |
| 37 documentStringBuilder.append(" "); | 45 documentStringBuilder.append(" "); |
| 38 documentStringBuilder.append(atts.getLocalName(i)); | 46 documentStringBuilder.append(node.getNodeName()); |
| 39 documentStringBuilder.append("=\""); | 47 documentStringBuilder.append("=\""); |
| 40 documentStringBuilder.append(atts.getValue(i)); | 48 documentStringBuilder.append(node.getNodeValue()); |
| 41 documentStringBuilder.append("\""); | 49 documentStringBuilder.append("\""); |
| 42 | |
| 43 } | 50 } |
| 44 documentStringBuilder.append(">"); | 51 documentStringBuilder.append(">"); |
| 45 } | 52 } |
| 46 | 53 |
| 47 @Override | 54 @Override |
| 48 public void endElement(String uri, String localName, String qName) { | 55 public void endElement(Element element) { |
| 49 documentStringBuilder.append("</" + localName + ">"); | 56 documentStringBuilder.append("</" + element.getTagName() + ">"); |
| 50 } | 57 } |
| 51 | 58 |
| 52 @Override | 59 @Override |
| 53 public void characters(char[] ch, int start, int length) { | 60 public void characters(char[] ch, int start, int length) { |
| 54 documentStringBuilder.append(ch, start, length); | 61 documentStringBuilder.append(ch, start, length); |
| 55 } | 62 } |
| 56 | |
| 57 private StringBuilder documentStringBuilder; | |
| 58 } | 63 } |
| OLD | NEW |