You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2016/05/22 08:59:13 UTC

svn commit: r1745027 - in /webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer: SerializerWriter.java SerializerXmlHandler.java ToStream.java

Author: veithen
Date: Sun May 22 08:59:12 2016
New Revision: 1745027

URL: http://svn.apache.org/viewvc?rev=1745027&view=rev
Log:
Use a single way to convert strings to char arrays in the serializer.

Modified:
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/SerializerWriter.java
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/SerializerXmlHandler.java
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/ToStream.java

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/SerializerWriter.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/SerializerWriter.java?rev=1745027&r1=1745026&r2=1745027&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/SerializerWriter.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/SerializerWriter.java Sun May 22 08:59:12 2016
@@ -42,6 +42,15 @@ final class SerializerWriter extends Wri
         }
     }
 
+    @Override
+    public void write(String str, int off, int len) throws IOException {
+        try {
+            serializer.characters(str, off, len);
+        } catch (StreamException ex) {
+            throw new IOException(ex);
+        }
+    }
+
     public void close() throws IOException {
     }
 

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/SerializerXmlHandler.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/SerializerXmlHandler.java?rev=1745027&r1=1745026&r2=1745027&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/SerializerXmlHandler.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/SerializerXmlHandler.java Sun May 22 08:59:12 2016
@@ -29,8 +29,6 @@ import org.apache.axiom.core.stream.seri
 
 public class SerializerXmlHandler implements XmlHandler {
     private final ToStream serializer;
-    private char[] buffer = new char[4096];
-    private int bufferPos;
     
     public SerializerXmlHandler(Writer writer) {
         this.serializer = new ToStream(writer);
@@ -82,28 +80,9 @@ public class SerializerXmlHandler implem
         serializer.endElement();
     }
 
-    private void writeToBuffer(String data) {
-        int dataLen = data.length();
-        if (buffer.length-bufferPos < dataLen) {
-            int newLength = buffer.length;
-            do {
-                newLength *= 2;
-            } while (newLength-bufferPos < dataLen);
-            char[] newBuffer = new char[newLength];
-            System.arraycopy(buffer, 0, newBuffer, 0, bufferPos);
-            buffer = newBuffer;
-        }
-        data.getChars(0, dataLen, buffer, bufferPos);
-        bufferPos += dataLen;
-    }
-
     public void processCharacterData(Object data, boolean ignorable) throws StreamException {
         serializer.closeStartTag();
-        if (ignorable) {
-            writeToBuffer(data.toString());
-            serializer.ignorableWhitespace(buffer, 0, bufferPos);
-            bufferPos = 0;
-        } else if (data instanceof CharacterData) {
+        if (data instanceof CharacterData) {
             try {
                 ((CharacterData)data).writeTo(new SerializerWriter(serializer));
             } catch (IOException ex) {
@@ -115,9 +94,7 @@ public class SerializerXmlHandler implem
                 }
             }
         } else {
-            writeToBuffer(data.toString());
-            serializer.characters(buffer, 0, bufferPos);
-            bufferPos = 0;
+            serializer.characters(data.toString());
         }
     }
     

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/ToStream.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/ToStream.java?rev=1745027&r1=1745026&r2=1745027&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/ToStream.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/ToStream.java Sun May 22 08:59:12 2016
@@ -577,21 +577,16 @@ public final class ToStream extends Seri
         return (ch == 0x85 || ch == 0x2028);
     }
 
-    /**
-     * Receive notification of character data.
-     *
-     * @param s The string of characters to process.
-     *
-     * @throws StreamException
-     */
-    public void characters(String s) throws StreamException
-    {
-        final int length = s.length();
+    public void characters(String s) throws StreamException {
+        characters(s, 0, s.length());
+    }
+
+    public void characters(String s, int start, int length) throws StreamException {
         if (length > m_charsBuff.length)
         {
             m_charsBuff = new char[length * 2 + 1];
         }
-        s.getChars(0, length, m_charsBuff, 0);
+        s.getChars(start, length, m_charsBuff, 0);
         characters(m_charsBuff, 0, length);
     }
 
@@ -865,29 +860,6 @@ public final class ToStream extends Seri
     }
 
     /**
-     * Receive notification of ignorable whitespace in element content.
-     * 
-     * Not sure how to get this invoked quite yet.
-     * 
-     * @param ch The characters from the XML document.
-     * @param start The start position in the array.
-     * @param length The number of characters to read from the array.
-     * @throws StreamException Any SAX exception, possibly
-     *            wrapping another exception.
-     * @see #characters
-     * 
-     * @throws StreamException
-     */
-    public void ignorableWhitespace(char ch[], int start, int length)
-        throws StreamException
-    {
-
-        if (0 == length)
-            return;
-        characters(ch, start, length);
-    }
-
-    /**
      * Report the start of a CDATA section.
      * 
      * @throws StreamException The application may raise an exception.