From 037d2113f8dc4e971cc9aad8d7714031c08bc084 Mon Sep 17 00:00:00 2001 From: Iwein Fuld Date: Thu, 14 Oct 2010 19:21:36 +0200 Subject: [PATCH] INT-1520: add AntPatternFileListFilter --- .../filters/AntPatternFileListFilter.java | 24 ++++++++++++++ .../filters/AntPatternFileListFilterTest.java | 32 +++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 spring-integration-file/src/main/java/org/springframework/integration/file/filters/AntPatternFileListFilter.java create mode 100644 spring-integration-file/src/test/java/org/springframework/integration/file/filters/AntPatternFileListFilterTest.java diff --git a/spring-integration-file/src/main/java/org/springframework/integration/file/filters/AntPatternFileListFilter.java b/spring-integration-file/src/main/java/org/springframework/integration/file/filters/AntPatternFileListFilter.java new file mode 100644 index 0000000000..665841a884 --- /dev/null +++ b/spring-integration-file/src/main/java/org/springframework/integration/file/filters/AntPatternFileListFilter.java @@ -0,0 +1,24 @@ +package org.springframework.integration.file.filters; + +import org.springframework.integration.file.entries.AbstractEntryListFilter; +import org.springframework.util.AntPathMatcher; + +import java.io.File; + +/** + * @author Iwein Fuld + */ +public class AntPatternFileListFilter extends AbstractEntryListFilter { + + private final AntPathMatcher matcher = new AntPathMatcher(); + private final String path; + + public AntPatternFileListFilter(String path) { + this.path = path; + } + + @Override + public boolean accept(File file) { + return matcher.match( path, file.getPath()); + } +} diff --git a/spring-integration-file/src/test/java/org/springframework/integration/file/filters/AntPatternFileListFilterTest.java b/spring-integration-file/src/test/java/org/springframework/integration/file/filters/AntPatternFileListFilterTest.java new file mode 100644 index 0000000000..888e064136 --- /dev/null +++ b/spring-integration-file/src/test/java/org/springframework/integration/file/filters/AntPatternFileListFilterTest.java @@ -0,0 +1,32 @@ +package org.springframework.integration.file.filters; + +import org.junit.Test; + +import java.io.File; + +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; + +/** + * @author Iwein Fuld + * + * Minimal test set to ensure AntPathMatcher is used correctly. + */ +public class AntPatternFileListFilterTest { + + @Test + public void shouldMatchExactly() { + assertThat(new AntPatternFileListFilter("foo/bar").accept(new File("foo/bar")), is(true)); + } + + @Test + public void shouldMatchQuestionMark() { + assertThat(new AntPatternFileListFilter("*/bar").accept(new File("foo/bar")), is(true)); + } + + @Test + public void shouldMatchWildcard() { + assertThat(new AntPatternFileListFilter("foo/ba?").accept(new File("foo/bar")), is(true)); + } + +}