class DefaultTemplateResolver extends AbstractTemplateResolver {


    /**
     * <p>
     *   Default template mode: {@link TemplateMode#HTML}
     * </p>
     */
    public static final TemplateMode DEFAULT_TEMPLATE_MODE = TemplateMode.HTML;



    private TemplateMode templateMode = DEFAULT_TEMPLATE_MODE;
    private String template = "";



    /**
     * <p>
     *   Creates a new instance of this template resolver.
     * </p>
     */
    public DefaultTemplateResolver() {
        super();
    }






    /**
     * <p>
     *   Returns the template mode to be applied to templates resolved by
     *   this template resolver.
     * </p>
     *
     * @return the template mode to be used.
     */
    public final TemplateMode getTemplateMode() {
        return this.templateMode;
    }


    /**
     * <p>
     *   Sets the template mode to be applied to templates resolved by this resolver.
     * </p>
     *
     * @param templateMode the template mode.
     */
    public final void setTemplateMode(final TemplateMode templateMode) {
        Validate.notNull(templateMode, "Cannot set a null template mode value");
        this.templateMode = templateMode;
    }


    /**
     * <p>
     *   Sets the template mode to be applied to templates resolved by this resolver.
     * </p>
     * <p>
     *   Allowed templates modes are defined by the {@link TemplateMode} class.
     * </p>
     *
     * @param templateMode the template mode.
     */
    public final void setTemplateMode(final String templateMode) {<FILL_FUNCTION_BODY>}


    /**
     * <p>
     *   Returns the text that will always be returned by this template resolver as the resolved template.
     * </p>
     *
     * @return the text to be returned as template.
     */
    public String getTemplate() {
        return this.template;
    }


    /**
     * <p>
     *   Set the text that will be returned as the resolved template.
     * </p>
     *
     * @param template the text to be returned as template.
     */
    public void setTemplate(final String template) {
        this.template = template;
    }




    @Override
    protected ITemplateResource computeTemplateResource(final IEngineConfiguration configuration, final String ownerTemplate, final String template, final Map<String, Object> templateResolutionAttributes) {
        return new StringTemplateResource(this.template);
    }


    @Override
    protected TemplateMode computeTemplateMode(final IEngineConfiguration configuration, final String ownerTemplate, final String template, final Map<String, Object> templateResolutionAttributes) {
        return this.templateMode;
    }


    @Override
    protected ICacheEntryValidity computeValidity(final IEngineConfiguration configuration, final String ownerTemplate, final String template, final Map<String, Object> templateResolutionAttributes) {
        return AlwaysValidCacheEntryValidity.INSTANCE;
    }


}

        // Setter overload actually goes against the JavaBeans spec, but having this one is good for legacy
        // compatibility reasons. Besides, given the getter returns TemplateMode, intelligent frameworks like
        // Spring will recognized the property as TemplateMode-typed and simply ignore this setter.
        Validate.notNull(templateMode, "Cannot set a null template mode value");
        this.templateMode = TemplateMode.parse(templateMode);
    
<methods>public final boolean getCheckExistence() ,public final java.lang.String getName() ,public final java.lang.Integer getOrder() ,public final org.thymeleaf.util.PatternSpec getResolvablePatternSpec() ,public final Set<java.lang.String> getResolvablePatterns() ,public final boolean getUseDecoupledLogic() ,public final org.thymeleaf.templateresolver.TemplateResolution resolveTemplate(org.thymeleaf.IEngineConfiguration, java.lang.String, java.lang.String, Map<java.lang.String,java.lang.Object>) ,public void setCheckExistence(boolean) ,public void setName(java.lang.String) ,public void setOrder(java.lang.Integer) ,public void setResolvablePatterns(Set<java.lang.String>) ,public void setUseDecoupledLogic(boolean) <variables>public static final boolean DEFAULT_EXISTENCE_CHECK,public static final boolean DEFAULT_USE_DECOUPLED_LOGIC,private boolean checkExistence,private java.lang.String name,private java.lang.Integer order,private final org.thymeleaf.util.PatternSpec resolvablePatternSpec,private boolean useDecoupledLogic