freemarker.core
Interface TemplateClassResolver

All Known Implementing Classes:
OptInTemplateClassResolver

public interface TemplateClassResolver

Used by built-ins and other template language features that get a class based on a string. This can be handy both for implementing security restrictions and for working around local class-loader issues. The implementation should be thread-safe, unless an instance is always only used in a single Environment object.

See Also:
Configurable.setNewBuiltinClassResolver(TemplateClassResolver)

Field Summary
static TemplateClassResolver ALLOWS_NOTHING_RESOLVER
          Doesn't allow resolving any classes.
static TemplateClassResolver SAFER_RESOLVER
          Same as UNRESTRICTED_RESOLVER, except that it doesn't allow resolving ObjectConstructor.
static TemplateClassResolver UNRESTRICTED_RESOLVER
          Simply calls ClassUtil.forName(String).
 
Method Summary
 java.lang.Class resolve(java.lang.String className, Environment env, Template template)
          Gets a Class based on the class name.
 

Field Detail

UNRESTRICTED_RESOLVER

static final TemplateClassResolver UNRESTRICTED_RESOLVER
Simply calls ClassUtil.forName(String).


SAFER_RESOLVER

static final TemplateClassResolver SAFER_RESOLVER
Same as UNRESTRICTED_RESOLVER, except that it doesn't allow resolving ObjectConstructor.


ALLOWS_NOTHING_RESOLVER

static final TemplateClassResolver ALLOWS_NOTHING_RESOLVER
Doesn't allow resolving any classes.

Method Detail

resolve

java.lang.Class resolve(java.lang.String className,
                        Environment env,
                        Template template)
                        throws TemplateException
Gets a Class based on the class name.

Parameters:
className - the full-qualified class name
env - the environment in which the template executes
template - the template where the operation that require the class resolution resides in. This is null if the call doesn't come from a template.
Throws:
TemplateException - if the class can't be found or shouldn't be accessed from a template for security reasons.