001    /**
002     * Implements the CFML 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            
025                    return true;
026            }
027            public static void clear(Mapping[] mappings) {
028                    if(mappings==null)return;
029                    for(int i=0;i<mappings.length;i++)   {
030                            clear(mappings[i]);
031                    }       
032            }
033            public static void clear(Mapping mapping) {
034                    if(mapping==null)return;
035                    ((MappingImpl) mapping).getPageSourcePool().clearPages(null);
036            }
037    }