ThymeleafV2TemplateOptionsApplier.java
package fr.sii.ogham.template.thymeleaf.v2.adapter;
import java.util.function.Consumer;
import org.thymeleaf.templateresolver.ITemplateResolver;
import org.thymeleaf.templateresolver.TemplateResolver;
import fr.sii.ogham.template.thymeleaf.common.TemplateResolverOptions;
import fr.sii.ogham.template.thymeleaf.common.adapter.TemplateResolverOptionsApplier;
/**
 * Apply options on {@link TemplateResolver} instance (configurable).
 * 
 * @author Aurélien Baudet
 *
 */
public class ThymeleafV2TemplateOptionsApplier implements TemplateResolverOptionsApplier {
	@Override
	public void apply(ITemplateResolver templateResolver, TemplateResolverOptions options) {
		if (templateResolver instanceof TemplateResolver) {
			// TODO: handle other options ?
			TemplateResolver resolver = (TemplateResolver) templateResolver;
			set(resolver::setTemplateMode, options.getTemplateMode());
			set(resolver::setCacheable, options.getCacheable());
		}
	}
	private <T> void set(Consumer<T> setter, T value) {
		if (value != null) {
			setter.accept(value);
		}
	}
}