/** * Returns a filter that ORs the two specified filters. * * @param filter1 the first filter * @param filter2 the second filter * @return a filter that ORs the two specified filters * @see #or(IOFileFilter...) * @see OrFileFilter * @deprecated use {@link #or(IOFileFilter...)} */ @Deprecated public static IOFileFilter orFileFilter(final IOFileFilter filter1, final IOFileFilter filter2) { return new OrFileFilter(filter1, filter2); }
@Override protected IOFileFilter buildFilterUsingAdd(final List<IOFileFilter> filters) { final OrFileFilter filter = new OrFileFilter(); for (final IOFileFilter filter1 : filters) { filter.addFileFilter(filter1); } return filter; }
final IOFileFilter falseFilter = FalseFileFilter.INSTANCE; final File testFile = new File( "foo.test" ); assertFiltering(new OrFileFilter(trueFilter, trueFilter), testFile, true); assertFiltering(new OrFileFilter(trueFilter, falseFilter), testFile, true); assertFiltering(new OrFileFilter(falseFilter, trueFilter), testFile, true); assertFiltering(new OrFileFilter(falseFilter, falseFilter), testFile, false); assertFiltering(new OrFileFilter(), testFile, false); filters.add( falseFilter ); final OrFileFilter orFilter = new OrFileFilter( filters ); assertEquals( orFilter.getFileFilters(), filters ); orFilter.removeFileFilter( trueFilter ); assertFiltering(orFilter, testFile, false); orFilter.setFileFilters( filters ); assertFiltering(orFilter, testFile, true); assertTrue( orFilter.accept( testFile.getParentFile(), testFile.getName() ) ); orFilter.removeFileFilter( trueFilter ); assertTrue( !orFilter.accept( testFile.getParentFile(), testFile.getName() ) ); new OrFileFilter(falseFilter, null); fail(); } catch (final IllegalArgumentException ex) { final OrFileFilter f = new OrFileFilter(null); assertTrue(f.getFileFilters().isEmpty());
/** * 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); }
/** * Returns an exclusion filter based on directories to avoid during backup based on parameters * * @param includeData * Should data directory be included ? * @param includeGwc * Should GeoWebCache directory be included ? * @param includeLog * Should logs directory be included ? */ protected IOFileFilter getExcludeFilter(boolean includeData, boolean includeGwc, boolean includeLog) { List<IOFileFilter> filesToExclude = new ArrayList<IOFileFilter>(); if (!includeData) { filesToExclude.add(this.dataFilter); } if (!includeGwc) { filesToExclude.add(this.gwcFilter); } if (!includeLog) { filesToExclude.add(this.logFilter); } OrFileFilter filesToExcludeFilter = new OrFileFilter(); filesToExcludeFilter.setFileFilters(filesToExclude); return FileFilterUtils.notFileFilter(filesToExcludeFilter); }
/** * 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); }
/** * Returns a filter that ORs the two specified filters. * * @param filter1 the first filter * @param filter2 the second filter * @return a filter that ORs the two specified filters */ public static IOFileFilter orFileFilter(IOFileFilter filter1, IOFileFilter filter2) { return new OrFileFilter(filter1, 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; } }
/** * 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); }
@Override protected ConditionalFileFilter getConditionalFileFilter() { return new OrFileFilter(); }
/** * 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); }
/** * 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); }
@Override protected IOFileFilter buildFilterUsingConstructor(final List<IOFileFilter> filters) { return new OrFileFilter(filters); }
/** * 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; } }
/** * 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); }
/** * Returns a filter that ORs the specified filters. * * @param filters the IOFileFilters that will be ORed together. * @return a filter that ORs the specified filters * * @throws IllegalArgumentException if the filters are null or contain a * null value. * @see OrFileFilter * @since 2.0 */ public static IOFileFilter or(final IOFileFilter... filters) { return new OrFileFilter(toList(filters)); }
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); }
/** * 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); }
@Test public void testDelegateFileFilter() throws Exception { final OrFileFilter orFilter = new OrFileFilter(); final File testFile = new File( "test.txt" ); IOFileFilter filter = new DelegateFileFilter((FileFilter) orFilter); assertFiltering( filter, testFile, false ); assertNotNull(filter.toString()); // TODO better test filter = new DelegateFileFilter((FilenameFilter) orFilter); assertFiltering( filter, testFile, false ); assertNotNull(filter.toString()); // TODO better test try { new DelegateFileFilter((FileFilter) null); fail(); } catch( final IllegalArgumentException ignore ) { } try { new DelegateFileFilter((FilenameFilter) null); fail(); } catch( final IllegalArgumentException ignore ) { } }
/** * 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; }