Author: mrglavas
Date: Mon Jul 12 11:51:27 2010
New Revision: 963245
URL: http://svn.apache.org/viewvc?rev=963245&view=rev
Log:
Eliminate unnecessary creation of XMLStrings an char arrays in the construction
of synthetic annotations.
Modified:
xerces/java/trunk/src/org/apache/xerces/impl/xs/opti/SchemaDOM.java
xerces/java/trunk/src/org/apache/xerces/impl/xs/opti/SchemaDOMParser.java
Modified: xerces/java/trunk/src/org/apache/xerces/impl/xs/opti/SchemaDOM.java
URL:
http://svn.apache.org/viewvc/xerces/java/trunk/src/org/apache/xerces/impl/xs/opti/SchemaDOM.java?rev=963245&r1=963244&r2=963245&view=diff
==============================================================================
--- xerces/java/trunk/src/org/apache/xerces/impl/xs/opti/SchemaDOM.java
(original)
+++ xerces/java/trunk/src/org/apache/xerces/impl/xs/opti/SchemaDOM.java Mon Jul
12 11:51:27 2010
@@ -52,7 +52,7 @@ public class SchemaDOM extends DefaultDo
boolean inCDATA;
// for annotation support:
- StringBuffer fAnnotationBuffer = null;
+ private StringBuffer fAnnotationBuffer = null;
public SchemaDOM() {
reset();
@@ -165,32 +165,33 @@ public class SchemaDOM extends DefaultDo
}
// note that this will only be called within appinfo/documentation
- void characters(XMLString text ) {
+ void characters(XMLString text) {
// escape characters if necessary
- if (!inCDATA) {
- for (int i = text.offset; i < text.offset+text.length; ++i ) {
+ if (!inCDATA) {
+ final StringBuffer annotationBuffer = fAnnotationBuffer;
+ for (int i = text.offset; i < text.offset+text.length; ++i) {
char ch = text.ch[i];
if (ch == '&') {
- fAnnotationBuffer.append("&");
+ annotationBuffer.append("&");
}
else if (ch == '<') {
- fAnnotationBuffer.append("<");
+ annotationBuffer.append("<");
}
// character sequence "]]>" cannot appear in content,
// therefore we should escape '>'.
else if (ch == '>') {
- fAnnotationBuffer.append(">");
+ annotationBuffer.append(">");
}
// If CR is part of the document's content, it
// must not be printed as a literal otherwise
// it would be normalized to LF when the document
// is reparsed.
else if (ch == '\r') {
- fAnnotationBuffer.append("
");
+ annotationBuffer.append("
");
}
else {
- fAnnotationBuffer.append(ch);
+ annotationBuffer.append(ch);
}
}
}
@@ -199,6 +200,11 @@ public class SchemaDOM extends DefaultDo
}
}
+ // note that this will only be called within appinfo/documentation
+ void charactersRaw(String text) {
+ fAnnotationBuffer.append(text);
+ }
+
void endAnnotation(QName elemName, ElementImpl annotation) {
fAnnotationBuffer.append("\n</").append(elemName.rawname).append(">");
annotation.fAnnotation = fAnnotationBuffer.toString();
Modified:
xerces/java/trunk/src/org/apache/xerces/impl/xs/opti/SchemaDOMParser.java
URL:
http://svn.apache.org/viewvc/xerces/java/trunk/src/org/apache/xerces/impl/xs/opti/SchemaDOMParser.java?rev=963245&r1=963244&r2=963245&view=diff
==============================================================================
--- xerces/java/trunk/src/org/apache/xerces/impl/xs/opti/SchemaDOMParser.java
(original)
+++ xerces/java/trunk/src/org/apache/xerces/impl/xs/opti/SchemaDOMParser.java
Mon Jul 12 11:51:27 2010
@@ -298,7 +298,7 @@ public class SchemaDOMParser extends Def
schemaDOM.startAnnotation(annQName, attributes, fNamespaceContext);
QName elemQName = new QName(schemaPrefix,
SchemaSymbols.ELT_DOCUMENTATION, schemaPrefix + (schemaPrefix.length() ==
0?"":":") + SchemaSymbols.ELT_DOCUMENTATION, SchemaSymbols.URI_SCHEMAFORSCHEMA);
schemaDOM.startAnnotationElement(elemQName, attributes);
- schemaDOM.characters(new
XMLString("SYNTHETIC_ANNOTATION".toCharArray(), 0, 20 ));
+ schemaDOM.charactersRaw("SYNTHETIC_ANNOTATION");
schemaDOM.endSyntheticAnnotationElement(elemQName, false);
schemaDOM.endSyntheticAnnotationElement(annQName, true);
@@ -381,7 +381,7 @@ public class SchemaDOMParser extends Def
schemaDOM.startAnnotation(annQName, fEmptyAttr,
fNamespaceContext);
QName elemQName = new QName(schemaPrefix,
SchemaSymbols.ELT_DOCUMENTATION, schemaPrefix + (schemaPrefix.length() ==
0?"":":") + SchemaSymbols.ELT_DOCUMENTATION, SchemaSymbols.URI_SCHEMAFORSCHEMA);
schemaDOM.startAnnotationElement(elemQName, fEmptyAttr);
- schemaDOM.characters(new
XMLString("SYNTHETIC_ANNOTATION".toCharArray(), 0, 20 ));
+ schemaDOM.charactersRaw("SYNTHETIC_ANNOTATION");
schemaDOM.endSyntheticAnnotationElement(elemQName, false);
schemaDOM.endSyntheticAnnotationElement(annQName, true);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]