1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.openehealth.ipf.commons.ihe.core.payload;
17
18 import org.springframework.expression.Expression;
19 import org.springframework.expression.ExpressionParser;
20 import org.springframework.expression.common.TemplateParserContext;
21 import org.springframework.expression.spel.standard.SpelExpressionParser;
22
23 import static java.util.Objects.requireNonNull;
24
25
26
27
28
29
30
31 public class SpringExpressionResolver implements ExpressionResolver {
32
33 private final Expression expression;
34
35 public SpringExpressionResolver(final String filePathPattern) {
36 requireNonNull(filePathPattern, "log file path/name pattern must not be null");
37 final ExpressionParser parser = new SpelExpressionParser();
38 final TemplateParserContext parserContext = new TemplateParserContext("[", "]");
39 parser.parseExpression(filePathPattern, parserContext);
40 expression = parser.parseExpression(filePathPattern, parserContext);
41 }
42
43 @Override
44 public String resolveExpression(PayloadLoggingContext context) {
45 return expression.getValue(context, String.class);
46 }
47
48 }