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 = "";
  
  
  

Reply via email to