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 java.io.Reader;
23 import java.util.Collections;
24 import java.util.List;
25
26 import javax.annotation.Nonnull;
27
28 import org.apache.maven.execution.MavenSession;
29 import org.apache.maven.project.MavenProject;
30 import org.apache.maven.shared.utils.io.FileUtils.FilterWrapper;
31 import org.codehaus.plexus.component.annotations.Component;
32
33
34
35
36 @Component( role = org.apache.maven.shared.filtering.MavenReaderFilter.class, hint = "default" )
37 public class DefaultMavenReaderFilter
38 extends BaseFilter
39 implements MavenReaderFilter
40 {
41 @Override
42 @Nonnull
43 public Reader filter( @Nonnull Reader from, boolean filtering, MavenProject mavenProject, List<String> filters,
44 boolean escapedBackslashesInFilePath, MavenSession mavenSession )
45 throws MavenFilteringException
46 {
47 MavenResourcesExecution mre = new MavenResourcesExecution();
48 mre.setMavenProject( mavenProject );
49 mre.setFileFilters( filters );
50 mre.setEscapeWindowsPaths( escapedBackslashesInFilePath );
51 mre.setMavenSession( mavenSession );
52 mre.setInjectProjectBuildFilters( true );
53
54 List<FilterWrapper> filterWrappers = getDefaultFilterWrappers( mre );
55 return filter( from, filtering, filterWrappers );
56 }
57
58 @Override
59 @Nonnull
60 public Reader filter( @Nonnull MavenReaderFilterRequest mavenFileFilterRequest )
61 throws MavenFilteringException
62 {
63 List<FilterWrapper> filterWrappers = getDefaultFilterWrappers( mavenFileFilterRequest );
64 return filter( mavenFileFilterRequest.getFrom(), mavenFileFilterRequest.isFiltering(), filterWrappers );
65 }
66
67 @Override
68 @Nonnull
69 public Reader filter( @Nonnull Reader from, boolean filtering, @Nonnull List<FilterWrapper> filterWrappers )
70 {
71 return filterWrap( from, filtering ? filterWrappers : Collections.<FilterWrapper>emptyList() );
72 }
73
74 @Nonnull
75 private static Reader filterWrap( @Nonnull Reader from, @Nonnull Iterable<FilterWrapper> wrappers )
76 {
77 Reader reader = from;
78 for ( FilterWrapper wrapper : wrappers )
79 {
80 reader = wrapper.getReader( reader );
81 }
82 return reader;
83 }
84
85 }