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 |
|
64 |
1.1 |
|
90 |
1.1 |
|
119 |
1.1 |
|
121 |
1.1 |
|
147 |
1.1 |
|
149 |
1.1 |
|
155 |
1.1 |
|
156 |
1.1 |
|
160 |
1.1 |
|
161 |
1.1 |
|
163 |
1.1 |
|
164 |
1.1 |
|
170 |
1.1 |
|
171 |
1.1 |
|
172 |
1.1 |
|
177 |
1.1 |
|
180 |
1.1 |
|
184 |
1.1 |
|
187 |
1.1 |
|
191 |
1.1 |
|
194 |
1.1 |