Resolvers.java

1
package pro.verron.officestamper.preset;
2
3
import pro.verron.officestamper.api.ObjectResolver;
4
import pro.verron.officestamper.api.OfficeStamperException;
5
import pro.verron.officestamper.preset.resolvers.date.DateResolver;
6
import pro.verron.officestamper.preset.resolvers.image.ImageResolver;
7
import pro.verron.officestamper.preset.resolvers.localdate.LocalDateResolver;
8
import pro.verron.officestamper.preset.resolvers.localdatetime.LocalDateTimeResolver;
9
import pro.verron.officestamper.preset.resolvers.localtime.LocalTimeResolver;
10
import pro.verron.officestamper.preset.resolvers.nulls.Null2DefaultResolver;
11
import pro.verron.officestamper.preset.resolvers.nulls.Null2PlaceholderResolver;
12
import pro.verron.officestamper.preset.resolvers.objects.ToStringResolver;
13
14
import java.time.LocalDate;
15
import java.time.LocalDateTime;
16
import java.time.LocalTime;
17
import java.time.format.DateTimeFormatter;
18
import java.util.Date;
19
20
/// This class provides static methods to create different types of [ObjectResolver].
21
///
22
/// @author Joseph Verron
23
/// @version ${version}
24
/// @since 1.6.7
25
public class Resolvers {
26
27
    private Resolvers() {
28
        throw new OfficeStamperException("Resolvers cannot be instantiated");
29
    }
30
31
    /// Returns an instance of [ObjectResolver] that can act as a fallback resolver.
32
    ///
33
    /// Will call the [Object#toString()] method on every type of objects.
34
    ///
35
    /// @param linebreakPlaceholder The placeholder to use for linebreaks.
36
    ///
37
    /// @return An instance of [ObjectResolver]
38
    public static ObjectResolver fallback(String linebreakPlaceholder) {
39 1 1. fallback : replaced return value with null for pro/verron/officestamper/preset/Resolvers::fallback → KILLED
        return new ToStringResolver(linebreakPlaceholder);
40
    }
41
42
    /// Returns an instance of [ObjectResolver] that replaces `null` values with an empty string.
43
    ///
44
    /// @return An instance of [ObjectResolver]
45
    public static ObjectResolver nullToEmpty() {
46 1 1. nullToEmpty : replaced return value with null for pro/verron/officestamper/preset/Resolvers::nullToEmpty → KILLED
        return nullToDefault("");
47
    }
48
49
    /// Returns an instance of [ObjectResolver] that resolves `null` values by creating a run with a default text
50
    /// value.
51
    ///
52
    /// @param value The default value for null objects.
53
    ///
54
    /// @return An instance of [ObjectResolver]
55
    public static ObjectResolver nullToDefault(String value) {
56 1 1. nullToDefault : replaced return value with null for pro/verron/officestamper/preset/Resolvers::nullToDefault → KILLED
        return new Null2DefaultResolver(value);
57
    }
58
59
    /// Returns an instance of [ObjectResolver] that resolves `null` values by not replacing their expression.
60
    ///
61
    /// @return An instance of [ObjectResolver]
62
    public static ObjectResolver nullToPlaceholder() {
63 1 1. nullToPlaceholder : replaced return value with null for pro/verron/officestamper/preset/Resolvers::nullToPlaceholder → TIMED_OUT
        return nullToPlaceholder("${%s}");
64
    }
65
66
    /// Returns an instance of [ObjectResolver] that resolves `null` values by not replacing their expression.
67
    ///
68
    /// @param placeholderTemplate The placeholder to use for null objects.
69
    ///
70
    /// @return An instance of [ObjectResolver]
71
    public static ObjectResolver nullToPlaceholder(String placeholderTemplate) {
72 1 1. nullToPlaceholder : replaced return value with null for pro/verron/officestamper/preset/Resolvers::nullToPlaceholder → TIMED_OUT
        return new Null2PlaceholderResolver(placeholderTemplate);
73
    }
74
75
    /// Returns an instance of [ObjectResolver] that resolves [LocalDateTime] values to a formatted string using the
76
    /// [DateTimeFormatter#ISO_LOCAL_DATE_TIME] pattern.
77
    ///
78
    /// @return An instance of [ObjectResolver]
79
    public static ObjectResolver isoDateTime() {
80 1 1. isoDateTime : replaced return value with null for pro/verron/officestamper/preset/Resolvers::isoDateTime → KILLED
        return new LocalDateTimeResolver();
81
    }
82
83
    /// Returns an instance of [ObjectResolver] that resolves [LocalTime] values to a formatted string using the
84
    /// [DateTimeFormatter#ISO_LOCAL_TIME] pattern.
85
    ///
86
    /// @return An instance of [ObjectResolver]
87
    public static ObjectResolver isoTime() {
88 1 1. isoTime : replaced return value with null for pro/verron/officestamper/preset/Resolvers::isoTime → KILLED
        return new LocalTimeResolver();
89
    }
90
91
    /// Returns an instance of [ObjectResolver] that resolves [LocalDate] values to a formatted string using the
92
    /// [DateTimeFormatter#ISO_LOCAL_DATE] pattern.
93
    ///
94
    /// @return An instance of [ObjectResolver]
95
    public static ObjectResolver isoDate() {
96 1 1. isoDate : replaced return value with null for pro/verron/officestamper/preset/Resolvers::isoDate → KILLED
        return new LocalDateResolver();
97
    }
98
99
    /// Returns an instance of [ObjectResolver] that resolves [LocalTime] values to a formatted string using the given
100
    /// [DateTimeFormatter] pattern.
101
    ///
102
    /// @param formatter the [DateTimeFormatter] pattern to use
103
    ///
104
    /// @return An instance of [ObjectResolver]
105
    public static ObjectResolver isoTime(DateTimeFormatter formatter) {
106 1 1. isoTime : replaced return value with null for pro/verron/officestamper/preset/Resolvers::isoTime → NO_COVERAGE
        return new LocalTimeResolver(formatter);
107
    }
108
109
    /// Returns an instance of [ObjectResolver] that resolves [LocalDate] values to a formatted string using the given
110
    /// [DateTimeFormatter] pattern.
111
    ///
112
    /// @param formatter the [DateTimeFormatter] pattern to use
113
    ///
114
    /// @return An instance of [ObjectResolver]
115
    public static ObjectResolver isoDate(DateTimeFormatter formatter) {
116 1 1. isoDate : replaced return value with null for pro/verron/officestamper/preset/Resolvers::isoDate → NO_COVERAGE
        return new LocalDateResolver(formatter);
117
    }
118
119
    /// Returns an instance of [ObjectResolver] that resolves [LocalDateTime] values to a formatted string using the
120
    /// given [DateTimeFormatter] pattern.
121
    ///
122
    /// @param formatter the [DateTimeFormatter] pattern to use
123
    ///
124
    /// @return An instance of [ObjectResolver]
125
    public static ObjectResolver isoDateTime(DateTimeFormatter formatter) {
126 1 1. isoDateTime : replaced return value with null for pro/verron/officestamper/preset/Resolvers::isoDateTime → NO_COVERAGE
        return new LocalDateTimeResolver(formatter);
127
    }
128
129
    /// Returns an instance of [ObjectResolver] that resolves [Date] values to a formatted string using the "dd.MM.yyyy"
130
    /// pattern.
131
    ///
132
    /// @return An instance of [ObjectResolver]
133
    public static ObjectResolver legacyDate() {
134 1 1. legacyDate : replaced return value with null for pro/verron/officestamper/preset/Resolvers::legacyDate → KILLED
        return new DateResolver();
135
    }
136
137
    /// Returns an instance of [ObjectResolver] that resolves [Date] values to a formatted string using the given
138
    /// [DateTimeFormatter] pattern.
139
    ///
140
    /// @param formatter the [DateTimeFormatter] pattern to use
141
    ///
142
    /// @return An instance of [ObjectResolver]
143
    public static ObjectResolver legacyDate(DateTimeFormatter formatter) {
144 1 1. legacyDate : replaced return value with null for pro/verron/officestamper/preset/Resolvers::legacyDate → NO_COVERAGE
        return new DateResolver(formatter);
145
    }
146
147
    /// Returns an instance of [ObjectResolver] that resolves [Image] to an actual image in the resulting .docx
148
    /// document. The image will be put as an inline into the surrounding paragraph of text.
149
    ///
150
    /// @return An instance of [ObjectResolver]
151
    public static ObjectResolver image() {
152 1 1. image : replaced return value with null for pro/verron/officestamper/preset/Resolvers::image → KILLED
        return new ImageResolver();
153
    }
154
}

Mutations

39

1.1
Location : fallback
Killed by : pro.verron.officestamper.test.FailOnUnresolvedPlaceholderTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.FailOnUnresolvedPlaceholderTest]/[test-template:fails(pro.verron.officestamper.test.utils.ContextFactory)]/[test-template-invocation:#1]
replaced return value with null for pro/verron/officestamper/preset/Resolvers::fallback → KILLED

46

1.1
Location : nullToEmpty
Killed by : pro.verron.officestamper.test.FailOnUnresolvedPlaceholderTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.FailOnUnresolvedPlaceholderTest]/[test-template:fails(pro.verron.officestamper.test.utils.ContextFactory)]/[test-template-invocation:#1]
replaced return value with null for pro/verron/officestamper/preset/Resolvers::nullToEmpty → KILLED

56

1.1
Location : nullToDefault
Killed by : pro.verron.officestamper.test.FailOnUnresolvedPlaceholderTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.FailOnUnresolvedPlaceholderTest]/[test-template:fails(pro.verron.officestamper.test.utils.ContextFactory)]/[test-template-invocation:#1]
replaced return value with null for pro/verron/officestamper/preset/Resolvers::nullToDefault → KILLED

63

1.1
Location : nullToPlaceholder
Killed by : none
replaced return value with null for pro/verron/officestamper/preset/Resolvers::nullToPlaceholder → TIMED_OUT

72

1.1
Location : nullToPlaceholder
Killed by : none
replaced return value with null for pro/verron/officestamper/preset/Resolvers::nullToPlaceholder → TIMED_OUT

80

1.1
Location : isoDateTime
Killed by : pro.verron.officestamper.test.FailOnUnresolvedPlaceholderTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.FailOnUnresolvedPlaceholderTest]/[test-template:fails(pro.verron.officestamper.test.utils.ContextFactory)]/[test-template-invocation:#1]
replaced return value with null for pro/verron/officestamper/preset/Resolvers::isoDateTime → KILLED

88

1.1
Location : isoTime
Killed by : pro.verron.officestamper.test.FailOnUnresolvedPlaceholderTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.FailOnUnresolvedPlaceholderTest]/[test-template:fails(pro.verron.officestamper.test.utils.ContextFactory)]/[test-template-invocation:#1]
replaced return value with null for pro/verron/officestamper/preset/Resolvers::isoTime → KILLED

96

1.1
Location : isoDate
Killed by : pro.verron.officestamper.test.FailOnUnresolvedPlaceholderTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.FailOnUnresolvedPlaceholderTest]/[test-template:fails(pro.verron.officestamper.test.utils.ContextFactory)]/[test-template-invocation:#1]
replaced return value with null for pro/verron/officestamper/preset/Resolvers::isoDate → KILLED

106

1.1
Location : isoTime
Killed by : none
replaced return value with null for pro/verron/officestamper/preset/Resolvers::isoTime → NO_COVERAGE

116

1.1
Location : isoDate
Killed by : none
replaced return value with null for pro/verron/officestamper/preset/Resolvers::isoDate → NO_COVERAGE

126

1.1
Location : isoDateTime
Killed by : none
replaced return value with null for pro/verron/officestamper/preset/Resolvers::isoDateTime → NO_COVERAGE

134

1.1
Location : legacyDate
Killed by : pro.verron.officestamper.test.FailOnUnresolvedPlaceholderTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.FailOnUnresolvedPlaceholderTest]/[test-template:fails(pro.verron.officestamper.test.utils.ContextFactory)]/[test-template-invocation:#1]
replaced return value with null for pro/verron/officestamper/preset/Resolvers::legacyDate → KILLED

144

1.1
Location : legacyDate
Killed by : none
replaced return value with null for pro/verron/officestamper/preset/Resolvers::legacyDate → NO_COVERAGE

152

1.1
Location : image
Killed by : pro.verron.officestamper.test.FailOnUnresolvedPlaceholderTest.[engine:junit-jupiter]/[class:pro.verron.officestamper.test.FailOnUnresolvedPlaceholderTest]/[test-template:fails(pro.verron.officestamper.test.utils.ContextFactory)]/[test-template-invocation:#1]
replaced return value with null for pro/verron/officestamper/preset/Resolvers::image → KILLED

Active mutators

Tests examined


Report generated by PIT 1.22.0