001    /**
002     * Implements the Cold Fusion Function gettemplatepath
003     */
004    package railo.runtime.functions.system;
005    
006    import railo.runtime.Mapping;
007    import railo.runtime.MappingImpl;
008    import railo.runtime.PageContext;
009    import railo.runtime.config.ConfigWebImpl;
010    import railo.runtime.ext.function.Function;
011    
012    public final class PagePoolClear implements Function {
013            
014            public static boolean call(PageContext pc) {
015                    ConfigWebImpl config=(ConfigWebImpl) pc.getConfig();
016                    clear(config.getMappings());
017                    clear(config.getCustomTagMappings());
018                    clear(pc.getApplicationContext().getMappings());
019                    clear(config.getComponentMappings());
020                    clear(config.getFunctionMapping());
021                    clear(config.getServerFunctionMapping());
022                    clear(config.getTagMapping());
023                    clear(config.getServerTagMapping());
024                    if(config instanceof ConfigWebImpl)clear(((ConfigWebImpl)config).getServerTagMapping());
025            
026                    return true;
027            }
028            public static void clear(Mapping[] mappings) {
029                    if(mappings==null)return;
030                    for(int i=0;i<mappings.length;i++)   {
031                            clear(mappings[i]);
032                    }       
033            }
034            public static void clear(Mapping mapping) {
035                    if(mapping==null)return;
036                    ((MappingImpl) mapping).getPageSourcePool().clearPages(null);
037            }
038    }