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        @Override
018        public boolean accept(String sql) {
019            args[0]=sql;
020            try {
021                            return Caster.toBooleanValue(udf.call(ThreadLocalPageContext.get(), args, true));
022                            
023                    } 
024            catch (PageException e) {
025                            throw new PageRuntimeException(e);
026                    }
027        }
028    }