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