You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by gb...@apache.org on 2009/11/12 21:50:48 UTC

svn commit: r835536 - in /incubator/pivot/trunk: core/src/org/apache/pivot/xml/XMLSerializer.java tools/src/org/apache/pivot/tools/xml/XMLViewer.java wtk/src/org/apache/pivot/wtkx/WTKXSerializer.java

Author: gbrown
Date: Thu Nov 12 20:50:48 2009
New Revision: 835536

URL: http://svn.apache.org/viewvc?rev=835536&view=rev
Log:
Add write capability to XMLSerializer.

Modified:
    incubator/pivot/trunk/core/src/org/apache/pivot/xml/XMLSerializer.java
    incubator/pivot/trunk/tools/src/org/apache/pivot/tools/xml/XMLViewer.java
    incubator/pivot/trunk/wtk/src/org/apache/pivot/wtkx/WTKXSerializer.java

Modified: incubator/pivot/trunk/core/src/org/apache/pivot/xml/XMLSerializer.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/core/src/org/apache/pivot/xml/XMLSerializer.java?rev=835536&r1=835535&r2=835536&view=diff
==============================================================================
--- incubator/pivot/trunk/core/src/org/apache/pivot/xml/XMLSerializer.java (original)
+++ incubator/pivot/trunk/core/src/org/apache/pivot/xml/XMLSerializer.java Thu Nov 12 20:50:48 2009
@@ -89,91 +89,84 @@
 
         // Parse the XML stream
         XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
+        xmlInputFactory.setProperty("javax.xml.stream.isCoalescing", true);
 
         Element document = null;
 
         try {
-            XMLStreamReader xmlStreamReader = null;
+            XMLStreamReader xmlStreamReader = xmlInputFactory.createXMLStreamReader(reader);
 
-            try {
-                xmlStreamReader = xmlInputFactory.createXMLStreamReader(reader);
+            Element current = null;
 
-                Element current = null;
+            while (xmlStreamReader.hasNext()) {
+                int event = xmlStreamReader.next();
 
-                while (xmlStreamReader.hasNext()) {
-                    int event = xmlStreamReader.next();
+                switch (event) {
+                    case XMLStreamConstants.CHARACTERS: {
+                        if (!xmlStreamReader.isWhiteSpace()) {
+                            String text = xmlStreamReader.getText();
+                            current.add(new TextNode(text));
+                        }
 
-                    switch (event) {
-                        case XMLStreamConstants.CHARACTERS: {
-                            if (!xmlStreamReader.isWhiteSpace()) {
-                                String text = xmlStreamReader.getText();
-                                current.add(new TextNode(text));
-                            }
+                        break;
+                    }
 
-                            break;
+                    case XMLStreamConstants.START_ELEMENT: {
+                        // Create the element
+                        String prefix = xmlStreamReader.getPrefix();
+                        if (prefix != null
+                            && prefix.length() == 0) {
+                            prefix = null;
                         }
 
-                        case XMLStreamConstants.START_ELEMENT: {
-                            // Create the element
-                            String prefix = xmlStreamReader.getPrefix();
-                            if (prefix != null
-                                && prefix.length() == 0) {
-                                prefix = null;
-                            }
+                        String localName = xmlStreamReader.getLocalName();
 
-                            String localName = xmlStreamReader.getLocalName();
+                        Element element = new Element(prefix, localName);
 
-                            Element element = new Element(prefix, localName);
+                        // Get the element's namespaces
+                        for (int i = 0, n = xmlStreamReader.getNamespaceCount(); i < n; i++) {
+                            String namespacePrefix = xmlStreamReader.getNamespacePrefix(i);
+                            String namespaceURI = xmlStreamReader.getNamespaceURI(i);
 
-                            // Get the element's namespaces
-                            for (int i = 0, n = xmlStreamReader.getNamespaceCount(); i < n; i++) {
-                                String namespacePrefix = xmlStreamReader.getNamespacePrefix(i);
-                                String namespaceURI = xmlStreamReader.getNamespaceURI(i);
-
-                                if (namespacePrefix == null) {
-                                    element.setDefaultNamespaceURI(namespaceURI);
-                                } else {
-                                    element.getNamespaces().put(namespacePrefix, namespaceURI);
-                                }
+                            if (namespacePrefix == null) {
+                                element.setDefaultNamespaceURI(namespaceURI);
+                            } else {
+                                element.getNamespaces().put(namespacePrefix, namespaceURI);
                             }
+                        }
 
-                            // Get the element's attributes
-                            for (int i = 0, n = xmlStreamReader.getAttributeCount(); i < n; i++) {
-                                String attributePrefix = xmlStreamReader.getAttributePrefix(i);
-                                if (attributePrefix != null
-                                    && attributePrefix.length() == 0) {
-                                    attributePrefix = null;
-                                }
-
-                                String attributeLocalName = xmlStreamReader.getAttributeLocalName(i);
-                                String attributeValue = xmlStreamReader.getAttributeValue(i);
-
-                                element.getAttributes().add(new Element.Attribute(attributePrefix,
-                                    attributeLocalName, attributeValue));
+                        // Get the element's attributes
+                        for (int i = 0, n = xmlStreamReader.getAttributeCount(); i < n; i++) {
+                            String attributePrefix = xmlStreamReader.getAttributePrefix(i);
+                            if (attributePrefix != null
+                                && attributePrefix.length() == 0) {
+                                attributePrefix = null;
                             }
 
-                            if (current == null) {
-                                document = element;
-                            } else {
-                                current.add(element);
-                            }
+                            String attributeLocalName = xmlStreamReader.getAttributeLocalName(i);
+                            String attributeValue = xmlStreamReader.getAttributeValue(i);
 
-                            current = element;
+                            element.getAttributes().add(new Element.Attribute(attributePrefix,
+                                attributeLocalName, attributeValue));
+                        }
 
-                            break;
+                        if (current == null) {
+                            document = element;
+                        } else {
+                            current.add(element);
                         }
 
-                        case XMLStreamConstants.END_ELEMENT: {
-                            // Move up the stack
-                            current = current.getParent();
+                        current = element;
 
-                            break;
-                        }
+                        break;
+                    }
+
+                    case XMLStreamConstants.END_ELEMENT: {
+                        // Move up the stack
+                        current = current.getParent();
+
+                        break;
                     }
-                }
-            } finally {
-                if (xmlStreamReader != null) {
-                    xmlStreamReader.close();
                 }
             }
         } catch (XMLStreamException exception) {
@@ -193,6 +186,7 @@
         Writer writer = new BufferedWriter(new OutputStreamWriter(outputStream, charset),
             BUFFER_SIZE);
         writeObject(element, writer);
+        writer.flush();
     }
 
     public void writeObject(Element element, Writer writer) throws SerializationException {
@@ -207,19 +201,10 @@
         XMLOutputFactory output = XMLOutputFactory.newInstance();
 
         try {
-            XMLStreamWriter xmlStreamWriter = null;
-
-            try {
-                xmlStreamWriter = output.createXMLStreamWriter(writer);
-
-                xmlStreamWriter.writeStartDocument();
-                writeElement(element, xmlStreamWriter);
-                xmlStreamWriter.writeEndDocument();
-            } finally {
-                if (xmlStreamWriter != null) {
-                    xmlStreamWriter.close();
-                }
-            }
+            XMLStreamWriter xmlStreamWriter = output.createXMLStreamWriter(writer);
+            xmlStreamWriter.writeStartDocument();
+            writeElement(element, xmlStreamWriter);
+            xmlStreamWriter.writeEndDocument();
         } catch (XMLStreamException exception) {
             throw new SerializationException(exception);
         }

Modified: incubator/pivot/trunk/tools/src/org/apache/pivot/tools/xml/XMLViewer.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/tools/src/org/apache/pivot/tools/xml/XMLViewer.java?rev=835536&r1=835535&r2=835536&view=diff
==============================================================================
--- incubator/pivot/trunk/tools/src/org/apache/pivot/tools/xml/XMLViewer.java (original)
+++ incubator/pivot/trunk/tools/src/org/apache/pivot/tools/xml/XMLViewer.java Thu Nov 12 20:50:48 2009
@@ -168,6 +168,14 @@
             ArrayList<HashMap<String, String>> namespacesTableData =
                 new ArrayList<HashMap<String, String>>();
 
+            String defaultNamespaceURI = element.getDefaultNamespaceURI();
+            if (defaultNamespaceURI != null) {
+                HashMap<String, String> row = new HashMap<String, String>();
+                row.put("prefix", "(default)");
+                row.put("uri", defaultNamespaceURI);
+                namespacesTableData.add(row);
+            }
+
             Element.NamespaceDictionary namespaceDictionary = element.getNamespaces();
             for (String prefix : namespaceDictionary) {
                 HashMap<String, String> row = new HashMap<String, String>();
@@ -213,14 +221,6 @@
         Sequence.Tree.Path path = new Sequence.Tree.Path(0);
         treeView.expandBranch(path);
         treeView.setSelectedPath(path);
-
-        XMLSerializer xmlSerializer = new XMLSerializer();
-
-        try {
-            xmlSerializer.writeObject(document, System.out);
-        } catch (Exception exception) {
-            System.err.println("\n" + exception);
-        }
     }
 
     public static void main(String[] args) {

Modified: incubator/pivot/trunk/wtk/src/org/apache/pivot/wtkx/WTKXSerializer.java
URL: http://svn.apache.org/viewvc/incubator/pivot/trunk/wtk/src/org/apache/pivot/wtkx/WTKXSerializer.java?rev=835536&r1=835535&r2=835536&view=diff
==============================================================================
--- incubator/pivot/trunk/wtk/src/org/apache/pivot/wtkx/WTKXSerializer.java (original)
+++ incubator/pivot/trunk/wtk/src/org/apache/pivot/wtkx/WTKXSerializer.java Thu Nov 12 20:50:48 2009
@@ -406,40 +406,32 @@
 
         try {
             try {
-                XMLStreamReader xmlStreamReader = null;
+                XMLStreamReader xmlStreamReader = xmlInputFactory.createXMLStreamReader(inputStream);
 
-                try {
-                    xmlStreamReader = xmlInputFactory.createXMLStreamReader(inputStream);
-
-                    while (xmlStreamReader.hasNext()) {
-                        int event = xmlStreamReader.next();
+                while (xmlStreamReader.hasNext()) {
+                    int event = xmlStreamReader.next();
 
-                        switch (event) {
-                            case XMLStreamConstants.PROCESSING_INSTRUCTION: {
-                                processProcessingInstruction(xmlStreamReader);
-                                break;
-                            }
+                    switch (event) {
+                        case XMLStreamConstants.PROCESSING_INSTRUCTION: {
+                            processProcessingInstruction(xmlStreamReader);
+                            break;
+                        }
 
-                            case XMLStreamConstants.CHARACTERS: {
-                                processCharacters(xmlStreamReader);
-                                break;
-                            }
+                        case XMLStreamConstants.CHARACTERS: {
+                            processCharacters(xmlStreamReader);
+                            break;
+                        }
 
-                            case XMLStreamConstants.START_ELEMENT: {
-                                processStartElement(xmlStreamReader);
-                                break;
-                            }
+                        case XMLStreamConstants.START_ELEMENT: {
+                            processStartElement(xmlStreamReader);
+                            break;
+                        }
 
-                            case XMLStreamConstants.END_ELEMENT: {
-                                processEndElement(xmlStreamReader);
-                                break;
-                            }
+                        case XMLStreamConstants.END_ELEMENT: {
+                            processEndElement(xmlStreamReader);
+                            break;
                         }
                     }
-                } finally {
-                    if (xmlStreamReader != null) {
-                        xmlStreamReader.close();
-                    }
                 }
             } catch (XMLStreamException exception) {
                 throw new SerializationException(exception);