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/08 17:40:39 UTC
svn commit: r1742843 - in
/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer:
ToStream.java XmlWriter.java
Author: veithen
Date: Sun May 8 17:40:39 2016
New Revision: 1742843
URL: http://svn.apache.org/viewvc?rev=1742843&view=rev
Log:
Reduce code duplication.
Modified:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/ToStream.java
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/XmlWriter.java
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=1742843&r1=1742842&r2=1742843&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 8 17:40:39 2016
@@ -943,10 +943,7 @@ abstract public class ToStream extends S
*/
codePoint = Encodings.toCodePoint(high, low);
// not in the encoding, so write out a character reference
- writer.write('&');
- writer.write('#');
- writer.write(Integer.toString(codePoint));
- writer.write(';');
+ writer.writeCharacterReference(codePoint);
} else {
/* The output encoding is not known,
* so just write it out as-is.
@@ -1057,12 +1054,7 @@ abstract public class ToStream extends S
}
else
{
- writer.write("&#");
-
- String intStr = Integer.toString((int) c);
-
- writer.write(intStr);
- writer.write(';');
+ writer.writeCharacterReference(c);
}
// if ((i != 0) && (i < (end - 1)))
@@ -1107,12 +1099,7 @@ abstract public class ToStream extends S
{
if (m_cdataTagOpen)
closeCDATA();
- writer.write("&#");
-
- String intStr = Integer.toString((int) c);
-
- writer.write(intStr);
- writer.write(';');
+ writer.writeCharacterReference(c);
}
}
}
@@ -1449,9 +1436,7 @@ abstract public class ToStream extends S
break;
default:
writeOutCleanChars(chars, i, lastDirtyCharProcessed);
- writer.write("&#");
- writer.write(Integer.toString(ch));
- writer.write(';');
+ writer.writeCharacterReference(ch);
lastDirtyCharProcessed = i;
break;
@@ -1467,9 +1452,7 @@ abstract public class ToStream extends S
// Range 0x7F through 0x9F inclusive
// More control characters, including NEL (0x85)
writeOutCleanChars(chars, i, lastDirtyCharProcessed);
- writer.write("&#");
- writer.write(Integer.toString(ch));
- writer.write(';');
+ writer.writeCharacterReference(ch);
lastDirtyCharProcessed = i;
}
else if (ch == CharInfo.S_LINE_SEPARATOR) {
@@ -1490,9 +1473,7 @@ abstract public class ToStream extends S
// (i.e. isn't in the encoding, etc.) then what
// should we do? We choose to write out an entity
writeOutCleanChars(chars, i, lastDirtyCharProcessed);
- writer.write("&#");
- writer.write(Integer.toString(ch));
- writer.write(';');
+ writer.writeCharacterReference(ch);
lastDirtyCharProcessed = i;
}
}
@@ -1711,9 +1692,7 @@ abstract public class ToStream extends S
codePoint = Encodings.toCodePoint(ch,next);
}
- writer.write("&#");
- writer.write(Integer.toString(codePoint));
- writer.write(';');
+ writer.writeCharacterReference(codePoint);
pos += 2; // count the two characters that went into writing out this entity
}
else
@@ -1725,18 +1704,14 @@ abstract public class ToStream extends S
*/
if (isCharacterInC0orC1Range(ch) || isNELorLSEPCharacter(ch))
{
- writer.write("&#");
- writer.write(Integer.toString(ch));
- writer.write(';');
+ writer.writeCharacterReference(ch);
}
else if ((!escapingNotNeeded(ch) ||
( (fromTextNode && m_charInfo.shouldMapTextChar(ch))
|| (!fromTextNode && m_charInfo.shouldMapAttrChar(ch))))
&& m_elemContext.m_currentElemDepth > 0)
{
- writer.write("&#");
- writer.write(Integer.toString(ch));
- writer.write(';');
+ writer.writeCharacterReference(ch);
}
else
{
@@ -1944,9 +1919,7 @@ abstract public class ToStream extends S
writer.write(" ");
break;
default:
- writer.write("&#");
- writer.write(Integer.toString(ch));
- writer.write(';');
+ writer.writeCharacterReference(ch);
break;
}
@@ -1959,9 +1932,7 @@ abstract public class ToStream extends S
else if (ch <= 0x9F){
// Range 0x7F through 0x9F inclusive
// More control characters
- writer.write("&#");
- writer.write(Integer.toString(ch));
- writer.write(';');
+ writer.writeCharacterReference(ch);
}
else if (ch == CharInfo.S_LINE_SEPARATOR) {
// LINE SEPARATOR
@@ -1978,9 +1949,7 @@ abstract public class ToStream extends S
// but if the character wasn't previously handled
// (i.e. isn't in the encoding, etc.) then what
// should we do? We choose to write out a character ref
- writer.write("&#");
- writer.write(Integer.toString(ch));
- writer.write(';');
+ writer.writeCharacterReference(ch);
}
}
Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/XmlWriter.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/XmlWriter.java?rev=1742843&r1=1742842&r2=1742843&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/XmlWriter.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/XmlWriter.java Sun May 8 17:40:39 2016
@@ -25,4 +25,11 @@ abstract class XmlWriter {
abstract void write(String s) throws IOException;
abstract void write(final char chars[], final int start, final int length) throws IOException;
abstract void flush() throws IOException;
+
+ final void writeCharacterReference(int codePoint) throws IOException {
+ write("&#");
+ // TODO: optimize this
+ write(Integer.toString(codePoint));
+ write(';');
+ }
}