Package 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.- Since:
- 2.3.17
- See Also:
Configurable.setNewBuiltinClassResolver(TemplateClassResolver)
-
Field Summary
Modifier and TypeFieldDescriptionstatic TemplateClassResolver
Doesn't allow resolving any classes.static TemplateClassResolver
Same asUNRESTRICTED_RESOLVER
, except that it doesn't allow resolvingObjectConstructor
andExecute
andfreemarker.template.utility.JythonRuntime
.static TemplateClassResolver
Simply callsClassUtil.forName(String)
. -
Method Summary
-
Field Details
-
UNRESTRICTED_RESOLVER
Simply callsClassUtil.forName(String)
. -
SAFER_RESOLVER
Same asUNRESTRICTED_RESOLVER
, except that it doesn't allow resolvingObjectConstructor
andExecute
andfreemarker.template.utility.JythonRuntime
. -
ALLOWS_NOTHING_RESOLVER
Doesn't allow resolving any classes.
-
-
Method Details
-
resolve
Gets aClass
based on the class name.- Parameters:
className
- the full-qualified class nameenv
- the environment in which the template executestemplate
- the template where the operation that require the class resolution resides in. This isnull
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.
-