1 package org.apache.maven.shared.filtering;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.execution.MavenSession;
23 import org.apache.maven.project.MavenProject;
24 import org.apache.maven.shared.utils.io.FileUtils.FilterWrapper;
25
26 import javax.annotation.Nonnull;
27 import java.io.Reader;
28 import java.util.Collections;
29 import java.util.List;
30
31
32
33
34
35
36 public class DefaultMavenReaderFilter
37 extends BaseFilter
38 implements MavenReaderFilter
39 {
40 @Nonnull
41 public Reader filter( @Nonnull Reader from, boolean filtering, MavenProject mavenProject, List<String> filters,
42 boolean escapedBackslashesInFilePath, MavenSession mavenSession )
43 throws MavenFilteringException
44 {
45 MavenResourcesExecution mre = new MavenResourcesExecution();
46 mre.setMavenProject( mavenProject );
47 mre.setFileFilters( filters );
48 mre.setEscapeWindowsPaths( escapedBackslashesInFilePath );
49 mre.setMavenSession( mavenSession );
50 mre.setInjectProjectBuildFilters( true );
51
52 List<FilterWrapper> filterWrappers = getDefaultFilterWrappers( mre );
53 return filter( from, filtering, filterWrappers );
54 }
55
56
57 @Nonnull public Reader filter( @Nonnull MavenReaderFilterRequest mavenFileFilterRequest )
58 throws MavenFilteringException
59 {
60 List<FilterWrapper> filterWrappers = getDefaultFilterWrappers( mavenFileFilterRequest );
61 return filter( mavenFileFilterRequest.getFrom(), mavenFileFilterRequest.isFiltering(), filterWrappers );
62 }
63
64
65 @SuppressWarnings( "unchecked" )
66 public @Nonnull Reader filter( @Nonnull Reader from, boolean filtering, @Nonnull List<FilterWrapper> filterWrappers )
67 {
68 return filterWrap( from, filtering ? filterWrappers : Collections.<FilterWrapper>emptyList() );
69 }
70
71
72 private static @Nonnull Reader filterWrap( @Nonnull Reader from, @Nonnull Iterable<FilterWrapper> wrappers )
73 {
74 Reader reader = from;
75 for ( FilterWrapper wrapper : wrappers )
76 {
77 reader = wrapper.getReader( reader );
78 }
79 return reader;
80 }
81
82
83 }