## Uses of Interface
freemarker.template.TemplateHashModel

Packages that use TemplateHashModel
freemarker.core: The seldom used or advanced parts of the fundamental FreeMarker API, compared to `freemarker.template`.
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.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.

### Uses of TemplateHashModel in freemarker.core

Classes in freemarker.core that implement TemplateHashModel
`class` `Environment.Namespace`

Methods in freemarker.core that return TemplateHashModel
`TemplateHashModel` Environment.`getDataModel()` Returns the data-model (also known as the template context in some other template engines).
`TemplateHashModel` Environment.`getGlobalVariables()` Returns the read-only hash of globally visible variables.

Constructors in freemarker.core with parameters of type TemplateHashModel
Constructor and Description
`Environment(Template template, TemplateHashModel rootDataModel, Writer out)`

### Uses of TemplateHashModel in freemarker.ext.beans

Classes in freemarker.ext.beans that implement TemplateHashModel
`class` `ArrayModel` A class that will wrap an arbitrary array into `TemplateCollectionModel` and `TemplateSequenceModel` interfaces.
`class` `BeanModel` A class that will wrap an arbitrary object into `TemplateHashModel` interface allowing calls to arbitrary property getters and invocation of accessible methods on the object from a template using the `object.foo` to access properties and `object.bar(arg1, arg2)` to invoke methods on it.
`class` `BooleanModel` A class that will wrap instances of `Boolean` into a `TemplateBooleanModel`.
`class` `CollectionModel` A special case of `BeanModel` that can wrap Java collections and that implements the `TemplateCollectionModel` in order to be usable in a `<#list>` block.
`class` `DateModel` Wraps arbitrary subclass of `Date` into a reflective model.
`class` `EnumerationModel` A class that adds `TemplateModelIterator` functionality to the `Enumeration` interface implementers.
`class` `IteratorModel` A class that adds `TemplateModelIterator` functionality to the `Iterator` interface implementers.
`class` `MapModel` A special case of `BeanModel` that adds implementation for `TemplateMethodModelEx` on map objects that is a shortcut for the `Map.get()` method.
`class` `NumberModel` Wraps arbitrary subclass of `Number` into a reflective model.
`class` `ResourceBundleModel` A hash model that wraps a resource bundle.
`class` `SimpleMapModel` Model used by `BeansWrapper` when `simpleMapWrapper` mode is enabled.
`class` `StringModel` Subclass of `BeanModel` that exposes the return value of the `Object.toString()` method through the `TemplateScalarModel` interface.

Methods in freemarker.ext.beans that return TemplateHashModel
`TemplateHashModel` BeansWrapper.`getEnumModels()` Returns a hash model that represents the so-called class enum models.
`TemplateHashModel` BeansWrapper.`getStaticModels()` Returns a hash model that represents the so-called class static models.
`TemplateHashModel` BeansWrapper.`wrapAsAPI(Object obj)`

### Uses of TemplateHashModel in freemarker.ext.dom

Classes in freemarker.ext.dom that implement TemplateHashModel
`class` `NodeModel` A base class for wrapping a single W3C DOM Node as a FreeMarker template model.

### Uses of TemplateHashModel in freemarker.ext.jdom

Classes in freemarker.ext.jdom that implement TemplateHashModel
`class` `NodeListModel` Deprecated. Use `NodeModel` instead.

### Uses of TemplateHashModel in freemarker.ext.jsp

Classes in freemarker.ext.jsp that implement TemplateHashModel
`class` `TaglibFactory` A hash model associated with a servlet context that can load JSP tag libraries associated with that servlet context.

### Uses of TemplateHashModel in freemarker.ext.jython

Classes in freemarker.ext.jython that implement TemplateHashModel
`class` `JythonHashModel` Model for Jython dictionaries (`PyDictionary` and `PyStringMap`).
`class` `JythonModel` Generic model for arbitrary Jython objects.
`class` `JythonNumberModel` Model for Jython numeric objects (`PyInteger`, `PyLong`, `PyFloat`).
`class` `JythonSequenceModel` Model for Jython sequence objects (`PySequence` descendants).

### Uses of TemplateHashModel in freemarker.ext.rhino

Classes in freemarker.ext.rhino that implement TemplateHashModel
`class` `RhinoFunctionModel`
`class` `RhinoScriptableModel`

### Uses of TemplateHashModel in freemarker.ext.servlet

Classes in freemarker.ext.servlet that implement TemplateHashModel
`class` `AllHttpScopesHashModel` An extension of SimpleHash that looks up keys in the hash, then in the request, session, and servlet context scopes.
`class` `HttpRequestHashModel` TemplateHashModel wrapper for a HttpServletRequest attributes.
`class` `HttpRequestParametersHashModel` TemplateHashModel wrapper for a HttpServletRequest parameters.
`class` `HttpSessionHashModel` TemplateHashModel wrapper for a HttpSession attributes.
`class` `ServletContextHashModel` TemplateHashModel wrapper for a ServletContext attributes.

### Uses of TemplateHashModel in freemarker.template

Subinterfaces of TemplateHashModel in freemarker.template
`interface` `TemplateHashModelEx` "extended hash" template language data type; extends `TemplateHashModel` by allowing iterating through its keys and values.
`interface` `TemplateHashModelEx2` Adds key-value pair listing capability to `TemplateHashModelEx`.

Classes in freemarker.template that implement TemplateHashModel
`class` `DefaultMapAdapter` Adapts a `Map` to the corresponding `TemplateModel` interface(s), most importantly to `TemplateHashModelEx`.
`class` `SimpleHash` A simple implementation of the `TemplateHashModelEx` interface, using its own underlying `Map` or `SortedMap` for storing the hash entries.

Methods in freemarker.template that return TemplateHashModel
`TemplateHashModel` SimpleObjectWrapper.`wrapAsAPI(Object obj)`

### Uses of TemplateHashModel in freemarker.template.utility

Classes in freemarker.template.utility that implement TemplateHashModel
`class` `DOMNodeModel` A convenient wrapper class for wrapping a Node in the W3C DOM API.

Methods in freemarker.template.utility that return TemplateHashModel
`TemplateHashModel` ObjectWrapperWithAPISupport.`wrapAsAPI(Object obj)` Wraps an object to a `TemplateModel` that exposes the object's "native" (usually, Java) API.