ThymeleafV2EngineConfigBuilder.java

1
package fr.sii.ogham.template.thymeleaf.v2.buider;
2
3
import java.util.HashSet;
4
import java.util.Set;
5
6
import org.thymeleaf.TemplateEngine;
7
import org.thymeleaf.messageresolver.IMessageResolver;
8
import org.thymeleaf.templatemode.ITemplateModeHandler;
9
import org.thymeleaf.templatemode.StandardTemplateModeHandlers;
10
11
import fr.sii.ogham.core.builder.context.BuildContext;
12
import fr.sii.ogham.template.thymeleaf.common.buider.AbstractThymeleafEngineConfigBuilder;
13
14
/**
15
 * Fluent builder to configure Thymeleaf engine.
16
 * 
17
 * @author Aurélien Baudet
18
 *
19
 * @param <P>
20
 *            the type of the parent builder (when calling {@link #and()}
21
 *            method)
22
 */
23
public class ThymeleafV2EngineConfigBuilder<P> extends AbstractThymeleafEngineConfigBuilder<ThymeleafV2EngineConfigBuilder<P>, P> {
24
	private Set<IMessageResolver> defaultMessageResolvers;
25
	private Set<ITemplateModeHandler> templateModeHandlers;
26
	private Set<ITemplateModeHandler> defaultTemplateModeHandlers;
27
28
	/**
29
	 * Initializes the builder with a parent builder. The parent builder is used
30
	 * when calling {@link #and()} method.
31
	 * 
32
	 * @param parent
33
	 *            the parent builder
34
	 * @param buildContext
35
	 *            for registering instances and property evaluation
36
	 */
37
	public ThymeleafV2EngineConfigBuilder(P parent, BuildContext buildContext) {
38
		super(ThymeleafV2EngineConfigBuilder.class, parent, buildContext);
39
	}
40
41
	/**
42
	 * <p>
43
	 * Sets the Template Mode Handlers to be used by this template engine. Every
44
	 * available template mode must have its corresponding handler.
45
	 * </p>
46
	 * <p>
47
	 * By default, template mode handlers set are
48
	 * {@link StandardTemplateModeHandlers#ALL_TEMPLATE_MODE_HANDLERS}
49
	 * </p>
50
	 * <p>
51
	 * This operation can only be executed before processing templates for the
52
	 * first time. Once a template is processed, the template engine is
53
	 * considered to be <i>initialized</i>, and from then on any attempt to
54
	 * change its configuration will result in an exception.
55
	 * </p>
56
	 * 
57
	 * @param templateModeHandlers
58
	 *            the Set of Template Mode Handlers.
59
	 * @return this for fluent use
60
	 */
61
	public ThymeleafV2EngineConfigBuilder<P> setTemplateModeHandlers(final Set<? extends ITemplateModeHandler> templateModeHandlers) {
62 1 1. setTemplateModeHandlers : removed call to java/util/Set::clear → NO_COVERAGE
		this.templateModeHandlers().clear();
63
		this.templateModeHandlers().addAll(templateModeHandlers);
64 1 1. setTemplateModeHandlers : replaced return value with null for fr/sii/ogham/template/thymeleaf/v2/buider/ThymeleafV2EngineConfigBuilder::setTemplateModeHandlers → NO_COVERAGE
		return this;
65
	}
66
67
	/**
68
	 * <p>
69
	 * Adds a Template Mode Handler to the set of Template Mode Handlers to be
70
	 * used by the template engine. Every available template mode must have its
71
	 * corresponding handler.
72
	 * </p>
73
	 * <p>
74
	 * By default, template mode handlers set are
75
	 * {@link StandardTemplateModeHandlers#ALL_TEMPLATE_MODE_HANDLERS}
76
	 * </p>
77
	 * <p>
78
	 * This operation can only be executed before processing templates for the
79
	 * first time. Once a template is processed, the template engine is
80
	 * considered to be <i>initialized</i>, and from then on any attempt to
81
	 * change its configuration will result in an exception.
82
	 * </p>
83
	 * 
84
	 * @param templateModeHandler
85
	 *            the new Template Mode Handler to be added.
86
	 * @return this for fluent use
87
	 */
88
	public ThymeleafV2EngineConfigBuilder<P> addTemplateModeHandler(final ITemplateModeHandler templateModeHandler) {
89
		templateModeHandlers().add(templateModeHandler);
90 1 1. addTemplateModeHandler : replaced return value with null for fr/sii/ogham/template/thymeleaf/v2/buider/ThymeleafV2EngineConfigBuilder::addTemplateModeHandler → NO_COVERAGE
		return this;
91
	}
92
93
	/**
94
	 * <p>
95
	 * Sets the default Template Mode Handlers. These are used when no Template
96
	 * Mode Handlers are set via the {@link #setTemplateModeHandlers(Set)} or
97
	 * {@link #addTemplateModeHandler(ITemplateModeHandler)} methods.
98
	 * </p>
99
	 * <p>
100
	 * This method is useful for creating subclasses of TemplateEngine that
101
	 * establish default configurations for Template Mode Handlers.
102
	 * </p>
103
	 * <p>
104
	 * By default, template mode handlers set are
105
	 * {@link StandardTemplateModeHandlers#ALL_TEMPLATE_MODE_HANDLERS}
106
	 * </p>
107
	 * <p>
108
	 * This operation can only be executed before processing templates for the
109
	 * first time. Once a template is processed, the template engine is
110
	 * considered to be <i>initialized</i>, and from then on any attempt to
111
	 * change its configuration will result in an exception.
112
	 * </p>
113
	 * 
114
	 * @param defaultTemplateModeHandlers
115
	 *            the default Template Mode Handlers.
116
	 * @return this for fluent use
117
	 */
118
	public ThymeleafV2EngineConfigBuilder<P> setDefaultTemplateModeHandlers(final Set<? extends ITemplateModeHandler> defaultTemplateModeHandlers) {
119 1 1. setDefaultTemplateModeHandlers : removed call to java/util/Set::clear → NO_COVERAGE
		defaultTemplateModeHandlers().clear();
120
		defaultTemplateModeHandlers().addAll(defaultTemplateModeHandlers);
121 1 1. setDefaultTemplateModeHandlers : replaced return value with null for fr/sii/ogham/template/thymeleaf/v2/buider/ThymeleafV2EngineConfigBuilder::setDefaultTemplateModeHandlers → NO_COVERAGE
		return this;
122
	}
123
124
	/**
125
	 * <p>
126
	 * Sets the default message resolvers. These are used when no message
127
	 * resolvers are set via the {@link #setMessageResolver(IMessageResolver)},
128
	 * {@link #setMessageResolvers(Set)} or
129
	 * {@link #addMessageResolver(IMessageResolver)} methods.
130
	 * </p>
131
	 * <p>
132
	 * This method is useful for creating subclasses of {@link TemplateEngine}
133
	 * that establish default configurations for message resolvers.
134
	 * </p>
135
	 * <p>
136
	 * This operation can only be executed before processing templates for the
137
	 * first time. Once a template is processed, the template engine is
138
	 * considered to be <i>initialized</i>, and from then on any attempt to
139
	 * change its configuration will result in an exception.
140
	 * </p>
141
	 * 
142
	 * @param defaultMessageResolvers
143
	 *            the default message resolvers.
144
	 * @return this for fluent use
145
	 */
146
	public ThymeleafV2EngineConfigBuilder<P> setDefaultMessageResolvers(final Set<? extends IMessageResolver> defaultMessageResolvers) {
147 1 1. setDefaultMessageResolvers : removed call to java/util/Set::clear → NO_COVERAGE
		this.defaultMessageResolvers().clear();
148
		this.defaultMessageResolvers().addAll(defaultMessageResolvers);
149 1 1. setDefaultMessageResolvers : replaced return value with null for fr/sii/ogham/template/thymeleaf/v2/buider/ThymeleafV2EngineConfigBuilder::setDefaultMessageResolvers → NO_COVERAGE
		return this;
150
	}
151
152
	@Override
153
	public TemplateEngine build() {
154
		TemplateEngine engine = super.build();
155 1 1. build : removed call to fr/sii/ogham/template/thymeleaf/v2/buider/ThymeleafV2EngineConfigBuilder::configureTemplateModeHandlers → NO_COVERAGE
		configureTemplateModeHandlers(engine);
156 1 1. build : replaced return value with null for fr/sii/ogham/template/thymeleaf/v2/buider/ThymeleafV2EngineConfigBuilder::build → NO_COVERAGE
		return engine;
157
	}
158
159
	private void configureTemplateModeHandlers(TemplateEngine engine) {
160 1 1. configureTemplateModeHandlers : negated conditional → NO_COVERAGE
		if (defaultTemplateModeHandlers != null) {
161 1 1. configureTemplateModeHandlers : removed call to org/thymeleaf/TemplateEngine::setDefaultTemplateModeHandlers → NO_COVERAGE
			engine.setDefaultTemplateModeHandlers(defaultTemplateModeHandlers);
162
		}
163 1 1. configureTemplateModeHandlers : negated conditional → NO_COVERAGE
		if (templateModeHandlers != null) {
164 1 1. configureTemplateModeHandlers : removed call to org/thymeleaf/TemplateEngine::setTemplateModeHandlers → NO_COVERAGE
			engine.setTemplateModeHandlers(templateModeHandlers);
165
		}
166
	}
167
168
	@Override
169
	protected void configureMessageResolvers(TemplateEngine engine) {
170 1 1. configureMessageResolvers : removed call to fr/sii/ogham/template/thymeleaf/common/buider/AbstractThymeleafEngineConfigBuilder::configureMessageResolvers → NO_COVERAGE
		super.configureMessageResolvers(engine);
171 1 1. configureMessageResolvers : negated conditional → NO_COVERAGE
		if (defaultMessageResolvers != null) {
172 1 1. configureMessageResolvers : removed call to org/thymeleaf/TemplateEngine::setDefaultMessageResolvers → NO_COVERAGE
			engine.setDefaultMessageResolvers(defaultMessageResolvers);
173
		}
174
	}
175
176
	private Set<IMessageResolver> defaultMessageResolvers() {
177 1 1. defaultMessageResolvers : negated conditional → NO_COVERAGE
		if (defaultMessageResolvers == null) {
178
			defaultMessageResolvers = new HashSet<>();
179
		}
180 1 1. defaultMessageResolvers : replaced return value with Collections.emptyList for fr/sii/ogham/template/thymeleaf/v2/buider/ThymeleafV2EngineConfigBuilder::defaultMessageResolvers → NO_COVERAGE
		return defaultMessageResolvers;
181
	}
182
183
	private Set<ITemplateModeHandler> templateModeHandlers() {
184 1 1. templateModeHandlers : negated conditional → NO_COVERAGE
		if (templateModeHandlers == null) {
185
			templateModeHandlers = new HashSet<>();
186
		}
187 1 1. templateModeHandlers : replaced return value with Collections.emptyList for fr/sii/ogham/template/thymeleaf/v2/buider/ThymeleafV2EngineConfigBuilder::templateModeHandlers → NO_COVERAGE
		return templateModeHandlers;
188
	}
189
190
	private Set<ITemplateModeHandler> defaultTemplateModeHandlers() {
191 1 1. defaultTemplateModeHandlers : negated conditional → NO_COVERAGE
		if (defaultTemplateModeHandlers == null) {
192
			defaultTemplateModeHandlers = new HashSet<>();
193
		}
194 1 1. defaultTemplateModeHandlers : replaced return value with Collections.emptyList for fr/sii/ogham/template/thymeleaf/v2/buider/ThymeleafV2EngineConfigBuilder::defaultTemplateModeHandlers → NO_COVERAGE
		return defaultTemplateModeHandlers;
195
	}
196
197
}

Mutations

62

1.1
Location : setTemplateModeHandlers
Killed by : none
removed call to java/util/Set::clear → NO_COVERAGE

64

1.1
Location : setTemplateModeHandlers
Killed by : none
replaced return value with null for fr/sii/ogham/template/thymeleaf/v2/buider/ThymeleafV2EngineConfigBuilder::setTemplateModeHandlers → NO_COVERAGE

90

1.1
Location : addTemplateModeHandler
Killed by : none
replaced return value with null for fr/sii/ogham/template/thymeleaf/v2/buider/ThymeleafV2EngineConfigBuilder::addTemplateModeHandler → NO_COVERAGE

119

1.1
Location : setDefaultTemplateModeHandlers
Killed by : none
removed call to java/util/Set::clear → NO_COVERAGE

121

1.1
Location : setDefaultTemplateModeHandlers
Killed by : none
replaced return value with null for fr/sii/ogham/template/thymeleaf/v2/buider/ThymeleafV2EngineConfigBuilder::setDefaultTemplateModeHandlers → NO_COVERAGE

147

1.1
Location : setDefaultMessageResolvers
Killed by : none
removed call to java/util/Set::clear → NO_COVERAGE

149

1.1
Location : setDefaultMessageResolvers
Killed by : none
replaced return value with null for fr/sii/ogham/template/thymeleaf/v2/buider/ThymeleafV2EngineConfigBuilder::setDefaultMessageResolvers → NO_COVERAGE

155

1.1
Location : build
Killed by : none
removed call to fr/sii/ogham/template/thymeleaf/v2/buider/ThymeleafV2EngineConfigBuilder::configureTemplateModeHandlers → NO_COVERAGE

156

1.1
Location : build
Killed by : none
replaced return value with null for fr/sii/ogham/template/thymeleaf/v2/buider/ThymeleafV2EngineConfigBuilder::build → NO_COVERAGE

160

1.1
Location : configureTemplateModeHandlers
Killed by : none
negated conditional → NO_COVERAGE

161

1.1
Location : configureTemplateModeHandlers
Killed by : none
removed call to org/thymeleaf/TemplateEngine::setDefaultTemplateModeHandlers → NO_COVERAGE

163

1.1
Location : configureTemplateModeHandlers
Killed by : none
negated conditional → NO_COVERAGE

164

1.1
Location : configureTemplateModeHandlers
Killed by : none
removed call to org/thymeleaf/TemplateEngine::setTemplateModeHandlers → NO_COVERAGE

170

1.1
Location : configureMessageResolvers
Killed by : none
removed call to fr/sii/ogham/template/thymeleaf/common/buider/AbstractThymeleafEngineConfigBuilder::configureMessageResolvers → NO_COVERAGE

171

1.1
Location : configureMessageResolvers
Killed by : none
negated conditional → NO_COVERAGE

172

1.1
Location : configureMessageResolvers
Killed by : none
removed call to org/thymeleaf/TemplateEngine::setDefaultMessageResolvers → NO_COVERAGE

177

1.1
Location : defaultMessageResolvers
Killed by : none
negated conditional → NO_COVERAGE

180

1.1
Location : defaultMessageResolvers
Killed by : none
replaced return value with Collections.emptyList for fr/sii/ogham/template/thymeleaf/v2/buider/ThymeleafV2EngineConfigBuilder::defaultMessageResolvers → NO_COVERAGE

184

1.1
Location : templateModeHandlers
Killed by : none
negated conditional → NO_COVERAGE

187

1.1
Location : templateModeHandlers
Killed by : none
replaced return value with Collections.emptyList for fr/sii/ogham/template/thymeleaf/v2/buider/ThymeleafV2EngineConfigBuilder::templateModeHandlers → NO_COVERAGE

191

1.1
Location : defaultTemplateModeHandlers
Killed by : none
negated conditional → NO_COVERAGE

194

1.1
Location : defaultTemplateModeHandlers
Killed by : none
replaced return value with Collections.emptyList for fr/sii/ogham/template/thymeleaf/v2/buider/ThymeleafV2EngineConfigBuilder::defaultTemplateModeHandlers → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT OGHAM