< prev index next >

src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/SAX2StAXEventWriter.java

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2020, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.  Oracle designates this

@@ -36,130 +36,88 @@
 import javax.xml.stream.XMLEventWriter;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.events.*;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
-import org.xml.sax.ext.Locator2;
 
 /**
  * @author Sunitha Reddy
  */
 public class SAX2StAXEventWriter extends SAX2StAXBaseWriter {
 
-
     private XMLEventWriter writer;
 
-
     private XMLEventFactory eventFactory;
 
-
     private List<Collection<Namespace>> namespaceStack = new ArrayList<>();
 
-
     private boolean needToCallStartDocument = false;
 
-
     public SAX2StAXEventWriter() {
-
         eventFactory = XMLEventFactory.newInstance();
-
     }
 
-
     public SAX2StAXEventWriter(XMLEventWriter writer) {
-
         this.writer = writer;
         eventFactory = XMLEventFactory.newInstance();
-
     }
 
     public SAX2StAXEventWriter(XMLEventWriter writer,
             XMLEventFactory factory) {
 
         this.writer = writer;
         if (factory != null) {
-
             this.eventFactory = factory;
-
         } else {
-
             eventFactory = XMLEventFactory.newInstance();
-
         }
-
     }
 
     public XMLEventWriter getEventWriter() {
-
         return writer;
-
     }
 
-
     public void setEventWriter(XMLEventWriter writer) {
-
         this.writer = writer;
-
     }
 
-
     public XMLEventFactory getEventFactory() {
-
         return eventFactory;
-
     }
 
-
     public void setEventFactory(XMLEventFactory factory) {
-
         this.eventFactory = factory;
-
     }
 
     public void startDocument() throws SAXException {
-
         super.startDocument();
-
         namespaceStack.clear();
-
         eventFactory.setLocation(getCurrentLocation());
 
         // Encoding and version info will be available only after startElement
         // is called for first time. So, defer START_DOCUMENT event of StAX till
         // that point of time.
         needToCallStartDocument = true;
     }
 
-    private void writeStartDocument() throws SAXException {
+    void writeStartDocument() throws SAXException {
+        super.writeStartDocument();
         try {
-            if (docLocator == null)
-                writer.add(eventFactory.createStartDocument());
-            else {
-                try{
-                    writer.add(eventFactory.createStartDocument(((Locator2)docLocator).getEncoding(),((Locator2)docLocator).getXMLVersion()));
-                } catch(ClassCastException e){
-                    writer.add(eventFactory.createStartDocument());
-                }
-            }
+            writer.add(eventFactory.createStartDocument(encoding, xmlVersion));
         } catch (XMLStreamException e) {
             throw new SAXException(e);
         }
         needToCallStartDocument = false;
     }
 
     public void endDocument() throws SAXException {
-
         eventFactory.setLocation(getCurrentLocation());
 
         try {
-
             writer.add(eventFactory.createEndDocument());
-
         } catch (XMLStreamException e) {
-
             throw new SAXException(e);
-
         }
 
         super.endDocument();
 
         // clear the namespaces

@@ -167,11 +125,10 @@
 
     }
 
     @SuppressWarnings({"rawtypes", "unchecked"})
     public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
-
         if (needToCallStartDocument) {
             writeStartDocument();
         }
 
         // set document location

@@ -182,25 +139,19 @@
         createStartEvents(attributes, events);
 
         namespaceStack.add(events[0]);
 
         try {
-
             String[] qname = {null, null};
             parseQName(qName, qname);
 
             writer.add(eventFactory.createStartElement(qname[0], uri,
                     qname[1], events[1].iterator(), events[0].iterator()));
-
         } catch (XMLStreamException e) {
-
             throw new SAXException(e);
-
         } finally {
-
             super.startElement(uri, localName, qName, attributes);
-
         }
 
     }
 
     public void endElement(String uri, String localName, String qName)

@@ -217,20 +168,15 @@
         // get namespaces
         Collection<Namespace> nsList = namespaceStack.remove(namespaceStack.size() - 1);
         Iterator<Namespace> nsIter = nsList.iterator();
 
         try {
-
             writer.add(eventFactory.createEndElement(qname[0], uri, qname[1],
                     nsIter));
-
         } catch (XMLStreamException e) {
-
             throw new SAXException(e);
-
         }
-
     }
 
     public void comment(char[] ch, int start, int length) throws SAXException {
         if (needToCallStartDocument) {
             // Drat. We were trying to postpone this until the first element so that we could get

@@ -241,51 +187,39 @@
 
         super.comment(ch, start, length);
 
         eventFactory.setLocation(getCurrentLocation());
         try {
-
             writer.add(eventFactory.createComment(new String(ch, start,
                     length)));
-
         } catch (XMLStreamException e) {
-
             throw new SAXException(e);
-
         }
-
     }
 
     public void characters(char[] ch, int start, int length)
             throws SAXException {
 
         super.characters(ch, start, length);
 
         try {
-
             if (!isCDATA) {
-
                 eventFactory.setLocation(getCurrentLocation());
                 writer.add(eventFactory.createCharacters(new String(ch,
                         start, length)));
-
             }
 
         } catch (XMLStreamException e) {
-
             throw new SAXException(e);
-
         }
-
     }
 
     public void ignorableWhitespace(char[] ch, int start, int length)
             throws SAXException {
 
         super.ignorableWhitespace(ch, start, length);
         characters(ch, start, length);
-
     }
 
     public void processingInstruction(String target, String data)
             throws SAXException {
 

@@ -296,36 +230,26 @@
             writeStartDocument();
         }
 
         super.processingInstruction(target, data);
         try {
-
             writer.add(eventFactory.createProcessingInstruction(target, data));
-
         } catch (XMLStreamException e) {
-
             throw new SAXException(e);
-
         }
-
     }
 
     public void endCDATA() throws SAXException {
 
         eventFactory.setLocation(getCurrentLocation());
         try {
-
             writer.add(eventFactory.createCData(CDATABuffer.toString()));
-
         } catch (XMLStreamException e) {
-
             throw new SAXException(e);
-
         }
 
         super.endCDATA();
-
     }
 
     @SuppressWarnings({"rawtypes", "unchecked"})
     protected void createStartEvents(Attributes attributes, Collection<Attribute>[] events) {
 

@@ -371,47 +295,33 @@
                     Namespace ns = createNamespace(attrLocal, attrValue);
                     nsMap.put(attrLocal, ns);
                 }
 
             } else {
-
                 Attribute attribute;
                 if (attrPrefix.length() > 0) {
-
                     attribute = eventFactory.createAttribute(attrPrefix,
                             attrURI, attrLocal, attrValue);
-
                 } else {
-
                     attribute = eventFactory.createAttribute(attrLocal,
                             attrValue);
-
                 }
 
                 if (attrs == null) {
                     attrs = new ArrayList<>();
                 }
                 attrs.add(attribute);
-
             }
         }
 
         events[0] = (nsMap == null ? Collections.EMPTY_LIST : nsMap.values());
         events[1] = (attrs == null ? Collections.EMPTY_LIST : attrs);
-
     }
 
     protected Namespace createNamespace(String prefix, String uri) {
-
         if (prefix == null || prefix.length() == 0) {
-
             return eventFactory.createNamespace(uri);
-
         } else {
-
             return eventFactory.createNamespace(prefix, uri);
-
         }
-
     }
-
 }
< prev index next >