Skip to content

Commit 175f1de

Browse files
committed
chore:SP-2103 Avoids repeated lowercase conversion of filenames in filter
1 parent d5022fc commit 175f1de

File tree

3 files changed

+26
-13
lines changed

3 files changed

+26
-13
lines changed

src/main/java/com/scanoss/filters/FileFilter.java

+14-9
Original file line numberDiff line numberDiff line change
@@ -60,23 +60,28 @@ public Predicate<Path> get() {
6060
// First call super's build to initialize base filters
6161
Predicate<Path> baseFilter = this.baseSkipFilter;
6262

63+
if(config.getAllExtensions()){
64+
return p -> false;
65+
}
66+
6367
if (!config.getHiddenFilesFolders()) {
6468
Predicate<Path> skipHiddenFilter = p -> p.getFileName().toString().startsWith(".");
6569
baseFilter = baseFilter
6670
.or(skipHiddenFilter);
6771
}
6872

69-
if(config.getAllExtensions()){
70-
Predicate <Path> allExtensionsFilter = p -> false;
71-
baseFilter = baseFilter.or(allExtensionsFilter);
72-
}
73-
74-
Predicate<Path> filterFiles = p -> ScanossConstants.FILTERED_FILES.stream()
75-
.anyMatch(d -> p.getFileName().toString().toLowerCase().equals(d));
73+
Predicate<Path> filterFiles = p -> {
74+
String fileNameToLower = p.getFileName().toString().toLowerCase();
75+
return ScanossConstants.FILTERED_FILES.stream()
76+
.anyMatch(fileNameToLower::equals);
77+
};
7678
baseFilter = baseFilter.or(filterFiles);
7779

78-
Predicate<Path> filterExtensions = p -> ScanossConstants.FILTERED_EXTENSIONS.stream()
79-
.anyMatch(d -> p.getFileName().toString().toLowerCase().endsWith(d));
80+
Predicate<Path> filterExtensions = p ->{
81+
String fileNameToLower = p.getFileName().toString().toLowerCase();
82+
return ScanossConstants.FILTERED_EXTENSIONS.stream()
83+
.anyMatch(fileNameToLower::endsWith);
84+
};
8085
baseFilter = baseFilter.or(filterExtensions);
8186

8287
return baseFilter;

src/main/java/com/scanoss/filters/FolderFilter.java

+11-4
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,18 @@ public Predicate<Path> get() {
7272
}
7373

7474
if (!config.getAllFolders()) {
75-
Predicate<Path> filterDirs = p -> FILTERED_DIRS.stream()
76-
.anyMatch(d -> p.getFileName().toString().toLowerCase().equals(d));
77-
Predicate<Path> filterDirExt = p -> FILTERED_DIR_EXT.stream()
78-
.anyMatch(d -> p.getFileName().toString().toLowerCase().endsWith(d));
75+
Predicate<Path> filterDirs = p -> {
76+
String fileNameToLower = p.getFileName().toString().toLowerCase();
77+
return FILTERED_DIRS.stream()
78+
.anyMatch(fileNameToLower::equals);
79+
};
80+
baseFilter = baseFilter.or(filterDirs);
7981

82+
Predicate<Path> filterDirExt = p -> {
83+
String fileNameToLower = p.getFileName().toString().toLowerCase();
84+
return FILTERED_DIR_EXT.stream()
85+
.anyMatch(fileNameToLower::endsWith);
86+
};
8087
baseFilter = baseFilter.or(filterDirs).or(filterDirExt);
8188
}
8289

src/test/java/com/scanoss/TestSettings.java

+1
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ public void testEmptySettingsInitialization() {
116116
assertNotNull("Ignore list should not be null", emptySettings.getBom().getIgnore());
117117
assertNotNull("Remove list should not be null", emptySettings.getBom().getRemove());
118118
assertNotNull("Replace list should not be null", emptySettings.getBom().getReplace());
119+
assertNotNull("Settings should not be null", emptySettings.getSettings());
119120

120121
assertTrue("Include list should be empty", emptySettings.getBom().getInclude().isEmpty());
121122
assertTrue("Ignore list should be empty", emptySettings.getBom().getIgnore().isEmpty());

0 commit comments

Comments
 (0)