yangys
2024-05-19 9e5da8899bc21bb5b6b0a3c267108caa00199291
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package com.qianwen.core.excel.extend.processor;
 
import java.lang.reflect.Method;
import org.springframework.context.expression.MethodBasedEvaluationContext;
import org.springframework.core.DefaultParameterNameDiscoverer;
import org.springframework.core.ParameterNameDiscoverer;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
 
 
public class NameSpelExpressionProcessor implements NameProcessor {
    private static final ParameterNameDiscoverer NAME_DISCOVERER = new DefaultParameterNameDiscoverer();
    private static final ExpressionParser PARSER = new SpelExpressionParser();
 
    @Override // org.springblade.core.excel.extend.processor.NameProcessor
    public String doDetermineName(Object[] args, Method method, String key) {
        if (!key.contains("#")) {
            return key;
        }
        Object value = PARSER.parseExpression(key).getValue(new MethodBasedEvaluationContext((Object) null, method, args, NAME_DISCOVERER));
        if (value == null) {
            return null;
        }
        return value.toString();
    }
}