<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_281) on Sun Jan 15 15:58:34 CET 2023 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>BeansWrapper (FreeMarker 2.3.32 API)</title>
<meta name="date" content="2023-01-15">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="BeansWrapper (FreeMarker 2.3.32 API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":42,"i2":10,"i3":9,"i4":9,"i5":9,"i6":10,"i7":42,"i8":10,"i9":41,"i10":10,"i11":10,"i12":10,"i13":42,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":9,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":42,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/BeansWrapper.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../freemarker/ext/beans/BeansModelCache.html" title="class in freemarker.ext.beans"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../freemarker/ext/beans/BeansWrapper.MethodAppearanceDecision.html" title="class in freemarker.ext.beans"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?freemarker/ext/beans/BeansWrapper.html" target="_top">Frames</a></li>
<li><a href="BeansWrapper.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">freemarker.ext.beans</div>
<h2 title="Class BeansWrapper" class="title">Class BeansWrapper</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>freemarker.ext.beans.BeansWrapper</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template">ObjectWrapper</a>, <a href="../../../freemarker/template/ObjectWrapperAndUnwrapper.html" title="interface in freemarker.template">ObjectWrapperAndUnwrapper</a>, <a href="../../../freemarker/template/utility/ObjectWrapperWithAPISupport.html" title="interface in freemarker.template.utility">ObjectWrapperWithAPISupport</a>, <a href="../../../freemarker/template/utility/RichObjectWrapper.html" title="interface in freemarker.template.utility">RichObjectWrapper</a>, <a href="../../../freemarker/template/utility/WriteProtectable.html" title="interface in freemarker.template.utility">WriteProtectable</a></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../freemarker/template/DefaultObjectWrapper.html" title="class in freemarker.template">DefaultObjectWrapper</a>, <a href="../../../freemarker/ext/rhino/RhinoWrapper.html" title="class in freemarker.ext.rhino">RhinoWrapper</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">BeansWrapper</span>
extends java.lang.Object
implements <a href="../../../freemarker/template/utility/RichObjectWrapper.html" title="interface in freemarker.template.utility">RichObjectWrapper</a>, <a href="../../../freemarker/template/utility/WriteProtectable.html" title="interface in freemarker.template.utility">WriteProtectable</a></pre>
<div class="block"><a href="../../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template"><code>ObjectWrapper</code></a> that is able to expose the Java API of arbitrary Java objects. This is also the superclass of
 <a href="../../../freemarker/template/DefaultObjectWrapper.html" title="class in freemarker.template"><code>DefaultObjectWrapper</code></a>. Note that instances of this class generally should be created with a
 <a href="../../../freemarker/ext/beans/BeansWrapperBuilder.html" title="class in freemarker.ext.beans"><code>BeansWrapperBuilder</code></a>, not with its public constructors.
 
 <p>
 As of 2.3.22, using <a href="../../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans"><code>BeansWrapper</code></a> unextended is not recommended. Instead, <a href="../../../freemarker/template/DefaultObjectWrapper.html" title="class in freemarker.template"><code>DefaultObjectWrapper</code></a> with
 its <code>incompatibleImprovements</code> property set to 2.3.22 (or higher) is the recommended <a href="../../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template"><code>ObjectWrapper</code></a>.
 
 <p>
 This class is only thread-safe after you have finished calling its setter methods, and then safely published it (see
 JSR 133 and related literature). When used as part of <a href="../../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a>, of course it's enough if that was safely
 published and then left unmodified. Using <a href="../../../freemarker/ext/beans/BeansWrapperBuilder.html" title="class in freemarker.ext.beans"><code>BeansWrapperBuilder</code></a> also guarantees thread safety.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.MethodAppearanceDecision.html" title="class in freemarker.ext.beans">BeansWrapper.MethodAppearanceDecision</a></span></code>
<div class="block">Used for
 <a href="../../../freemarker/ext/beans/MethodAppearanceFineTuner.html#process-freemarker.ext.beans.BeansWrapper.MethodAppearanceDecisionInput-freemarker.ext.beans.BeansWrapper.MethodAppearanceDecision-"><code>MethodAppearanceFineTuner.process(freemarker.ext.beans.BeansWrapper.MethodAppearanceDecisionInput, freemarker.ext.beans.BeansWrapper.MethodAppearanceDecision)</code></a>
 to store the results; see there.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.MethodAppearanceDecisionInput.html" title="class in freemarker.ext.beans">BeansWrapper.MethodAppearanceDecisionInput</a></span></code>
<div class="block">Used for <a href="../../../freemarker/ext/beans/MethodAppearanceFineTuner.html#process-freemarker.ext.beans.BeansWrapper.MethodAppearanceDecisionInput-freemarker.ext.beans.BeansWrapper.MethodAppearanceDecision-"><code>MethodAppearanceFineTuner.process(freemarker.ext.beans.BeansWrapper.MethodAppearanceDecisionInput, freemarker.ext.beans.BeansWrapper.MethodAppearanceDecision)</code></a> as input parameter; see there.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#EXPOSE_ALL">EXPOSE_ALL</a></span></code>
<div class="block">At this level of exposure, all methods and properties of the
 wrapped objects are exposed to the template, and the <a href="../../../freemarker/ext/beans/MemberAccessPolicy.html" title="interface in freemarker.ext.beans"><code>MemberAccessPolicy</code></a>
 will be ignored.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#EXPOSE_NOTHING">EXPOSE_NOTHING</a></span></code>
<div class="block">At this level of exposure, no bean properties and methods are exposed.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#EXPOSE_PROPERTIES_ONLY">EXPOSE_PROPERTIES_ONLY</a></span></code>
<div class="block">At this level of exposure, only property getters are exposed.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#EXPOSE_SAFE">EXPOSE_SAFE</a></span></code>
<div class="block">At this level of exposure, all methods and properties of the wrapped
 objects are exposed to the template except methods that are deemed
 not safe.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.freemarker.template.ObjectWrapperAndUnwrapper">
<!--   -->
</a>
<h3>Fields inherited from interface&nbsp;freemarker.template.<a href="../../../freemarker/template/ObjectWrapperAndUnwrapper.html" title="interface in freemarker.template">ObjectWrapperAndUnwrapper</a></h3>
<code><a href="../../../freemarker/template/ObjectWrapperAndUnwrapper.html#CANT_UNWRAP_TO_TARGET_CLASS">CANT_UNWRAP_TO_TARGET_CLASS</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.freemarker.template.ObjectWrapper">
<!--   -->
</a>
<h3>Fields inherited from interface&nbsp;freemarker.template.<a href="../../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template">ObjectWrapper</a></h3>
<code><a href="../../../freemarker/template/ObjectWrapper.html#BEANS_WRAPPER">BEANS_WRAPPER</a>, <a href="../../../freemarker/template/ObjectWrapper.html#DEFAULT_WRAPPER">DEFAULT_WRAPPER</a>, <a href="../../../freemarker/template/ObjectWrapper.html#SIMPLE_WRAPPER">SIMPLE_WRAPPER</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#BeansWrapper--">BeansWrapper</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../../freemarker/ext/beans/BeansWrapperBuilder.html" title="class in freemarker.ext.beans"><code>BeansWrapperBuilder</code></a> or, in rare cases, <a href="../../../freemarker/ext/beans/BeansWrapper.html#BeansWrapper-freemarker.template.Version-"><code>BeansWrapper(Version)</code></a> instead.</span></div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#BeansWrapper-freemarker.ext.beans.BeansWrapperConfiguration-boolean-">BeansWrapper</a></span>(<a href="../../../freemarker/ext/beans/BeansWrapperConfiguration.html" title="class in freemarker.ext.beans">BeansWrapperConfiguration</a>&nbsp;bwConf,
            boolean&nbsp;writeProtected)</code>
<div class="block">Same as <a href="../../../freemarker/ext/beans/BeansWrapper.html#BeansWrapper-freemarker.ext.beans.BeansWrapperConfiguration-boolean-boolean-"><code>BeansWrapper(BeansWrapperConfiguration, boolean, boolean)</code></a> with <code>true</code>
 <code>finalizeConstruction</code> argument.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#BeansWrapper-freemarker.ext.beans.BeansWrapperConfiguration-boolean-boolean-">BeansWrapper</a></span>(<a href="../../../freemarker/ext/beans/BeansWrapperConfiguration.html" title="class in freemarker.ext.beans">BeansWrapperConfiguration</a>&nbsp;bwConf,
            boolean&nbsp;writeProtected,
            boolean&nbsp;finalizeConstruction)</code>
<div class="block">Initializes the instance based on the the <a href="../../../freemarker/ext/beans/BeansWrapperConfiguration.html" title="class in freemarker.ext.beans"><code>BeansWrapperConfiguration</code></a> specified.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#BeansWrapper-freemarker.template.Version-">BeansWrapper</a></span>(<a href="../../../freemarker/template/Version.html" title="class in freemarker.template">Version</a>&nbsp;incompatibleImprovements)</code>
<div class="block">Use <a href="../../../freemarker/ext/beans/BeansWrapperBuilder.html" title="class in freemarker.ext.beans"><code>BeansWrapperBuilder</code></a> instead of the public constructors if possible.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#checkModifiable--">checkModifiable</a></span>()</code>
<div class="block">If this object is already read-only according to <a href="../../../freemarker/template/utility/WriteProtectable.html" title="interface in freemarker.template.utility"><code>WriteProtectable</code></a>, throws <code>IllegalStateException</code>,
 otherwise does nothing.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#clearClassIntrospecitonCache--">clearClassIntrospecitonCache</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">There's a typo in this method name, so use <a href="../../../freemarker/ext/beans/BeansWrapper.html#clearClassIntrospectionCache--"><code>clearClassIntrospectionCache()</code></a> instead.</span></div>
</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#clearClassIntrospectionCache--">clearClassIntrospectionCache</a></span>()</code>
<div class="block">Removes all class introspection data from the cache.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#coerceBigDecimal-java.math.BigDecimal-java.lang.Class-">coerceBigDecimal</a></span>(java.math.BigDecimal&nbsp;bd,
                java.lang.Class&lt;?&gt;&nbsp;formalType)</code>
<div class="block">Converts <code>BigDecimal</code> to the class given in the <code>formalType</code> argument if that's a known numerical
 type, returns the <code>BigDecimal</code> as is otherwise.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#coerceBigDecimals-java.lang.reflect.AccessibleObject-java.lang.Object:A-">coerceBigDecimals</a></span>(java.lang.reflect.AccessibleObject&nbsp;callable,
                 java.lang.Object[]&nbsp;args)</code>
<div class="block">Converts any <code>BigDecimal</code>s in the passed array to the type of
 the corresponding formal argument of the method.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#coerceBigDecimals-java.lang.Class:A-java.lang.Object:A-">coerceBigDecimals</a></span>(java.lang.Class&lt;?&gt;[]&nbsp;formalTypes,
                 java.lang.Object[]&nbsp;args)</code>
<div class="block">Converts any <code>BigDecimal</code>-s in the passed array to the type of
 the corresponding formal argument of the method via <a href="../../../freemarker/ext/beans/BeansWrapper.html#coerceBigDecimal-java.math.BigDecimal-java.lang.Class-"><code>coerceBigDecimal(BigDecimal, Class)</code></a>.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#finalizeConstruction-boolean-">finalizeConstruction</a></span>(boolean&nbsp;writeProtected)</code>
<div class="block">Meant to be called after <a href="../../../freemarker/ext/beans/BeansWrapper.html#BeansWrapper-freemarker.ext.beans.BeansWrapperConfiguration-boolean-boolean-"><code>BeansWrapper(BeansWrapperConfiguration, boolean, boolean)</code></a> when
 its last argument was <code>false</code>; makes the instance read-only if necessary, then registers the model
 factories in the class introspector.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#finetuneMethodAppearance-java.lang.Class-java.lang.reflect.Method-freemarker.ext.beans.BeansWrapper.MethodAppearanceDecision-">finetuneMethodAppearance</a></span>(java.lang.Class&lt;?&gt;&nbsp;clazz,
                        java.lang.reflect.Method&nbsp;m,
                        <a href="../../../freemarker/ext/beans/BeansWrapper.MethodAppearanceDecision.html" title="class in freemarker.ext.beans">BeansWrapper.MethodAppearanceDecision</a>&nbsp;decision)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../../freemarker/ext/beans/BeansWrapper.html#setMethodAppearanceFineTuner-freemarker.ext.beans.MethodAppearanceFineTuner-"><code>setMethodAppearanceFineTuner(MethodAppearanceFineTuner)</code></a>;
     no need to extend this class anymore.
     Soon this method will be final, so trying to override it will break your app.
     Note that if the <code>methodAppearanceFineTuner</code> property is set to non-<code>null</code>, this method is not
     called anymore.</span></div>
</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#getDefaultDateType--">getDefaultDateType</a></span>()</code>
<div class="block">Returns the default date type.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static <a href="../../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans">BeansWrapper</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#getDefaultInstance--">getDefaultInstance</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../../freemarker/ext/beans/BeansWrapperBuilder.html" title="class in freemarker.ext.beans"><code>BeansWrapperBuilder</code></a> instead. The instance returned here is not read-only, so it's
     dangerous to use.</span></div>
</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../freemarker/template/TemplateHashModel.html" title="interface in freemarker.template">TemplateHashModel</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#getEnumModels--">getEnumModels</a></span>()</code>
<div class="block">Returns a hash model that represents the so-called class enum models.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#getExposureLevel--">getExposureLevel</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../../../freemarker/template/Version.html" title="class in freemarker.template">Version</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#getIncompatibleImprovements--">getIncompatibleImprovements</a></span>()</code>
<div class="block">Returns the version given with <a href="../../../freemarker/ext/beans/BeansWrapper.html#BeansWrapper-freemarker.template.Version-"><code>BeansWrapper(Version)</code></a>, normalized to the lowest version where a change
 has occurred.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#getInstance-java.lang.Object-freemarker.ext.util.ModelFactory-">getInstance</a></span>(java.lang.Object&nbsp;object,
           <a href="../../../freemarker/ext/util/ModelFactory.html" title="interface in freemarker.ext.util">ModelFactory</a>&nbsp;factory)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">override <a href="../../../freemarker/ext/beans/BeansWrapper.html#getModelFactory-java.lang.Class-"><code>getModelFactory(Class)</code></a> instead. Using this
 method will now bypass wrapper caching (if it's enabled) and always 
 result in creation of a new wrapper. This method will be removed in 2.4</span></div>
</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../freemarker/ext/beans/MemberAccessPolicy.html" title="interface in freemarker.ext.beans">MemberAccessPolicy</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#getMemberAccessPolicy--">getMemberAccessPolicy</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="../../../freemarker/ext/beans/MethodAppearanceFineTuner.html" title="interface in freemarker.ext.beans">MethodAppearanceFineTuner</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#getMethodAppearanceFineTuner--">getMethodAppearanceFineTuner</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>protected <a href="../../../freemarker/ext/util/ModelFactory.html" title="interface in freemarker.ext.util">ModelFactory</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#getModelFactory-java.lang.Class-">getModelFactory</a></span>(java.lang.Class&lt;?&gt;&nbsp;clazz)</code>&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="../../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template">ObjectWrapper</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#getOuterIdentity--">getOuterIdentity</a></span>()</code>
<div class="block">By default returns <tt>this</tt>.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#getPreferIndexedReadMethod--">getPreferIndexedReadMethod</a></span>()</code>
<div class="block">Getter pair of <a href="../../../freemarker/ext/beans/BeansWrapper.html#setPreferIndexedReadMethod-boolean-"><code>setPreferIndexedReadMethod(boolean)</code></a></div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="../../../freemarker/template/TemplateHashModel.html" title="interface in freemarker.template">TemplateHashModel</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#getStaticModels--">getStaticModels</a></span>()</code>
<div class="block">Returns a hash model that represents the so-called class static models.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#getTreatDefaultMethodsAsBeanMembers--">getTreatDefaultMethodsAsBeanMembers</a></span>()</code>
<div class="block">See <a href="../../../freemarker/ext/beans/BeansWrapper.html#setTreatDefaultMethodsAsBeanMembers-boolean-"><code>setTreatDefaultMethodsAsBeanMembers(boolean)</code></a>.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#getUseCache--">getUseCache</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>protected <a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#invokeMethod-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-">invokeMethod</a></span>(java.lang.Object&nbsp;object,
            java.lang.reflect.Method&nbsp;method,
            java.lang.Object[]&nbsp;args)</code>
<div class="block">Invokes the specified method, wrapping the return value.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#isClassIntrospectionCacheRestricted--">isClassIntrospectionCacheRestricted</a></span>()</code>
<div class="block">Tells if this instance acts like if its class introspection cache is sharable with other <a href="../../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans"><code>BeansWrapper</code></a>-s.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#isExposeFields--">isExposeFields</a></span>()</code>
<div class="block">Returns whether exposure of public instance fields of classes is 
 enabled.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#isSimpleMapWrapper--">isSimpleMapWrapper</a></span>()</code>
<div class="block">Tells whether Maps are exposed as simple maps, without access to their
 method.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#isStrict--">isStrict</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#isWriteProtected--">isWriteProtected</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#newInstance-java.lang.Class-java.util.List-">newInstance</a></span>(java.lang.Class&lt;?&gt;&nbsp;clazz,
           java.util.List&nbsp;arguments)</code>
<div class="block">Creates a new instance of the specified class using the method call logic of this object wrapper for calling the
 constructor.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>protected static <a href="../../../freemarker/template/Version.html" title="class in freemarker.template">Version</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#normalizeIncompatibleImprovementsVersion-freemarker.template.Version-">normalizeIncompatibleImprovementsVersion</a></span>(<a href="../../../freemarker/template/Version.html" title="class in freemarker.template">Version</a>&nbsp;incompatibleImprovements)</code>
<div class="block">Returns the lowest version number that is equivalent with the parameter version.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>protected <a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#readField-java.lang.Object-java.lang.reflect.Field-">readField</a></span>(java.lang.Object&nbsp;object,
         java.lang.reflect.Field&nbsp;field)</code>
<div class="block">Reads the specified field, returns its value as <a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template"><code>TemplateModel</code></a>.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#removeFromClassIntrospectionCache-java.lang.Class-">removeFromClassIntrospectionCache</a></span>(java.lang.Class&lt;?&gt;&nbsp;clazz)</code>
<div class="block">Removes the introspection data for a class from the cache.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#setDefaultDateType-int-">setDefaultDateType</a></span>(int&nbsp;defaultDateType)</code>
<div class="block">Sets the default date type to use for date models that result from
 a plain <tt>java.util.Date</tt> instead of <tt>java.sql.Date</tt> or
 <tt>java.sql.Time</tt> or <tt>java.sql.Timestamp</tt>.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#setExposeFields-boolean-">setExposeFields</a></span>(boolean&nbsp;exposeFields)</code>
<div class="block">Controls whether public instance fields of classes are exposed to 
 templates.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#setExposureLevel-int-">setExposureLevel</a></span>(int&nbsp;exposureLevel)</code>
<div class="block">Sets the method exposure level.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#setMemberAccessPolicy-freemarker.ext.beans.MemberAccessPolicy-">setMemberAccessPolicy</a></span>(<a href="../../../freemarker/ext/beans/MemberAccessPolicy.html" title="interface in freemarker.ext.beans">MemberAccessPolicy</a>&nbsp;memberAccessPolicy)</code>
<div class="block">Sets the <a href="../../../freemarker/ext/beans/MemberAccessPolicy.html" title="interface in freemarker.ext.beans"><code>MemberAccessPolicy</code></a>; default is <a href="../../../freemarker/ext/beans/DefaultMemberAccessPolicy.html#getInstance-freemarker.template.Version-"><code>DefaultMemberAccessPolicy.getInstance(Version)</code></a>, which
 is not appropriate if template editors aren't trusted.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#setMethodAppearanceFineTuner-freemarker.ext.beans.MethodAppearanceFineTuner-">setMethodAppearanceFineTuner</a></span>(<a href="../../../freemarker/ext/beans/MethodAppearanceFineTuner.html" title="interface in freemarker.ext.beans">MethodAppearanceFineTuner</a>&nbsp;methodAppearanceFineTuner)</code>
<div class="block">Used to tweak certain aspects of how methods appear in the data-model;
 see <a href="../../../freemarker/ext/beans/MethodAppearanceFineTuner.html" title="interface in freemarker.ext.beans"><code>MethodAppearanceFineTuner</code></a> for more.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#setMethodsShadowItems-boolean-">setMethodsShadowItems</a></span>(boolean&nbsp;methodsShadowItems)</code>
<div class="block">Sets whether methods shadow items in beans.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#setNullModel-freemarker.template.TemplateModel-">setNullModel</a></span>(<a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;nullModel)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Changing the <code>null</code> model can cause a lot of confusion; don't do it.</span></div>
</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#setOuterIdentity-freemarker.template.ObjectWrapper-">setOuterIdentity</a></span>(<a href="../../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template">ObjectWrapper</a>&nbsp;outerIdentity)</code>
<div class="block">When wrapping an object, the BeansWrapper commonly needs to wrap
 "sub-objects", for example each element in a wrapped collection.</div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#setPreferIndexedReadMethod-boolean-">setPreferIndexedReadMethod</a></span>(boolean&nbsp;preferIndexedReadMethod)</code>
<div class="block">Sets if when a JavaBean property has both a normal read method (like <code>String[] getFoos()</code>) and an indexed
 read method (like <code>String getFoos(int index)</code>), and the Java <code>Introspector</code> exposes both (which only
 happens since Java 8, apparently), which read method will be used when the property is accessed with the
 shorthand syntax (like <code>myObj.foos</code>).</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#setSimpleMapWrapper-boolean-">setSimpleMapWrapper</a></span>(boolean&nbsp;simpleMapWrapper)</code>
<div class="block">When set to <code>true</code>, the keys in <code>Map</code>-s won't mix with the method names when looking at them
 from templates.</div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#setStrict-boolean-">setStrict</a></span>(boolean&nbsp;strict)</code>
<div class="block">Specifies if an attempt to read a bean property that doesn't exist in the
 wrapped object should throw an <a href="../../../freemarker/ext/beans/InvalidPropertyException.html" title="class in freemarker.ext.beans"><code>InvalidPropertyException</code></a>.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#setTreatDefaultMethodsAsBeanMembers-boolean-">setTreatDefaultMethodsAsBeanMembers</a></span>(boolean&nbsp;treatDefaultMethodsAsBeanMembers)</code>
<div class="block">Controls whether Java 8 default methods that weren't overridden in a class will be recognized as bean property
 accessors and/or bean actions, and thus will be visible from templates.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#setUseCache-boolean-">setUseCache</a></span>(boolean&nbsp;useCache)</code>
<div class="block">Sets whether this wrapper caches the <a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template"><code>TemplateModel</code></a>-s created for the Java objects that has wrapped with
 this object wrapper.</div>
</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code>protected java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#toPropertiesString--">toPropertiesString</a></span>()</code>
<div class="block">Returns the name-value pairs that describe the configuration of this <a href="../../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans"><code>BeansWrapper</code></a>; called from
 <a href="../../../freemarker/ext/beans/BeansWrapper.html#toString--"><code>toString()</code></a>.</div>
</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#toString--">toString</a></span>()</code>
<div class="block">Returns the exact class name and the identity hash, also the values of the most often used <a href="../../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans"><code>BeansWrapper</code></a>
 configuration properties, also if which (if any) shared class introspection cache it uses.</div>
</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#tryUnwrapTo-freemarker.template.TemplateModel-java.lang.Class-">tryUnwrapTo</a></span>(<a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;model,
           java.lang.Class&lt;?&gt;&nbsp;targetClass)</code>
<div class="block">Attempts to unwrap a <a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template"><code>TemplateModel</code></a> to a plain Java object that's the instance of the given class (or is
 <code>null</code>).</div>
</td>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#unwrap-freemarker.template.TemplateModel-">unwrap</a></span>(<a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;model)</code>
<div class="block">Attempts to unwrap a model into underlying object.</div>
</td>
</tr>
<tr id="i49" class="rowColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#unwrap-freemarker.template.TemplateModel-java.lang.Class-">unwrap</a></span>(<a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;model,
      java.lang.Class&lt;?&gt;&nbsp;targetClass)</code>
<div class="block">Attempts to unwrap a model into an object of the desired class.</div>
</td>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><code><a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#wrap-java.lang.Object-">wrap</a></span>(java.lang.Object&nbsp;object)</code>
<div class="block">Wraps the object with a template model that is most specific for the object's
 class.</div>
</td>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code><a href="../../../freemarker/template/TemplateMethodModelEx.html" title="interface in freemarker.template">TemplateMethodModelEx</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#wrap-java.lang.Object-java.lang.reflect.Method-">wrap</a></span>(java.lang.Object&nbsp;object,
    java.lang.reflect.Method&nbsp;method)</code>
<div class="block">Wraps a Java method so that it can be called from templates, without wrapping its parent ("this") object.</div>
</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code><a href="../../../freemarker/template/TemplateHashModel.html" title="interface in freemarker.template">TemplateHashModel</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#wrapAsAPI-java.lang.Object-">wrapAsAPI</a></span>(java.lang.Object&nbsp;obj)</code>
<div class="block">Wraps an object to a <a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template"><code>TemplateModel</code></a> that exposes the object's "native" (usually, Java) API.</div>
</td>
</tr>
<tr id="i53" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../freemarker/ext/beans/BeansWrapper.html#writeProtect--">writeProtect</a></span>()</code>
<div class="block">Makes the configuration properties (settings) of this <a href="../../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans"><code>BeansWrapper</code></a> object read-only.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!--   -->
</a>
<h3>Field Detail</h3>
<a name="EXPOSE_ALL">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EXPOSE_ALL</h4>
<pre>public static final&nbsp;int EXPOSE_ALL</pre>
<div class="block">At this level of exposure, all methods and properties of the
 wrapped objects are exposed to the template, and the <a href="../../../freemarker/ext/beans/MemberAccessPolicy.html" title="interface in freemarker.ext.beans"><code>MemberAccessPolicy</code></a>
 will be ignored.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#freemarker.ext.beans.BeansWrapper.EXPOSE_ALL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EXPOSE_SAFE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EXPOSE_SAFE</h4>
<pre>public static final&nbsp;int EXPOSE_SAFE</pre>
<div class="block">At this level of exposure, all methods and properties of the wrapped
 objects are exposed to the template except methods that are deemed
 not safe. The not safe methods are java.lang.Object methods wait() and
 notify(), java.lang.Class methods getClassLoader() and newInstance(),
 java.lang.reflect.Method and java.lang.reflect.Constructor invoke() and
 newInstance() methods, all java.lang.reflect.Field set methods, all 
 java.lang.Thread and java.lang.ThreadGroup methods that can change its 
 state, as well as the usual suspects in java.lang.System and
 java.lang.Runtime.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#freemarker.ext.beans.BeansWrapper.EXPOSE_SAFE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EXPOSE_PROPERTIES_ONLY">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EXPOSE_PROPERTIES_ONLY</h4>
<pre>public static final&nbsp;int EXPOSE_PROPERTIES_ONLY</pre>
<div class="block">At this level of exposure, only property getters are exposed.
 Additionally, property getters that map to unsafe methods are not
 exposed (i.e. Class.classLoader and Thread.contextClassLoader).</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#freemarker.ext.beans.BeansWrapper.EXPOSE_PROPERTIES_ONLY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="EXPOSE_NOTHING">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>EXPOSE_NOTHING</h4>
<pre>public static final&nbsp;int EXPOSE_NOTHING</pre>
<div class="block">At this level of exposure, no bean properties and methods are exposed.
 Only map items, resource bundle items, and objects retrieved through
 the generic get method (on objects of classes that have a generic get
 method) can be retrieved through the hash interface. You might want to 
 call <a href="../../../freemarker/ext/beans/BeansWrapper.html#setMethodsShadowItems-boolean-"><code>setMethodsShadowItems(boolean)</code></a> with <tt>false</tt> value to
 speed up map item retrieval.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#freemarker.ext.beans.BeansWrapper.EXPOSE_NOTHING">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="BeansWrapper--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>BeansWrapper</h4>
<pre>@Deprecated
public&nbsp;BeansWrapper()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../freemarker/ext/beans/BeansWrapperBuilder.html" title="class in freemarker.ext.beans"><code>BeansWrapperBuilder</code></a> or, in rare cases, <a href="../../../freemarker/ext/beans/BeansWrapper.html#BeansWrapper-freemarker.template.Version-"><code>BeansWrapper(Version)</code></a> instead.</span></div>
<div class="block">Creates a new instance with the incompatible-improvements-version specified in
 <a href="../../../freemarker/template/Configuration.html#DEFAULT_INCOMPATIBLE_IMPROVEMENTS"><code>Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS</code></a>.</div>
</li>
</ul>
<a name="BeansWrapper-freemarker.template.Version-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>BeansWrapper</h4>
<pre>public&nbsp;BeansWrapper(<a href="../../../freemarker/template/Version.html" title="class in freemarker.template">Version</a>&nbsp;incompatibleImprovements)</pre>
<div class="block">Use <a href="../../../freemarker/ext/beans/BeansWrapperBuilder.html" title="class in freemarker.ext.beans"><code>BeansWrapperBuilder</code></a> instead of the public constructors if possible.
 The main disadvantage of using the public constructors is that the instances won't share caches. So unless having
 a private cache is your goal, don't use them. See</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>incompatibleImprovements</code> - Sets which of the non-backward-compatible improvements should be enabled. Not <code>null</code>. This version number
   is the same as the FreeMarker version number with which the improvements were implemented.
    
   <p>For new projects, it's recommended to set this to the FreeMarker version that's used during the development.
   For released products that are still actively developed it's a low risk change to increase the 3rd
   version number further as FreeMarker is updated, but of course you should always check the list of effects
   below. Increasing the 2nd or 1st version number possibly mean substantial changes with higher risk of breaking
   the application, but again, see the list of effects below.
   
   <p>The reason it's separate from <a href="../../../freemarker/template/Configuration.html#setIncompatibleImprovements-freemarker.template.Version-"><code>Configuration.setIncompatibleImprovements(Version)</code></a> is that
   <a href="../../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template"><code>ObjectWrapper</code></a> objects are often shared among multiple <a href="../../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a>-s, so the two version
   numbers are technically independent. But it's recommended to keep those two version numbers the same.
 
   <p>The changes enabled by <code>incompatibleImprovements</code> are:
   <ul>
     <li>
       <p>2.3.0: No changes; this is the starting point, the version used in older projects.
     </li>
     <li>
       <p>2.3.21 (or higher):
       Several glitches were fixed in <em>overloaded</em> method selection. This usually just gets
       rid of errors (like ambiguity exceptions and numerical precision loses due to bad overloaded method
       choices), still, as in some cases the method chosen can be a different one now (that was the point of
       the reworking after all), it can mean a change in the behavior of the application. The most important
       change is that the treatment of <code>null</code> arguments were fixed, as earlier they were only seen
       applicable to parameters of type <code>Object</code>. Now <code>null</code>-s are seen to be applicable to any
       non-primitive parameters, and among those the one with the most specific type will be preferred (just
       like in Java), which is hence never the one with the <code>Object</code> parameter type. For more details
       about overloaded method selection changes see the version history in the FreeMarker Manual.
     </li>
     <li>
       <p>2.3.24 (or higher):
       <code>Iterator</code>-s were always said to be non-empty when using <code>?has_content</code> and such (i.e.,
       operators that check emptiness without reading any elements). Now an <code>Iterator</code> counts as
       empty exactly if it has no elements left. (Note that this bug has never affected basic functionality, like
       <code>&lt;#list ...&gt;</code>.) 
     </li>  
     <li>
       <p>2.3.26 (or higher):
       The default of <a href="../../../freemarker/ext/beans/BeansWrapper.html#getTreatDefaultMethodsAsBeanMembers--"><code>getTreatDefaultMethodsAsBeanMembers()</code></a> changes from <code>false</code> to
       <code>true</code>. Thus, Java 8 default methods (and the bean properties they define) are exposed, despite that
       <code>Introspector</code> (the official JavaBeans introspector) ignores them, at least as of Java 8. 
     </li>  
     <li>
       <p>2.3.27 (or higher):
       The default of the <a href="../../../freemarker/ext/beans/BeansWrapper.html#setPreferIndexedReadMethod-boolean-"><code>preferIndexedReadMethod</code></a> setting changes
       from <code>true</code> to <code>false</code>.
     </li>  
   </ul>
   
   <p>Note that the version will be normalized to the lowest version where the same incompatible
   <a href="../../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans"><code>BeansWrapper</code></a> improvements were already present, so <a href="../../../freemarker/ext/beans/BeansWrapper.html#getIncompatibleImprovements--"><code>getIncompatibleImprovements()</code></a> might return
   a lower version than what you have specified.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.21</dd>
</dl>
</li>
</ul>
<a name="BeansWrapper-freemarker.ext.beans.BeansWrapperConfiguration-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>BeansWrapper</h4>
<pre>protected&nbsp;BeansWrapper(<a href="../../../freemarker/ext/beans/BeansWrapperConfiguration.html" title="class in freemarker.ext.beans">BeansWrapperConfiguration</a>&nbsp;bwConf,
                       boolean&nbsp;writeProtected)</pre>
<div class="block">Same as <a href="../../../freemarker/ext/beans/BeansWrapper.html#BeansWrapper-freemarker.ext.beans.BeansWrapperConfiguration-boolean-boolean-"><code>BeansWrapper(BeansWrapperConfiguration, boolean, boolean)</code></a> with <code>true</code>
 <code>finalizeConstruction</code> argument.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.21</dd>
</dl>
</li>
</ul>
<a name="BeansWrapper-freemarker.ext.beans.BeansWrapperConfiguration-boolean-boolean-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>BeansWrapper</h4>
<pre>protected&nbsp;BeansWrapper(<a href="../../../freemarker/ext/beans/BeansWrapperConfiguration.html" title="class in freemarker.ext.beans">BeansWrapperConfiguration</a>&nbsp;bwConf,
                       boolean&nbsp;writeProtected,
                       boolean&nbsp;finalizeConstruction)</pre>
<div class="block">Initializes the instance based on the the <a href="../../../freemarker/ext/beans/BeansWrapperConfiguration.html" title="class in freemarker.ext.beans"><code>BeansWrapperConfiguration</code></a> specified.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>writeProtected</code> - Makes the instance's configuration settings read-only via
     <a href="../../../freemarker/template/utility/WriteProtectable.html#writeProtect--"><code>WriteProtectable.writeProtect()</code></a>; this way it can use the shared class introspection cache.</dd>
<dd><code>finalizeConstruction</code> - Decides if the construction is finalized now, or the caller will do some more
     adjustments on the instance and then call <a href="../../../freemarker/ext/beans/BeansWrapper.html#finalizeConstruction-boolean-"><code>finalizeConstruction(boolean)</code></a> itself.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="finalizeConstruction-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>finalizeConstruction</h4>
<pre>protected&nbsp;void&nbsp;finalizeConstruction(boolean&nbsp;writeProtected)</pre>
<div class="block">Meant to be called after <a href="../../../freemarker/ext/beans/BeansWrapper.html#BeansWrapper-freemarker.ext.beans.BeansWrapperConfiguration-boolean-boolean-"><code>BeansWrapper(BeansWrapperConfiguration, boolean, boolean)</code></a> when
 its last argument was <code>false</code>; makes the instance read-only if necessary, then registers the model
 factories in the class introspector. No further changes should be done after calling this, if
 <code>writeProtected</code> was <code>true</code>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="writeProtect--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeProtect</h4>
<pre>public&nbsp;void&nbsp;writeProtect()</pre>
<div class="block">Makes the configuration properties (settings) of this <a href="../../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans"><code>BeansWrapper</code></a> object read-only. As changing them
 after the object has become visible to multiple threads leads to undefined behavior, it's recommended to call
 this when you have finished configuring the object.
 
 <p>Consider using <a href="../../../freemarker/ext/beans/BeansWrapperBuilder.html" title="class in freemarker.ext.beans"><code>BeansWrapperBuilder</code></a> instead, which gives an instance that's already
 write protected and also uses some shared caches/pools.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../freemarker/template/utility/WriteProtectable.html#writeProtect--">writeProtect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../freemarker/template/utility/WriteProtectable.html" title="interface in freemarker.template.utility">WriteProtectable</a></code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.21</dd>
</dl>
</li>
</ul>
<a name="isWriteProtected--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isWriteProtected</h4>
<pre>public&nbsp;boolean&nbsp;isWriteProtected()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../freemarker/template/utility/WriteProtectable.html#isWriteProtected--">isWriteProtected</a></code>&nbsp;in interface&nbsp;<code><a href="../../../freemarker/template/utility/WriteProtectable.html" title="interface in freemarker.template.utility">WriteProtectable</a></code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.21</dd>
</dl>
</li>
</ul>
<a name="checkModifiable--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkModifiable</h4>
<pre>protected&nbsp;void&nbsp;checkModifiable()</pre>
<div class="block">If this object is already read-only according to <a href="../../../freemarker/template/utility/WriteProtectable.html" title="interface in freemarker.template.utility"><code>WriteProtectable</code></a>, throws <code>IllegalStateException</code>,
 otherwise does nothing.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.21</dd>
</dl>
</li>
</ul>
<a name="isStrict--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isStrict</h4>
<pre>public&nbsp;boolean&nbsp;isStrict()</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../freemarker/ext/beans/BeansWrapper.html#setStrict-boolean-"><code>setStrict(boolean)</code></a></dd>
</dl>
</li>
</ul>
<a name="setStrict-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setStrict</h4>
<pre>public&nbsp;void&nbsp;setStrict(boolean&nbsp;strict)</pre>
<div class="block">Specifies if an attempt to read a bean property that doesn't exist in the
 wrapped object should throw an <a href="../../../freemarker/ext/beans/InvalidPropertyException.html" title="class in freemarker.ext.beans"><code>InvalidPropertyException</code></a>.
 
 <p>If this property is <tt>false</tt> (the default) then an attempt to read
 a missing bean property is the same as reading an existing bean property whose
 value is <tt>null</tt>. The template can't tell the difference, and thus always
 can use <tt>?default('something')</tt> and <tt>?exists</tt> and similar built-ins
 to handle the situation.

 <p>If this property is <tt>true</tt> then an attempt to read a bean propertly in
 the template (like <tt>myBean.aProperty</tt>) that doesn't exist in the bean
 object (as opposed to just holding <tt>null</tt> value) will cause
 <a href="../../../freemarker/ext/beans/InvalidPropertyException.html" title="class in freemarker.ext.beans"><code>InvalidPropertyException</code></a>, which can't be suppressed in the template
 (not even with <tt>myBean.noSuchProperty?default('something')</tt>). This way
 <tt>?default('something')</tt> and <tt>?exists</tt> and similar built-ins can be used to
 handle existing properties whose value is <tt>null</tt>, without the risk of
 hiding typos in the property names. Typos will always cause error. But mind you, it
 goes against the basic approach of FreeMarker, so use this feature only if you really
 know what you are doing.</div>
</li>
</ul>
<a name="setOuterIdentity-freemarker.template.ObjectWrapper-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setOuterIdentity</h4>
<pre>public&nbsp;void&nbsp;setOuterIdentity(<a href="../../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template">ObjectWrapper</a>&nbsp;outerIdentity)</pre>
<div class="block">When wrapping an object, the BeansWrapper commonly needs to wrap
 "sub-objects", for example each element in a wrapped collection.
 Normally it wraps these objects using itself. However, this makes
 it difficult to delegate to a BeansWrapper as part of a custom
 aggregate ObjectWrapper. This method lets you set the ObjectWrapper
 which will be used to wrap the sub-objects.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>outerIdentity</code> - the aggregate ObjectWrapper</dd>
</dl>
</li>
</ul>
<a name="getOuterIdentity--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOuterIdentity</h4>
<pre>public&nbsp;<a href="../../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template">ObjectWrapper</a>&nbsp;getOuterIdentity()</pre>
<div class="block">By default returns <tt>this</tt>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../freemarker/ext/beans/BeansWrapper.html#setOuterIdentity-freemarker.template.ObjectWrapper-"><code>setOuterIdentity(ObjectWrapper)</code></a></dd>
</dl>
</li>
</ul>
<a name="setSimpleMapWrapper-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSimpleMapWrapper</h4>
<pre>public&nbsp;void&nbsp;setSimpleMapWrapper(boolean&nbsp;simpleMapWrapper)</pre>
<div class="block">When set to <code>true</code>, the keys in <code>Map</code>-s won't mix with the method names when looking at them
 from templates. The default is <code>false</code> for backward-compatibility, but is not recommended.
 
 <p>When this is <code>false</code>, <code>myMap.foo</code> or <code>myMap['foo']</code> either returns the method <code>foo</code>,
 or calls <code>Map.get("foo")</code>. If both exists (the method and the <code>Map</code> key), one will hide the other,
 depending on the <a href="../../../freemarker/ext/beans/BeansWrapper.html#isMethodsShadowItems--"><code>isMethodsShadowItems()</code></a>, which default to <code>true</code> (the method
 wins). Some frameworks use this so that you can call <code>myMap.get(nonStringKey)</code> from templates [*], but it
 comes on the cost of polluting the key-set with the method names, and risking methods accidentally hiding
 <code>Map</code> entries (or the other way around). Thus, this setup is not recommended.
 (Technical note: <code>Map</code>-s will be wrapped into <a href="../../../freemarker/ext/beans/MapModel.html" title="class in freemarker.ext.beans"><code>MapModel</code></a> in this case.)  

 <p>When this is <code>true</code>, <code>myMap.foo</code> or <code>myMap['foo']</code> always calls <code>Map.get("foo")</code>.
 The methods of the <code>Map</code> object aren't visible from templates in this case. This, however, spoils the
 <code>myMap.get(nonStringKey)</code> workaround. But now you can use <code>myMap(nonStringKey)</code> instead, that is, you
 can use the map itself as the <code>get</code> method. 
 (Technical note: <code>Map</code>-s will be wrapped into <a href="../../../freemarker/ext/beans/SimpleMapModel.html" title="class in freemarker.ext.beans"><code>SimpleMapModel</code></a> in this case.)
 
 <p>*: For historical reasons, FreeMarker 2.3.X doesn't support non-string keys with the <code>[]</code> operator,
       hence the workarounds. This will be likely fixed in FreeMarker 2.4.0. Also note that the method- and
       the "field"-namespaces aren't separate in FreeMarker, hence <code>myMap.get</code> can return the <code>get</code>
       method.</div>
</li>
</ul>
<a name="isSimpleMapWrapper--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSimpleMapWrapper</h4>
<pre>public&nbsp;boolean&nbsp;isSimpleMapWrapper()</pre>
<div class="block">Tells whether Maps are exposed as simple maps, without access to their
 method. See <a href="../../../freemarker/ext/beans/BeansWrapper.html#setSimpleMapWrapper-boolean-"><code>setSimpleMapWrapper(boolean)</code></a> for details.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if Maps are exposed as simple hashes, false if they're
 exposed as full JavaBeans.</dd>
</dl>
</li>
</ul>
<a name="getPreferIndexedReadMethod--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPreferIndexedReadMethod</h4>
<pre>public&nbsp;boolean&nbsp;getPreferIndexedReadMethod()</pre>
<div class="block">Getter pair of <a href="../../../freemarker/ext/beans/BeansWrapper.html#setPreferIndexedReadMethod-boolean-"><code>setPreferIndexedReadMethod(boolean)</code></a></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.27</dd>
</dl>
</li>
</ul>
<a name="setPreferIndexedReadMethod-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPreferIndexedReadMethod</h4>
<pre>public&nbsp;void&nbsp;setPreferIndexedReadMethod(boolean&nbsp;preferIndexedReadMethod)</pre>
<div class="block">Sets if when a JavaBean property has both a normal read method (like <code>String[] getFoos()</code>) and an indexed
 read method (like <code>String getFoos(int index)</code>), and the Java <code>Introspector</code> exposes both (which only
 happens since Java 8, apparently), which read method will be used when the property is accessed with the
 shorthand syntax (like <code>myObj.foos</code>). Before <a href="../../../freemarker/ext/beans/BeansWrapper.html#getIncompatibleImprovements--"><code>incompatibleImprovements</code></a>
 2.3.27 it defaults to <code>true</code> for backward compatibility (although it's actually less backward compatible if
 you are just switching to Java 8; see later), but the recommended value and the default starting with
 <a href="../../../freemarker/ext/beans/BeansWrapper.html#getIncompatibleImprovements--"><code>incompatibleImprovements</code></a> 2.3.27 is <code>false</code>. This setting has no
 effect on properties that only has normal read method, or only has indexed read method. In case a property has
 both, using the indexed reader method is disadvantageous, as then FreeMarker can't tell what the highest allowed
 index is, and so the property will be unlistable (<code>&lt;#list foo as myObj.foos&gt;</code> will fail).
 
 <p>
 Apparently, this setting only matters since Java 8, as before that <code>Introspector</code> did not expose the
 indexed reader method if there was also a normal reader method. As with Java 8 the behavior of
 <code>Introspector</code> has changed, some old templates started to break, as the property has suddenly become
 unlistable (see earlier why). So setting this to <code>false</code> can be seen as a Java 8 compatibility fix.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.27</dd>
</dl>
</li>
</ul>
<a name="setExposureLevel-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setExposureLevel</h4>
<pre>public&nbsp;void&nbsp;setExposureLevel(int&nbsp;exposureLevel)</pre>
<div class="block">Sets the method exposure level. By default, set to <code>EXPOSE_SAFE</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>exposureLevel</code> - can be any of the <code>EXPOSE_xxx</code>
 constants.</dd>
</dl>
</li>
</ul>
<a name="getExposureLevel--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExposureLevel</h4>
<pre>public&nbsp;int&nbsp;getExposureLevel()</pre>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.21</dd>
</dl>
</li>
</ul>
<a name="setExposeFields-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setExposeFields</h4>
<pre>public&nbsp;void&nbsp;setExposeFields(boolean&nbsp;exposeFields)</pre>
<div class="block">Controls whether public instance fields of classes are exposed to 
 templates.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>exposeFields</code> - if set to true, public instance fields of classes 
 that do not have a property getter defined can be accessed directly by
 their name. If there is a property getter for a property of the same 
 name as the field (i.e. getter "getFoo()" and field "foo"), then 
 referring to "foo" in template invokes the getter. If set to false, no
 access to public instance fields of classes is given. Default is false.</dd>
</dl>
</li>
</ul>
<a name="setTreatDefaultMethodsAsBeanMembers-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTreatDefaultMethodsAsBeanMembers</h4>
<pre>public&nbsp;void&nbsp;setTreatDefaultMethodsAsBeanMembers(boolean&nbsp;treatDefaultMethodsAsBeanMembers)</pre>
<div class="block">Controls whether Java 8 default methods that weren't overridden in a class will be recognized as bean property
 accessors and/or bean actions, and thus will be visible from templates. (We expose bean properties and bean
 actions, not methods in general.) Before <a href="../../../freemarker/ext/beans/BeansWrapper.html#getIncompatibleImprovements--"><code>incompatibleImprovements</code></a> 2.3.26
 this defaults to <code>false</code> for backward compatibility. Starting with <a href="../../../freemarker/ext/beans/BeansWrapper.html#getIncompatibleImprovements--"><code>incompatibleImprovements</code></a> 2.3.26 it defaults to <code>true</code>.
 <p>
 Some explanation: FreeMarker uses <code>Introspector</code> to discover the bean properties and actions of
 classes, for maximum conformance to the JavaBeans specification. But for some reason (perhaps just a bug in the
 Oracle/OpenJDK Java 8 implementation) that ignores the Java 8 default methods coming from the interfaces. When
 this setting is <code>true</code>, we search for non-overridden default methods ourselves, and add them to the set of
 discovered bean members.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.26</dd>
</dl>
</li>
</ul>
<a name="isExposeFields--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isExposeFields</h4>
<pre>public&nbsp;boolean&nbsp;isExposeFields()</pre>
<div class="block">Returns whether exposure of public instance fields of classes is 
 enabled. See <a href="../../../freemarker/ext/beans/BeansWrapper.html#setExposeFields-boolean-"><code>setExposeFields(boolean)</code></a> for details.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if public instance fields are exposed, false otherwise.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.26</dd>
</dl>
</li>
</ul>
<a name="getTreatDefaultMethodsAsBeanMembers--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTreatDefaultMethodsAsBeanMembers</h4>
<pre>public&nbsp;boolean&nbsp;getTreatDefaultMethodsAsBeanMembers()</pre>
<div class="block">See <a href="../../../freemarker/ext/beans/BeansWrapper.html#setTreatDefaultMethodsAsBeanMembers-boolean-"><code>setTreatDefaultMethodsAsBeanMembers(boolean)</code></a>.</div>
</li>
</ul>
<a name="getMethodAppearanceFineTuner--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMethodAppearanceFineTuner</h4>
<pre>public&nbsp;<a href="../../../freemarker/ext/beans/MethodAppearanceFineTuner.html" title="interface in freemarker.ext.beans">MethodAppearanceFineTuner</a>&nbsp;getMethodAppearanceFineTuner()</pre>
</li>
</ul>
<a name="setMethodAppearanceFineTuner-freemarker.ext.beans.MethodAppearanceFineTuner-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMethodAppearanceFineTuner</h4>
<pre>public&nbsp;void&nbsp;setMethodAppearanceFineTuner(<a href="../../../freemarker/ext/beans/MethodAppearanceFineTuner.html" title="interface in freemarker.ext.beans">MethodAppearanceFineTuner</a>&nbsp;methodAppearanceFineTuner)</pre>
<div class="block">Used to tweak certain aspects of how methods appear in the data-model;
 see <a href="../../../freemarker/ext/beans/MethodAppearanceFineTuner.html" title="interface in freemarker.ext.beans"><code>MethodAppearanceFineTuner</code></a> for more.</div>
</li>
</ul>
<a name="getMemberAccessPolicy--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMemberAccessPolicy</h4>
<pre>public&nbsp;<a href="../../../freemarker/ext/beans/MemberAccessPolicy.html" title="interface in freemarker.ext.beans">MemberAccessPolicy</a>&nbsp;getMemberAccessPolicy()</pre>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.30</dd>
</dl>
</li>
</ul>
<a name="setMemberAccessPolicy-freemarker.ext.beans.MemberAccessPolicy-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMemberAccessPolicy</h4>
<pre>public&nbsp;void&nbsp;setMemberAccessPolicy(<a href="../../../freemarker/ext/beans/MemberAccessPolicy.html" title="interface in freemarker.ext.beans">MemberAccessPolicy</a>&nbsp;memberAccessPolicy)</pre>
<div class="block">Sets the <a href="../../../freemarker/ext/beans/MemberAccessPolicy.html" title="interface in freemarker.ext.beans"><code>MemberAccessPolicy</code></a>; default is <a href="../../../freemarker/ext/beans/DefaultMemberAccessPolicy.html#getInstance-freemarker.template.Version-"><code>DefaultMemberAccessPolicy.getInstance(Version)</code></a>, which
 is not appropriate if template editors aren't trusted.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.30</dd>
</dl>
</li>
</ul>
<a name="isClassIntrospectionCacheRestricted--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isClassIntrospectionCacheRestricted</h4>
<pre>public&nbsp;boolean&nbsp;isClassIntrospectionCacheRestricted()</pre>
<div class="block">Tells if this instance acts like if its class introspection cache is sharable with other <a href="../../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans"><code>BeansWrapper</code></a>-s.
 A restricted cache denies certain too "antisocial" operations, like <a href="../../../freemarker/ext/beans/BeansWrapper.html#clearClassIntrospectionCache--"><code>clearClassIntrospectionCache()</code></a>.
 The value depends on how the instance
 was created; with a public constructor (then this is <code>false</code>), or with <a href="../../../freemarker/ext/beans/BeansWrapperBuilder.html" title="class in freemarker.ext.beans"><code>BeansWrapperBuilder</code></a>
 (then it's <code>true</code>). Note that in the last case it's possible that the introspection cache
 will not be actually shared because there's no one to share with, but this will <code>true</code> even then.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.21</dd>
</dl>
</li>
</ul>
<a name="setMethodsShadowItems-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMethodsShadowItems</h4>
<pre>public&nbsp;void&nbsp;setMethodsShadowItems(boolean&nbsp;methodsShadowItems)</pre>
<div class="block">Sets whether methods shadow items in beans. When true (this is the
 default value), <code>${object.name}</code> will first try to locate
 a bean method or property with the specified name on the object, and
 only if it doesn't find it will it try to call
 <code>object.get(name)</code>, the so-called "generic get method" that
 is usually used to access items of a container (i.e. elements of a map).
 When set to false, the lookup order is reversed and generic get method
 is called first, and only if it returns null is method lookup attempted.</div>
</li>
</ul>
<a name="setDefaultDateType-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDefaultDateType</h4>
<pre>public&nbsp;void&nbsp;setDefaultDateType(int&nbsp;defaultDateType)</pre>
<div class="block">Sets the default date type to use for date models that result from
 a plain <tt>java.util.Date</tt> instead of <tt>java.sql.Date</tt> or
 <tt>java.sql.Time</tt> or <tt>java.sql.Timestamp</tt>. Default value is 
 <a href="../../../freemarker/template/TemplateDateModel.html#UNKNOWN"><code>TemplateDateModel.UNKNOWN</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>defaultDateType</code> - the new default date type.</dd>
</dl>
</li>
</ul>
<a name="getDefaultDateType--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultDateType</h4>
<pre>public&nbsp;int&nbsp;getDefaultDateType()</pre>
<div class="block">Returns the default date type. See <a href="../../../freemarker/ext/beans/BeansWrapper.html#setDefaultDateType-int-"><code>setDefaultDateType(int)</code></a> for
 details.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the default date type</dd>
</dl>
</li>
</ul>
<a name="setUseCache-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setUseCache</h4>
<pre>public&nbsp;void&nbsp;setUseCache(boolean&nbsp;useCache)</pre>
<div class="block">Sets whether this wrapper caches the <a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template"><code>TemplateModel</code></a>-s created for the Java objects that has wrapped with
 this object wrapper. Default is <code>false</code>.
 When set to <code>true</code>, calling <a href="../../../freemarker/ext/beans/BeansWrapper.html#wrap-java.lang.Object-"><code>wrap(Object)</code></a> multiple times for
 the same object will likely return the same model (although there is
 no guarantee as the cache items can be cleared any time).</div>
</li>
</ul>
<a name="getUseCache--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUseCache</h4>
<pre>public&nbsp;boolean&nbsp;getUseCache()</pre>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.21</dd>
</dl>
</li>
</ul>
<a name="setNullModel-freemarker.template.TemplateModel-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setNullModel</h4>
<pre>@Deprecated
public&nbsp;void&nbsp;setNullModel(<a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;nullModel)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Changing the <code>null</code> model can cause a lot of confusion; don't do it.</span></div>
<div class="block">Sets the null model. This model is returned from the <a href="../../../freemarker/ext/beans/BeansWrapper.html#wrap-java.lang.Object-"><code>wrap(Object)</code></a> method whenever the wrapped object is
 <code>null</code>. It defaults to <code>null</code>, which is dealt with quite strictly on engine level, however you can
 substitute an arbitrary (perhaps more lenient) model, like an empty string. For proper working, the
 <code>nullModel</code> should be an <a href="../../../freemarker/template/AdapterTemplateModel.html" title="interface in freemarker.template"><code>AdapterTemplateModel</code></a> that returns <code>null</code> for
 <a href="../../../freemarker/template/AdapterTemplateModel.html#getAdaptedObject-java.lang.Class-"><code>AdapterTemplateModel.getAdaptedObject(Class)</code></a>.</div>
</li>
</ul>
<a name="getIncompatibleImprovements--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIncompatibleImprovements</h4>
<pre>public&nbsp;<a href="../../../freemarker/template/Version.html" title="class in freemarker.template">Version</a>&nbsp;getIncompatibleImprovements()</pre>
<div class="block">Returns the version given with <a href="../../../freemarker/ext/beans/BeansWrapper.html#BeansWrapper-freemarker.template.Version-"><code>BeansWrapper(Version)</code></a>, normalized to the lowest version where a change
 has occurred. Thus, this is not necessarily the same version than that was given to the constructor.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.21</dd>
</dl>
</li>
</ul>
<a name="normalizeIncompatibleImprovementsVersion-freemarker.template.Version-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>normalizeIncompatibleImprovementsVersion</h4>
<pre>protected static&nbsp;<a href="../../../freemarker/template/Version.html" title="class in freemarker.template">Version</a>&nbsp;normalizeIncompatibleImprovementsVersion(<a href="../../../freemarker/template/Version.html" title="class in freemarker.template">Version</a>&nbsp;incompatibleImprovements)</pre>
<div class="block">Returns the lowest version number that is equivalent with the parameter version.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.21</dd>
</dl>
</li>
</ul>
<a name="getDefaultInstance--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultInstance</h4>
<pre>@Deprecated
public static final&nbsp;<a href="../../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans">BeansWrapper</a>&nbsp;getDefaultInstance()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../freemarker/ext/beans/BeansWrapperBuilder.html" title="class in freemarker.ext.beans"><code>BeansWrapperBuilder</code></a> instead. The instance returned here is not read-only, so it's
     dangerous to use.</span></div>
<div class="block">Returns the default instance of the wrapper. This instance is used
 when you construct various bean models without explicitly specifying
 a wrapper. It is also returned by 
 <a href="../../../freemarker/template/ObjectWrapper.html#BEANS_WRAPPER"><code>ObjectWrapper.BEANS_WRAPPER</code></a>
 and this is the sole instance that is used by the JSP adapter.
 You can modify the properties of the default instance (caching,
 exposure level, null model) to affect its operation. By default, the
 default instance is not caching, uses the <code>EXPOSE_SAFE</code>
 exposure level, and uses null reference as the null model.</div>
</li>
</ul>
<a name="wrap-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>wrap</h4>
<pre>public&nbsp;<a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;wrap(java.lang.Object&nbsp;object)
                   throws <a href="../../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></pre>
<div class="block">Wraps the object with a template model that is most specific for the object's
 class. Specifically:
 <ul>
 <li>if the object is null, returns the <a href="../../../freemarker/ext/beans/BeansWrapper.html#setNullModel-freemarker.template.TemplateModel-"><code>null model</code></a>,</li>
 <li>if the object is a Number returns a <a href="../../../freemarker/ext/beans/NumberModel.html" title="class in freemarker.ext.beans"><code>NumberModel</code></a> for it,</li>
 <li>if the object is a Date returns a <a href="../../../freemarker/ext/beans/DateModel.html" title="class in freemarker.ext.beans"><code>DateModel</code></a> for it,</li>
 <li>if the object is a Boolean returns 
 <a href="../../../freemarker/template/TemplateBooleanModel.html#TRUE"><code>TemplateBooleanModel.TRUE</code></a> or 
 <a href="../../../freemarker/template/TemplateBooleanModel.html#FALSE"><code>TemplateBooleanModel.FALSE</code></a></li>
 <li>if the object is already a TemplateModel, returns it unchanged,</li>
 <li>if the object is an array, returns a <a href="../../../freemarker/ext/beans/ArrayModel.html" title="class in freemarker.ext.beans"><code>ArrayModel</code></a> for it
 <li>if the object is a Map, returns a <a href="../../../freemarker/ext/beans/MapModel.html" title="class in freemarker.ext.beans"><code>MapModel</code></a> for it
 <li>if the object is a Collection, returns a <a href="../../../freemarker/ext/beans/CollectionModel.html" title="class in freemarker.ext.beans"><code>CollectionModel</code></a> for it
 <li>if the object is an Iterator, returns a <a href="../../../freemarker/ext/beans/IteratorModel.html" title="class in freemarker.ext.beans"><code>IteratorModel</code></a> for it
 <li>if the object is an Enumeration, returns a <a href="../../../freemarker/ext/beans/EnumerationModel.html" title="class in freemarker.ext.beans"><code>EnumerationModel</code></a> for it
 <li>if the object is a String, returns a <a href="../../../freemarker/ext/beans/StringModel.html" title="class in freemarker.ext.beans"><code>StringModel</code></a> for it
 <li>otherwise, returns a generic <a href="../../../freemarker/ext/beans/StringModel.html" title="class in freemarker.ext.beans"><code>StringModel</code></a> for it.
 </ul></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../freemarker/template/ObjectWrapper.html#wrap-java.lang.Object-">wrap</a></code>&nbsp;in interface&nbsp;<code><a href="../../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template">ObjectWrapper</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>object</code> - The object to wrap into a <a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template"><code>TemplateModel</code></a>. If it already implements <a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template"><code>TemplateModel</code></a>,
      it should just return the object as is. If it's <code>null</code>, the method should return <code>null</code>
      (however, <a href="../../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans"><code>BeansWrapper</code></a>, has a legacy option for returning a null model object instead, but it's not
      a good idea).</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template"><code>TemplateModel</code></a> wrapper of the object passed in. To support un-wrapping, you may consider the
     return value to implement <a href="../../../freemarker/ext/util/WrapperTemplateModel.html" title="interface in freemarker.ext.util"><code>WrapperTemplateModel</code></a> and <a href="../../../freemarker/template/AdapterTemplateModel.html" title="interface in freemarker.template"><code>AdapterTemplateModel</code></a>.  
     The default expectation is that the <a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template"><code>TemplateModel</code></a> isn't less thread safe than the wrapped object.
     If the <a href="../../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template"><code>ObjectWrapper</code></a> returns less thread safe objects, that should be clearly documented, as it
     restricts how it can be used, like, then it can't be used to wrap "shared variables"
     (<a href="../../../freemarker/template/Configuration.html#setSharedVaribles-java.util.Map-"><code>Configuration.setSharedVaribles(Map)</code></a>).</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></code></dd>
</dl>
</li>
</ul>
<a name="wrap-java.lang.Object-java.lang.reflect.Method-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>wrap</h4>
<pre>public&nbsp;<a href="../../../freemarker/template/TemplateMethodModelEx.html" title="interface in freemarker.template">TemplateMethodModelEx</a>&nbsp;wrap(java.lang.Object&nbsp;object,
                                  java.lang.reflect.Method&nbsp;method)</pre>
<div class="block">Wraps a Java method so that it can be called from templates, without wrapping its parent ("this") object. The
 result is almost the same as that you would get by wrapping the parent object then getting the method from the
 resulting <a href="../../../freemarker/template/TemplateHashModel.html" title="interface in freemarker.template"><code>TemplateHashModel</code></a> by name. Except, if the wrapped method is overloaded, with this method you
 explicitly select an overload, while otherwise you would get a <a href="../../../freemarker/template/TemplateMethodModelEx.html" title="interface in freemarker.template"><code>TemplateMethodModelEx</code></a> that selects an
 overload each time it's called based on the argument values.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>object</code> - The object whose method will be called, or <code>null</code> if <code>method</code> is a static method.
          This object will be used "as is", like without unwrapping it if it's a <a href="../../../freemarker/template/TemplateModelAdapter.html" title="interface in freemarker.template"><code>TemplateModelAdapter</code></a>.</dd>
<dd><code>method</code> - The method to call, which must be an (inherited) member of the class of <code>object</code>, as
          described by <code>Method.invoke(Object, Object...)</code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="wrapAsAPI-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>wrapAsAPI</h4>
<pre>public&nbsp;<a href="../../../freemarker/template/TemplateHashModel.html" title="interface in freemarker.template">TemplateHashModel</a>&nbsp;wrapAsAPI(java.lang.Object&nbsp;obj)
                            throws <a href="../../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../freemarker/template/utility/ObjectWrapperWithAPISupport.html#wrapAsAPI-java.lang.Object-">ObjectWrapperWithAPISupport</a></code></span></div>
<div class="block">Wraps an object to a <a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template"><code>TemplateModel</code></a> that exposes the object's "native" (usually, Java) API.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../freemarker/template/utility/ObjectWrapperWithAPISupport.html#wrapAsAPI-java.lang.Object-">wrapAsAPI</a></code>&nbsp;in interface&nbsp;<code><a href="../../../freemarker/template/utility/ObjectWrapperWithAPISupport.html" title="interface in freemarker.template.utility">ObjectWrapperWithAPISupport</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>obj</code> - The object for which the API model has to be returned. Shouldn't be <code>null</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The <a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template"><code>TemplateModel</code></a> through which the API of the object can be accessed. Can't be <code>null</code>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="getInstance-java.lang.Object-freemarker.ext.util.ModelFactory-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInstance</h4>
<pre>@Deprecated
protected&nbsp;<a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;getInstance(java.lang.Object&nbsp;object,
                                                 <a href="../../../freemarker/ext/util/ModelFactory.html" title="interface in freemarker.ext.util">ModelFactory</a>&nbsp;factory)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">override <a href="../../../freemarker/ext/beans/BeansWrapper.html#getModelFactory-java.lang.Class-"><code>getModelFactory(Class)</code></a> instead. Using this
 method will now bypass wrapper caching (if it's enabled) and always 
 result in creation of a new wrapper. This method will be removed in 2.4</span></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>object</code> - The object to wrap</dd>
<dd><code>factory</code> - The factory that wraps the object</dd>
</dl>
</li>
</ul>
<a name="getModelFactory-java.lang.Class-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getModelFactory</h4>
<pre>protected&nbsp;<a href="../../../freemarker/ext/util/ModelFactory.html" title="interface in freemarker.ext.util">ModelFactory</a>&nbsp;getModelFactory(java.lang.Class&lt;?&gt;&nbsp;clazz)</pre>
</li>
</ul>
<a name="unwrap-freemarker.template.TemplateModel-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unwrap</h4>
<pre>public&nbsp;java.lang.Object&nbsp;unwrap(<a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;model)
                        throws <a href="../../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></pre>
<div class="block">Attempts to unwrap a model into underlying object. Generally, this
 method is the inverse of the <a href="../../../freemarker/ext/beans/BeansWrapper.html#wrap-java.lang.Object-"><code>wrap(Object)</code></a> method. In addition
 it will unwrap arbitrary <a href="../../../freemarker/template/TemplateNumberModel.html" title="interface in freemarker.template"><code>TemplateNumberModel</code></a> instances into
 a number, arbitrary <a href="../../../freemarker/template/TemplateDateModel.html" title="interface in freemarker.template"><code>TemplateDateModel</code></a> instances into a date,
 <a href="../../../freemarker/template/TemplateScalarModel.html" title="interface in freemarker.template"><code>TemplateScalarModel</code></a> instances into a String, arbitrary 
 <a href="../../../freemarker/template/TemplateBooleanModel.html" title="interface in freemarker.template"><code>TemplateBooleanModel</code></a> instances into a Boolean, arbitrary 
 <a href="../../../freemarker/template/TemplateHashModel.html" title="interface in freemarker.template"><code>TemplateHashModel</code></a> instances into a Map, arbitrary 
 <a href="../../../freemarker/template/TemplateSequenceModel.html" title="interface in freemarker.template"><code>TemplateSequenceModel</code></a> into a List, and arbitrary 
 <a href="../../../freemarker/template/TemplateCollectionModel.html" title="interface in freemarker.template"><code>TemplateCollectionModel</code></a> into a Set. All other objects are 
 returned unchanged.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../freemarker/template/ObjectWrapperAndUnwrapper.html#unwrap-freemarker.template.TemplateModel-">unwrap</a></code>&nbsp;in interface&nbsp;<code><a href="../../../freemarker/template/ObjectWrapperAndUnwrapper.html" title="interface in freemarker.template">ObjectWrapperAndUnwrapper</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The plain Java object. Can be <code>null</code>, if <code>null</code> is the appropriate Java value to represent
         the template model. <code>null</code> must not be used to indicate an unwrapping failure. It must NOT be
         <a href="../../../freemarker/template/ObjectWrapperAndUnwrapper.html#CANT_UNWRAP_TO_TARGET_CLASS"><code>ObjectWrapperAndUnwrapper.CANT_UNWRAP_TO_TARGET_CLASS</code></a>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></code> - if an attempted unwrapping fails.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../freemarker/template/ObjectWrapperAndUnwrapper.html#tryUnwrapTo-freemarker.template.TemplateModel-java.lang.Class-"><code>ObjectWrapperAndUnwrapper.tryUnwrapTo(TemplateModel, Class)</code></a></dd>
</dl>
</li>
</ul>
<a name="unwrap-freemarker.template.TemplateModel-java.lang.Class-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unwrap</h4>
<pre>public&nbsp;java.lang.Object&nbsp;unwrap(<a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;model,
                               java.lang.Class&lt;?&gt;&nbsp;targetClass)
                        throws <a href="../../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></pre>
<div class="block">Attempts to unwrap a model into an object of the desired class. 
 Generally, this method is the inverse of the <a href="../../../freemarker/ext/beans/BeansWrapper.html#wrap-java.lang.Object-"><code>wrap(Object)</code></a> 
 method. It recognizes a wide range of target classes - all Java built-in
 primitives, primitive wrappers, numbers, dates, sets, lists, maps, and
 native arrays.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>model</code> - the model to unwrap</dd>
<dd><code>targetClass</code> - the class of the unwrapped result; <code>Object.class</code> if we don't know what the expected type is.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the unwrapped result of the desired class</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></code> - if an attempted unwrapping fails.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../freemarker/ext/beans/BeansWrapper.html#tryUnwrapTo-freemarker.template.TemplateModel-java.lang.Class-"><code>tryUnwrapTo(TemplateModel, Class)</code></a></dd>
</dl>
</li>
</ul>
<a name="tryUnwrapTo-freemarker.template.TemplateModel-java.lang.Class-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tryUnwrapTo</h4>
<pre>public&nbsp;java.lang.Object&nbsp;tryUnwrapTo(<a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;model,
                                    java.lang.Class&lt;?&gt;&nbsp;targetClass)
                             throws <a href="../../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../freemarker/template/ObjectWrapperAndUnwrapper.html#tryUnwrapTo-freemarker.template.TemplateModel-java.lang.Class-">ObjectWrapperAndUnwrapper</a></code></span></div>
<div class="block">Attempts to unwrap a <a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template"><code>TemplateModel</code></a> to a plain Java object that's the instance of the given class (or is
 <code>null</code>).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../freemarker/template/ObjectWrapperAndUnwrapper.html#tryUnwrapTo-freemarker.template.TemplateModel-java.lang.Class-">tryUnwrapTo</a></code>&nbsp;in interface&nbsp;<code><a href="../../../freemarker/template/ObjectWrapperAndUnwrapper.html" title="interface in freemarker.template">ObjectWrapperAndUnwrapper</a></code></dd>
<dd><code>targetClass</code> - The class that the return value must be an instance of (except when the return value is <code>null</code>).
            Can't be <code>null</code>; if the caller doesn't care, it should either use {#unwrap(TemplateModel)}, or
            <code>Object.class</code> as the parameter value.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The unwrapped value that's either an instance of <code>targetClass</code>, or is <code>null</code> (if <code>null</code>
         is the appropriate Java value to represent the template model), or is
         <a href="../../../freemarker/template/ObjectWrapperAndUnwrapper.html#CANT_UNWRAP_TO_TARGET_CLASS"><code>ObjectWrapperAndUnwrapper.CANT_UNWRAP_TO_TARGET_CLASS</code></a> if the unwrapping can't satisfy the <code>targetClass</code> (nor the
         result can be <code>null</code>). However, <a href="../../../freemarker/template/ObjectWrapperAndUnwrapper.html#CANT_UNWRAP_TO_TARGET_CLASS"><code>ObjectWrapperAndUnwrapper.CANT_UNWRAP_TO_TARGET_CLASS</code></a> must not be returned if the
         <code>targetClass</code> parameter was <code>Object.class</code>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></code> - If the unwrapping fails for a reason than doesn't fit the meaning of the
             <a href="../../../freemarker/template/ObjectWrapperAndUnwrapper.html#CANT_UNWRAP_TO_TARGET_CLASS"><code>ObjectWrapperAndUnwrapper.CANT_UNWRAP_TO_TARGET_CLASS</code></a> return value.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../freemarker/template/ObjectWrapperAndUnwrapper.html#unwrap-freemarker.template.TemplateModel-"><code>ObjectWrapperAndUnwrapper.unwrap(TemplateModel)</code></a></dd>
</dl>
</li>
</ul>
<a name="invokeMethod-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invokeMethod</h4>
<pre>protected&nbsp;<a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;invokeMethod(java.lang.Object&nbsp;object,
                                     java.lang.reflect.Method&nbsp;method,
                                     java.lang.Object[]&nbsp;args)
                              throws java.lang.reflect.InvocationTargetException,
                                     java.lang.IllegalAccessException,
                                     <a href="../../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></pre>
<div class="block">Invokes the specified method, wrapping the return value. All method invocations done in templates should go
 through this (assuming the target object was wrapped with this <a href="../../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template"><code>ObjectWrapper</code></a>).

 <p>This method is protected since 2.3.30; before that it was package private. The intended application of
 overriding this is monitoring what calls are made from templates. That can be useful to asses what will be needed
 in a <a href="../../../freemarker/ext/beans/WhitelistMemberAccessPolicy.html" title="class in freemarker.ext.beans"><code>WhitelistMemberAccessPolicy</code></a> for example. Note that <code>Object.toString()</code> calls caused by type
 conversion (like when you have <code>${myObject}</code>) will not go through here, as they aren't called by the
 template directly (and aren't called via reflection). On the other hand, <code>${myObject[key]}</code>,
 if <code>myObject</code> is not a <code>Map</code>, will go through here as a <code>get(String|Object)</code> method call, if
 there's a such method.

 <p>If the return value is null, and the return type of the invoked method is void,
 <a href="../../../freemarker/template/TemplateModel.html#NOTHING"><code>TemplateModel.NOTHING</code></a> is returned.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>object</code> - the object to invoke the method on (<code>null</code> may be null for static methods)</dd>
<dd><code>method</code> - the method to invoke</dd>
<dd><code>args</code> - the arguments to the method</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the wrapped return value of the method.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.reflect.InvocationTargetException</code> - if the invoked method threw an exception</dd>
<dd><code>java.lang.IllegalAccessException</code> - if the method can't be invoked due to an
 access restriction.</dd>
<dd><code><a href="../../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></code> - if the return value couldn't be wrapped
 (this can happen if the wrapper has an outer identity or is subclassed,
 and the outer identity or the subclass throws an exception. Plain
 BeansWrapper never throws TemplateModelException).</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.30</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../freemarker/ext/beans/BeansWrapper.html#readField-java.lang.Object-java.lang.reflect.Field-"><code>readField(Object, Field)</code></a></dd>
</dl>
</li>
</ul>
<a name="readField-java.lang.Object-java.lang.reflect.Field-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readField</h4>
<pre>protected&nbsp;<a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;readField(java.lang.Object&nbsp;object,
                                  java.lang.reflect.Field&nbsp;field)
                           throws java.lang.IllegalAccessException,
                                  <a href="../../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></pre>
<div class="block">Reads the specified field, returns its value as <a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template"><code>TemplateModel</code></a>.  All field reading done in templates
 should go through this (assuming the target object was wrapped with this <a href="../../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template"><code>ObjectWrapper</code></a>).

 <p>Just like in the case of <a href="../../../freemarker/ext/beans/BeansWrapper.html#invokeMethod-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-"><code>invokeMethod(Object, Method, Object[])</code></a>, overriding this can be useful if you
 want to monitor what members are accessed by templates. However, it has the caveat that final field values are
 possibly cached, so you won't see all reads. Furthermore, at least static models pre-read final fields, so
 they will be read even if the templates don't read them.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalAccessException</code></dd>
<dd><code><a href="../../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.30</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../freemarker/ext/beans/BeansWrapper.html#invokeMethod-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-"><code>invokeMethod(Object, Method, Object[])</code></a></dd>
</dl>
</li>
</ul>
<a name="getStaticModels--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStaticModels</h4>
<pre>public&nbsp;<a href="../../../freemarker/template/TemplateHashModel.html" title="interface in freemarker.template">TemplateHashModel</a>&nbsp;getStaticModels()</pre>
<div class="block">Returns a hash model that represents the so-called class static models.
 Every class static model is itself a hash through which you can call
 static methods on the specified class. To obtain a static model for a
 class, get the element of this hash with the fully qualified class name.
 For example, if you place this hash model inside the root data model
 under name "statics", you can use i.e. <code>statics["java.lang.
 System"]. currentTimeMillis()</code> to call the <code>System.currentTimeMillis()</code> method.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a hash model whose keys are fully qualified class names, and
 that returns hash models whose elements are the static models of the
 classes.</dd>
</dl>
</li>
</ul>
<a name="getEnumModels--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEnumModels</h4>
<pre>public&nbsp;<a href="../../../freemarker/template/TemplateHashModel.html" title="interface in freemarker.template">TemplateHashModel</a>&nbsp;getEnumModels()</pre>
<div class="block">Returns a hash model that represents the so-called class enum models.
 Every class' enum model is itself a hash through which you can access
 enum value declared by the specified class, assuming that class is an
 enumeration. To obtain an enum model for a class, get the element of this
 hash with the fully qualified class name. For example, if you place this 
 hash model inside the root data model under name "enums", you can use 
 i.e. <code>enums["java.math.RoundingMode"].UP</code> to access the 
 <code>RoundingMode.UP</code> value.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a hash model whose keys are fully qualified class names, and
 that returns hash models whose elements are the enum models of the
 classes.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.UnsupportedOperationException</code> - if this method is invoked on a 
 pre-1.5 JRE, as Java enums aren't supported there.</dd>
</dl>
</li>
</ul>
<a name="newInstance-java.lang.Class-java.util.List-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newInstance</h4>
<pre>public&nbsp;java.lang.Object&nbsp;newInstance(java.lang.Class&lt;?&gt;&nbsp;clazz,
                                    java.util.List&nbsp;arguments)
                             throws <a href="../../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></pre>
<div class="block">Creates a new instance of the specified class using the method call logic of this object wrapper for calling the
 constructor. Overloaded constructors and varargs are supported. Only public constructors will be called.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>clazz</code> - The class whose constructor we will call.</dd>
<dd><code>arguments</code> - The list of <a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template"><code>TemplateModel</code></a>-s to pass to the constructor after unwrapping them</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The instance created; it's not wrapped into <a href="../../../freemarker/template/TemplateModel.html" title="interface in freemarker.template"><code>TemplateModel</code></a>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></code></dd>
</dl>
</li>
</ul>
<a name="removeFromClassIntrospectionCache-java.lang.Class-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeFromClassIntrospectionCache</h4>
<pre>public&nbsp;void&nbsp;removeFromClassIntrospectionCache(java.lang.Class&lt;?&gt;&nbsp;clazz)</pre>
<div class="block">Removes the introspection data for a class from the cache.
 Use this if you know that a class is not used anymore in templates.
 If the class will be still used, the cache entry will be silently
 re-created, so this isn't a dangerous operation.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.20</dd>
</dl>
</li>
</ul>
<a name="clearClassIntrospecitonCache--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearClassIntrospecitonCache</h4>
<pre>@Deprecated
public&nbsp;void&nbsp;clearClassIntrospecitonCache()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">There's a typo in this method name, so use <a href="../../../freemarker/ext/beans/BeansWrapper.html#clearClassIntrospectionCache--"><code>clearClassIntrospectionCache()</code></a> instead.</span></div>
<div class="block"><p>Removes all class introspection data from the cache.
 
 <p>Use this if you want to free up memory on the expense of recreating
 the cache entries for the classes that will be used later in templates.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if <a href="../../../freemarker/ext/beans/BeansWrapper.html#isClassIntrospectionCacheRestricted--"><code>isClassIntrospectionCacheRestricted()</code></a> is <code>true</code>.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.20</dd>
</dl>
</li>
</ul>
<a name="clearClassIntrospectionCache--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearClassIntrospectionCache</h4>
<pre>public&nbsp;void&nbsp;clearClassIntrospectionCache()</pre>
<div class="block">Removes all class introspection data from the cache.

 <p>Use this if you want to free up memory on the expense of recreating
 the cache entries for the classes that will be used later in templates.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalStateException</code> - if <a href="../../../freemarker/ext/beans/BeansWrapper.html#isClassIntrospectionCacheRestricted--"><code>isClassIntrospectionCacheRestricted()</code></a> is <code>true</code>.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.29 (in earlier versions use <a href="../../../freemarker/ext/beans/BeansWrapper.html#clearClassIntrospecitonCache--"><code>clearClassIntrospecitonCache()</code></a>)</dd>
</dl>
</li>
</ul>
<a name="finetuneMethodAppearance-java.lang.Class-java.lang.reflect.Method-freemarker.ext.beans.BeansWrapper.MethodAppearanceDecision-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>finetuneMethodAppearance</h4>
<pre>@Deprecated
protected&nbsp;void&nbsp;finetuneMethodAppearance(java.lang.Class&lt;?&gt;&nbsp;clazz,
                                                     java.lang.reflect.Method&nbsp;m,
                                                     <a href="../../../freemarker/ext/beans/BeansWrapper.MethodAppearanceDecision.html" title="class in freemarker.ext.beans">BeansWrapper.MethodAppearanceDecision</a>&nbsp;decision)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <a href="../../../freemarker/ext/beans/BeansWrapper.html#setMethodAppearanceFineTuner-freemarker.ext.beans.MethodAppearanceFineTuner-"><code>setMethodAppearanceFineTuner(MethodAppearanceFineTuner)</code></a>;
     no need to extend this class anymore.
     Soon this method will be final, so trying to override it will break your app.
     Note that if the <code>methodAppearanceFineTuner</code> property is set to non-<code>null</code>, this method is not
     called anymore.</span></div>
</li>
</ul>
<a name="coerceBigDecimals-java.lang.reflect.AccessibleObject-java.lang.Object:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>coerceBigDecimals</h4>
<pre>public static&nbsp;void&nbsp;coerceBigDecimals(java.lang.reflect.AccessibleObject&nbsp;callable,
                                     java.lang.Object[]&nbsp;args)</pre>
<div class="block">Converts any <code>BigDecimal</code>s in the passed array to the type of
 the corresponding formal argument of the method.</div>
</li>
</ul>
<a name="coerceBigDecimals-java.lang.Class:A-java.lang.Object:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>coerceBigDecimals</h4>
<pre>public static&nbsp;void&nbsp;coerceBigDecimals(java.lang.Class&lt;?&gt;[]&nbsp;formalTypes,
                                     java.lang.Object[]&nbsp;args)</pre>
<div class="block">Converts any <code>BigDecimal</code>-s in the passed array to the type of
 the corresponding formal argument of the method via <a href="../../../freemarker/ext/beans/BeansWrapper.html#coerceBigDecimal-java.math.BigDecimal-java.lang.Class-"><code>coerceBigDecimal(BigDecimal, Class)</code></a>.</div>
</li>
</ul>
<a name="coerceBigDecimal-java.math.BigDecimal-java.lang.Class-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>coerceBigDecimal</h4>
<pre>public static&nbsp;java.lang.Object&nbsp;coerceBigDecimal(java.math.BigDecimal&nbsp;bd,
                                                java.lang.Class&lt;?&gt;&nbsp;formalType)</pre>
<div class="block">Converts <code>BigDecimal</code> to the class given in the <code>formalType</code> argument if that's a known numerical
 type, returns the <code>BigDecimal</code> as is otherwise. Overflow and precision loss are possible, similarly as
 with casting in Java.</div>
</li>
</ul>
<a name="toString--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;java.lang.String&nbsp;toString()</pre>
<div class="block">Returns the exact class name and the identity hash, also the values of the most often used <a href="../../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans"><code>BeansWrapper</code></a>
 configuration properties, also if which (if any) shared class introspection cache it uses.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.21</dd>
</dl>
</li>
</ul>
<a name="toPropertiesString--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toPropertiesString</h4>
<pre>protected&nbsp;java.lang.String&nbsp;toPropertiesString()</pre>
<div class="block">Returns the name-value pairs that describe the configuration of this <a href="../../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans"><code>BeansWrapper</code></a>; called from
 <a href="../../../freemarker/ext/beans/BeansWrapper.html#toString--"><code>toString()</code></a>. The expected format is like <code>"foo=bar, baaz=wombat"</code>. When overriding this, you should
 call the super method, and then insert the content before it with a following <code>", "</code>, or after it with a
 preceding <code>", "</code>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/BeansWrapper.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../freemarker/ext/beans/BeansModelCache.html" title="class in freemarker.ext.beans"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../freemarker/ext/beans/BeansWrapper.MethodAppearanceDecision.html" title="class in freemarker.ext.beans"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?freemarker/ext/beans/BeansWrapper.html" target="_top">Frames</a></li>
<li><a href="BeansWrapper.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
