001    package railo.commons.res.io.filter;
002    
003    import railo.commons.io.res.Resource;
004    import railo.commons.io.res.filter.ResourceFilter;
005    
006    /**
007     * A FileFilter providing conditional AND logic across a list of file filters. 
008     * This filter returns true if all filters in the list return true. 
009     * Otherwise, it returns false. Checking of the file filter list stops when the first filter returns false. 
010     */
011    public final class AndFileFilter implements ResourceFilter {
012        
013        private ResourceFilter[] filters;
014    
015        /**
016         * @param filters
017         */
018        public AndFileFilter(ResourceFilter[] filters) {
019            this.filters=filters;
020        }
021    
022        @Override
023        public boolean accept(Resource res) {
024            for(int i=0;i<filters.length;i++) {
025                if(!filters[i].accept(res)) return false;
026            }
027            return true;
028        }
029    }