1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.commons.jelly.tags.core;
17
18 import org.apache.commons.jelly.JellyTagException;
19 import org.apache.commons.jelly.TagSupport;
20 import org.apache.commons.jelly.XMLOutput;
21 import org.xml.sax.helpers.DefaultHandler;
22
23
24 /*** A tag which executes its body but passing no output.
25 * <p>
26 * Using this tag will still take the time to perform toString on each object
27 * returned to the output (but this toString value is discarded.
28 * A future version should go more internally so that this is avoided.
29 *
30 * @author <a href="mailto:paul@activemath.org">Paul Libbrecht</a>
31 * @version $Revision: 155420 $
32 */
33 public class MuteTag extends TagSupport {
34
35 /***
36 * Create an instance
37 */
38 public MuteTag() {
39 }
40
41 /***
42 * Invoke the body and produce no output.
43 * @param output tag output, which is ignored.
44 */
45 public void doTag(XMLOutput output) throws JellyTagException {
46 super.invokeBody(new MuteXMLOutput());
47 }
48
49 /***
50 * An XMLOutput which really outputs nothing, in particular, avoids calling
51 * toString() in objects returned...
52 */
53 static class MuteXMLOutput extends XMLOutput {
54 public MuteXMLOutput() {
55 super(new DefaultHandler());
56 }
57
58 /***
59 * Do nothing, not even invoke the toString!
60 */
61 public void objectData(Object o) {
62 }
63 }
64 }