001    package railo.runtime.tag;
002    
003    import javax.servlet.jsp.tagext.Tag;
004    
005    import railo.runtime.exp.ApplicationException;
006    import railo.runtime.exp.TagNotSupported;
007    import railo.runtime.ext.tag.TagImpl;
008    
009    public final class ReportParam extends TagImpl {
010            
011            private ReportParamBean param=new ReportParamBean();
012            
013    
014            public ReportParam() throws TagNotSupported {
015                    // TODO implement tag
016                    throw new TagNotSupported("ReportParam");
017            }
018            
019            /**
020             *
021             * @see railo.runtime.ext.tag.TagImpl#release()
022             */
023            public void release() {
024                    this.param=new ReportParamBean();
025                    super.release();
026            }
027            
028            /**
029             * @param name the name to set
030             */
031            public void setName(String name) {
032                    param.setName(name);
033            }
034            /**
035             * @param value the value to set
036             */
037            public void setValue(Object value) {
038                    param.setValue(value);
039            }
040            
041            public int doStartTag() throws ApplicationException {
042                    // check 
043                    
044                    // provide to parent
045                    Tag parent=this;
046                    do{
047                            parent = parent.getParent();
048                            if(parent instanceof Report) {
049                                    ((Report)parent).addReportParam(param);
050                                    break;
051                            }
052                    }
053                    while(parent!=null);
054                    
055                    return SKIP_BODY;
056            }
057    }
058