| <!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:35 CET 2023 --> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <title>DefaultObjectWrapper (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="DefaultObjectWrapper (FreeMarker 2.3.32 API)"; |
| } |
| } |
| catch(err) { |
| } |
| //--> |
| var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":9,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10}; |
| var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete 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/DefaultObjectWrapper.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/template/DefaultNonListCollectionAdapter.html" title="class in freemarker.template"><span class="typeNameLink">Prev Class</span></a></li> |
| <li><a href="../../freemarker/template/DefaultObjectWrapperBuilder.html" title="class in freemarker.template"><span class="typeNameLink">Next Class</span></a></li> |
| </ul> |
| <ul class="navList"> |
| <li><a href="../../index.html?freemarker/template/DefaultObjectWrapper.html" target="_top">Frames</a></li> |
| <li><a href="DefaultObjectWrapper.html" target="_top">No Frames</a></li> |
| </ul> |
| <ul class="navList" id="allclasses_navbar_top"> |
| <li><a href="../../allclasses-noframe.html">All 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: </li> |
| <li><a href="#nested.classes.inherited.from.class.freemarker.ext.beans.BeansWrapper">Nested</a> | </li> |
| <li><a href="#fields.inherited.from.class.freemarker.ext.beans.BeansWrapper">Field</a> | </li> |
| <li><a href="#constructor.summary">Constr</a> | </li> |
| <li><a href="#method.summary">Method</a></li> |
| </ul> |
| <ul class="subNavList"> |
| <li>Detail: </li> |
| <li>Field | </li> |
| <li><a href="#constructor.detail">Constr</a> | </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.template</div> |
| <h2 title="Class DefaultObjectWrapper" class="title">Class DefaultObjectWrapper</h2> |
| </div> |
| <div class="contentContainer"> |
| <ul class="inheritance"> |
| <li>java.lang.Object</li> |
| <li> |
| <ul class="inheritance"> |
| <li><a href="../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans">freemarker.ext.beans.BeansWrapper</a></li> |
| <li> |
| <ul class="inheritance"> |
| <li>freemarker.template.DefaultObjectWrapper</li> |
| </ul> |
| </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/SimpleObjectWrapper.html" title="class in freemarker.template">SimpleObjectWrapper</a></dd> |
| </dl> |
| <hr> |
| <br> |
| <pre>public class <span class="typeNameLabel">DefaultObjectWrapper</span> |
| extends <a href="../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans">BeansWrapper</a></pre> |
| <div class="block">The default implementation of the <a href="../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template"><code>ObjectWrapper</code></a> interface. Usually, you don't need to create instances of |
| this, as an instance of this is already the default value of the |
| <a href="../../freemarker/template/Configuration.html#setObjectWrapper-freemarker.template.ObjectWrapper-"><code>object_wrapper setting</code></a>. Then the |
| <a href="../../freemarker/template/DefaultObjectWrapper.html#DefaultObjectWrapper-freemarker.template.Version-"><code>incompatibleImprovements</code></a> of the <a href="../../freemarker/template/DefaultObjectWrapper.html" title="class in freemarker.template"><code>DefaultObjectWrapper</code></a> will be the same |
| that you have set for the <a href="../../freemarker/template/Configuration.html" title="class in freemarker.template"><code>Configuration</code></a> itself. As of this writing, it's highly recommended to use |
| <a href="../../freemarker/template/Configuration.html#Configuration-freemarker.template.Version-"><code>incompatibleImprovements</code></a> 2.3.22 (or higher). |
| |
| <p> |
| If you still need to create an instance, that should be done with an <a href="../../freemarker/template/DefaultObjectWrapperBuilder.html" title="class in freemarker.template"><code>DefaultObjectWrapperBuilder</code></a> (or |
| with <a href="../../freemarker/template/Configuration.html#setSetting-java.lang.String-java.lang.String-"><code>Configuration.setSetting(String, String)</code></a> with <code>"object_wrapper"</code> key), not with |
| its constructor, as that allows FreeMarker to reuse singletons. For new projects, it's recommended to set |
| <a href="../../freemarker/template/DefaultObjectWrapperConfiguration.html#setForceLegacyNonListCollections-boolean-"><code>forceLegacyNonListCollections</code></a> to |
| <code>false</code>, and <a href="../../freemarker/template/DefaultObjectWrapperConfiguration.html#setIterableSupport-boolean-"><code>iterableSupport</code></a> to <code>true</code>; |
| setting <code>incompatibleImprovements</code> to 2.3.22 won't do these, as they could break legacy templates too easily. |
| |
| <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.</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> |
| <ul class="blockList"> |
| <li class="blockList"><a name="nested.classes.inherited.from.class.freemarker.ext.beans.BeansWrapper"> |
| <!-- --> |
| </a> |
| <h3>Nested classes/interfaces inherited from class freemarker.ext.beans.<a href="../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans">BeansWrapper</a></h3> |
| <code><a href="../../freemarker/ext/beans/BeansWrapper.MethodAppearanceDecision.html" title="class in freemarker.ext.beans">BeansWrapper.MethodAppearanceDecision</a>, <a href="../../freemarker/ext/beans/BeansWrapper.MethodAppearanceDecisionInput.html" title="class in freemarker.ext.beans">BeansWrapper.MethodAppearanceDecisionInput</a></code></li> |
| </ul> |
| </li> |
| </ul> |
| <!-- =========== FIELD SUMMARY =========== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="field.summary"> |
| <!-- --> |
| </a> |
| <h3>Field Summary</h3> |
| <ul class="blockList"> |
| <li class="blockList"><a name="fields.inherited.from.class.freemarker.ext.beans.BeansWrapper"> |
| <!-- --> |
| </a> |
| <h3>Fields inherited from class freemarker.ext.beans.<a href="../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans">BeansWrapper</a></h3> |
| <code><a href="../../freemarker/ext/beans/BeansWrapper.html#EXPOSE_ALL">EXPOSE_ALL</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#EXPOSE_NOTHING">EXPOSE_NOTHING</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#EXPOSE_PROPERTIES_ONLY">EXPOSE_PROPERTIES_ONLY</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#EXPOSE_SAFE">EXPOSE_SAFE</a></code></li> |
| </ul> |
| <ul class="blockList"> |
| <li class="blockList"><a name="fields.inherited.from.class.freemarker.template.ObjectWrapperAndUnwrapper"> |
| <!-- --> |
| </a> |
| <h3>Fields inherited from interface 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 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"> </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> </code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/DefaultObjectWrapper.html#DefaultObjectWrapper--">DefaultObjectWrapper</a></span>()</code> |
| <div class="block"><span class="deprecatedLabel">Deprecated.</span> |
| <div class="block"><span class="deprecationComment">Use <a href="../../freemarker/template/DefaultObjectWrapperBuilder.html" title="class in freemarker.template"><code>DefaultObjectWrapperBuilder</code></a>, or in rare cases, |
| <a href="../../freemarker/template/DefaultObjectWrapper.html#DefaultObjectWrapper-freemarker.template.Version-"><code>DefaultObjectWrapper(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/template/DefaultObjectWrapper.html#DefaultObjectWrapper-freemarker.ext.beans.BeansWrapperConfiguration-boolean-">DefaultObjectWrapper</a></span>(<a href="../../freemarker/ext/beans/BeansWrapperConfiguration.html" title="class in freemarker.ext.beans">BeansWrapperConfiguration</a> bwCfg, |
| boolean writeProtected)</code> |
| <div class="block">Use <a href="../../freemarker/template/DefaultObjectWrapper.html#DefaultObjectWrapper-freemarker.template.DefaultObjectWrapperConfiguration-boolean-"><code>DefaultObjectWrapper(DefaultObjectWrapperConfiguration, boolean)</code></a> instead if possible; |
| it does the same, except that it tolerates a non-<a href="../../freemarker/template/DefaultObjectWrapperConfiguration.html" title="class in freemarker.template"><code>DefaultObjectWrapperConfiguration</code></a> configuration too.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>protected </code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/DefaultObjectWrapper.html#DefaultObjectWrapper-freemarker.template.DefaultObjectWrapperConfiguration-boolean-">DefaultObjectWrapper</a></span>(<a href="../../freemarker/template/DefaultObjectWrapperConfiguration.html" title="class in freemarker.template">DefaultObjectWrapperConfiguration</a> dowCfg, |
| boolean writeProtected)</code> |
| <div class="block">Calls <a href="../../freemarker/ext/beans/BeansWrapper.html#BeansWrapper-freemarker.ext.beans.BeansWrapperConfiguration-boolean-"><code>BeansWrapper.BeansWrapper(BeansWrapperConfiguration, boolean)</code></a> and sets up |
| <a href="../../freemarker/template/DefaultObjectWrapper.html" title="class in freemarker.template"><code>DefaultObjectWrapper</code></a>-specific fields.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code> </code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/DefaultObjectWrapper.html#DefaultObjectWrapper-freemarker.template.Version-">DefaultObjectWrapper</a></span>(<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a> incompatibleImprovements)</code> |
| <div class="block">Use <a href="../../freemarker/template/DefaultObjectWrapperBuilder.html" title="class in freemarker.template"><code>DefaultObjectWrapperBuilder</code></a> instead 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"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </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 java.lang.Object</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/DefaultObjectWrapper.html#convertArray-java.lang.Object-">convertArray</a></span>(java.lang.Object arr)</code> |
| <div class="block">Converts an array to a java.util.List.</div> |
| </td> |
| </tr> |
| <tr id="i1" class="rowColor"> |
| <td class="colFirst"><code>boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/DefaultObjectWrapper.html#getDOMNodeSupport--">getDOMNodeSupport</a></span>()</code> |
| <div class="block">Getter pair of <a href="../../freemarker/template/DefaultObjectWrapper.html#setDOMNodeSupport-boolean-"><code>setDOMNodeSupport(boolean)</code></a>; see there.</div> |
| </td> |
| </tr> |
| <tr id="i2" class="altColor"> |
| <td class="colFirst"><code>boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/DefaultObjectWrapper.html#getForceLegacyNonListCollections--">getForceLegacyNonListCollections</a></span>()</code> |
| <div class="block">Getter pair of <a href="../../freemarker/template/DefaultObjectWrapper.html#setForceLegacyNonListCollections-boolean-"><code>setForceLegacyNonListCollections(boolean)</code></a>; see there.</div> |
| </td> |
| </tr> |
| <tr id="i3" class="rowColor"> |
| <td class="colFirst"><code>boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/DefaultObjectWrapper.html#getIterableSupport--">getIterableSupport</a></span>()</code> |
| <div class="block">Getter pair of <a href="../../freemarker/template/DefaultObjectWrapper.html#setIterableSupport-boolean-"><code>setIterableSupport(boolean)</code></a>; see there.</div> |
| </td> |
| </tr> |
| <tr id="i4" class="altColor"> |
| <td class="colFirst"><code>boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/DefaultObjectWrapper.html#getJythonSupport--">getJythonSupport</a></span>()</code> |
| <div class="block">Getter pair of <a href="../../freemarker/template/DefaultObjectWrapper.html#setJythonSupport-boolean-"><code>setJythonSupport(boolean)</code></a>; see there.</div> |
| </td> |
| </tr> |
| <tr id="i5" class="rowColor"> |
| <td class="colFirst"><code>boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/DefaultObjectWrapper.html#getUseAdaptersForContainers--">getUseAdaptersForContainers</a></span>()</code> |
| <div class="block">The getter pair of <a href="../../freemarker/template/DefaultObjectWrapper.html#setUseAdaptersForContainers-boolean-"><code>setUseAdaptersForContainers(boolean)</code></a>.</div> |
| </td> |
| </tr> |
| <tr id="i6" 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/template/DefaultObjectWrapper.html#handleUnknownType-java.lang.Object-">handleUnknownType</a></span>(java.lang.Object obj)</code> |
| <div class="block">Called for an object that isn't considered to be of a "basic" Java type, like for an application specific type, |
| or for a W3C DOM node.</div> |
| </td> |
| </tr> |
| <tr id="i7" 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/template/DefaultObjectWrapper.html#normalizeIncompatibleImprovementsVersion-freemarker.template.Version-">normalizeIncompatibleImprovementsVersion</a></span>(<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a> incompatibleImprovements)</code> |
| <div class="block">Returns the lowest version number that is equivalent with the parameter version.</div> |
| </td> |
| </tr> |
| <tr id="i8" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/DefaultObjectWrapper.html#setDOMNodeSupport-boolean-">setDOMNodeSupport</a></span>(boolean domNodeSupport)</code> |
| <div class="block">Enables wrapping <code>Node</code>-s on a special way (as described in the "XML Processing Guide" in the Manual); |
| defaults to <code>true</code>..</div> |
| </td> |
| </tr> |
| <tr id="i9" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/DefaultObjectWrapper.html#setForceLegacyNonListCollections-boolean-">setForceLegacyNonListCollections</a></span>(boolean forceLegacyNonListCollections)</code> |
| <div class="block">Specifies whether non-<code>List</code> <code>Collection</code>-s (like <code>Set</code>-s) must be wrapped by pre-fetching into |
| a <a href="../../freemarker/template/SimpleSequence.html" title="class in freemarker.template"><code>SimpleSequence</code></a>.</div> |
| </td> |
| </tr> |
| <tr id="i10" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/DefaultObjectWrapper.html#setIterableSupport-boolean-">setIterableSupport</a></span>(boolean iterableSupport)</code> |
| <div class="block">Specifies whether <code>Iterable</code>-s (not to be confused with <code>Iterator</code>-s) that don't implement any other |
| recognized Java interfaces (most notably <code>Collection</code>) will be recognized as listable objects |
| (<a href="../../freemarker/template/TemplateCollectionModel.html" title="interface in freemarker.template"><code>TemplateCollectionModel</code></a>-s), or they will be just seen as generic objects (JavaBean-s).</div> |
| </td> |
| </tr> |
| <tr id="i11" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/DefaultObjectWrapper.html#setJythonSupport-boolean-">setJythonSupport</a></span>(boolean jythonSupport)</code> |
| <div class="block">Enables wrapping Jython objects in a special way; defaults to <code>true</code>.</div> |
| </td> |
| </tr> |
| <tr id="i12" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/DefaultObjectWrapper.html#setUseAdaptersForContainers-boolean-">setUseAdaptersForContainers</a></span>(boolean useAdaptersForContainers)</code> |
| <div class="block">Sets if to wrap container objects (<code>Map</code>-s, <code>List</code>-s, arrays and such) the legacy copying approach or |
| the newer adapter approach should be used.</div> |
| </td> |
| </tr> |
| <tr id="i13" class="rowColor"> |
| <td class="colFirst"><code>protected java.lang.String</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/template/DefaultObjectWrapper.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>BeansWrapper.toString()</code></a>.</div> |
| </td> |
| </tr> |
| <tr id="i14" 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/template/DefaultObjectWrapper.html#wrap-java.lang.Object-">wrap</a></span>(java.lang.Object obj)</code> |
| <div class="block">Wraps the parameter object to <a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template"><code>TemplateModel</code></a> interface(s).</div> |
| </td> |
| </tr> |
| <tr id="i15" class="rowColor"> |
| <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/template/DefaultObjectWrapper.html#wrapDomNode-java.lang.Object-">wrapDomNode</a></span>(java.lang.Object obj)</code> </td> |
| </tr> |
| </table> |
| <ul class="blockList"> |
| <li class="blockList"><a name="methods.inherited.from.class.freemarker.ext.beans.BeansWrapper"> |
| <!-- --> |
| </a> |
| <h3>Methods inherited from class freemarker.ext.beans.<a href="../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans">BeansWrapper</a></h3> |
| <code><a href="../../freemarker/ext/beans/BeansWrapper.html#checkModifiable--">checkModifiable</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#clearClassIntrospecitonCache--">clearClassIntrospecitonCache</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#clearClassIntrospectionCache--">clearClassIntrospectionCache</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#coerceBigDecimal-java.math.BigDecimal-java.lang.Class-">coerceBigDecimal</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#coerceBigDecimals-java.lang.reflect.AccessibleObject-java.lang.Object:A-">coerceBigDecimals</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#coerceBigDecimals-java.lang.Class:A-java.lang.Object:A-">coerceBigDecimals</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#finalizeConstruction-boolean-">finalizeConstruction</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#finetuneMethodAppearance-java.lang.Class-java.lang.reflect.Method-freemarker.ext.beans.BeansWrapper.MethodAppearanceDecision-">finetuneMethodAppearance</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#getDefaultDateType--">getDefaultDateType</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#getDefaultInstance--">getDefaultInstance</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#getEnumModels--">getEnumModels</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#getExposureLevel--">getExposureLevel</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#getIncompatibleImprovements--">getIncompatibleImprovements</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#getInstance-java.lang.Object-freemarker.ext.util.ModelFactory-">getInstance</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#getMemberAccessPolicy--">getMemberAccessPolicy</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#getMethodAppearanceFineTuner--">getMethodAppearanceFineTuner</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#getModelFactory-java.lang.Class-">getModelFactory</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#getOuterIdentity--">getOuterIdentity</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#getPreferIndexedReadMethod--">getPreferIndexedReadMethod</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#getStaticModels--">getStaticModels</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#getTreatDefaultMethodsAsBeanMembers--">getTreatDefaultMethodsAsBeanMembers</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#getUseCache--">getUseCache</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#invokeMethod-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-">invokeMethod</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#isClassIntrospectionCacheRestricted--">isClassIntrospectionCacheRestricted</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#isExposeFields--">isExposeFields</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#isSimpleMapWrapper--">isSimpleMapWrapper</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#isStrict--">isStrict</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#isWriteProtected--">isWriteProtected</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#newInstance-java.lang.Class-java.util.List-">newInstance</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#readField-java.lang.Object-java.lang.reflect.Field-">readField</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#removeFromClassIntrospectionCache-java.lang.Class-">removeFromClassIntrospectionCache</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#setDefaultDateType-int-">setDefaultDateType</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#setExposeFields-boolean-">setExposeFields</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#setExposureLevel-int-">setExposureLevel</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#setMemberAccessPolicy-freemarker.ext.beans.MemberAccessPolicy-">setMemberAccessPolicy</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#setMethodAppearanceFineTuner-freemarker.ext.beans.MethodAppearanceFineTuner-">setMethodAppearanceFineTuner</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#setMethodsShadowItems-boolean-">setMethodsShadowItems</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#setNullModel-freemarker.template.TemplateModel-">setNullModel</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#setOuterIdentity-freemarker.template.ObjectWrapper-">setOuterIdentity</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#setPreferIndexedReadMethod-boolean-">setPreferIndexedReadMethod</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#setSimpleMapWrapper-boolean-">setSimpleMapWrapper</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#setStrict-boolean-">setStrict</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#setTreatDefaultMethodsAsBeanMembers-boolean-">setTreatDefaultMethodsAsBeanMembers</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#setUseCache-boolean-">setUseCache</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#toString--">toString</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#tryUnwrapTo-freemarker.template.TemplateModel-java.lang.Class-">tryUnwrapTo</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#unwrap-freemarker.template.TemplateModel-">unwrap</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#unwrap-freemarker.template.TemplateModel-java.lang.Class-">unwrap</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#wrap-java.lang.Object-java.lang.reflect.Method-">wrap</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#wrapAsAPI-java.lang.Object-">wrapAsAPI</a>, <a href="../../freemarker/ext/beans/BeansWrapper.html#writeProtect--">writeProtect</a></code></li> |
| </ul> |
| <ul class="blockList"> |
| <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> |
| <!-- --> |
| </a> |
| <h3>Methods inherited from class 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"> |
| <!-- ========= CONSTRUCTOR DETAIL ======== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="constructor.detail"> |
| <!-- --> |
| </a> |
| <h3>Constructor Detail</h3> |
| <a name="DefaultObjectWrapper--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>DefaultObjectWrapper</h4> |
| <pre>@Deprecated |
| public DefaultObjectWrapper()</pre> |
| <div class="block"><span class="deprecatedLabel">Deprecated.</span> <span class="deprecationComment">Use <a href="../../freemarker/template/DefaultObjectWrapperBuilder.html" title="class in freemarker.template"><code>DefaultObjectWrapperBuilder</code></a>, or in rare cases, |
| <a href="../../freemarker/template/DefaultObjectWrapper.html#DefaultObjectWrapper-freemarker.template.Version-"><code>DefaultObjectWrapper(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="DefaultObjectWrapper-freemarker.template.Version-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>DefaultObjectWrapper</h4> |
| <pre>public DefaultObjectWrapper(<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a> incompatibleImprovements)</pre> |
| <div class="block">Use <a href="../../freemarker/template/DefaultObjectWrapperBuilder.html" title="class in freemarker.template"><code>DefaultObjectWrapperBuilder</code></a> instead if possible. Instances created with this constructor won't share |
| the class introspection caches with other instances. See <a href="../../freemarker/ext/beans/BeansWrapper.html#BeansWrapper-freemarker.template.Version-"><code>BeansWrapper.BeansWrapper(Version)</code></a> (the |
| superclass constructor) for more details.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>incompatibleImprovements</code> - It's the same as in <a href="../../freemarker/ext/beans/BeansWrapper.html#BeansWrapper-freemarker.template.Version-"><code>BeansWrapper.BeansWrapper(Version)</code></a>, plus these changes: |
| <ul> |
| <li>2.3.22 (or higher): The default value of |
| <a href="../../freemarker/template/DefaultObjectWrapper.html#setUseAdaptersForContainers-boolean-"><code>useAdaptersForContainers</code></a> changes to |
| <code>true</code>.</li> |
| <li>2.3.24 (or higher): When wrapping an <code>Iterator</code>, operations on it that only check if the |
| collection is empty without reading an element from it, such as <code>?has_content</code>, |
| won't cause the a later iteration (or further emptiness check) to fail anymore. Earlier, in |
| certain situations, the second operation has failed saying that the iterator "can be listed only |
| once". |
| <li>2.3.26 (or higher): <code>Enumeration</code>-s are wrapped into <a href="../../freemarker/template/DefaultEnumerationAdapter.html" title="class in freemarker.template"><code>DefaultEnumerationAdapter</code></a> |
| instead of into <a href="../../freemarker/ext/beans/EnumerationModel.html" title="class in freemarker.ext.beans"><code>EnumerationModel</code></a> (as far as |
| <a href="../../freemarker/template/DefaultObjectWrapper.html#setUseAdaptersForContainers-boolean-"><code>useAdaptersForContainers</code></a> is <code>true</code>, which is |
| the default). This adapter is cleaner than <a href="../../freemarker/ext/beans/EnumerationModel.html" title="class in freemarker.ext.beans"><code>EnumerationModel</code></a> as it only implements the |
| minimally required FTL type, which avoids some ambiguous situations. (Note that Java API methods |
| aren't exposed anymore as subvariables; if you really need them, you can use <code>?api</code>). |
| </li> |
| </ul></dd> |
| <dt><span class="simpleTagLabel">Since:</span></dt> |
| <dd>2.3.21</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="DefaultObjectWrapper-freemarker.ext.beans.BeansWrapperConfiguration-boolean-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>DefaultObjectWrapper</h4> |
| <pre>protected DefaultObjectWrapper(<a href="../../freemarker/ext/beans/BeansWrapperConfiguration.html" title="class in freemarker.ext.beans">BeansWrapperConfiguration</a> bwCfg, |
| boolean writeProtected)</pre> |
| <div class="block">Use <a href="../../freemarker/template/DefaultObjectWrapper.html#DefaultObjectWrapper-freemarker.template.DefaultObjectWrapperConfiguration-boolean-"><code>DefaultObjectWrapper(DefaultObjectWrapperConfiguration, boolean)</code></a> instead if possible; |
| it does the same, except that it tolerates a non-<a href="../../freemarker/template/DefaultObjectWrapperConfiguration.html" title="class in freemarker.template"><code>DefaultObjectWrapperConfiguration</code></a> configuration too.</div> |
| <dl> |
| <dt><span class="simpleTagLabel">Since:</span></dt> |
| <dd>2.3.21</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="DefaultObjectWrapper-freemarker.template.DefaultObjectWrapperConfiguration-boolean-"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>DefaultObjectWrapper</h4> |
| <pre>protected DefaultObjectWrapper(<a href="../../freemarker/template/DefaultObjectWrapperConfiguration.html" title="class in freemarker.template">DefaultObjectWrapperConfiguration</a> dowCfg, |
| boolean writeProtected)</pre> |
| <div class="block">Calls <a href="../../freemarker/ext/beans/BeansWrapper.html#BeansWrapper-freemarker.ext.beans.BeansWrapperConfiguration-boolean-"><code>BeansWrapper.BeansWrapper(BeansWrapperConfiguration, boolean)</code></a> and sets up |
| <a href="../../freemarker/template/DefaultObjectWrapper.html" title="class in freemarker.template"><code>DefaultObjectWrapper</code></a>-specific fields.</div> |
| <dl> |
| <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="wrap-java.lang.Object-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>wrap</h4> |
| <pre>public <a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a> wrap(java.lang.Object obj) |
| throws <a href="../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></pre> |
| <div class="block">Wraps the parameter object to <a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template"><code>TemplateModel</code></a> interface(s). Simple types like numbers, strings, booleans |
| and dates will be wrapped into the corresponding <code>SimpleXxx</code> classes (like <a href="../../freemarker/template/SimpleNumber.html" title="class in freemarker.template"><code>SimpleNumber</code></a>). |
| <code>Map</code>-s, <code>List</code>-s, other <code>Collection</code>-s, arrays and <code>Iterator</code>-s will be wrapped into the |
| corresponding <code>SimpleXxx</code> or <code>DefaultXxxAdapter</code> classes (like <a href="../../freemarker/template/SimpleHash.html" title="class in freemarker.template"><code>SimpleHash</code></a> or |
| <a href="../../freemarker/template/DefaultMapAdapter.html" title="class in freemarker.template"><code>DefaultMapAdapter</code></a>), depending on <a href="../../freemarker/template/DefaultObjectWrapper.html#getUseAdaptersForContainers--"><code>getUseAdaptersForContainers()</code></a> and |
| <a href="../../freemarker/template/DefaultObjectWrapper.html#getForceLegacyNonListCollections--"><code>getForceLegacyNonListCollections()</code></a>. After that, the wrapping is handled by |
| <a href="../../freemarker/template/DefaultObjectWrapper.html#handleUnknownType-java.lang.Object-"><code>handleUnknownType(Object)</code></a>, so see more there.</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> in interface <code><a href="../../freemarker/template/ObjectWrapper.html" title="interface in freemarker.template">ObjectWrapper</a></code></dd> |
| <dt><span class="overrideSpecifyLabel">Overrides:</span></dt> |
| <dd><code><a href="../../freemarker/ext/beans/BeansWrapper.html#wrap-java.lang.Object-">wrap</a></code> in class <code><a href="../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans">BeansWrapper</a></code></dd> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>obj</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="handleUnknownType-java.lang.Object-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>handleUnknownType</h4> |
| <pre>protected <a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a> handleUnknownType(java.lang.Object obj) |
| throws <a href="../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></pre> |
| <div class="block">Called for an object that isn't considered to be of a "basic" Java type, like for an application specific type, |
| or for a W3C DOM node. In its default implementation, W3C <code>Node</code>-s will be wrapped as <a href="../../freemarker/ext/dom/NodeModel.html" title="class in freemarker.ext.dom"><code>NodeModel</code></a>-s |
| (allows DOM tree traversal), Jython objects will be delegated to the <code>JythonWrapper</code>, others will be |
| wrapped using <a href="../../freemarker/ext/beans/BeansWrapper.html#wrap-java.lang.Object-"><code>BeansWrapper.wrap(Object)</code></a>. However, these can be turned off with the |
| <a href="../../freemarker/template/DefaultObjectWrapper.html#setDOMNodeSupport-boolean-"><code>setDOMNodeSupport(boolean)</code></a> and <a href="../../freemarker/template/DefaultObjectWrapper.html#setJythonSupport-boolean-"><code>setJythonSupport(boolean)</code></a>. Note that if |
| <a href="../../freemarker/ext/beans/BeansWrapper.html#getMemberAccessPolicy--"><code>BeansWrapper.getMemberAccessPolicy()</code></a> doesn't return a <a href="../../freemarker/ext/beans/DefaultMemberAccessPolicy.html" title="class in freemarker.ext.beans"><code>DefaultMemberAccessPolicy</code></a> or |
| <a href="../../freemarker/ext/beans/LegacyDefaultMemberAccessPolicy.html" title="class in freemarker.ext.beans"><code>LegacyDefaultMemberAccessPolicy</code></a>, then Jython wrapper will be skipped for security reasons. |
| |
| <p> |
| When you override this method, you should first decide if you want to wrap the object in a custom way (and if so |
| then do it and return with the result), and if not, then you should call the super method (assuming the default |
| behavior is fine with you).</div> |
| <dl> |
| <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="wrapDomNode-java.lang.Object-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>wrapDomNode</h4> |
| <pre>public <a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a> wrapDomNode(java.lang.Object obj)</pre> |
| </li> |
| </ul> |
| <a name="convertArray-java.lang.Object-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>convertArray</h4> |
| <pre>protected java.lang.Object convertArray(java.lang.Object arr)</pre> |
| <div class="block">Converts an array to a java.util.List.</div> |
| </li> |
| </ul> |
| <a name="getUseAdaptersForContainers--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getUseAdaptersForContainers</h4> |
| <pre>public boolean getUseAdaptersForContainers()</pre> |
| <div class="block">The getter pair of <a href="../../freemarker/template/DefaultObjectWrapper.html#setUseAdaptersForContainers-boolean-"><code>setUseAdaptersForContainers(boolean)</code></a>.</div> |
| <dl> |
| <dt><span class="simpleTagLabel">Since:</span></dt> |
| <dd>2.3.22</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="setUseAdaptersForContainers-boolean-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setUseAdaptersForContainers</h4> |
| <pre>public void setUseAdaptersForContainers(boolean useAdaptersForContainers)</pre> |
| <div class="block">Sets if to wrap container objects (<code>Map</code>-s, <code>List</code>-s, arrays and such) the legacy copying approach or |
| the newer adapter approach should be used. <code>true</code> is recommended, which is also the default when the |
| <code>incompatible_improvements</code> of this instance was set to <a href="../../freemarker/template/Configuration.html#VERSION_2_3_22"><code>Configuration.VERSION_2_3_22</code></a> or higher. To |
| understand the difference, check some of the classes that implement the two approaches: |
| <ul> |
| <li>Copying approach: <a href="../../freemarker/template/SimpleHash.html" title="class in freemarker.template"><code>SimpleHash</code></a>, <a href="../../freemarker/template/SimpleSequence.html" title="class in freemarker.template"><code>SimpleSequence</code></a></li> |
| <li>Adapter approach: <a href="../../freemarker/template/DefaultMapAdapter.html" title="class in freemarker.template"><code>DefaultMapAdapter</code></a>, <a href="../../freemarker/template/DefaultListAdapter.html" title="class in freemarker.template"><code>DefaultListAdapter</code></a>, <a href="../../freemarker/template/DefaultArrayAdapter.html" title="class in freemarker.template"><code>DefaultArrayAdapter</code></a>, |
| <a href="../../freemarker/template/DefaultIteratorAdapter.html" title="class in freemarker.template"><code>DefaultIteratorAdapter</code></a></li> |
| </ul> |
| |
| <p> |
| See also the related Version History entry under 2.3.22 in the FreeMarker Manual, which gives a breakdown of |
| the consequences. |
| |
| <p> |
| <b>Attention:</b> For backward compatibility, currently, non-<code>List</code> collections (like <code>Set</code>-s) will |
| only be wrapped with adapter approach (with <a href="../../freemarker/template/DefaultNonListCollectionAdapter.html" title="class in freemarker.template"><code>DefaultNonListCollectionAdapter</code></a>) if |
| <a href="../../freemarker/template/DefaultObjectWrapper.html#setForceLegacyNonListCollections-boolean-"><code>forceLegacyNonListCollections</code></a> was set to <code>false</code>. |
| Currently the default is <code>true</code>, but in new projects you should set it to <code>false</code>. See |
| <a href="../../freemarker/template/DefaultObjectWrapper.html#setForceLegacyNonListCollections-boolean-"><code>setForceLegacyNonListCollections(boolean)</code></a> for more.</div> |
| <dl> |
| <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/DefaultObjectWrapper.html#setForceLegacyNonListCollections-boolean-"><code>setForceLegacyNonListCollections(boolean)</code></a></dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="getForceLegacyNonListCollections--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getForceLegacyNonListCollections</h4> |
| <pre>public boolean getForceLegacyNonListCollections()</pre> |
| <div class="block">Getter pair of <a href="../../freemarker/template/DefaultObjectWrapper.html#setForceLegacyNonListCollections-boolean-"><code>setForceLegacyNonListCollections(boolean)</code></a>; see there.</div> |
| <dl> |
| <dt><span class="simpleTagLabel">Since:</span></dt> |
| <dd>2.3.22</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="setForceLegacyNonListCollections-boolean-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setForceLegacyNonListCollections</h4> |
| <pre>public void setForceLegacyNonListCollections(boolean forceLegacyNonListCollections)</pre> |
| <div class="block">Specifies whether non-<code>List</code> <code>Collection</code>-s (like <code>Set</code>-s) must be wrapped by pre-fetching into |
| a <a href="../../freemarker/template/SimpleSequence.html" title="class in freemarker.template"><code>SimpleSequence</code></a>. The modern approach is wrapping into a <a href="../../freemarker/template/DefaultNonListCollectionAdapter.html" title="class in freemarker.template"><code>DefaultNonListCollectionAdapter</code></a>. This |
| setting only has effect when <a href="../../freemarker/template/DefaultObjectWrapper.html#getUseAdaptersForContainers--"><code>getUseAdaptersForContainers()</code></a> is also <code>true</code>, as otherwise |
| <a href="../../freemarker/template/SimpleSequence.html" title="class in freemarker.template"><code>SimpleSequence</code></a> will be used regardless of this. In new projects you should set this to <code>false</code>. At |
| least before <code>incompatible_improvements</code> 2.4.0 it defaults to <code>true</code>, because of backward |
| compatibility concerns: with <a href="../../freemarker/template/TemplateSequenceModel.html" title="interface in freemarker.template"><code>TemplateSequenceModel</code></a> templates could access the items by index if they |
| wanted to (the index values were defined by the iteration order). This was not very useful, or was even |
| confusing, and it conflicts with the adapter approach.</div> |
| <dl> |
| <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/DefaultObjectWrapper.html#setUseAdaptersForContainers-boolean-"><code>setUseAdaptersForContainers(boolean)</code></a></dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="getIterableSupport--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getIterableSupport</h4> |
| <pre>public boolean getIterableSupport()</pre> |
| <div class="block">Getter pair of <a href="../../freemarker/template/DefaultObjectWrapper.html#setIterableSupport-boolean-"><code>setIterableSupport(boolean)</code></a>; see there.</div> |
| <dl> |
| <dt><span class="simpleTagLabel">Since:</span></dt> |
| <dd>2.3.25</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="setIterableSupport-boolean-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setIterableSupport</h4> |
| <pre>public void setIterableSupport(boolean iterableSupport)</pre> |
| <div class="block">Specifies whether <code>Iterable</code>-s (not to be confused with <code>Iterator</code>-s) that don't implement any other |
| recognized Java interfaces (most notably <code>Collection</code>) will be recognized as listable objects |
| (<a href="../../freemarker/template/TemplateCollectionModel.html" title="interface in freemarker.template"><code>TemplateCollectionModel</code></a>-s), or they will be just seen as generic objects (JavaBean-s). Defaults to |
| <code>false</code> for backward compatibility, but in new projects you should set this to <code>true</code>. Before setting |
| this to <code>true</code> in older projects, check if you have called <code>myIterable.iterator()</code> directly from any |
| templates, because the Java API is only exposed to the templates if the <code>Iterable</code> is wrapped as generic |
| object.</div> |
| <dl> |
| <dt><span class="simpleTagLabel">Since:</span></dt> |
| <dd>2.3.25</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="getDOMNodeSupport--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getDOMNodeSupport</h4> |
| <pre>public final boolean getDOMNodeSupport()</pre> |
| <div class="block">Getter pair of <a href="../../freemarker/template/DefaultObjectWrapper.html#setDOMNodeSupport-boolean-"><code>setDOMNodeSupport(boolean)</code></a>; see there.</div> |
| <dl> |
| <dt><span class="simpleTagLabel">Since:</span></dt> |
| <dd>2.3.31</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="setDOMNodeSupport-boolean-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setDOMNodeSupport</h4> |
| <pre>public void setDOMNodeSupport(boolean domNodeSupport)</pre> |
| <div class="block">Enables wrapping <code>Node</code>-s on a special way (as described in the "XML Processing Guide" in the Manual); |
| defaults to <code>true</code>.. If this is <code>true</code>, <code>Node</code>+s will be wrapped like any other generic object.</div> |
| <dl> |
| <dt><span class="simpleTagLabel">Since:</span></dt> |
| <dd>2.3.31</dd> |
| <dt><span class="seeLabel">See Also:</span></dt> |
| <dd><a href="../../freemarker/template/DefaultObjectWrapper.html#handleUnknownType-java.lang.Object-"><code>handleUnknownType(Object)</code></a></dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="getJythonSupport--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getJythonSupport</h4> |
| <pre>public final boolean getJythonSupport()</pre> |
| <div class="block">Getter pair of <a href="../../freemarker/template/DefaultObjectWrapper.html#setJythonSupport-boolean-"><code>setJythonSupport(boolean)</code></a>; see there.</div> |
| <dl> |
| <dt><span class="simpleTagLabel">Since:</span></dt> |
| <dd>2.3.31</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="setJythonSupport-boolean-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setJythonSupport</h4> |
| <pre>public void setJythonSupport(boolean jythonSupport)</pre> |
| <div class="block">Enables wrapping Jython objects in a special way; defaults to <code>true</code>. If this is <code>false</code>, they will |
| be wrapped like any other generic object. Note that Jython wrapping is legacy feature, and might by disabled by |
| the selected <a href="../../freemarker/ext/beans/MemberAccessPolicy.html" title="interface in freemarker.ext.beans"><code>MemberAccessPolicy</code></a>, even if this is <code>true</code>; see <a href="../../freemarker/template/DefaultObjectWrapper.html#handleUnknownType-java.lang.Object-"><code>handleUnknownType(Object)</code></a>.</div> |
| <dl> |
| <dt><span class="simpleTagLabel">Since:</span></dt> |
| <dd>2.3.31</dd> |
| <dt><span class="seeLabel">See Also:</span></dt> |
| <dd><a href="../../freemarker/template/DefaultObjectWrapper.html#handleUnknownType-java.lang.Object-"><code>handleUnknownType(Object)</code></a></dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="normalizeIncompatibleImprovementsVersion-freemarker.template.Version-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>normalizeIncompatibleImprovementsVersion</h4> |
| <pre>protected static <a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a> normalizeIncompatibleImprovementsVersion(<a href="../../freemarker/template/Version.html" title="class in freemarker.template">Version</a> 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.22</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="toPropertiesString--"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>toPropertiesString</h4> |
| <pre>protected java.lang.String toPropertiesString()</pre> |
| <div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../freemarker/ext/beans/BeansWrapper.html#toPropertiesString--">BeansWrapper</a></code></span></div> |
| <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>BeansWrapper.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="overrideSpecifyLabel">Overrides:</span></dt> |
| <dd><code><a href="../../freemarker/ext/beans/BeansWrapper.html#toPropertiesString--">toPropertiesString</a></code> in class <code><a href="../../freemarker/ext/beans/BeansWrapper.html" title="class in freemarker.ext.beans">BeansWrapper</a></code></dd> |
| <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/DefaultObjectWrapper.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/template/DefaultNonListCollectionAdapter.html" title="class in freemarker.template"><span class="typeNameLink">Prev Class</span></a></li> |
| <li><a href="../../freemarker/template/DefaultObjectWrapperBuilder.html" title="class in freemarker.template"><span class="typeNameLink">Next Class</span></a></li> |
| </ul> |
| <ul class="navList"> |
| <li><a href="../../index.html?freemarker/template/DefaultObjectWrapper.html" target="_top">Frames</a></li> |
| <li><a href="DefaultObjectWrapper.html" target="_top">No Frames</a></li> |
| </ul> |
| <ul class="navList" id="allclasses_navbar_bottom"> |
| <li><a href="../../allclasses-noframe.html">All 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: </li> |
| <li><a href="#nested.classes.inherited.from.class.freemarker.ext.beans.BeansWrapper">Nested</a> | </li> |
| <li><a href="#fields.inherited.from.class.freemarker.ext.beans.BeansWrapper">Field</a> | </li> |
| <li><a href="#constructor.summary">Constr</a> | </li> |
| <li><a href="#method.summary">Method</a></li> |
| </ul> |
| <ul class="subNavList"> |
| <li>Detail: </li> |
| <li>Field | </li> |
| <li><a href="#constructor.detail">Constr</a> | </li> |
| <li><a href="#method.detail">Method</a></li> |
| </ul> |
| </div> |
| <a name="skip.navbar.bottom"> |
| <!-- --> |
| </a></div> |
| <!-- ======== END OF BOTTOM NAVBAR ======= --> |
| </body> |
| </html> |