KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mmbase > bridge > jsp > taglib > functions > NodeFunctionTag


1 /*
2
3 This software is OSI Certified Open Source Software.
4 OSI Certified is a certification mark of the Open Source Initiative.
5
6 The license (Mozilla version 1.0) can be read at the MMBase site.
7 See http://www.MMBase.org/license
8
9 */

10 package org.mmbase.bridge.jsp.taglib.functions;
11
12 import java.io.IOException JavaDoc;
13
14 import javax.servlet.jsp.JspTagException JavaDoc;
15
16 import org.mmbase.bridge.*;
17 import org.mmbase.bridge.jsp.taglib.*;
18 import org.mmbase.bridge.jsp.taglib.containers.FunctionContainerReferrer;
19 import org.mmbase.util.Casting;
20
21 /**
22  *
23  * @author Michiel Meeuwissen
24  * @since MMBase-1.7
25  * @version $Id: NodeFunctionTag.java,v 1.12 2006/07/17 15:38:47 johannes Exp $
26  */

27 public class NodeFunctionTag extends AbstractFunctionTag implements NodeProvider, FunctionContainerReferrer {
28
29     protected NodeProviderHelper nodeHelper = new NodeProviderHelper(this); // no m.i. and there are more nodeprovider which cannot extend this, they can use the same trick.
30

31     public void setJspvar(String JavaDoc jv) {
32         nodeHelper.setJspvar(jv);
33     }
34
35
36     public Node getNodeVar() {
37         return nodeHelper.getNodeVar();
38     }
39
40
41     protected void setNodeVar(Node node) {
42         nodeHelper.setNodeVar(node);
43     }
44
45
46     protected void fillVars() throws JspTagException JavaDoc {
47         nodeHelper.fillVars();
48     }
49
50     public Query getGeneratingQuery() throws JspTagException JavaDoc {
51         return nodeHelper.getGeneratingQuery();
52     }
53     /**
54      * @since MMBase-1.8
55      */

56     public void setCommitonclose(String JavaDoc c) throws JspTagException JavaDoc {
57         nodeHelper.setCommitonclose(c);
58     }
59
60
61     public int doEndTag() throws JspTagException JavaDoc {
62         nodeHelper.doEndTag();
63         return super.doEndTag();
64     }
65
66     public int doStartTag() throws JspTagException JavaDoc {
67         Object JavaDoc value = getFunctionValue(false); // don't register, 'fillVars' will do.
68
Node node = Casting.toNode(value, getCloudVar());
69         setNodeVar(node);
70         fillVars();
71         return EVAL_BODY_BUFFERED;
72     }
73
74     /**
75      * this method writes the content of the body back to the jsp page
76      **/

77     public int doAfterBody() throws JspTagException JavaDoc { // write the body if there was one
78
if (bodyContent != null) {
79             try {
80                 bodyContent.writeOut(bodyContent.getEnclosingWriter());
81             } catch (IOException JavaDoc ioe){
82                 throw new TaglibException(ioe);
83             }
84         }
85         return nodeHelper.doAfterBody();
86     }
87
88     public void doFinally() {
89         nodeHelper.doFinally();
90     }
91 }
92
Popular Tags