Provides various model implementations for Freemarker: reflection models, resource bundle model, and singleton boolean models.
Most of the issues dealing with reflection are handled by the {@link org.szegedi.expose.model.ReflectionUtilities#wrap(Object)}and {@link org.szegedi.expose.model.StaticModel#create(Class)} methods. In normal cases, these are the only methods you should use to turn an arbitrary Java object into a Freemarker TemplateModel. Additionally, you can manually create instance of any wrapper class using it's <tt>getInstance</tt> method (which canonicalizes instances, meaning you always get the same wrapper instance for an object) , or using the new operator (which, by definition, always creates a new wrapper). There are also two classes that are not part of the automatic wrapping implemented by the {@link org.szegedi.expose.model.ReflectionUtilities} class, therefore you must always create their instances manually: the {@link org.szegedi.expose.model.ReflectionRootModel} and {@link org.szegedi.expose.model.ResourceBundleHashModel} class.