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 |
|
61 |
1.1 2.2 |