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"); + } } } }