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 }