1 package org.apache.maven.model.transform;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.nio.file.Path;
23 import java.util.Optional;
24 import java.util.function.BiFunction;
25 import java.util.function.Function;
26
27 import org.codehaus.plexus.util.xml.pull.XmlPullParser;
28
29
30
31
32
33
34
35 public class BuildToRawPomXMLFilterFactory
36 {
37 private final boolean consume;
38
39 public BuildToRawPomXMLFilterFactory()
40 {
41 this( false );
42 }
43
44 public BuildToRawPomXMLFilterFactory( boolean consume )
45 {
46 this.consume = consume;
47 }
48
49
50
51
52
53 public final XmlPullParser get( XmlPullParser orgParser, Path projectFile )
54
55 {
56
57 XmlPullParser parser = orgParser instanceof FastForwardFilter
58 ? orgParser : new FastForwardFilter( orgParser );
59
60 if ( getDependencyKeyToVersionMapper() != null )
61 {
62 parser = new ReactorDependencyXMLFilter( parser, getDependencyKeyToVersionMapper() );
63 }
64
65 if ( getRelativePathMapper() != null )
66 {
67 parser = new ParentXMLFilter( parser, getRelativePathMapper(), projectFile.getParent() );
68 }
69
70 CiFriendlyXMLFilter ciFriendlyFilter = new CiFriendlyXMLFilter( parser, consume );
71 getChangelist().ifPresent( ciFriendlyFilter::setChangelist );
72 getRevision().ifPresent( ciFriendlyFilter::setRevision );
73 getSha1().ifPresent( ciFriendlyFilter::setSha1 );
74 parser = ciFriendlyFilter;
75
76 return parser;
77 }
78
79
80
81
82 protected Function<Path, Optional<RelativeProject>> getRelativePathMapper()
83 {
84 return null;
85 }
86
87 protected BiFunction<String, String, String> getDependencyKeyToVersionMapper()
88 {
89 return null;
90 }
91
92
93
94 protected Optional<String> getChangelist()
95 {
96 return Optional.empty();
97 }
98
99 protected Optional<String> getRevision()
100 {
101 return Optional.empty();
102 }
103
104 protected Optional<String> getSha1()
105 {
106 return Optional.empty();
107 }
108
109 }