1 10 package org.mmbase.bridge.jsp.taglib.functions; 11 12 import java.io.IOException ; 13 14 import javax.servlet.jsp.JspTagException ; 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 27 public class NodeFunctionTag extends AbstractFunctionTag implements NodeProvider, FunctionContainerReferrer { 28 29 protected NodeProviderHelper nodeHelper = new NodeProviderHelper(this); 31 public void setJspvar(String 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 { 47 nodeHelper.fillVars(); 48 } 49 50 public Query getGeneratingQuery() throws JspTagException { 51 return nodeHelper.getGeneratingQuery(); 52 } 53 56 public void setCommitonclose(String c) throws JspTagException { 57 nodeHelper.setCommitonclose(c); 58 } 59 60 61 public int doEndTag() throws JspTagException { 62 nodeHelper.doEndTag(); 63 return super.doEndTag(); 64 } 65 66 public int doStartTag() throws JspTagException { 67 Object value = getFunctionValue(false); Node node = Casting.toNode(value, getCloudVar()); 69 setNodeVar(node); 70 fillVars(); 71 return EVAL_BODY_BUFFERED; 72 } 73 74 77 public int doAfterBody() throws JspTagException { if (bodyContent != null) { 79 try { 80 bodyContent.writeOut(bodyContent.getEnclosingWriter()); 81 } catch (IOException 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 |