1 package org.apache.maven.model.interpolation;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.model.path.PathTranslator;
23 import org.codehaus.plexus.interpolation.InterpolationPostProcessor;
24 import org.codehaus.plexus.interpolation.util.ValueSourceUtils;
25
26 import java.io.File;
27 import java.util.Collection;
28 import java.util.List;
29
30
31
32
33
34 class PathTranslatingPostProcessor
35 implements InterpolationPostProcessor
36 {
37
38 private final Collection<String> unprefixedPathKeys;
39 private final File projectDir;
40 private final PathTranslator pathTranslator;
41 private final List<String> expressionPrefixes;
42
43 public PathTranslatingPostProcessor( List<String> expressionPrefixes, Collection<String> unprefixedPathKeys,
44 File projectDir, PathTranslator pathTranslator )
45 {
46 this.expressionPrefixes = expressionPrefixes;
47 this.unprefixedPathKeys = unprefixedPathKeys;
48 this.projectDir = projectDir;
49 this.pathTranslator = pathTranslator;
50 }
51
52 public Object execute( String expression, Object value )
53 {
54 if ( value != null )
55 {
56 expression = ValueSourceUtils.trimPrefix( expression, expressionPrefixes, true );
57
58 if ( unprefixedPathKeys.contains( expression ) )
59 {
60 return pathTranslator.alignToBaseDirectory( String.valueOf( value ), projectDir );
61 }
62 }
63
64 return null;
65 }
66
67 }