Provides model implementations that allow access to arbitrary Java objects.
Most of the issues dealing with beans are handled by the {@link freemarker.ext.beans.BeansWrapper#wrap(Object)}and {@link freemarker.ext.beans.StaticModel#create(Class)} methods. In normal cases, these are the only methods you should use to turn an arbitrary Java object into a FreeMarker {@link freemarker.template.TemplateModel}. Additionally, you can manually create instance of any wrapper class using it's getInstance 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). The only exception to this is the {@link freemarker.ext.beans.RootMapModel}, whose instances should always be created manually since it is a somewhat special purpose clas.