# Uses of Package
freemarker.template

Packages that use freemarker.template
freemarker.cache: Template loading and caching.
freemarker.core: The seldom used or advanced parts of the fundamental FreeMarker API, compared to `freemarker.template`.
freemarker.debug: Debugging API; experimental status, might change! This is to support debugging in IDE-s.
freemarker.ext.beans: The `default object wrapper` of FreeMarker uses this to expose Java Beans and POJO-s to templates, but it can also be used in itself as a better alternative `ObjectWrapper`.
freemarker.ext.dom: Exposes DOM XML nodes to templates as easily traversable trees; see in the Manual.
freemarker.ext.jdom: Deprecated, use W3C DOM (`freemarker.ext.dom`) instead; Exposes JDOM XML nodes to templates.
freemarker.ext.jsp: Classes for two-way FreeMarker-JSP integration.
freemarker.ext.jython: Exposes Jython objects to templates.
freemarker.ext.rhino: Exposes Rhino (ECMAScript) objects to templates.
freemarker.ext.servlet: Servlet for legacy "Model 2" frameworks that allows using FreeMarker templates instead of JSP as the MVC View (see in the Manual).
freemarker.ext.util: Various classes used by `freemarker.ext` but might be useful outside it too.
freemarker.ext.xml: Deprecated, use W3C DOM with `freemarker.ext.dom` instead; Exposes XML from DOM, dom4j or JDOM nodes, uniformly.
freemarker.template: The fundamental, most commonly used API-s of FreeMarker; start with `Configuration` (see also the Getting Stared in the Manual.)
freemarker.template.utility: Various classes used by core FreeMarker code but might be useful outside of it too.

Classes in freemarker.template used by freemarker.cache
Class and Description
Configuration The main entry point into the FreeMarker API; encapsulates the configuration settings of FreeMarker, also serves as a central template-loading and caching service.
Template Stores an already parsed template, ready to be processed (rendered) for unlimited times, possibly from multiple threads.

Classes in freemarker.template used by freemarker.core
Class and Description
Configuration The main entry point into the FreeMarker API; encapsulates the configuration settings of FreeMarker, also serves as a central template-loading and caching service.
MalformedTemplateNameException Indicates that the template name given was malformed according the `TemplateNameFormat` in use.
ObjectWrapper Maps Java objects to the type-system of FreeMarker Template Language (see the `TemplateModel` interfaces).
SimpleHash A simple implementation of the `TemplateHashModelEx` interface, using its own underlying `Map` or `SortedMap` for storing the hash entries.
Template Stores an already parsed template, ready to be processed (rendered) for unlimited times, possibly from multiple threads.
TemplateDateModel "date", "time" and "date-time" template language data types: corresponds to `Date`.
TemplateDirectiveModel "directive" template language data type: used as user-defined directives (much like macros) in templates.
TemplateException Runtime exception in a template (as opposed to a parsing-time exception: `ParseException`).
TemplateExceptionHandler Used for the `template_exception_handler` configuration setting; see `Configurable.setTemplateExceptionHandler(TemplateExceptionHandler)` for more.
TemplateHashModel "hash" template language data type: an object that contains other objects accessible through string keys (sub-variable names).
TemplateHashModelEx "extended hash" template language data type; extends `TemplateHashModel` by allowing iterating through its keys and values.
TemplateHashModelEx2 Adds key-value pair listing capability to `TemplateHashModelEx`.
TemplateModel The common super-interface of the interfaces that stand for the FreeMarker Template Language (FTL) data types.
TemplateModelException `TemplateModel` methods throw this exception if the requested data can't be retrieved.
TemplateNodeModel "node" template language data type: an object that is a node in a tree.
TemplateNumberModel "number" template language data type; an object that stores a number.
Version Represents a version number plus the further qualifiers and build info.
WrappingTemplateModel Convenience base-class for containers that wrap their contained arbitrary Java objects into `TemplateModel` instances.

Classes in freemarker.template used by freemarker.debug
Class and Description
TemplateModelException `TemplateModel` methods throw this exception if the requested data can't be retrieved.

Classes in freemarker.template used by freemarker.ext.beans
Class and Description
AdapterTemplateModel A `TemplateModel` that can be unwrapped and then it considers a provided desired (hint) class.
ObjectWrapper Maps Java objects to the type-system of FreeMarker Template Language (see the `TemplateModel` interfaces).
ObjectWrapperAndUnwrapper Experimental - subject to change: Adds functionality to `ObjectWrapper` that creates a plain Java object from a `TemplateModel`.
TemplateBooleanModel "boolean" template language data type; same as in Java; either `true` or `false`.
TemplateCollectionModel "collection" template language data type: a collection of values that can be enumerated, but can't be or not meant to be accessed by index or key.
TemplateDateModel "date", "time" and "date-time" template language data types: corresponds to `Date`.
TemplateException Runtime exception in a template (as opposed to a parsing-time exception: `ParseException`).
TemplateHashModel "hash" template language data type: an object that contains other objects accessible through string keys (sub-variable names).
TemplateHashModelEx "extended hash" template language data type; extends `TemplateHashModel` by allowing iterating through its keys and values.
TemplateHashModelEx2 Adds key-value pair listing capability to `TemplateHashModelEx`.
TemplateHashModelEx2.KeyValuePairIterator Iterates over the key-value pairs in a hash.
TemplateMethodModel Deprecated. Use `TemplateMethodModelEx` instead. This interface is from the old times when the only kind of value you could pass in was string.
TemplateMethodModelEx "extended method" template language data type: Objects that act like functions.
TemplateModel The common super-interface of the interfaces that stand for the FreeMarker Template Language (FTL) data types.
TemplateModelAdapter Implemented by classes that serve as adapters for template model objects in some other object model.
TemplateModelException `TemplateModel` methods throw this exception if the requested data can't be retrieved.
TemplateModelIterator Used to iterate over a set of template models once; usually returned from `TemplateCollectionModel.iterator()`.
TemplateModelWithAPISupport Experimental - subject to change: A `TemplateModel` on which the `?api` operation can be applied.
TemplateNumberModel "number" template language data type; an object that stores a number.
TemplateScalarModel "string" template language data-type; like in Java, an unmodifiable UNICODE character sequence.
TemplateSequenceModel "sequence" template language data type; an object that contains other objects accessible through an integer 0-based index.
Version Represents a version number plus the further qualifiers and build info.
WrappingTemplateModel Convenience base-class for containers that wrap their contained arbitrary Java objects into `TemplateModel` instances.

Classes in freemarker.template used by freemarker.ext.dom
Class and Description
AdapterTemplateModel A `TemplateModel` that can be unwrapped and then it considers a provided desired (hint) class.
TemplateHashModel "hash" template language data type: an object that contains other objects accessible through string keys (sub-variable names).
TemplateModel The common super-interface of the interfaces that stand for the FreeMarker Template Language (FTL) data types.
TemplateModelException `TemplateModel` methods throw this exception if the requested data can't be retrieved.
TemplateNodeModel "node" template language data type: an object that is a node in a tree.
TemplateSequenceModel "sequence" template language data type; an object that contains other objects accessible through an integer 0-based index.

Classes in freemarker.template used by freemarker.ext.jdom
Class and Description
TemplateCollectionModel "collection" template language data type: a collection of values that can be enumerated, but can't be or not meant to be accessed by index or key.
TemplateHashModel "hash" template language data type: an object that contains other objects accessible through string keys (sub-variable names).
TemplateMethodModel Deprecated. Use `TemplateMethodModelEx` instead. This interface is from the old times when the only kind of value you could pass in was string.
TemplateModel The common super-interface of the interfaces that stand for the FreeMarker Template Language (FTL) data types.
TemplateModelException `TemplateModel` methods throw this exception if the requested data can't be retrieved.
TemplateModelIterator Used to iterate over a set of template models once; usually returned from `TemplateCollectionModel.iterator()`.
TemplateScalarModel "string" template language data-type; like in Java, an unmodifiable UNICODE character sequence.
TemplateSequenceModel "sequence" template language data type; an object that contains other objects accessible through an integer 0-based index.

Classes in freemarker.template used by freemarker.ext.jsp
Class and Description
ObjectWrapper Maps Java objects to the type-system of FreeMarker Template Language (see the `TemplateModel` interfaces).
TemplateHashModel "hash" template language data type: an object that contains other objects accessible through string keys (sub-variable names).
TemplateModel The common super-interface of the interfaces that stand for the FreeMarker Template Language (FTL) data types.
TemplateModelException `TemplateModel` methods throw this exception if the requested data can't be retrieved.

Classes in freemarker.template used by freemarker.ext.jython
Class and Description
AdapterTemplateModel A `TemplateModel` that can be unwrapped and then it considers a provided desired (hint) class.
ObjectWrapper Maps Java objects to the type-system of FreeMarker Template Language (see the `TemplateModel` interfaces).
TemplateBooleanModel "boolean" template language data type; same as in Java; either `true` or `false`.
TemplateCollectionModel "collection" template language data type: a collection of values that can be enumerated, but can't be or not meant to be accessed by index or key.
TemplateHashModel "hash" template language data type: an object that contains other objects accessible through string keys (sub-variable names).
TemplateHashModelEx "extended hash" template language data type; extends `TemplateHashModel` by allowing iterating through its keys and values.
TemplateMethodModel Deprecated. Use `TemplateMethodModelEx` instead. This interface is from the old times when the only kind of value you could pass in was string.
TemplateMethodModelEx "extended method" template language data type: Objects that act like functions.
TemplateModel The common super-interface of the interfaces that stand for the FreeMarker Template Language (FTL) data types.
TemplateModelException `TemplateModel` methods throw this exception if the requested data can't be retrieved.
TemplateModelIterator Used to iterate over a set of template models once; usually returned from `TemplateCollectionModel.iterator()`.
TemplateNumberModel "number" template language data type; an object that stores a number.
TemplateScalarModel "string" template language data-type; like in Java, an unmodifiable UNICODE character sequence.
TemplateSequenceModel "sequence" template language data type; an object that contains other objects accessible through an integer 0-based index.

Classes in freemarker.template used by freemarker.ext.rhino
Class and Description
AdapterTemplateModel A `TemplateModel` that can be unwrapped and then it considers a provided desired (hint) class.
ObjectWrapper Maps Java objects to the type-system of FreeMarker Template Language (see the `TemplateModel` interfaces).
ObjectWrapperAndUnwrapper Experimental - subject to change: Adds functionality to `ObjectWrapper` that creates a plain Java object from a `TemplateModel`.
TemplateBooleanModel "boolean" template language data type; same as in Java; either `true` or `false`.
TemplateCollectionModel "collection" template language data type: a collection of values that can be enumerated, but can't be or not meant to be accessed by index or key.
TemplateHashModel "hash" template language data type: an object that contains other objects accessible through string keys (sub-variable names).
TemplateHashModelEx "extended hash" template language data type; extends `TemplateHashModel` by allowing iterating through its keys and values.
TemplateMethodModel Deprecated. Use `TemplateMethodModelEx` instead. This interface is from the old times when the only kind of value you could pass in was string.
TemplateMethodModelEx "extended method" template language data type: Objects that act like functions.
TemplateModel The common super-interface of the interfaces that stand for the FreeMarker Template Language (FTL) data types.
TemplateModelException `TemplateModel` methods throw this exception if the requested data can't be retrieved.
TemplateNumberModel "number" template language data type; an object that stores a number.
TemplateScalarModel "string" template language data-type; like in Java, an unmodifiable UNICODE character sequence.
TemplateSequenceModel "sequence" template language data type; an object that contains other objects accessible through an integer 0-based index.

Classes in freemarker.template used by freemarker.ext.servlet
Class and Description
Configuration The main entry point into the FreeMarker API; encapsulates the configuration settings of FreeMarker, also serves as a central template-loading and caching service.
ObjectWrapper Maps Java objects to the type-system of FreeMarker Template Language (see the `TemplateModel` interfaces).
SimpleHash A simple implementation of the `TemplateHashModelEx` interface, using its own underlying `Map` or `SortedMap` for storing the hash entries.
Template Stores an already parsed template, ready to be processed (rendered) for unlimited times, possibly from multiple threads.
TemplateCollectionModel "collection" template language data type: a collection of values that can be enumerated, but can't be or not meant to be accessed by index or key.
TemplateDirectiveBody Represents the nested content of a directive (`TemplateDirectiveModel`) invocation.
TemplateDirectiveModel "directive" template language data type: used as user-defined directives (much like macros) in templates.
TemplateException Runtime exception in a template (as opposed to a parsing-time exception: `ParseException`).
TemplateHashModel "hash" template language data type: an object that contains other objects accessible through string keys (sub-variable names).
TemplateHashModelEx "extended hash" template language data type; extends `TemplateHashModel` by allowing iterating through its keys and values.
TemplateHashModelEx2 Adds key-value pair listing capability to `TemplateHashModelEx`.
TemplateModel The common super-interface of the interfaces that stand for the FreeMarker Template Language (FTL) data types.
TemplateModelException `TemplateModel` methods throw this exception if the requested data can't be retrieved.
WrappingTemplateModel Convenience base-class for containers that wrap their contained arbitrary Java objects into `TemplateModel` instances.

Classes in freemarker.template used by freemarker.ext.util
Class and Description
ObjectWrapper Maps Java objects to the type-system of FreeMarker Template Language (see the `TemplateModel` interfaces).
TemplateModel The common super-interface of the interfaces that stand for the FreeMarker Template Language (FTL) data types.

Classes in freemarker.template used by freemarker.ext.xml
Class and Description
TemplateNodeModel "node" template language data type: an object that is a node in a tree.

Classes in freemarker.template used by freemarker.template
Class and Description
AdapterTemplateModel A `TemplateModel` that can be unwrapped and then it considers a provided desired (hint) class.
Configuration The main entry point into the FreeMarker API; encapsulates the configuration settings of FreeMarker, also serves as a central template-loading and caching service.
DefaultArrayAdapter Adapts an `array` of a non-primitive elements to the corresponding `TemplateModel` interface(s), most importantly to `TemplateHashModelEx`.
DefaultIterableAdapter Adapts an `Iterable` to the corresponding `TemplateModel` interface(s), most importantly to `TemplateCollectionModel`.
DefaultIteratorAdapter Adapts an `Iterator` to the corresponding `TemplateModel` interface(s), most importantly to `TemplateCollectionModel`.
DefaultListAdapter Adapts a `List` to the corresponding `TemplateModel` interface(s), most importantly to `TemplateSequenceModel`.
DefaultMapAdapter Adapts a `Map` to the corresponding `TemplateModel` interface(s), most importantly to `TemplateHashModelEx`.
DefaultNonListCollectionAdapter Experimental - subject to change: Adapts a non-`List` Java `Collection` to the corresponding `TemplateModel` interface(s), most importantly to `TemplateCollectionModelEx`.
DefaultObjectWrapper The default implementation of the `ObjectWrapper` interface.
DefaultObjectWrapperConfiguration Holds `DefaultObjectWrapper` configuration settings and defines their defaults.
LocalizedString An abstract base class for scalars that vary by locale.
MalformedTemplateNameException Indicates that the template name given was malformed according the `TemplateNameFormat` in use.
ObjectWrapper Maps Java objects to the type-system of FreeMarker Template Language (see the `TemplateModel` interfaces).
ObjectWrapperAndUnwrapper Experimental - subject to change: Adds functionality to `ObjectWrapper` that creates a plain Java object from a `TemplateModel`.
SimpleHash A simple implementation of the `TemplateHashModelEx` interface, using its own underlying `Map` or `SortedMap` for storing the hash entries.
SimpleScalar A simple implementation of the `TemplateScalarModel` interface, using a `String`.
SimpleSequence A simple implementation of the `TemplateSequenceModel` interface, using its own underlying `List` for storing the list items.
Template Stores an already parsed template, ready to be processed (rendered) for unlimited times, possibly from multiple threads.
TemplateBooleanModel "boolean" template language data type; same as in Java; either `true` or `false`.
TemplateCollectionModel "collection" template language data type: a collection of values that can be enumerated, but can't be or not meant to be accessed by index or key.
TemplateCollectionModelEx Experimental - subject to change: "extended collection" template language data type: Adds size/emptiness querybility and "contains" test to `TemplateCollectionModel`.
TemplateDateModel "date", "time" and "date-time" template language data types: corresponds to `Date`.
TemplateDirectiveBody Represents the nested content of a directive (`TemplateDirectiveModel`) invocation.
TemplateException Runtime exception in a template (as opposed to a parsing-time exception: `ParseException`).
TemplateExceptionHandler Used for the `template_exception_handler` configuration setting; see `Configurable.setTemplateExceptionHandler(TemplateExceptionHandler)` for more.
TemplateHashModel "hash" template language data type: an object that contains other objects accessible through string keys (sub-variable names).
TemplateHashModelEx "extended hash" template language data type; extends `TemplateHashModel` by allowing iterating through its keys and values.
TemplateHashModelEx2 Adds key-value pair listing capability to `TemplateHashModelEx`.
TemplateHashModelEx2.KeyValuePair A key-value pair in a hash; used for `TemplateHashModelEx2.KeyValuePairIterator`.
TemplateHashModelEx2.KeyValuePairIterator Iterates over the key-value pairs in a hash.
TemplateMethodModel Deprecated. Use `TemplateMethodModelEx` instead. This interface is from the old times when the only kind of value you could pass in was string.
TemplateModel The common super-interface of the interfaces that stand for the FreeMarker Template Language (FTL) data types.
TemplateModelException `TemplateModel` methods throw this exception if the requested data can't be retrieved.
TemplateModelIterator Used to iterate over a set of template models once; usually returned from `TemplateCollectionModel.iterator()`.
TemplateModelWithAPISupport Experimental - subject to change: A `TemplateModel` on which the `?api` operation can be applied.
TemplateNodeModel "node" template language data type: an object that is a node in a tree.
TemplateNotFoundException Thrown when `Configuration.getTemplate(String)` (or similar) doesn't find a template.
TemplateNumberModel "number" template language data type; an object that stores a number.
TemplateScalarModel "string" template language data-type; like in Java, an unmodifiable UNICODE character sequence.
TemplateSequenceModel "sequence" template language data type; an object that contains other objects accessible through an integer 0-based index.
Version Represents a version number plus the further qualifiers and build info.
WrappingTemplateModel Convenience base-class for containers that wrap their contained arbitrary Java objects into `TemplateModel` instances.

Classes in freemarker.template used by freemarker.template.utility
Class and Description
ObjectWrapper Maps Java objects to the type-system of FreeMarker Template Language (see the `TemplateModel` interfaces).
ObjectWrapperAndUnwrapper Experimental - subject to change: Adds functionality to `ObjectWrapper` that creates a plain Java object from a `TemplateModel`.
TemplateBooleanModel "boolean" template language data type; same as in Java; either `true` or `false`.
TemplateCollectionModel "collection" template language data type: a collection of values that can be enumerated, but can't be or not meant to be accessed by index or key.
TemplateHashModel "hash" template language data type: an object that contains other objects accessible through string keys (sub-variable names).
TemplateHashModelEx "extended hash" template language data type; extends `TemplateHashModel` by allowing iterating through its keys and values.
TemplateMethodModel Deprecated. Use `TemplateMethodModelEx` instead. This interface is from the old times when the only kind of value you could pass in was string.
TemplateMethodModelEx "extended method" template language data type: Objects that act like functions.
TemplateModel The common super-interface of the interfaces that stand for the FreeMarker Template Language (FTL) data types.
TemplateModelException `TemplateModel` methods throw this exception if the requested data can't be retrieved.
TemplateModelIterator Used to iterate over a set of template models once; usually returned from `TemplateCollectionModel.iterator()`.
TemplateNumberModel "number" template language data type; an object that stores a number.
TemplateScalarModel "string" template language data-type; like in Java, an unmodifiable UNICODE character sequence.
TemplateSequenceModel "sequence" template language data type; an object that contains other objects accessible through an integer 0-based index.
TemplateTransformModel "transform" template language data type: user-defined directives (much like macros) specialized on filtering output; you should rather use the newer `TemplateDirectiveModel` instead.