| 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 |