bruno 2004/01/31 07:57:32
Modified: src/java/org/apache/cocoon/generation
JXTemplateGenerator.java
Log:
If the result of an expression is an XMLizable object, automatically
stream it (like is the case form DOM nodes).
Revision Changes Path
1.34 +8 -1
cocoon-2.1/src/java/org/apache/cocoon/generation/JXTemplateGenerator.java
Index: JXTemplateGenerator.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/java/org/apache/cocoon/generation/JXTemplateGenerator.java,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- JXTemplateGenerator.java 28 Jan 2004 06:44:26 -0000 1.33
+++ JXTemplateGenerator.java 31 Jan 2004 15:57:32 -0000 1.34
@@ -84,6 +84,7 @@
import org.apache.cocoon.environment.SourceResolver;
import org.apache.cocoon.transformation.AbstractTransformer;
import org.apache.cocoon.xml.XMLConsumer;
+import org.apache.cocoon.xml.IncludeXMLConsumer;
import org.apache.cocoon.xml.dom.DOMBuilder;
import org.apache.cocoon.xml.dom.DOMStreamer;
import org.apache.commons.jexl.ExpressionFactory;
@@ -105,6 +106,7 @@
import org.apache.excalibur.source.Source;
import org.apache.excalibur.source.SourceException;
import org.apache.excalibur.source.SourceValidity;
+import org.apache.excalibur.xml.sax.XMLizable;
import org.mozilla.javascript.Context;
import org.mozilla.javascript.Function;
import org.mozilla.javascript.JavaScriptException;
@@ -3146,6 +3148,9 @@
jxpathContext, n);
}
continue;
+ } else if (val instanceof XMLizable) {
+ ((XMLizable)val).toSAX(new
IncludeXMLConsumer(consumer));
+ continue;
}
if (val != null) {
chars = val.toString().toCharArray();
@@ -3663,6 +3668,8 @@
executeDOM(consumer, jexlContext,
jxpathContext, n);
}
+ } else if (val instanceof XMLizable) {
+ ((XMLizable)val).toSAX(new
IncludeXMLConsumer(consumer));
} else {
if (val == null) {
val = "";