001    package railo.runtime.query;
002    
003    import railo.commons.io.res.util.UDFFilterSupport;
004    import railo.runtime.engine.ThreadLocalPageContext;
005    import railo.runtime.exp.ExpressionException;
006    import railo.runtime.exp.PageException;
007    import railo.runtime.exp.PageRuntimeException;
008    import railo.runtime.op.Caster;
009    import railo.runtime.type.UDF;
010    
011    public class QueryCacheFilterUDF extends UDFFilterSupport implements QueryCacheFilter {
012    
013            public QueryCacheFilterUDF(UDF udf) throws ExpressionException{
014                    super(udf);
015            }
016            
017        /**
018         * @see railo.runtime.query.QueryCacheFilter#accept(java.lang.String)
019         */
020        public boolean accept(String sql) {
021            args[0]=sql;
022            try {
023                            return Caster.toBooleanValue(udf.call(ThreadLocalPageContext.get(), args, true));
024                            
025                    } 
026            catch (PageException e) {
027                            throw new PageRuntimeException(e);
028                    }
029        }
030    }