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 org.apache.maven.model.transform.pull.NodeBufferingParser;
23 import org.codehaus.plexus.util.xml.pull.XmlPullParser;
24
25
26
27
28
29
30
31
32 public class RelativePathXMLFilter extends NodeBufferingParser {
33
34 public RelativePathXMLFilter(XmlPullParser xmlPullParser) {
35 super(xmlPullParser, "parent");
36 }
37
38 protected void process(List<Event> buffer) {
39 boolean skip = false;
40 Event prev = null;
41 for (Event event : buffer) {
42 if (event.event == START_TAG && "relativePath".equals(event.name)) {
43 skip = true;
44 if (prev != null && prev.event == TEXT && prev.text.matches("\\s+")) {
45 prev = null;
46 }
47 event = null;
48 } else if (event.event == END_TAG && "relativePath".equals(event.name)) {
49 skip = false;
50 event = null;
51 } else if (skip) {
52 event = null;
53 }
54 if (prev != null) {
55 pushEvent(prev);
56 }
57 prev = event;
58 }
59 pushEvent(prev);
60 }
61 }