Author: vgritsenko
Date: Thu Oct  7 06:30:06 2004
New Revision: 53968

Modified:
   cocoon/trunk/src/java/org/apache/cocoon/xml/ParamSaxBuffer.java
   cocoon/trunk/src/java/org/apache/cocoon/xml/SaxBuffer.java
Log:
Add new "SAX event": xmlizable.


Modified: cocoon/trunk/src/java/org/apache/cocoon/xml/ParamSaxBuffer.java
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/xml/ParamSaxBuffer.java     
(original)
+++ cocoon/trunk/src/java/org/apache/cocoon/xml/ParamSaxBuffer.java     Thu Oct 
 7 06:30:06 2004
@@ -33,7 +33,7 @@
  * passed to the [EMAIL PROTECTED] #toSAX(ContentHandler, Map)} method.
  *
  * <p>Once all events have been pushed into this buffer, you need to call
- * [EMAIL PROTECTED] #processParams()}.
+ * [EMAIL PROTECTED] #processParams()}.</p>
  *
  * @author <a href="mailto:[EMAIL PROTECTED]">Vadim Gritsenko</a>
  * @version CVS $Id$
@@ -185,7 +185,7 @@
         }
 
         public void dump(Writer writer) throws IOException {
-            writer.write("[ParamSaxBuffer.Parameter] name=" + name);
+            writer.write("[Parameter] name=" + name);
         }
     }
 }

Modified: cocoon/trunk/src/java/org/apache/cocoon/xml/SaxBuffer.java
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/xml/SaxBuffer.java  (original)
+++ cocoon/trunk/src/java/org/apache/cocoon/xml/SaxBuffer.java  Thu Oct  7 
06:30:06 2004
@@ -161,6 +161,13 @@
     //
 
     /**
+     * Add a bit containing XMLizable object
+     */
+    public void xmlizable(XMLizable xml) {
+        saxbits.add(new XMLizableBit(xml));
+    }
+
+    /**
      * @return true if buffer is empty
      */
     public boolean isEmpty() {
@@ -534,6 +541,28 @@
 
         public void dump(Writer writer) throws IOException {
             writer.write("[IgnorableWhitespace] ch=" + new String(ch) + "\n");
+        }
+    }
+
+    public final static class XMLizableBit implements SaxBit, Serializable {
+        public final XMLizable xml;
+
+        public XMLizableBit(XMLizable xml) {
+            this.xml = xml;
+        }
+
+        public void send(ContentHandler contentHandler) throws SAXException {
+            this.xml.toSAX(new EmbeddedXMLPipe(contentHandler));
+        }
+
+        public void dump(Writer writer) throws IOException {
+            if (xml instanceof SaxBuffer) {
+                writer.write("[XMLizable] Begin nested SaxBuffer\n");
+                ((SaxBuffer)xml).dump(writer);
+                writer.write("[XMLizable] End nested SaxBuffer\n");
+            } else {
+                writer.write("[XMLizable] xml=" + xml + "\n");
+            }
         }
     }
 }

Reply via email to