mkwan 2003/02/25 11:14:51
Modified: java/src/org/apache/xalan/xsltc Tag: XSLTC_DTM DOM.java
java/src/org/apache/xalan/xsltc/compiler Tag: XSLTC_DTM
Constants.java Message.java
java/src/org/apache/xalan/xsltc/dom Tag: XSLTC_DTM
DOMAdapter.java DOMImpl.java MultiDOM.java
SAXImpl.java
Log:
Propagate the Message and getTreeString() changes
from the head branch to XSLTC_DTM.
Revision Changes Path
No revision
No revision
1.9.10.11 +1 -2 xml-xalan/java/src/org/apache/xalan/xsltc/DOM.java
Index: DOM.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/DOM.java,v
retrieving revision 1.9.10.10
retrieving revision 1.9.10.11
diff -u -r1.9.10.10 -r1.9.10.11
--- DOM.java 30 Jan 2003 18:41:35 -0000 1.9.10.10
+++ DOM.java 25 Feb 2003 19:14:48 -0000 1.9.10.11
@@ -84,7 +84,6 @@
/** returns singleton iterator containg the document root */
public DTMAxisIterator getIterator();
public String getStringValue();
- public String getTreeString(); // this one includes PIs and comments...
public DTMAxisIterator getChildren(final int node);
public DTMAxisIterator getTypedChildren(final int type);
No revision
No revision
1.19.2.11 +9 -1
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Constants.java
Index: Constants.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Constants.java,v
retrieving revision 1.19.2.10
retrieving revision 1.19.2.11
diff -u -r1.19.2.10 -r1.19.2.11
--- Constants.java 27 Jan 2003 19:44:29 -0000 1.19.2.10
+++ Constants.java 25 Feb 2003 19:14:48 -0000 1.19.2.11
@@ -179,6 +179,10 @@
= "org/apache/xalan/xsltc/TransletOutputHandler";
public static final String OUTPUT_HANDLER_SIG
= "Lorg/apache/xalan/xsltc/TransletOutputHandler;";
+ public static final String OUTPUT_BASE
+ = "org/apache/xalan/xsltc/runtime/output/OutputBase";
+ public static final String STREAM_XML_OUTPUT
+ = "org/apache/xalan/xsltc/runtime/output/StreamXMLOutput";
public static final String FILTER_INTERFACE
= "org.apache.xalan.xsltc.dom.Filter";
public static final String FILTER_INTERFACE_SIG
@@ -284,6 +288,10 @@
= "java.lang.Boolean";
public static final String STRING_BUFFER_CLASS
= "java.lang.StringBuffer";
+ public static final String STRING_WRITER
+ = "java.io.StringWriter";
+ public static final String WRITER_SIG
+ = "Ljava/io/Writer;";
public static final String TRANSLET_OUTPUT_BASE
= "org.apache.xalan.xsltc.TransletOutputBase";
1.6.6.3 +66 -9
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Message.java
Index: Message.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Message.java,v
retrieving revision 1.6.6.2
retrieving revision 1.6.6.3
diff -u -r1.6.6.2 -r1.6.6.3
--- Message.java 30 Jan 2003 18:41:37 -0000 1.6.6.2
+++ Message.java 25 Feb 2003 19:14:48 -0000 1.6.6.3
@@ -99,13 +99,70 @@
// Load the translet (for call to displayMessage() function)
il.append(classGen.loadTranslet());
- // Get the contents of the message
- compileResultTree(classGen, methodGen);
- // Convert the
- final int toStr = cpg.addInterfaceMethodref(DOM_INTF,
- "getTreeString",
- "()"+STRING_SIG);
- il.append(new INVOKEINTERFACE(toStr, 1));
+ switch (elementCount()) {
+ case 0:
+ il.append(new PUSH(cpg, ""));
+ break;
+ case 1:
+ SyntaxTreeNode child = (SyntaxTreeNode) elementAt(0);
+ if (child instanceof Text) {
+ il.append(new PUSH(cpg, ((Text) child).getText()));
+ break;
+ }
+ // falls through
+ default:
+ // Push current output handler onto the stack
+ il.append(methodGen.loadHandler());
+
+ // Replace the current output handler by a StreamXMLOutput
+ il.append(new NEW(cpg.addClass(STREAM_XML_OUTPUT)));
+ il.append(methodGen.storeHandler());
+
+ // Push a reference to a StringWriter
+ il.append(new NEW(cpg.addClass(STRING_WRITER)));
+ il.append(DUP);
+ il.append(DUP);
+ il.append(new INVOKESPECIAL(
+ cpg.addMethodref(STRING_WRITER, "<init>", "()V")));
+
+ // Load StreamXMLOutput
+ il.append(methodGen.loadHandler());
+ il.append(SWAP);
+ il.append(new PUSH(cpg, "UTF-8")); // other encodings?
+ il.append(new INVOKESPECIAL(
+ cpg.addMethodref(STREAM_XML_OUTPUT, "<init>",
+ "(" + WRITER_SIG + STRING_SIG + ")V")));
+
+ // Invoke output.omitHeader(true)
+ il.append(methodGen.loadHandler());
+ il.append(ICONST_1);
+ il.append(new INVOKEVIRTUAL(
+ cpg.addMethodref(OUTPUT_BASE, "omitHeader",
+ "(Z)V")));
+
+ il.append(methodGen.loadHandler());
+ il.append(new INVOKEVIRTUAL(
+ cpg.addMethodref(OUTPUT_BASE, "startDocument",
+ "()V")));
+
+ // Inline translation of contents
+ translateContents(classGen, methodGen);
+
+ il.append(methodGen.loadHandler());
+ il.append(new INVOKEVIRTUAL(
+ cpg.addMethodref(OUTPUT_BASE, "endDocument",
+ "()V")));
+
+ // Call toString() on StringWriter
+ il.append(new INVOKEVIRTUAL(
+ cpg.addMethodref(STRING_WRITER, "toString",
+ "()" + STRING_SIG)));
+
+ // Restore old output handler
+ il.append(SWAP);
+ il.append(methodGen.storeHandler());
+ break;
+ }
// Send the resulting string to the message handling method
il.append(new INVOKEVIRTUAL(cpg.addMethodref(TRANSLET_CLASS,
@@ -127,5 +184,5 @@
il.append(ATHROW);
}
}
-
+
}
No revision
No revision
1.11.10.14 +2 -7
xml-xalan/java/src/org/apache/xalan/xsltc/dom/DOMAdapter.java
Index: DOMAdapter.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/DOMAdapter.java,v
retrieving revision 1.11.10.13
retrieving revision 1.11.10.14
diff -u -r1.11.10.13 -r1.11.10.14
--- DOMAdapter.java 17 Feb 2003 20:31:33 -0000 1.11.10.13
+++ DOMAdapter.java 25 Feb 2003 19:14:49 -0000 1.11.10.14
@@ -255,12 +255,7 @@
*/
return iterator;
}
-
-
- public String getTreeString() {
- return _dom.getTreeString();
- }
-
+
public int getMultiDOMMask() {
return _multiDOMMask;
}
1.68.2.24 +1 -64
xml-xalan/java/src/org/apache/xalan/xsltc/dom/DOMImpl.java
Index: DOMImpl.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/DOMImpl.java,v
retrieving revision 1.68.2.23
retrieving revision 1.68.2.24
diff -u -r1.68.2.23 -r1.68.2.24
--- DOMImpl.java 30 Jan 2003 18:41:46 -0000 1.68.2.23
+++ DOMImpl.java 25 Feb 2003 19:14:49 -0000 1.68.2.24
@@ -1788,69 +1788,6 @@
}
- public String getTreeString() {
- StringBuffer buf = new StringBuffer();
- buf = getElementString(buf, getDocument());
- return buf.toString();
- }
-
- /**
- * Helper to getTreeString() above
- */
- private StringBuffer getElementString(StringBuffer buffer, int element) {
- String name = null;
-
- if (isElement(element)) {
- if ((name = getNodeName(element)) != null) {
- buffer.append('<');
- buffer.append(name);
-
- int attribute = getFirstAttribute(element);
- while (attribute != DTM.NULL) {
- buffer.append(' ').append(getNodeName(attribute))
- .append("=\"").append(getStringValueX(attribute))
- .append('"');
- attribute = getNextAttribute(attribute);
- }
-
- if (getFirstChild(element) == DTM.NULL) {
- buffer.append("/>");
- return buffer;
- }
- buffer.append('>');
- }
- }
-
- for (int child = getFirstChild(element);
- child != DTM.NULL;
- child = getNextSibling(child)) {
- switch (getNodeType(child)) {
- case DTM.COMMENT_NODE:
- buffer.append("<!--");
- buffer.append(buffer.append(getStringValue(child).toString()));
- buffer.append("-->");
- break;
- case DTM.TEXT_NODE:
- buffer.append(buffer.append(getStringValue(child).toString()));
- break;
- case DTM.PROCESSING_INSTRUCTION_NODE:
- buffer.append("<?");
- buffer.append(buffer.append(getStringValue(child).toString()));
- buffer.append("?>");
- break;
- default:
- getElementString(buffer, child);
- }
- }
-
- if (isElement(element) && name != null) {
- buffer.append("</");
- buffer.append(name);
- buffer.append(">");
- }
- return buffer;
- }
-
/**
* Returns a node' defined language for a node (if any)
*/
1.16.10.13 +1 -5
xml-xalan/java/src/org/apache/xalan/xsltc/dom/MultiDOM.java
Index: MultiDOM.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/MultiDOM.java,v
retrieving revision 1.16.10.12
retrieving revision 1.16.10.13
diff -u -r1.16.10.12 -r1.16.10.13
--- MultiDOM.java 11 Feb 2003 21:39:35 -0000 1.16.10.12
+++ MultiDOM.java 25 Feb 2003 19:14:50 -0000 1.16.10.13
@@ -360,10 +360,6 @@
public String getStringValue() {
return _adapters[0].getStringValue();
}
-
- public String getTreeString() {
- return _adapters[0].getTreeString();
- }
public DTMAxisIterator getChildren(final int node) {
return _adapters[getDTMId(node)].getChildren(node);
1.1.2.33 +1 -55
xml-xalan/java/src/org/apache/xalan/xsltc/dom/Attic/SAXImpl.java
Index: SAXImpl.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/Attic/SAXImpl.java,v
retrieving revision 1.1.2.32
retrieving revision 1.1.2.33
diff -u -r1.1.2.32 -r1.1.2.33
--- SAXImpl.java 21 Feb 2003 22:20:27 -0000 1.1.2.32
+++ SAXImpl.java 25 Feb 2003 19:14:50 -0000 1.1.2.33
@@ -2015,60 +2015,6 @@
}
*/
- public String getTreeString() {
- StringBuffer buf = new StringBuffer();
- buf = getElementString(buf, getDocument());
- return buf.toString();
- }
-
- /**
- * Helper to getTreeString() above
- */
- private StringBuffer getElementString(StringBuffer buffer, int element)
{
- String name = null;
-
- if (isElement(element)) {
- if ((name = getNodeName(element)) != null) {
- buffer.append('<');
- buffer.append(name);
- if (getFirstChild(element) == DTM.NULL) {
- buffer.append("/>");
- return buffer;
- }
- buffer.append('>');
- }
- }
-
- for (int child = getFirstChild(element);
- child != DTM.NULL;
- child = getNextSibling(child)) {
- switch (getNodeType(child)) {
- case DTM.COMMENT_NODE:
- buffer.append("<!--");
- buffer.append(buffer.append(getStringValueX(child)));
- buffer.append("-->");
- break;
- case DTM.TEXT_NODE:
- buffer.append(buffer.append(getStringValueX(child)));
- break;
- case DTM.PROCESSING_INSTRUCTION_NODE:
- buffer.append("<?");
- buffer.append(buffer.append(getStringValueX(child)));
- buffer.append("?>");
- break;
- default:
- getElementString(buffer, child);
- }
- }
-
- if (isElement(element) && name != null) {
- buffer.append("</");
- buffer.append(name);
- buffer.append(">");
- }
- return buffer;
- }
-
/**
* Returns a node' defined language for a node (if any)
*/
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]