/** * Constructs a new file filter that ORs the result of two other filters. * * @param filter1 the first filter, must not be null * @param filter2 the second filter, must not be null * @throws IllegalArgumentException if either filter is null */ public OrFileFilter(final IOFileFilter filter1, final IOFileFilter filter2) { if (filter1 == null || filter2 == null) { throw new IllegalArgumentException("The filters must not be null"); } this.fileFilters = new ArrayList<>(2); addFileFilter(filter1); addFileFilter(filter2); }
/** * Constructs a new file filter that ORs the result of two other filters. * * @param filter1 the first filter, must not be null * @param filter2 the second filter, must not be null * @throws IllegalArgumentException if either filter is null */ public OrFileFilter(IOFileFilter filter1, IOFileFilter filter2) { if (filter1 == null || filter2 == null) { throw new IllegalArgumentException("The filters must not be null"); } this.fileFilters = new ArrayList(); addFileFilter(filter1); addFileFilter(filter2); }
/** * Builds the filter and returns it. * * @return a filter that is the logical OR of all the conditions provided by the add... methods * @throws IllegalStateException if no add... method has been called with one or more arguments */ public FileFilter build() { if (filenames.isEmpty() && extensions.isEmpty() && fileFilters.isEmpty()) { throw new IllegalStateException("May only be invoked after at least one add... method has been invoked."); } final OrFileFilter filter = new OrFileFilter(); if (!filenames.isEmpty()) { filter.addFileFilter(new NameFileFilter(new ArrayList<>(filenames))); } if (!extensions.isEmpty()) { filter.addFileFilter(new SuffixFileFilter(new ArrayList<>(extensions), IOCase.INSENSITIVE)); } for (IOFileFilter iof : fileFilters) { filter.addFileFilter(iof); } return filter; } }
@Override protected IOFileFilter buildFilterUsingAdd(final List<IOFileFilter> filters) { final OrFileFilter filter = new OrFileFilter(); for (final IOFileFilter filter1 : filters) { filter.addFileFilter(filter1); } return filter; }
/** * Constructs a new file filter that ORs the result of two other filters. * * @param filter1 the first filter, must not be null * @param filter2 the second filter, must not be null * @throws IllegalArgumentException if either filter is null */ public OrFileFilter(final IOFileFilter filter1, final IOFileFilter filter2) { if (filter1 == null || filter2 == null) { throw new IllegalArgumentException("The filters must not be null"); } this.fileFilters = new ArrayList<>(2); addFileFilter(filter1); addFileFilter(filter2); }
/** * Constructs a new file filter that ORs the result of two other filters. * * @param filter1 the first filter, must not be null * @param filter2 the second filter, must not be null * @throws IllegalArgumentException if either filter is null */ public OrFileFilter(IOFileFilter filter1, IOFileFilter filter2) { if (filter1 == null || filter2 == null) { throw new IllegalArgumentException("The filters must not be null"); } this.fileFilters = new ArrayList(); addFileFilter(filter1); addFileFilter(filter2); }
/** * Constructs a new file filter that ORs the result of two other filters. * * @param filter1 the first filter, must not be null * @param filter2 the second filter, must not be null * @throws IllegalArgumentException if either filter is null */ public OrFileFilter(IOFileFilter filter1, IOFileFilter filter2) { if (filter1 == null || filter2 == null) { throw new IllegalArgumentException("The filters must not be null"); } this.fileFilters = new ArrayList(); addFileFilter(filter1); addFileFilter(filter2); }
/** * Constructs a new file filter that ORs the result of two other filters. * * @param filter1 the first filter, must not be null * @param filter2 the second filter, must not be null * @throws IllegalArgumentException if either filter is null */ public OrFileFilter(IOFileFilter filter1, IOFileFilter filter2) { if (filter1 == null || filter2 == null) { throw new IllegalArgumentException("The filters must not be null"); } this.fileFilters = new ArrayList<IOFileFilter>(2); addFileFilter(filter1); addFileFilter(filter2); }
/** * Constructs a new file filter that ORs the result of two other filters. * * @param filter1 the first filter, must not be null * @param filter2 the second filter, must not be null * @throws IllegalArgumentException if either filter is null */ public OrFileFilter(IOFileFilter filter1, IOFileFilter filter2) { if (filter1 == null || filter2 == null) { throw new IllegalArgumentException("The filters must not be null"); } this.fileFilters = new ArrayList<IOFileFilter>(2); addFileFilter(filter1); addFileFilter(filter2); }
/** * Constructs a new file filter that ORs the result of two other filters. * * @param filter1 the first filter, must not be null * @param filter2 the second filter, must not be null * @throws IllegalArgumentException if either filter is null */ public OrFileFilter(final IOFileFilter filter1, final IOFileFilter filter2) { if (filter1 == null || filter2 == null) { throw new IllegalArgumentException("The filters must not be null"); } this.fileFilters = new ArrayList<IOFileFilter>(2); addFileFilter(filter1); addFileFilter(filter2); }
/** * Builds the filter and returns it. * * @return a filter that is the logical OR of all the conditions provided by the add... methods * @throws IllegalStateException if no add... method has been called with one or more arguments */ public FileFilter build() { if (filenames.isEmpty() && extensions.isEmpty() && fileFilters.isEmpty()) { throw new IllegalStateException("May only be invoked after at least one add... method has been invoked."); } final OrFileFilter filter = new OrFileFilter(); if (!filenames.isEmpty()) { filter.addFileFilter(new NameFileFilter(new ArrayList<>(filenames))); } if (!extensions.isEmpty()) { filter.addFileFilter(new SuffixFileFilter(new ArrayList<>(extensions), IOCase.INSENSITIVE)); } for (IOFileFilter iof : fileFilters) { filter.addFileFilter(iof); } return filter; } }
static FilenameFilter parseExclusions(List<String> excludes) throws IOException { final OrFileFilter orFilter = new OrFileFilter(); int ignoredLines = 0; for (String exclude : excludes) { try { // skip comments if(exclude.startsWith("#") || StringUtils.isEmpty(exclude)) { ignoredLines++; continue; } String exclusion = exclude.trim(); // interpret given patterns regular expression, direct file names or wildcards to give users more choices to configure exclusions orFilter.addFileFilter(new RegexFileFilter(exclusion)); orFilter.addFileFilter(new NameFileFilter(exclusion)); orFilter.addFileFilter(new WildcardFileFilter(exclusion)); } catch(PatternSyntaxException e) { System.err.println("Will skip given exclusion '" + exclude + "' due to " + e); } } System.out.println("Ignored " + ignoredLines + " lines in your exclusion files as comments or empty lines."); return new NotFileFilter(orFilter); }
/** * Gets a directory walker which will * @param customAges the custom ages to purge files for * @return a new FilePurgeDirectoryWalker which will walk directories for us */ protected FilePurgeDirectoryWalker getCustomAgesDirectoryWalker(List<FilePurgeCustomAge> customAges) { OrFileFilter fileFilter = new OrFileFilter(); for (FilePurgeCustomAge customAge : customAges) { fileFilter.addFileFilter(customAge.getFileFilter()); } return new FilePurgeDirectoryWalker(fileFilter); }
/** * Recurse in the folder to get the list all files and folders * <ul> * <li>do not recurse in svn folder</li> * <li>do not recurse in cvs folder</li> * <li>do not match .bak files</li> * <li>do not match .old files</li> * </ul> * * @param folder the folder to parse * @param ioFileFilter additionnal IOFilter */ @SuppressWarnings("unchecked") public Collection<String> listFiles(File folder, IOFileFilter ioFileFilter) { if (ioFileFilter == null) { ioFileFilter = FileFilterUtils.fileFileFilter(); } OrFileFilter oldFilesFilter = new OrFileFilter(); for (String exclude : DEFAULT_EXCLUDES_SUFFIXES) { oldFilesFilter.addFileFilter(FileFilterUtils.suffixFileFilter(exclude)); } IOFileFilter notOldFilesFilter = FileFilterUtils.notFileFilter(oldFilesFilter); Collection<File> files = FileUtils.listFiles(folder, FileFilterUtils.andFileFilter(ioFileFilter, notOldFilesFilter), FileFilterUtils.makeSVNAware(FileFilterUtils.makeCVSAware(null))); Collection<String> ret = newArrayList(); for (File file : files) { ret.add(file.getAbsolutePath()); } return ret; }
/** * Recurse in the folder to get the list all files and folders * <ul> * <li>do not recurse in svn folder</li> * <li>do not recurse in cvs folder</li> * <li>do not match .bak files</li> * <li>do not match .old files</li> * </ul> * * @param folder the folder to parse * @param ioFileFilter additionnal IOFilter */ @SuppressWarnings("unchecked") public Collection<String> listFiles(File folder, IOFileFilter ioFileFilter) { if (ioFileFilter == null) { ioFileFilter = FileFilterUtils.fileFileFilter(); } OrFileFilter oldFilesFilter = new OrFileFilter(); for (String exclude : DEFAULT_EXCLUDES_SUFFIXES) { oldFilesFilter.addFileFilter(FileFilterUtils.suffixFileFilter(exclude)); } IOFileFilter notOldFilesFilter = FileFilterUtils.notFileFilter(oldFilesFilter); Collection<File> files = FileUtils.listFiles(folder, FileFilterUtils.andFileFilter(ioFileFilter, notOldFilesFilter), FileFilterUtils.makeSVNAware(FileFilterUtils.makeCVSAware(null))); Collection<String> ret = newArrayList(); for (File file : files) { ret.add(file.getAbsolutePath()); } return ret; }