1717package org .sonar .plugins .javascript .analysis ;
1818
1919import static java .util .Arrays .stream ;
20- import static java .util .stream .Stream .concat ;
2120
2221import java .nio .file .Path ;
23- import java .util .Arrays ;
2422import java .util .HashSet ;
2523import java .util .Set ;
2624import java .util .function .Predicate ;
2725import org .sonar .api .config .Configuration ;
2826import org .sonar .api .utils .WildcardPattern ;
2927import org .sonar .plugins .javascript .JavaScriptLanguage ;
30- import org .sonar .plugins .javascript .JavaScriptPlugin ;
3128import org .sonar .plugins .javascript .TypeScriptLanguage ;
29+ import org .sonar .plugins .javascript .filter .JavaScriptExclusionsFileFilter ;
30+ import org .sonar .plugins .javascript .utils .Exclusions ;
3231
3332/**
3433 * This class partially reproduces the behavior of JavaScriptExclusionsFileFilter's implementation.
@@ -53,22 +52,14 @@ static class FileFilter implements Predicate<Path> {
5352 private final Set <String > extensions = new HashSet <>();
5453
5554 public FileFilter (Configuration config ) {
56- extensions .addAll (
57- Arrays .asList (
58- config
59- .get (JavaScriptLanguage .FILE_SUFFIXES_KEY )
60- .orElse (JavaScriptLanguage .FILE_SUFFIXES_DEFVALUE )
61- .split ("," )
62- )
63- );
64- extensions .addAll (
65- Arrays .asList (
66- config
67- .get (TypeScriptLanguage .FILE_SUFFIXES_KEY )
68- .orElse (TypeScriptLanguage .FILE_SUFFIXES_DEFVALUE )
69- .split ("," )
70- )
71- );
55+ var jsExtensions = config .hasKey (JavaScriptLanguage .FILE_SUFFIXES_KEY )
56+ ? config .getStringArray (JavaScriptLanguage .FILE_SUFFIXES_KEY )
57+ : JavaScriptLanguage .FILE_SUFFIXES_DEFVALUE .split ("," );
58+ var tsExtensions = config .hasKey (TypeScriptLanguage .FILE_SUFFIXES_KEY )
59+ ? config .getStringArray (TypeScriptLanguage .FILE_SUFFIXES_KEY )
60+ : TypeScriptLanguage .FILE_SUFFIXES_DEFVALUE .split ("," );
61+ extensions .addAll (stream (jsExtensions ).toList ());
62+ extensions .addAll (stream (tsExtensions ).toList ());
7263 }
7364
7465 @ Override
@@ -82,26 +73,9 @@ static class PathFilter implements Predicate<Path> {
8273 private final WildcardPattern [] exclusions ;
8374
8475 public PathFilter (Configuration config ) {
85- if (!isExclusionOverridden (config )) {
86- exclusions = WildcardPattern .create (JavaScriptPlugin .EXCLUSIONS_DEFAULT_VALUE );
87- } else {
88- WildcardPattern [] jsExcludedPatterns = WildcardPattern .create (
89- config .getStringArray (JavaScriptPlugin .JS_EXCLUSIONS_KEY )
90- );
91- WildcardPattern [] tsExcludedPatterns = WildcardPattern .create (
92- config .getStringArray (JavaScriptPlugin .TS_EXCLUSIONS_KEY )
93- );
94- exclusions = concat (stream (jsExcludedPatterns ), stream (tsExcludedPatterns )).toArray (
95- WildcardPattern []::new
96- );
97- }
98- }
99-
100- private static boolean isExclusionOverridden (Configuration config ) {
101- return (
102- config .get (JavaScriptPlugin .JS_EXCLUSIONS_KEY ).isPresent () ||
103- config .get (JavaScriptPlugin .TS_EXCLUSIONS_KEY ).isPresent ()
104- );
76+ exclusions = stream (Exclusions .getExcludedPaths (config ))
77+ .map (WildcardPattern ::create )
78+ .toArray (WildcardPattern []::new );
10579 }
10680
10781 @ Override
0 commit comments