UnionMethodResolver.java

1
package pro.verron.officestamper.core;
2
3
import org.jspecify.annotations.Nullable;
4
import org.slf4j.Logger;
5
import org.slf4j.LoggerFactory;
6
import org.springframework.core.convert.TypeDescriptor;
7
import org.springframework.expression.AccessException;
8
import org.springframework.expression.EvaluationContext;
9
import org.springframework.expression.MethodExecutor;
10
import org.springframework.expression.MethodResolver;
11
12
import java.util.List;
13
14
record UnionMethodResolver(List<MethodResolver> resolvers)
15
        implements MethodResolver {
16
    private static final Logger log = LoggerFactory.getLogger(UnionMethodResolver.class);
17
18
    @Override
19
    @Nullable
20
    public MethodExecutor resolve(
21
            EvaluationContext context,
22
            Object target,
23
            String name,
24
            List<TypeDescriptor> argumentTypes
25
    ) {
26 1 1. resolve : negated conditional → KILLED
        if (!(target instanceof ContextBranch branch)) return null;
27
28
        for (Object elements : branch) {
29
            for (MethodResolver resolver : resolvers) {
30
                try {
31
                    var executor = resolver.resolve(context, elements, name, argumentTypes);
32 2 1. resolve : replaced return value with null for pro/verron/officestamper/core/UnionMethodResolver::resolve → NO_COVERAGE
2. resolve : negated conditional → NO_COVERAGE
                    if (executor != null) return executor;
33
                } catch (AccessException e) {
34
                    log.atInfo()
35
                       .setCause(e)
36
                       .log("AccessException while resolving element '{}' for method '{}'. Continue to next element.",
37
                               elements,
38
                               name);
39
                }
40
            }
41
        }
42
        return null;
43
    }
44
}

Mutations

26

1.1
Location : resolve
Killed by : pro.verron.officestamper.test.CustomProcessorTests.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.CustomProcessorTests]/[test-template:should_allow_custom_processors_injection(pro.verron.officestamper.test.utils.ContextFactory)]/[test-template-invocation:#2]
negated conditional → KILLED

32

1.1
Location : resolve
Killed by : none
replaced return value with null for pro/verron/officestamper/core/UnionMethodResolver::resolve → NO_COVERAGE

2.2
Location : resolve
Killed by : none
negated conditional → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT 1.22.1