1 package org.apache.maven.lifecycle;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.IOException;
23 import java.util.Iterator;
24
25 import org.apache.commons.jxpath.JXPathContext;
26 import org.apache.commons.jxpath.JXPathNotFoundException;
27 import org.apache.commons.jxpath.ri.JXPathContextReferenceImpl;
28 import org.apache.maven.plugin.MojoExecution;
29 import org.apache.maven.project.harness.Xpp3DomPointerFactory;
30
31 public class MojoExecutionXPathContainer
32 {
33 private JXPathContext context;
34
35 private MojoExecution mojoExecution;
36
37 static
38 {
39 JXPathContextReferenceImpl.addNodePointerFactory( new Xpp3DomPointerFactory() );
40 }
41
42 public MojoExecutionXPathContainer( MojoExecution mojoExecution )
43 throws IOException
44 {
45 this.mojoExecution = mojoExecution;
46 context = JXPathContext.newContext( mojoExecution );
47 }
48
49 public Iterator<?> getIteratorForXPathExpression( String expression )
50 {
51 return context.iterate( expression );
52 }
53
54 public boolean containsXPathExpression( String expression )
55 {
56 return context.getValue( expression ) != null;
57 }
58
59 public Object getValue( String expression )
60 {
61 try
62 {
63 return context.getValue( expression );
64 }
65 catch ( JXPathNotFoundException e )
66 {
67 return null;
68 }
69 }
70
71 public boolean xPathExpressionEqualsValue( String expression, String value )
72 {
73 return context.getValue( expression ) != null && context.getValue( expression ).equals( value );
74 }
75 }