001    package railo.runtime.type.scope.storage;
002    
003    import railo.commons.io.log.Log;
004    import railo.runtime.CFMLFactoryImpl;
005    
006    public class StorageScopeEngine {
007            
008            private StorageScopeCleaner[] cleaners;
009    
010            private CFMLFactoryImpl factory;
011    
012            private Log log;
013    
014            public StorageScopeEngine(CFMLFactoryImpl factory, Log log,StorageScopeCleaner[] cleaners){
015                    this.cleaners=cleaners;
016                    this.factory=factory;
017                    this.log=log;
018                    
019                    for(int i=0;i<cleaners.length;i++){
020                            cleaners[i].init(this);
021                    }
022            }
023            
024            public void clean() {
025                    for(int i=0;i<cleaners.length;i++){
026                            cleaners[i].clean();
027                    }
028            }
029            
030            /**
031             * @return the factory
032             */
033            public CFMLFactoryImpl getFactory() {
034                    return factory;
035            }
036    
037            /**
038             * @return the log
039             */
040            public Log _getLog() {
041                    return log;
042            }
043    
044            public void remove(int type, String appName, String cfid) {
045                    
046                    getFactory().getScopeContext().remove(type,appName,cfid);
047            }
048    }