001 package railo.runtime.functions.other; 002 003 import java.util.Map; 004 005 import railo.commons.lang.StringUtil; 006 import railo.runtime.PageContext; 007 import railo.runtime.db.DataSource; 008 import railo.runtime.db.DataSourceSupport; 009 010 011 public class DatasourceFlushMetaCache { 012 013 public synchronized static boolean call(PageContext pc) { 014 return call(pc, null); 015 } 016 017 public synchronized static boolean call(PageContext pc,String datasource) { 018 019 DataSource[] sources = pc.getConfig().getDataSources(); 020 DataSourceSupport ds; 021 boolean has=false; 022 for(int i=0;i<sources.length;i++){ 023 ds=(DataSourceSupport) sources[i]; 024 if(StringUtil.isEmpty(datasource) || ds.getName().equalsIgnoreCase(datasource.trim())){ 025 Map cache=ds.getProcedureColumnCache(); 026 if(cache!=null) cache.clear(); 027 if(!StringUtil.isEmpty(datasource))return true; 028 has=true; 029 } 030 } 031 return has; 032 } 033 034 }