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.