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