StringResolver.java

1
package pro.verron.officestamper.api;
2
3
import org.docx4j.wml.R;
4
import org.springframework.lang.Nullable;
5
import pro.verron.officestamper.core.RunUtil;
6
7
/**
8
 * This is an abstract class that provides a generic implementation for
9
 * resolving objects to strings. It is used in conjunction with
10
 * {@link ObjectResolver} interface to provide a flexible way to
11
 * resolve different types of objects to strings.
12
 *
13
 * @param <T> the type of the object to resolve
14
 *
15
 * @author Joseph Verron
16
 * @version ${version}
17
 * @since 1.6.7
18
 */
19
public abstract class StringResolver<T>
20
        implements ObjectResolver {
21
22
    private final Class<T> type;
23
24
    /**
25
     * Creates a new StringResolver with the given type.
26
     *
27
     * @param type the type of object to be resolved
28
     */
29
    protected StringResolver(Class<T> type) {
30
        assert type != null;
31
        this.type = type;
32
    }
33
34
    /**
35
     * Resolves an object to a string and creates a new run with the resolved string as content.
36
     *
37
     * @param document   the WordprocessingMLPackage document
38
     * @param expression the expression string
39
     * @param object     the object to be resolved
40
     *
41
     * @return the newly created run with the resolved string as content
42
     */
43
    @Override
44
    public final R resolve(
45
            DocxPart document,
46
            String expression,
47
            Object object
48
    ) {
49 1 1. resolve : replaced return value with null for pro/verron/officestamper/api/StringResolver::resolve → KILLED
        return RunUtil.create(resolve(type.cast(object)));
50
    }
51
52
    /**
53
     * Determines if the given object can be resolved by the StringResolver.
54
     *
55
     * @param object the object to be resolved
56
     *
57
     * @return true if the object can be resolved, false otherwise
58
     */
59
    @Override
60
    public final boolean canResolve(@Nullable Object object) {
61 2 1. canResolve : replaced boolean return with true for pro/verron/officestamper/api/StringResolver::canResolve → KILLED
2. canResolve : replaced boolean return with false for pro/verron/officestamper/api/StringResolver::canResolve → KILLED
        return type.isInstance(object);
62
    }
63
64
    /**
65
     * Resolves an object to a string.
66
     *
67
     * @param object the object to be resolved
68
     *
69
     * @return the string representation of the object
70
     */
71
    protected abstract String resolve(T object);
72
}

Mutations

49

1.1
Location : resolve
Killed by : pro.verron.officestamper.test.ResolutionTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.ResolutionTest]/[test-template:testCustomResolution(java.lang.String, boolean, boolean, boolean, boolean, boolean, java.lang.String, boolean, java.lang.String)]/[test-template-invocation:#8]
replaced return value with null for pro/verron/officestamper/api/StringResolver::resolve → KILLED

61

1.1
Location : canResolve
Killed by : pro.verron.officestamper.test.ResolutionTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.ResolutionTest]/[test-template:testCustomResolution(java.lang.String, boolean, boolean, boolean, boolean, boolean, java.lang.String, boolean, java.lang.String)]/[test-template-invocation:#19]
replaced boolean return with true for pro/verron/officestamper/api/StringResolver::canResolve → KILLED

2.2
Location : canResolve
Killed by : pro.verron.officestamper.test.ResolutionTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.ResolutionTest]/[test-template:testCustomResolution(java.lang.String, boolean, boolean, boolean, boolean, boolean, java.lang.String, boolean, java.lang.String)]/[test-template-invocation:#8]
replaced boolean return with false for pro/verron/officestamper/api/StringResolver::canResolve → KILLED

Active mutators

Tests examined


Report generated by PIT 1.17.0