INT-1591 removing the FileNameExtractor strategy in favor of concrete implementations of AbstractPatternMatchingFileListFilter

This commit is contained in:
Mark Fisher
2010-11-08 18:32:57 -05:00
parent 2a8994d7b6
commit 23c8c28d0c
13 changed files with 128 additions and 161 deletions

View File

@@ -16,18 +16,30 @@
package org.springframework.integration.ftp;
import java.util.regex.Pattern;
import org.apache.commons.net.ftp.FTPFile;
import org.springframework.integration.file.entries.EntryNameExtractor;
import org.springframework.integration.file.filters.AbstractPatternMatchingFileListFilter;
/**
* A {@link org.springframework.integration.file.entries.EntryNameExtractor} for {@link org.apache.commons.net.ftp.FTPFile} objects
*
* @author Josh Long
* @author Mark Fisher
* @since 2.0
*/
public class FtpFileEntryNameExtractor implements EntryNameExtractor<FTPFile> {
public class FtpPatternMatchingFileListFilter extends AbstractPatternMatchingFileListFilter<FTPFile> {
public String getName(FTPFile entry) {
return entry.getName();
public FtpPatternMatchingFileListFilter(String pattern) {
super(pattern);
}
public FtpPatternMatchingFileListFilter(Pattern pattern) {
super(pattern);
}
@Override
protected String getFilename(FTPFile file) {
return file.getName();
}
}

View File

@@ -30,7 +30,6 @@ import org.springframework.core.io.ResourceEditor;
import org.springframework.core.io.ResourceLoader;
import org.springframework.integration.file.filters.CompositeFileListFilter;
import org.springframework.integration.file.filters.FileListFilter;
import org.springframework.integration.file.filters.PatternMatchingFileListFilter;
import org.springframework.util.StringUtils;
/**
@@ -154,11 +153,10 @@ public class FtpRemoteFileSystemSynchronizingMessageSourceFactoryBean
this.localWorkingDirectory = "file://" + tmp.getAbsolutePath();
}
this.localDirectoryResource = this.fromText(this.localWorkingDirectory);
FtpFileEntryNameExtractor fileEntryNameExtractor = new FtpFileEntryNameExtractor();
CompositeFileListFilter<FTPFile> compositeFtpFileListFilter = new CompositeFileListFilter<FTPFile>();
if (StringUtils.hasText(this.filenamePattern)) {
PatternMatchingFileListFilter<FTPFile> ftpFilePatternMatchingFileListFilter =
new PatternMatchingFileListFilter<FTPFile>(fileEntryNameExtractor, filenamePattern);
FtpPatternMatchingFileListFilter ftpFilePatternMatchingFileListFilter =
new FtpPatternMatchingFileListFilter(filenamePattern);
compositeFtpFileListFilter.addFilter(ftpFilePatternMatchingFileListFilter);
}
if (this.filter != null) {