/*
* Copyright 2014 Red Hat, Inc.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* and Apache License v2.0 which accompanies this distribution.
*
* The Eclipse Public License is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* The Apache License v2.0 is available at
* http://www.opensource.org/licenses/apache2.0.php
*
* You may elect to redistribute this code under either of these licenses.
*/
package io.vertx.ext.web.templ.handlebars;
import com.github.jknack.handlebars.Handlebars;
import com.github.jknack.handlebars.ValueResolver;
import io.vertx.codegen.annotations.Fluent;
import io.vertx.codegen.annotations.GenIgnore;
import io.vertx.codegen.annotations.VertxGen;
import io.vertx.core.Vertx;
import io.vertx.ext.web.common.template.TemplateEngine;
import io.vertx.ext.web.templ.handlebars.impl.HandlebarsTemplateEngineImpl;
A template engine that uses the Handlebars library.
Author: Tim Fox
/**
* A template engine that uses the Handlebars library.
*
* @author <a href="http://tfox.org">Tim Fox</a>
*/
@VertxGen
public interface HandlebarsTemplateEngine extends TemplateEngine {
Default max number of templates to cache
/**
* Default max number of templates to cache
*/
int DEFAULT_MAX_CACHE_SIZE = 10000;
Default template extension
/**
* Default template extension
*/
@Deprecated
String DEFAULT_TEMPLATE_EXTENSION = "hbs";
Create a template engine using defaults
Returns: the engine
/**
* Create a template engine using defaults
*
* @return the engine
*/
static HandlebarsTemplateEngine create(Vertx vertx) {
return new HandlebarsTemplateEngineImpl(vertx);
}
Params: - extension – the extension
Deprecated: as a user you should use filename with extensions on the render method instead of relying
on this method to suffix your filenames. Using this method is quite an opinionated API and has the side
effect that you cannot use files without extensions as templates.
Set the extension for the engine Returns: a reference to this for fluency
/**
* @deprecated as a user you should use filename with extensions on the render method instead of relying
* on this method to suffix your filenames. Using this method is quite an opinionated API and has the side
* effect that you cannot use files without extensions as templates.
*
* Set the extension for the engine
*
* @param extension the extension
* @return a reference to this for fluency
*/
@Fluent
@Deprecated
HandlebarsTemplateEngine setExtension(String extension);
Set the max cache size for the engine
Params: - maxCacheSize – the maxCacheSize
Returns: a reference to this for fluency
/**
* Set the max cache size for the engine
*
* @param maxCacheSize the maxCacheSize
* @return a reference to this for fluency
*/
@Fluent
HandlebarsTemplateEngine setMaxCacheSize(int maxCacheSize);
Get a reference to the internal Handlebars object so it
can be configured.
Returns: a reference to the internal Handlebars instance.
/**
* Get a reference to the internal Handlebars object so it
* can be configured.
*
* @return a reference to the internal Handlebars instance.
*/
@GenIgnore
Handlebars getHandlebars();
Return the array of configured handlebars context value resolvers.
Returns: array of configured resolvers
/**
* Return the array of configured handlebars context value resolvers.
* @return array of configured resolvers
*/
@GenIgnore
ValueResolver[] getResolvers();
Set the array of handlebars context value resolvers.
Params: - resolvers – the value resolvers to be used
Returns: a reference to the internal Handlebars instance.
/**
* Set the array of handlebars context value resolvers.
*
* @param resolvers the value resolvers to be used
* @return a reference to the internal Handlebars instance.
*/
@GenIgnore
HandlebarsTemplateEngine setResolvers(ValueResolver... resolvers);
}