Search in sources :

Example 11 with CompositeFileListFilter

use of org.springframework.integration.file.filters.CompositeFileListFilter in project spring-integration by spring-projects.

the class FileListFilterFactoryBean method initializeFileListFilter.

private void initializeFileListFilter() {
    if (this.result != null) {
        return;
    }
    FileListFilter<File> createdFilter = null;
    if ((this.filter != null) && (this.filenamePattern != null || this.filenameRegex != null)) {
        throw new IllegalArgumentException("The 'filter' reference is mutually exclusive with " + "either the 'filename-pattern' or 'filename-regex' attribute.");
    }
    if (this.filenamePattern != null && this.filenameRegex != null) {
        throw new IllegalArgumentException("The 'filename-pattern' and 'filename-regex' attributes are mutually exclusive.");
    }
    final List<FileListFilter<File>> filtersNeeded = new ArrayList<FileListFilter<File>>();
    if (!Boolean.FALSE.equals(this.ignoreHidden)) {
        filtersNeeded.add(new IgnoreHiddenFileListFilter());
    }
    // 'filter' is set
    if (this.filter != null) {
        if (Boolean.TRUE.equals(this.preventDuplicates)) {
            filtersNeeded.add(new AcceptOnceFileListFilter<File>());
            filtersNeeded.add(this.filter);
        } else {
            // preventDuplicates is either FALSE or NULL
            filtersNeeded.add(this.filter);
        }
    } else // 'file-pattern' or 'file-regex' is set
    if (this.filenamePattern != null || this.filenameRegex != null) {
        if (!Boolean.FALSE.equals(this.preventDuplicates)) {
            // preventDuplicates is either null or true
            filtersNeeded.add(new AcceptOnceFileListFilter<File>());
        }
        if (this.filenamePattern != null) {
            SimplePatternFileListFilter patternFilter = new SimplePatternFileListFilter(this.filenamePattern);
            if (this.alwaysAcceptDirectories != null) {
                patternFilter.setAlwaysAcceptDirectories(this.alwaysAcceptDirectories);
            }
            filtersNeeded.add(patternFilter);
        }
        if (this.filenameRegex != null) {
            RegexPatternFileListFilter regexFilter = new RegexPatternFileListFilter(this.filenameRegex);
            if (this.alwaysAcceptDirectories != null) {
                regexFilter.setAlwaysAcceptDirectories(this.alwaysAcceptDirectories);
            }
            filtersNeeded.add(regexFilter);
        }
    } else // no filters are provided
    if (Boolean.FALSE.equals(this.preventDuplicates)) {
        filtersNeeded.add(new AcceptAllFileListFilter<File>());
    } else {
        // preventDuplicates is either TRUE or NULL
        filtersNeeded.add(new AcceptOnceFileListFilter<File>());
    }
    if (filtersNeeded.size() == 1) {
        createdFilter = filtersNeeded.get(0);
    } else {
        createdFilter = new CompositeFileListFilter<File>(filtersNeeded);
    }
    this.result = createdFilter;
}
Also used : AcceptAllFileListFilter(org.springframework.integration.file.filters.AcceptAllFileListFilter) IgnoreHiddenFileListFilter(org.springframework.integration.file.filters.IgnoreHiddenFileListFilter) AcceptOnceFileListFilter(org.springframework.integration.file.filters.AcceptOnceFileListFilter) FileListFilter(org.springframework.integration.file.filters.FileListFilter) SimplePatternFileListFilter(org.springframework.integration.file.filters.SimplePatternFileListFilter) RegexPatternFileListFilter(org.springframework.integration.file.filters.RegexPatternFileListFilter) CompositeFileListFilter(org.springframework.integration.file.filters.CompositeFileListFilter) ArrayList(java.util.ArrayList) RegexPatternFileListFilter(org.springframework.integration.file.filters.RegexPatternFileListFilter) IgnoreHiddenFileListFilter(org.springframework.integration.file.filters.IgnoreHiddenFileListFilter) AcceptOnceFileListFilter(org.springframework.integration.file.filters.AcceptOnceFileListFilter) SimplePatternFileListFilter(org.springframework.integration.file.filters.SimplePatternFileListFilter) File(java.io.File)

Example 12 with CompositeFileListFilter

use of org.springframework.integration.file.filters.CompositeFileListFilter in project spring-integration by spring-projects.

the class FileInboundChannelAdapterWithPreventDuplicatesFlagTests method defaultAndTrue.

@Test
public void defaultAndTrue() throws Exception {
    FileListFilter<File> filter = this.extractFilter("defaultAndTrue");
    assertFalse(filter instanceof CompositeFileListFilter);
    assertTrue(filter instanceof AcceptOnceFileListFilter);
    File testFile = new File("test");
    File[] files = new File[] { testFile, testFile, testFile };
    List<File> result = filter.filterFiles(files);
    assertEquals(1, result.size());
}
Also used : CompositeFileListFilter(org.springframework.integration.file.filters.CompositeFileListFilter) AcceptOnceFileListFilter(org.springframework.integration.file.filters.AcceptOnceFileListFilter) File(java.io.File) Test(org.junit.Test)

Example 13 with CompositeFileListFilter

use of org.springframework.integration.file.filters.CompositeFileListFilter in project spring-integration by spring-projects.

the class FtpStreamingInboundChannelAdapterSpec method composeFilters.

@SuppressWarnings("unchecked")
private CompositeFileListFilter<FTPFile> composeFilters(FileListFilter<FTPFile> fileListFilter) {
    CompositeFileListFilter<FTPFile> compositeFileListFilter = new CompositeFileListFilter<>();
    compositeFileListFilter.addFilters(fileListFilter, new FtpPersistentAcceptOnceFileListFilter(new SimpleMetadataStore(), "ftpStreamingMessageSource"));
    return compositeFileListFilter;
}
Also used : CompositeFileListFilter(org.springframework.integration.file.filters.CompositeFileListFilter) FTPFile(org.apache.commons.net.ftp.FTPFile) SimpleMetadataStore(org.springframework.integration.metadata.SimpleMetadataStore) FtpPersistentAcceptOnceFileListFilter(org.springframework.integration.ftp.filters.FtpPersistentAcceptOnceFileListFilter)

Aggregations

CompositeFileListFilter (org.springframework.integration.file.filters.CompositeFileListFilter)13 File (java.io.File)7 Test (org.junit.Test)7 AcceptOnceFileListFilter (org.springframework.integration.file.filters.AcceptOnceFileListFilter)6 ArrayList (java.util.ArrayList)4 FileListFilter (org.springframework.integration.file.filters.FileListFilter)4 SimpleMetadataStore (org.springframework.integration.metadata.SimpleMetadataStore)4 Collection (java.util.Collection)3 FTPFile (org.apache.commons.net.ftp.FTPFile)3 RegexPatternFileListFilter (org.springframework.integration.file.filters.RegexPatternFileListFilter)3 FtpPersistentAcceptOnceFileListFilter (org.springframework.integration.ftp.filters.FtpPersistentAcceptOnceFileListFilter)3 SftpPersistentAcceptOnceFileListFilter (org.springframework.integration.sftp.filters.SftpPersistentAcceptOnceFileListFilter)3 LsEntry (com.jcraft.jsch.ChannelSftp.LsEntry)2 BeanFactory (org.springframework.beans.factory.BeanFactory)2 Expression (org.springframework.expression.Expression)2 AcceptAllFileListFilter (org.springframework.integration.file.filters.AcceptAllFileListFilter)2 PropertiesPersistingMetadataStore (org.springframework.integration.metadata.PropertiesPersistingMetadataStore)2 Method (java.lang.reflect.Method)1 AtomicReference (java.util.concurrent.atomic.AtomicReference)1 DirectFieldAccessor (org.springframework.beans.DirectFieldAccessor)1