1 package org.apache.maven.shared.io.scan;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.File;
23 import java.util.ArrayList;
24 import java.util.Collections;
25 import java.util.List;
26 import java.util.Set;
27
28 import org.apache.maven.shared.io.scan.mapping.SourceMapping;
29 import org.apache.maven.shared.utils.io.DirectoryScanner;
30
31
32
33
34
35 public abstract class AbstractResourceInclusionScanner
36 implements ResourceInclusionScanner
37 {
38 private final List<SourceMapping> sourceMappings = new ArrayList<SourceMapping>();
39
40
41 public final void addSourceMapping( SourceMapping sourceMapping )
42 {
43 sourceMappings.add( sourceMapping );
44 }
45
46
47
48
49 protected final List<SourceMapping> getSourceMappings()
50 {
51 return Collections.unmodifiableList( sourceMappings );
52 }
53
54
55
56
57
58
59
60 protected String[] scanForSources( File sourceDir, Set<String> sourceIncludes, Set<String> sourceExcludes )
61 {
62 DirectoryScanner ds = new DirectoryScanner();
63 ds.setFollowSymlinks( true );
64 ds.setBasedir( sourceDir );
65
66 String[] includes;
67 if ( sourceIncludes.isEmpty() )
68 {
69 includes = new String[0];
70 }
71 else
72 {
73 includes = (String[]) sourceIncludes.toArray( new String[sourceIncludes.size()] );
74 }
75
76 ds.setIncludes( includes );
77
78 String[] excludes;
79 if ( sourceExcludes.isEmpty() )
80 {
81 excludes = new String[0];
82 }
83 else
84 {
85 excludes = (String[]) sourceExcludes.toArray( new String[sourceExcludes.size()] );
86 }
87
88 ds.setExcludes( excludes );
89 ds.addDefaultExcludes();
90
91 ds.scan();
92
93 return ds.getIncludedFiles();
94 }
95 }