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.util.List;
22 import java.util.function.Function;
23 import org.apache.maven.model.transform.pull.NodeBufferingParser;
24 import org.codehaus.plexus.util.xml.pull.XmlPullParser;
25
26
27
28
29
30
31
32
33 class CiFriendlyXMLFilter extends NodeBufferingParser {
34 private final boolean replace;
35
36 private Function<String, String> replaceChain = Function.identity();
37
38 CiFriendlyXMLFilter(XmlPullParser xmlPullParser, boolean replace) {
39 super(xmlPullParser, "version");
40 this.replace = replace;
41 }
42
43 public CiFriendlyXMLFilter setChangelist(String changelist) {
44 replaceChain = replaceChain.andThen(t -> t.replace("${changelist}", changelist));
45 return this;
46 }
47
48 public CiFriendlyXMLFilter setRevision(String revision) {
49 replaceChain = replaceChain.andThen(t -> t.replace("${revision}", revision));
50 return this;
51 }
52
53 public CiFriendlyXMLFilter setSha1(String sha1) {
54 replaceChain = replaceChain.andThen(t -> t.replace("${sha1}", sha1));
55 return this;
56 }
57
58
59
60
61 public boolean isSet() {
62 return !replaceChain.equals(Function.identity());
63 }
64
65 @Override
66 protected void process(List<Event> buffer) {
67 for (Event event : buffer) {
68 if (event.event == TEXT && replace && event.text.contains("${")) {
69 event.text = replaceChain.apply(event.text);
70 }
71 pushEvent(event);
72 }
73 }
74 }