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 }