+ private static class SearchParameter {
+
+ private final boolean exclude;
+ private final String pattern;
+
+ private SearchParameter(boolean exclude, String pattern) {
+ this.exclude = exclude;
+ this.pattern = pattern;
+ }
+
+ public boolean matches(String filename) {
+ boolean matches = filename.toLowerCase().contains(pattern.toLowerCase());
+ return matches && !exclude;
+ }
+
+ public static SearchParameter from(String parameter) {
+ boolean exclude = parameter.startsWith("-");
+ String pattern = exclude ? parameter.substring(1) : parameter;
+ return new SearchParameter(exclude, pattern);
+ }
+
+ }
+