/** * Decorates a filter so that it only applies to files and not to directories. * * @param filter the filter to decorate, null means an unrestricted filter * @return the decorated filter, never null * @see FileFileFilter#FILE * @since 1.3 */ public static IOFileFilter makeFileOnly(final IOFileFilter filter) { if (filter == null) { return FileFileFilter.FILE; } return new AndFileFilter(FileFileFilter.FILE, filter); }
@Override protected IOFileFilter buildFilterUsingAdd(final List<IOFileFilter> filters) { final AndFileFilter filter = new AndFileFilter(); for (final IOFileFilter filter1 : filters) { filter.addFileFilter(filter1); } return filter; }
@Test public void testAnd() throws Exception { final IOFileFilter trueFilter = TrueFileFilter.INSTANCE; final IOFileFilter falseFilter = FalseFileFilter.INSTANCE; assertFiltering(new AndFileFilter(trueFilter, trueFilter), new File("foo.test"), true); assertFiltering(new AndFileFilter(trueFilter, falseFilter), new File("foo.test"), false); assertFiltering(new AndFileFilter(falseFilter, trueFilter), new File("foo.test"), false); assertFiltering(new AndFileFilter(falseFilter, falseFilter), new File("foo.test"), false); final List<IOFileFilter> filters = new ArrayList<>(); assertFiltering( new AndFileFilter( filters ), new File( "test" ), false ); assertFiltering( new AndFileFilter(), new File( "test" ), false ); try { new AndFileFilter(falseFilter, null); fail(); } catch (final IllegalArgumentException ignore) { } try { new AndFileFilter(null, falseFilter); fail(); } catch (final IllegalArgumentException ignore) { } final AndFileFilter f = new AndFileFilter(null); assertTrue(f.getFileFilters().isEmpty()); assertNotNull(f.toString()); // TODO better tests }
/** * Constructs a new file filter that ANDs 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 AndFileFilter(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 ANDs 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 AndFileFilter(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); }
/** * Decorates a filter so that it only applies to directories and not to files. * * @param filter the filter to decorate, null means an unrestricted filter * @return the decorated filter, never null * @see DirectoryFileFilter#DIRECTORY * @since 1.3 */ public static IOFileFilter makeDirectoryOnly(final IOFileFilter filter) { if (filter == null) { return DirectoryFileFilter.DIRECTORY; } return new AndFileFilter(DirectoryFileFilter.DIRECTORY, filter); }
/** * @return an IOFileFilter which represents the files that should be culled by this FilePurgeCustomAge */ public IOFileFilter getFileFilter() { AndFileFilter andFileFilter = new AndFileFilter(); MaxAgePurgeFileFilter maxAgeFilter = new MaxAgePurgeFileFilter(this); DirectoryNameFileFilter directoryNameFilter = new DirectoryNameFileFilter(this); andFileFilter.addFileFilter(maxAgeFilter); andFileFilter.addFileFilter(directoryNameFilter); return andFileFilter; }
/** * Constructs a new file filter that ANDs 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 AndFileFilter(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 ANDs the two specified filters. * * @param filter1 the first filter * @param filter2 the second filter * @return a filter that ANDs the two specified filters * @see #and(IOFileFilter...) * @see AndFileFilter * @deprecated use {@link #and(IOFileFilter...)} */ @Deprecated public static IOFileFilter andFileFilter(final IOFileFilter filter1, final IOFileFilter filter2) { return new AndFileFilter(filter1, filter2); }
private void purgeAll( File directory, String directoryType ) throws Exception { AndFileFilter filter = new AndFileFilter(); filter.addFileFilter( DirectoryFileFilter.DIRECTORY ); filter.addFileFilter( createFileFilterForDirectoryType( directoryType ) ); File[] files = directory.listFiles( (FileFilter) filter ); if ( files == null ) { return; } for ( File file : files ) { try { FileUtils.deleteDirectory( file ); } catch ( IOException e ) { logger.warn( "Unable to purge " + directoryType + " directory: " + file.getName() ); } } }
/** * Constructs a new file filter that ANDs 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 AndFileFilter(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 ANDs the two specified filters. * * @param filter1 the first filter * @param filter2 the second filter * @return a filter that ANDs the two specified filters */ public static IOFileFilter andFileFilter(IOFileFilter filter1, IOFileFilter filter2) { return new AndFileFilter(filter1, filter2); }
/** * Gets the directory walker for the default directories * @param customAges the custom ages, because custom age directories will not be purged * @return a new FilePurgeDirectoryWalker */ protected FilePurgeDirectoryWalker getDefaultDirectoryWalker(List<FilePurgeCustomAge> customAges) { IOFileFilter ageFileFilter = buildDefaultAgeFileFilter(); if (customAges != null && customAges.size() > 0) { AndFileFilter andFileFilter = new AndFileFilter(); andFileFilter.addFileFilter(ageFileFilter); andFileFilter.addFileFilter(buildAnyDirectoryButCustomAgeDirectoryFileFilter(customAges)); return new FilePurgeDirectoryWalker(andFileFilter); } else { return new FilePurgeDirectoryWalker(ageFileFilter); } }
/** * Constructs a new file filter that ANDs 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 AndFileFilter(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); }
/** * Decorates a filter so that it only applies to directories and not to files. * * @param filter the filter to decorate, null means an unrestricted filter * @return the decorated filter, never null * @since 1.3 */ public static IOFileFilter makeDirectoryOnly(IOFileFilter filter) { if (filter == null) { return DirectoryFileFilter.DIRECTORY; } return new AndFileFilter(DirectoryFileFilter.DIRECTORY, filter); }
private void purgeFiles( File directory, String directoryType, int daysOlder, int retentionCount ) AndFileFilter filter = new AndFileFilter(); filter.addFileFilter( DirectoryFileFilter.DIRECTORY ); filter.addFileFilter( createFileFilterForDirectoryType( directoryType ) ); filter.addFileFilter( new AgeFileFilter( cutoff ) );
/** * Constructs a new file filter that ANDs 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 AndFileFilter(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); }
/** * Decorates a filter so that it only applies to files and not to directories. * * @param filter the filter to decorate, null means an unrestricted filter * @return the decorated filter, never null * @since 1.3 */ public static IOFileFilter makeFileOnly(IOFileFilter filter) { if (filter == null) { return FileFileFilter.FILE; } return new AndFileFilter(FileFileFilter.FILE, filter); }
AndFileFilter fileFilters = new AndFileFilter(); fileFilters.addFileFilter(new WildcardFileFilter(filter)); fileFilters.addFileFilter(new AgeFileFilter(System.currentTimeMillis() - fileAgeMS));
/** * Constructs a new file filter that ANDs 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 AndFileFilter(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); }