blob: f60da1c66af21f3f4aee15a8555a8d19451ba360 [file] [log] [blame]
<!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:33 CET 2023 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>DefaultTruncateBuiltinAlgorithm (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="DefaultTruncateBuiltinAlgorithm (FreeMarker 2.3.32 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10};
var tabs = {65535:["t0","All 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/DefaultTruncateBuiltinAlgorithm.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/core/CustomAttribute.html" title="class in freemarker.core"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../freemarker/core/DirectiveCallPlace.html" title="interface in freemarker.core"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?freemarker/core/DefaultTruncateBuiltinAlgorithm.html" target="_top">Frames</a></li>
<li><a href="DefaultTruncateBuiltinAlgorithm.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>Nested&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.core</div>
<h2 title="Class DefaultTruncateBuiltinAlgorithm" class="title">Class DefaultTruncateBuiltinAlgorithm</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../freemarker/core/TruncateBuiltinAlgorithm.html" title="class in freemarker.core">freemarker.core.TruncateBuiltinAlgorithm</a></li>
<li>
<ul class="inheritance">
<li>freemarker.core.DefaultTruncateBuiltinAlgorithm</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">DefaultTruncateBuiltinAlgorithm</span>
extends <a href="../../freemarker/core/TruncateBuiltinAlgorithm.html" title="class in freemarker.core">TruncateBuiltinAlgorithm</a></pre>
<div class="block">The default <a href="../../freemarker/core/TruncateBuiltinAlgorithm.html" title="class in freemarker.core"><code>TruncateBuiltinAlgorithm</code></a> implementation; see
<a href="../../freemarker/core/Configurable.html#setTruncateBuiltinAlgorithm-freemarker.core.TruncateBuiltinAlgorithm-"><code>Configurable.setTruncateBuiltinAlgorithm(TruncateBuiltinAlgorithm)</code></a>.
To know the properties of this <a href="../../freemarker/core/TruncateBuiltinAlgorithm.html" title="class in freemarker.core"><code>TruncateBuiltinAlgorithm</code></a> implementation, see the
<a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#DefaultTruncateBuiltinAlgorithm-java.lang.String-java.lang.Integer-java.lang.Boolean-freemarker.core.TemplateMarkupOutputModel-java.lang.Integer-java.lang.Boolean-boolean-java.lang.Double-">constructor</a>. You can find more explanation and
examples in the documentation of the <code>truncate</code> built-in in the FreeMarker Manual.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.29</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== 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 <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html" title="class in freemarker.core">DefaultTruncateBuiltinAlgorithm</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#ASCII_INSTANCE">ASCII_INSTANCE</a></span></code>
<div class="block">Instance that uses <code>"[...]"</code> as the <code>defaultTerminator</code> constructor argument, and thus is
safe to use for all output charsets.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#DEFAULT_WORD_BOUNDARY_MIN_LENGTH">DEFAULT_WORD_BOUNDARY_MIN_LENGTH</a></span></code>
<div class="block">The value used in the constructor of <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#ASCII_INSTANCE"><code>ASCII_INSTANCE</code></a> and <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#UNICODE_INSTANCE"><code>UNICODE_INSTANCE</code></a> as the
<code>wordBoundaryMinLength</code> argument.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#STANDARD_ASCII_TERMINATOR">STANDARD_ASCII_TERMINATOR</a></span></code>
<div class="block">Used by <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#ASCII_INSTANCE"><code>ASCII_INSTANCE</code></a> as the terminator.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../freemarker/core/TemplateHTMLOutputModel.html" title="class in freemarker.core">TemplateHTMLOutputModel</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#STANDARD_M_TERMINATOR">STANDARD_M_TERMINATOR</a></span></code>
<div class="block">Used by <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#ASCII_INSTANCE"><code>ASCII_INSTANCE</code></a> and <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#UNICODE_INSTANCE"><code>UNICODE_INSTANCE</code></a> as the markup terminator;
HTML <code>&lt;span class='truncateTerminator'&gt;[&amp;#8230;]&lt;/span&gt;</code>, where <code>&amp;#8230;</code> is the ellipsis (&#8230;)
character.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#STANDARD_UNICODE_TERMINATOR">STANDARD_UNICODE_TERMINATOR</a></span></code>
<div class="block">Used by <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#UNICODE_INSTANCE"><code>UNICODE_INSTANCE</code></a> as the terminator.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html" title="class in freemarker.core">DefaultTruncateBuiltinAlgorithm</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#UNICODE_INSTANCE">UNICODE_INSTANCE</a></span></code>
<div class="block">Instance that uses <code>"[…]"</code> as the <code>defaultTerminator</code> constructor argument, which contains
ellipsis character (<code>"…"</code>, U+2026), and thus only works with UTF-8, and the cp125x charsets (like
cp1250), and with some other rarely used ones.</div>
</td>
</tr>
</table>
</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="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#DefaultTruncateBuiltinAlgorithm-java.lang.String-boolean-">DefaultTruncateBuiltinAlgorithm</a></span>(java.lang.String&nbsp;defaultTerminator,
boolean&nbsp;addSpaceAtWordBoundary)</code>
<div class="block">Creates an instance with string (plain text) terminator.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#DefaultTruncateBuiltinAlgorithm-java.lang.String-java.lang.Integer-java.lang.Boolean-freemarker.core.TemplateMarkupOutputModel-java.lang.Integer-java.lang.Boolean-boolean-java.lang.Double-">DefaultTruncateBuiltinAlgorithm</a></span>(java.lang.String&nbsp;defaultTerminator,
java.lang.Integer&nbsp;defaultTerminatorLength,
java.lang.Boolean&nbsp;defaultTerminatorRemovesDots,
<a href="../../freemarker/core/TemplateMarkupOutputModel.html" title="interface in freemarker.core">TemplateMarkupOutputModel</a>&lt;?&gt;&nbsp;defaultMTerminator,
java.lang.Integer&nbsp;defaultMTerminatorLength,
java.lang.Boolean&nbsp;defaultMTerminatorRemovesDots,
boolean&nbsp;addSpaceAtWordBoundary,
java.lang.Double&nbsp;wordBoundaryMinLength)</code>
<div class="block">Creates an instance with markup terminator.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#DefaultTruncateBuiltinAlgorithm-java.lang.String-freemarker.core.TemplateMarkupOutputModel-boolean-">DefaultTruncateBuiltinAlgorithm</a></span>(java.lang.String&nbsp;defaultTerminator,
<a href="../../freemarker/core/TemplateMarkupOutputModel.html" title="interface in freemarker.core">TemplateMarkupOutputModel</a>&lt;?&gt;&nbsp;defaultMTerminator,
boolean&nbsp;addSpaceAtWordBoundary)</code>
<div class="block">Creates an instance with a string (plain text) terminator and a markup terminator.</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="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></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>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#getAddSpaceAtWordBoundary--">getAddSpaceAtWordBoundary</a></span>()</code>
<div class="block">See similarly named parameter of <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#DefaultTruncateBuiltinAlgorithm-java.lang.String-java.lang.Integer-java.lang.Boolean-freemarker.core.TemplateMarkupOutputModel-java.lang.Integer-java.lang.Boolean-boolean-java.lang.Double-"><code>DefaultTruncateBuiltinAlgorithm(String, Integer, Boolean,
TemplateMarkupOutputModel, Integer, Boolean, boolean, Double)</code></a> the construction}.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../freemarker/core/TemplateMarkupOutputModel.html" title="interface in freemarker.core">TemplateMarkupOutputModel</a>&lt;?&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#getDefaultMTerminator--">getDefaultMTerminator</a></span>()</code>
<div class="block">See similarly named parameter of <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#DefaultTruncateBuiltinAlgorithm-java.lang.String-java.lang.Integer-java.lang.Boolean-freemarker.core.TemplateMarkupOutputModel-java.lang.Integer-java.lang.Boolean-boolean-java.lang.Double-"><code>DefaultTruncateBuiltinAlgorithm(String, Integer, Boolean,
TemplateMarkupOutputModel, Integer, Boolean, boolean, Double)</code></a> the construction}.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>java.lang.Integer</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#getDefaultMTerminatorLength--">getDefaultMTerminatorLength</a></span>()</code>
<div class="block">See similarly named parameter of <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#DefaultTruncateBuiltinAlgorithm-java.lang.String-java.lang.Integer-java.lang.Boolean-freemarker.core.TemplateMarkupOutputModel-java.lang.Integer-java.lang.Boolean-boolean-java.lang.Double-"><code>DefaultTruncateBuiltinAlgorithm(String, Integer, Boolean,
TemplateMarkupOutputModel, Integer, Boolean, boolean, Double)</code></a> the construction}.</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/core/DefaultTruncateBuiltinAlgorithm.html#getDefaultMTerminatorRemovesDots--">getDefaultMTerminatorRemovesDots</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#getDefaultTerminator--">getDefaultTerminator</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#getDefaultTerminatorLength--">getDefaultTerminatorLength</a></span>()</code>
<div class="block">See similarly named parameter of <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#DefaultTruncateBuiltinAlgorithm-java.lang.String-java.lang.Integer-java.lang.Boolean-freemarker.core.TemplateMarkupOutputModel-java.lang.Integer-java.lang.Boolean-boolean-java.lang.Double-"><code>DefaultTruncateBuiltinAlgorithm(String, Integer, Boolean,
TemplateMarkupOutputModel, Integer, Boolean, boolean, Double)</code></a> the construction}.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#getDefaultTerminatorRemovesDots--">getDefaultTerminatorRemovesDots</a></span>()</code>
<div class="block">See similarly named parameter of <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#DefaultTruncateBuiltinAlgorithm-java.lang.String-java.lang.Integer-java.lang.Boolean-freemarker.core.TemplateMarkupOutputModel-java.lang.Integer-java.lang.Boolean-boolean-java.lang.Double-"><code>DefaultTruncateBuiltinAlgorithm(String, Integer, Boolean,
TemplateMarkupOutputModel, Integer, Boolean, boolean, Double)</code></a> the construction}.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#getMTerminatorLength-freemarker.core.TemplateMarkupOutputModel-">getMTerminatorLength</a></span>(<a href="../../freemarker/core/TemplateMarkupOutputModel.html" title="interface in freemarker.core">TemplateMarkupOutputModel</a>&lt;?&gt;&nbsp;mTerminator)</code>
<div class="block">Returns the (estimated) length of the argument terminator.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#getMTerminatorRemovesDots-freemarker.core.TemplateMarkupOutputModel-">getMTerminatorRemovesDots</a></span>(<a href="../../freemarker/core/TemplateMarkupOutputModel.html" title="interface in freemarker.core">TemplateMarkupOutputModel</a>&nbsp;terminator)</code>
<div class="block">Same as <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#getTerminatorRemovesDots-java.lang.String-"><code>getTerminatorRemovesDots(String)</code></a>, but invoked for a markup terminator.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#getTerminatorRemovesDots-java.lang.String-">getTerminatorRemovesDots</a></span>(java.lang.String&nbsp;terminator)</code>
<div class="block">Tells if the dots touched by the terminator text should be removed.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#getWordBoundaryMinLength--">getWordBoundaryMinLength</a></span>()</code>
<div class="block">See similarly named parameter of <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#DefaultTruncateBuiltinAlgorithm-java.lang.String-java.lang.Integer-java.lang.Boolean-freemarker.core.TemplateMarkupOutputModel-java.lang.Integer-java.lang.Boolean-boolean-java.lang.Double-"><code>DefaultTruncateBuiltinAlgorithm(String, Integer, Boolean,
TemplateMarkupOutputModel, Integer, Boolean, boolean, Double)</code></a> the construction}.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../freemarker/template/TemplateScalarModel.html" title="interface in freemarker.template">TemplateScalarModel</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#truncate-java.lang.String-int-freemarker.template.TemplateScalarModel-java.lang.Integer-freemarker.core.Environment-">truncate</a></span>(java.lang.String&nbsp;s,
int&nbsp;maxLength,
<a href="../../freemarker/template/TemplateScalarModel.html" title="interface in freemarker.template">TemplateScalarModel</a>&nbsp;terminator,
java.lang.Integer&nbsp;terminatorLength,
<a href="../../freemarker/core/Environment.html" title="class in freemarker.core">Environment</a>&nbsp;env)</code>
<div class="block">Corresponds to <code>?truncate(...)</code> in templates.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../../freemarker/template/TemplateScalarModel.html" title="interface in freemarker.template">TemplateScalarModel</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#truncateC-java.lang.String-int-freemarker.template.TemplateScalarModel-java.lang.Integer-freemarker.core.Environment-">truncateC</a></span>(java.lang.String&nbsp;s,
int&nbsp;maxLength,
<a href="../../freemarker/template/TemplateScalarModel.html" title="interface in freemarker.template">TemplateScalarModel</a>&nbsp;terminator,
java.lang.Integer&nbsp;terminatorLength,
<a href="../../freemarker/core/Environment.html" title="class in freemarker.core">Environment</a>&nbsp;env)</code>
<div class="block">Corresponds to <code>?truncate_c_m(...)</code> in templates.</div>
</td>
</tr>
<tr id="i13" 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/core/DefaultTruncateBuiltinAlgorithm.html#truncateCM-java.lang.String-int-freemarker.template.TemplateModel-java.lang.Integer-freemarker.core.Environment-">truncateCM</a></span>(java.lang.String&nbsp;s,
int&nbsp;maxLength,
<a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;terminator,
java.lang.Integer&nbsp;terminatorLength,
<a href="../../freemarker/core/Environment.html" title="class in freemarker.core">Environment</a>&nbsp;env)</code>
<div class="block">Corresponds to <code>?truncate_c_m(...)</code> in templates.</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/core/DefaultTruncateBuiltinAlgorithm.html#truncateM-java.lang.String-int-freemarker.template.TemplateModel-java.lang.Integer-freemarker.core.Environment-">truncateM</a></span>(java.lang.String&nbsp;s,
int&nbsp;maxLength,
<a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;terminator,
java.lang.Integer&nbsp;terminatorLength,
<a href="../../freemarker/core/Environment.html" title="class in freemarker.core">Environment</a>&nbsp;env)</code>
<div class="block">Corresponds to <code>?truncate_m(...)</code> in templates.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="../../freemarker/template/TemplateScalarModel.html" title="interface in freemarker.template">TemplateScalarModel</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#truncateW-java.lang.String-int-freemarker.template.TemplateScalarModel-java.lang.Integer-freemarker.core.Environment-">truncateW</a></span>(java.lang.String&nbsp;s,
int&nbsp;maxLength,
<a href="../../freemarker/template/TemplateScalarModel.html" title="interface in freemarker.template">TemplateScalarModel</a>&nbsp;terminator,
java.lang.Integer&nbsp;terminatorLength,
<a href="../../freemarker/core/Environment.html" title="class in freemarker.core">Environment</a>&nbsp;env)</code>
<div class="block">Corresponds to <code>?truncate_w(...)</code> in templates.</div>
</td>
</tr>
<tr id="i16" 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/core/DefaultTruncateBuiltinAlgorithm.html#truncateWM-java.lang.String-int-freemarker.template.TemplateModel-java.lang.Integer-freemarker.core.Environment-">truncateWM</a></span>(java.lang.String&nbsp;s,
int&nbsp;maxLength,
<a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;terminator,
java.lang.Integer&nbsp;terminatorLength,
<a href="../../freemarker/core/Environment.html" title="class in freemarker.core">Environment</a>&nbsp;env)</code>
<div class="block">Corresponds to <code>?truncate_w_m(...)</code> in templates.</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, toString, 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="STANDARD_ASCII_TERMINATOR">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STANDARD_ASCII_TERMINATOR</h4>
<pre>public static final&nbsp;java.lang.String STANDARD_ASCII_TERMINATOR</pre>
<div class="block">Used by <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#ASCII_INSTANCE"><code>ASCII_INSTANCE</code></a> as the terminator.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.core.DefaultTruncateBuiltinAlgorithm.STANDARD_ASCII_TERMINATOR">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="STANDARD_UNICODE_TERMINATOR">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STANDARD_UNICODE_TERMINATOR</h4>
<pre>public static final&nbsp;java.lang.String STANDARD_UNICODE_TERMINATOR</pre>
<div class="block">Used by <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#UNICODE_INSTANCE"><code>UNICODE_INSTANCE</code></a> as the terminator.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.core.DefaultTruncateBuiltinAlgorithm.STANDARD_UNICODE_TERMINATOR">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="STANDARD_M_TERMINATOR">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>STANDARD_M_TERMINATOR</h4>
<pre>public static final&nbsp;<a href="../../freemarker/core/TemplateHTMLOutputModel.html" title="class in freemarker.core">TemplateHTMLOutputModel</a> STANDARD_M_TERMINATOR</pre>
<div class="block">Used by <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#ASCII_INSTANCE"><code>ASCII_INSTANCE</code></a> and <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#UNICODE_INSTANCE"><code>UNICODE_INSTANCE</code></a> as the markup terminator;
HTML <code>&lt;span class='truncateTerminator'&gt;[&amp;#8230;]&lt;/span&gt;</code>, where <code>&amp;#8230;</code> is the ellipsis (&#8230;)
character. Note that while the ellipsis character is not in US-ASCII, this still works safely regardless of
output charset, as <code>&amp;#8230;</code> itself only contains US-ASCII characters.</div>
</li>
</ul>
<a name="DEFAULT_WORD_BOUNDARY_MIN_LENGTH">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_WORD_BOUNDARY_MIN_LENGTH</h4>
<pre>public static final&nbsp;double DEFAULT_WORD_BOUNDARY_MIN_LENGTH</pre>
<div class="block">The value used in the constructor of <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#ASCII_INSTANCE"><code>ASCII_INSTANCE</code></a> and <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#UNICODE_INSTANCE"><code>UNICODE_INSTANCE</code></a> as the
<code>wordBoundaryMinLength</code> argument.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../constant-values.html#freemarker.core.DefaultTruncateBuiltinAlgorithm.DEFAULT_WORD_BOUNDARY_MIN_LENGTH">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ASCII_INSTANCE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ASCII_INSTANCE</h4>
<pre>public static final&nbsp;<a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html" title="class in freemarker.core">DefaultTruncateBuiltinAlgorithm</a> ASCII_INSTANCE</pre>
<div class="block">Instance that uses <code>"[...]"</code> as the <code>defaultTerminator</code> constructor argument, and thus is
safe to use for all output charsets. Because of that, this is the default of
<a href="../../freemarker/core/Configurable.html#setTruncateBuiltinAlgorithm-freemarker.core.TruncateBuiltinAlgorithm-"><code>Configurable.setTruncateBuiltinAlgorithm(TruncateBuiltinAlgorithm)</code></a>. The
<code>defaultMTerminator</code> (markup terminator) is <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#STANDARD_M_TERMINATOR"><code>STANDARD_M_TERMINATOR</code></a>, and the
<code>wordBoundaryMinLength</code> is <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#DEFAULT_WORD_BOUNDARY_MIN_LENGTH"><code>DEFAULT_WORD_BOUNDARY_MIN_LENGTH</code></a>, and <code>addSpaceAtWordBoundary</code>
is <code>true</code>.</div>
</li>
</ul>
<a name="UNICODE_INSTANCE">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>UNICODE_INSTANCE</h4>
<pre>public static final&nbsp;<a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html" title="class in freemarker.core">DefaultTruncateBuiltinAlgorithm</a> UNICODE_INSTANCE</pre>
<div class="block">Instance that uses <code>"[…]"</code> as the <code>defaultTerminator</code> constructor argument, which contains
ellipsis character (<code>"…"</code>, U+2026), and thus only works with UTF-8, and the cp125x charsets (like
cp1250), and with some other rarely used ones. It does not work (becomes to a question mark) with ISO-8859-x
charsets (like ISO-8859-1), which are probably the most often used charsets after UTF-8.
<p>The <code>defaultMTerminator</code> (markup terminator) is <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#STANDARD_M_TERMINATOR"><code>STANDARD_M_TERMINATOR</code></a>, and the
<code>wordBoundaryMinLength</code> is <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#DEFAULT_WORD_BOUNDARY_MIN_LENGTH"><code>DEFAULT_WORD_BOUNDARY_MIN_LENGTH</code></a>, and <code>addSpaceAtWordBoundary</code>
is <code>true</code>.</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="DefaultTruncateBuiltinAlgorithm-java.lang.String-freemarker.core.TemplateMarkupOutputModel-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DefaultTruncateBuiltinAlgorithm</h4>
<pre>public&nbsp;DefaultTruncateBuiltinAlgorithm(java.lang.String&nbsp;defaultTerminator,
<a href="../../freemarker/core/TemplateMarkupOutputModel.html" title="interface in freemarker.core">TemplateMarkupOutputModel</a>&lt;?&gt;&nbsp;defaultMTerminator,
boolean&nbsp;addSpaceAtWordBoundary)</pre>
<div class="block">Creates an instance with a string (plain text) terminator and a markup terminator.
See parameters in <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#DefaultTruncateBuiltinAlgorithm-java.lang.String-java.lang.Integer-java.lang.Boolean-freemarker.core.TemplateMarkupOutputModel-java.lang.Integer-java.lang.Boolean-boolean-java.lang.Double-"><code>DefaultTruncateBuiltinAlgorithm(String, Integer, Boolean, TemplateMarkupOutputModel,
Integer, Boolean, boolean, Double)</code></a>; the missing parameters will be <code>null</code>.</div>
</li>
</ul>
<a name="DefaultTruncateBuiltinAlgorithm-java.lang.String-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DefaultTruncateBuiltinAlgorithm</h4>
<pre>public&nbsp;DefaultTruncateBuiltinAlgorithm(java.lang.String&nbsp;defaultTerminator,
boolean&nbsp;addSpaceAtWordBoundary)</pre>
<div class="block">Creates an instance with string (plain text) terminator.
See parameters in <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#DefaultTruncateBuiltinAlgorithm-java.lang.String-java.lang.Integer-java.lang.Boolean-freemarker.core.TemplateMarkupOutputModel-java.lang.Integer-java.lang.Boolean-boolean-java.lang.Double-"><code>DefaultTruncateBuiltinAlgorithm(String, Integer, Boolean, TemplateMarkupOutputModel,
Integer, Boolean, boolean, Double)</code></a>; the missing parameters will be <code>null</code>.</div>
</li>
</ul>
<a name="DefaultTruncateBuiltinAlgorithm-java.lang.String-java.lang.Integer-java.lang.Boolean-freemarker.core.TemplateMarkupOutputModel-java.lang.Integer-java.lang.Boolean-boolean-java.lang.Double-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DefaultTruncateBuiltinAlgorithm</h4>
<pre>public&nbsp;DefaultTruncateBuiltinAlgorithm(java.lang.String&nbsp;defaultTerminator,
java.lang.Integer&nbsp;defaultTerminatorLength,
java.lang.Boolean&nbsp;defaultTerminatorRemovesDots,
<a href="../../freemarker/core/TemplateMarkupOutputModel.html" title="interface in freemarker.core">TemplateMarkupOutputModel</a>&lt;?&gt;&nbsp;defaultMTerminator,
java.lang.Integer&nbsp;defaultMTerminatorLength,
java.lang.Boolean&nbsp;defaultMTerminatorRemovesDots,
boolean&nbsp;addSpaceAtWordBoundary,
java.lang.Double&nbsp;wordBoundaryMinLength)</pre>
<div class="block">Creates an instance with markup terminator.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>defaultTerminator</code> - The terminator to use if the invocation (like <code>s?truncate(20)</code>) doesn't specify it. The
terminator is the text appended after a truncated string, to indicate that it was truncated.
Typically it's <code>"[...]"</code> or <code>"..."</code>, or the same with UNICODE ellipsis character.</dd>
<dd><code>defaultTerminatorLength</code> - The assumed length of <code>defaultTerminator</code>, or <code>null</code> if it should be get via
<code>defaultTerminator.length()</code>.</dd>
<dd><code>defaultTerminatorRemovesDots</code> - Whether dots and ellipsis characters that the <code>defaultTerminator</code> touches should be removed. If
<code>null</code>, this will be auto-detected based on if <code>defaultTerminator</code> starts with dot or
ellipsis. The goal is to avoid outcomes where we have more dots next to each other than there are in
the terminator.</dd>
<dd><code>defaultMTerminator</code> - Similar to <code>defaultTerminator</code>, but is markup instead of plain text. This can be <code>null</code>,
in which case <code>defaultTerminator</code> will be used even if <code>?truncate_m</code> or similar built-in
is called.</dd>
<dd><code>defaultMTerminatorLength</code> - The assumed length of the terminator, or <code>null</code> if it should be get via
<a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#getMTerminatorLength-freemarker.core.TemplateMarkupOutputModel-"><code>getMTerminatorLength(freemarker.core.TemplateMarkupOutputModel&lt;?&gt;)</code></a>.</dd>
<dd><code>defaultMTerminatorRemovesDots</code> - Similar to <code>defaultTerminatorRemovesDots</code>, but for <code>defaultMTerminator</code>. If <code>null</code>, and <code>defaultMTerminator</code> is HTML/XML/XHTML, then it will be examined of the
first character of the terminator that's outside a HTML/XML tag or comment is dot or ellipsis
(after resolving numerical character references). For other kind of markup it defaults to <code>true</code>, to be on the safe side.</dd>
<dd><code>addSpaceAtWordBoundary,</code> - Whether to add a space before the terminator if the truncation happens directly after the end of a
word. For example, when "too long sentence" is truncated, it will be a like "too long [...]"
instead of "too long[...]". When the truncation happens inside a word, this has on effect, i.e., it
will be always like "too long se[...]" (no space before the terminator). Note that only whitespace is
considered to be a word separator, not punctuation, so if this is <code>true</code>, you get results
like "Some sentence. [...]".</dd>
<dd><code>wordBoundaryMinLength</code> - Used when <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#truncate-java.lang.String-int-freemarker.template.TemplateScalarModel-java.lang.Integer-freemarker.core.Environment-"><code>truncate(java.lang.String, int, freemarker.template.TemplateScalarModel, java.lang.Integer, freemarker.core.Environment)</code></a> or <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#truncateM-java.lang.String-int-freemarker.template.TemplateModel-java.lang.Integer-freemarker.core.Environment-"><code>truncateM(java.lang.String, int, freemarker.template.TemplateModel, java.lang.Integer, freemarker.core.Environment)</code></a> has to decide between
word boundary truncation and character boundary truncation; it's the minimum length, given as
proportion of <code>maxLength</code>, that word boundary truncation has to produce. If the resulting
length is less, we do character boundary truncation instead. For example, if <code>maxLength</code> is
30, and this parameter is 0.85, then: 30*0.85 = 25.5, rounded up that's 26, so the resulting length
must be at least 26. The result of character boundary truncation will be always accepted, even if its
still too short. If this parameter is <code>null</code>, then <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#DEFAULT_WORD_BOUNDARY_MIN_LENGTH"><code>DEFAULT_WORD_BOUNDARY_MIN_LENGTH</code></a>
will be used. If this parameter is 0, then truncation always happens at word boundary. If this
parameter is 1.0, then truncation doesn't prefer word boundaries over other places.</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="truncate-java.lang.String-int-freemarker.template.TemplateScalarModel-java.lang.Integer-freemarker.core.Environment-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>truncate</h4>
<pre>public&nbsp;<a href="../../freemarker/template/TemplateScalarModel.html" title="interface in freemarker.template">TemplateScalarModel</a>&nbsp;truncate(java.lang.String&nbsp;s,
int&nbsp;maxLength,
<a href="../../freemarker/template/TemplateScalarModel.html" title="interface in freemarker.template">TemplateScalarModel</a>&nbsp;terminator,
java.lang.Integer&nbsp;terminatorLength,
<a href="../../freemarker/core/Environment.html" title="class in freemarker.core">Environment</a>&nbsp;env)
throws <a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template">TemplateException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../freemarker/core/TruncateBuiltinAlgorithm.html#truncate-java.lang.String-int-freemarker.template.TemplateScalarModel-java.lang.Integer-freemarker.core.Environment-">TruncateBuiltinAlgorithm</a></code></span></div>
<div class="block">Corresponds to <code>?truncate(...)</code> in templates.
Similar to <a href="../../freemarker/core/TruncateBuiltinAlgorithm.html#truncateM-java.lang.String-int-freemarker.template.TemplateModel-java.lang.Integer-freemarker.core.Environment-"><code>TruncateBuiltinAlgorithm.truncateM(String, int, TemplateModel, Integer, Environment)</code></a>, but only allows
an FTL string as terminator, and thence the return value is always an FTL string as well (not
<a href="../../freemarker/core/TemplateMarkupOutputModel.html" title="interface in freemarker.core"><code>TemplateMarkupOutputModel</code></a>).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../freemarker/core/TruncateBuiltinAlgorithm.html#truncate-java.lang.String-int-freemarker.template.TemplateScalarModel-java.lang.Integer-freemarker.core.Environment-">truncate</a></code>&nbsp;in class&nbsp;<code><a href="../../freemarker/core/TruncateBuiltinAlgorithm.html" title="class in freemarker.core">TruncateBuiltinAlgorithm</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template">TemplateException</a></code></dd>
</dl>
</li>
</ul>
<a name="truncateW-java.lang.String-int-freemarker.template.TemplateScalarModel-java.lang.Integer-freemarker.core.Environment-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>truncateW</h4>
<pre>public&nbsp;<a href="../../freemarker/template/TemplateScalarModel.html" title="interface in freemarker.template">TemplateScalarModel</a>&nbsp;truncateW(java.lang.String&nbsp;s,
int&nbsp;maxLength,
<a href="../../freemarker/template/TemplateScalarModel.html" title="interface in freemarker.template">TemplateScalarModel</a>&nbsp;terminator,
java.lang.Integer&nbsp;terminatorLength,
<a href="../../freemarker/core/Environment.html" title="class in freemarker.core">Environment</a>&nbsp;env)
throws <a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template">TemplateException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../freemarker/core/TruncateBuiltinAlgorithm.html#truncateW-java.lang.String-int-freemarker.template.TemplateScalarModel-java.lang.Integer-freemarker.core.Environment-">TruncateBuiltinAlgorithm</a></code></span></div>
<div class="block">Corresponds to <code>?truncate_w(...)</code> in templates.
Same as <a href="../../freemarker/core/TruncateBuiltinAlgorithm.html#truncateWM-java.lang.String-int-freemarker.template.TemplateModel-java.lang.Integer-freemarker.core.Environment-"><code>TruncateBuiltinAlgorithm.truncateWM(String, int, TemplateModel, Integer, Environment)</code></a>, but only allows
an FTL string as terminator, and thence the return value is always an FTL string as well (not
<a href="../../freemarker/core/TemplateMarkupOutputModel.html" title="interface in freemarker.core"><code>TemplateMarkupOutputModel</code></a>).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../freemarker/core/TruncateBuiltinAlgorithm.html#truncateW-java.lang.String-int-freemarker.template.TemplateScalarModel-java.lang.Integer-freemarker.core.Environment-">truncateW</a></code>&nbsp;in class&nbsp;<code><a href="../../freemarker/core/TruncateBuiltinAlgorithm.html" title="class in freemarker.core">TruncateBuiltinAlgorithm</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template">TemplateException</a></code></dd>
</dl>
</li>
</ul>
<a name="truncateC-java.lang.String-int-freemarker.template.TemplateScalarModel-java.lang.Integer-freemarker.core.Environment-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>truncateC</h4>
<pre>public&nbsp;<a href="../../freemarker/template/TemplateScalarModel.html" title="interface in freemarker.template">TemplateScalarModel</a>&nbsp;truncateC(java.lang.String&nbsp;s,
int&nbsp;maxLength,
<a href="../../freemarker/template/TemplateScalarModel.html" title="interface in freemarker.template">TemplateScalarModel</a>&nbsp;terminator,
java.lang.Integer&nbsp;terminatorLength,
<a href="../../freemarker/core/Environment.html" title="class in freemarker.core">Environment</a>&nbsp;env)
throws <a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template">TemplateException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../freemarker/core/TruncateBuiltinAlgorithm.html#truncateC-java.lang.String-int-freemarker.template.TemplateScalarModel-java.lang.Integer-freemarker.core.Environment-">TruncateBuiltinAlgorithm</a></code></span></div>
<div class="block">Corresponds to <code>?truncate_c_m(...)</code> in templates.
Same as <a href="../../freemarker/core/TruncateBuiltinAlgorithm.html#truncateCM-java.lang.String-int-freemarker.template.TemplateModel-java.lang.Integer-freemarker.core.Environment-"><code>TruncateBuiltinAlgorithm.truncateCM(String, int, TemplateModel, Integer, Environment)</code></a>, but only allows
an FTL string as terminator, and thence the return value is always an FTL string as well (not markup).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../freemarker/core/TruncateBuiltinAlgorithm.html#truncateC-java.lang.String-int-freemarker.template.TemplateScalarModel-java.lang.Integer-freemarker.core.Environment-">truncateC</a></code>&nbsp;in class&nbsp;<code><a href="../../freemarker/core/TruncateBuiltinAlgorithm.html" title="class in freemarker.core">TruncateBuiltinAlgorithm</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template">TemplateException</a></code></dd>
</dl>
</li>
</ul>
<a name="truncateM-java.lang.String-int-freemarker.template.TemplateModel-java.lang.Integer-freemarker.core.Environment-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>truncateM</h4>
<pre>public&nbsp;<a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;truncateM(java.lang.String&nbsp;s,
int&nbsp;maxLength,
<a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;terminator,
java.lang.Integer&nbsp;terminatorLength,
<a href="../../freemarker/core/Environment.html" title="class in freemarker.core">Environment</a>&nbsp;env)
throws <a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template">TemplateException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../freemarker/core/TruncateBuiltinAlgorithm.html#truncateM-java.lang.String-int-freemarker.template.TemplateModel-java.lang.Integer-freemarker.core.Environment-">TruncateBuiltinAlgorithm</a></code></span></div>
<div class="block">Corresponds to <code>?truncate_m(...)</code> in templates. This method decides automatically if it will truncate at
word boundary (see <a href="../../freemarker/core/TruncateBuiltinAlgorithm.html#truncateWM-java.lang.String-int-freemarker.template.TemplateModel-java.lang.Integer-freemarker.core.Environment-"><code>TruncateBuiltinAlgorithm.truncateWM(java.lang.String, int, freemarker.template.TemplateModel, java.lang.Integer, freemarker.core.Environment)</code></a>) or at character boundary (see <a href="../../freemarker/core/TruncateBuiltinAlgorithm.html#truncateCM-java.lang.String-int-freemarker.template.TemplateModel-java.lang.Integer-freemarker.core.Environment-"><code>TruncateBuiltinAlgorithm.truncateCM(java.lang.String, int, freemarker.template.TemplateModel, java.lang.Integer, freemarker.core.Environment)</code></a>). While it depends
on the implementation, the idea is that it should truncate at word boundary, unless that gives a too short
string, in which case it falls back to truncation at character duration.
<p>The terminator and the return value can be <a href="../../freemarker/core/TemplateMarkupOutputModel.html" title="interface in freemarker.core"><code>TemplateMarkupOutputModel</code></a> (FTL markup output type), not
just <code>String</code> (FTL string type), hence the "m" in the name.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../freemarker/core/TruncateBuiltinAlgorithm.html#truncateM-java.lang.String-int-freemarker.template.TemplateModel-java.lang.Integer-freemarker.core.Environment-">truncateM</a></code>&nbsp;in class&nbsp;<code><a href="../../freemarker/core/TruncateBuiltinAlgorithm.html" title="class in freemarker.core">TruncateBuiltinAlgorithm</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>s</code> - The input string whose length need to be limited. The caller (the FreeMarker core normally) is
expected to guarantee that this won't be <code>null</code>.</dd>
<dd><code>maxLength</code> - The maximum length of the returned string, although the algorithm need not guarantee this strictly.
For example, if this is less than the length of the <code>terminator</code> string, then most algorithms
should still return the <code>terminator</code> string. Or, some sophisticated algorithm may counts in
letters differently depending on their visual width. The goal is usually to prevent unusually long
string values to ruin visual layout, while showing clearly to the user that the end of the string
was cut off. If the input string is not longer than the maximum length, then it should be returned
as is. The caller (the FreeMarker core normally) is expected to guarantee that this will be at
least 0.</dd>
<dd><code>terminator</code> - The string or markup to show at the end of the returned string if the string was actually truncated.
This can be <code>null</code>, in which case the default terminator of the algorithm will be used. It
can be an FTL string (a <a href="../../freemarker/template/TemplateScalarModel.html" title="interface in freemarker.template"><code>TemplateScalarModel</code></a>) of any length (including 0), or a
<a href="../../freemarker/core/TemplateMarkupOutputModel.html" title="interface in freemarker.core"><code>TemplateMarkupOutputModel</code></a> (typically HTML markup). If it's <a href="../../freemarker/core/TemplateMarkupOutputModel.html" title="interface in freemarker.core"><code>TemplateMarkupOutputModel</code></a>,
then the result is <a href="../../freemarker/core/TemplateMarkupOutputModel.html" title="interface in freemarker.core"><code>TemplateMarkupOutputModel</code></a> of the same output format as well, otherwise
it can remain <a href="../../freemarker/template/TemplateScalarModel.html" title="interface in freemarker.template"><code>TemplateScalarModel</code></a>. Note that the length of the terminator counts into the
result length that shouldn't be exceed (<code>maxLength</code>) (or at least the algorithm should make
an effort to avoid that).</dd>
<dd><code>terminatorLength</code> - The assumed length of the terminator. If this is <code>null</code> (and typically it is), then the method
decides the length of the terminator. If this is not <code>null</code>, then the method must pretend
that the terminator length is this. This can be used to specify the visual length of a terminator
explicitly, which can't always be decided well programmatically.</dd>
<dd><code>env</code> - The runtime environment from which this algorithm was called. The caller (the FreeMarker core
normally) is expected to guarantee that this won't be <code>null</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The truncated text, which is either a <a href="../../freemarker/template/TemplateScalarModel.html" title="interface in freemarker.template"><code>TemplateScalarModel</code></a> (FTL string), or a
<a href="../../freemarker/core/TemplateMarkupOutputModel.html" title="interface in freemarker.core"><code>TemplateMarkupOutputModel</code></a>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template">TemplateException</a></code> - If anything goes wrong during truncating. It's unlikely that an implementation will need this though.</dd>
</dl>
</li>
</ul>
<a name="truncateWM-java.lang.String-int-freemarker.template.TemplateModel-java.lang.Integer-freemarker.core.Environment-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>truncateWM</h4>
<pre>public&nbsp;<a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;truncateWM(java.lang.String&nbsp;s,
int&nbsp;maxLength,
<a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;terminator,
java.lang.Integer&nbsp;terminatorLength,
<a href="../../freemarker/core/Environment.html" title="class in freemarker.core">Environment</a>&nbsp;env)
throws <a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template">TemplateException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../freemarker/core/TruncateBuiltinAlgorithm.html#truncateWM-java.lang.String-int-freemarker.template.TemplateModel-java.lang.Integer-freemarker.core.Environment-">TruncateBuiltinAlgorithm</a></code></span></div>
<div class="block">Corresponds to <code>?truncate_w_m(...)</code> in templates.
Similar to <a href="../../freemarker/core/TruncateBuiltinAlgorithm.html#truncateM-java.lang.String-int-freemarker.template.TemplateModel-java.lang.Integer-freemarker.core.Environment-"><code>TruncateBuiltinAlgorithm.truncateM(String, int, TemplateModel, Integer, Environment)</code></a>, but the
truncation should happen at word boundary (hence the "w"). That is, the truncation isn't allowed to truncate a
word. What counts as a word, is up to the implementation, but at least in <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html" title="class in freemarker.core"><code>DefaultTruncateBuiltinAlgorithm</code></a>
words are the sections that are separated by whitespace (so punctuation doesn't separate words).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../freemarker/core/TruncateBuiltinAlgorithm.html#truncateWM-java.lang.String-int-freemarker.template.TemplateModel-java.lang.Integer-freemarker.core.Environment-">truncateWM</a></code>&nbsp;in class&nbsp;<code><a href="../../freemarker/core/TruncateBuiltinAlgorithm.html" title="class in freemarker.core">TruncateBuiltinAlgorithm</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template">TemplateException</a></code></dd>
</dl>
</li>
</ul>
<a name="truncateCM-java.lang.String-int-freemarker.template.TemplateModel-java.lang.Integer-freemarker.core.Environment-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>truncateCM</h4>
<pre>public&nbsp;<a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;truncateCM(java.lang.String&nbsp;s,
int&nbsp;maxLength,
<a href="../../freemarker/template/TemplateModel.html" title="interface in freemarker.template">TemplateModel</a>&nbsp;terminator,
java.lang.Integer&nbsp;terminatorLength,
<a href="../../freemarker/core/Environment.html" title="class in freemarker.core">Environment</a>&nbsp;env)
throws <a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template">TemplateException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../freemarker/core/TruncateBuiltinAlgorithm.html#truncateCM-java.lang.String-int-freemarker.template.TemplateModel-java.lang.Integer-freemarker.core.Environment-">TruncateBuiltinAlgorithm</a></code></span></div>
<div class="block">Corresponds to <code>?truncate_c_m(...)</code> in templates.
Similar to <a href="../../freemarker/core/TruncateBuiltinAlgorithm.html#truncateM-java.lang.String-int-freemarker.template.TemplateModel-java.lang.Integer-freemarker.core.Environment-"><code>TruncateBuiltinAlgorithm.truncateM(String, int, TemplateModel, Integer, Environment)</code></a>, but the
truncation should not prefer truncating at word boundaries over the closer approximation of the desired <code>maxLength</code>. Hence, we say that it truncates at character boundary (hence the "c").</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../freemarker/core/TruncateBuiltinAlgorithm.html#truncateCM-java.lang.String-int-freemarker.template.TemplateModel-java.lang.Integer-freemarker.core.Environment-">truncateCM</a></code>&nbsp;in class&nbsp;<code><a href="../../freemarker/core/TruncateBuiltinAlgorithm.html" title="class in freemarker.core">TruncateBuiltinAlgorithm</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../freemarker/template/TemplateException.html" title="class in freemarker.template">TemplateException</a></code></dd>
</dl>
</li>
</ul>
<a name="getDefaultTerminator--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultTerminator</h4>
<pre>public&nbsp;java.lang.String&nbsp;getDefaultTerminator()</pre>
</li>
</ul>
<a name="getDefaultTerminatorLength--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultTerminatorLength</h4>
<pre>public&nbsp;int&nbsp;getDefaultTerminatorLength()</pre>
<div class="block">See similarly named parameter of <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#DefaultTruncateBuiltinAlgorithm-java.lang.String-java.lang.Integer-java.lang.Boolean-freemarker.core.TemplateMarkupOutputModel-java.lang.Integer-java.lang.Boolean-boolean-java.lang.Double-"><code>DefaultTruncateBuiltinAlgorithm(String, Integer, Boolean,
TemplateMarkupOutputModel, Integer, Boolean, boolean, Double)</code></a> the construction}.</div>
</li>
</ul>
<a name="getDefaultTerminatorRemovesDots--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultTerminatorRemovesDots</h4>
<pre>public&nbsp;boolean&nbsp;getDefaultTerminatorRemovesDots()</pre>
<div class="block">See similarly named parameter of <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#DefaultTruncateBuiltinAlgorithm-java.lang.String-java.lang.Integer-java.lang.Boolean-freemarker.core.TemplateMarkupOutputModel-java.lang.Integer-java.lang.Boolean-boolean-java.lang.Double-"><code>DefaultTruncateBuiltinAlgorithm(String, Integer, Boolean,
TemplateMarkupOutputModel, Integer, Boolean, boolean, Double)</code></a> the construction}.</div>
</li>
</ul>
<a name="getDefaultMTerminator--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultMTerminator</h4>
<pre>public&nbsp;<a href="../../freemarker/core/TemplateMarkupOutputModel.html" title="interface in freemarker.core">TemplateMarkupOutputModel</a>&lt;?&gt;&nbsp;getDefaultMTerminator()</pre>
<div class="block">See similarly named parameter of <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#DefaultTruncateBuiltinAlgorithm-java.lang.String-java.lang.Integer-java.lang.Boolean-freemarker.core.TemplateMarkupOutputModel-java.lang.Integer-java.lang.Boolean-boolean-java.lang.Double-"><code>DefaultTruncateBuiltinAlgorithm(String, Integer, Boolean,
TemplateMarkupOutputModel, Integer, Boolean, boolean, Double)</code></a> the construction}.</div>
</li>
</ul>
<a name="getDefaultMTerminatorLength--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultMTerminatorLength</h4>
<pre>public&nbsp;java.lang.Integer&nbsp;getDefaultMTerminatorLength()</pre>
<div class="block">See similarly named parameter of <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#DefaultTruncateBuiltinAlgorithm-java.lang.String-java.lang.Integer-java.lang.Boolean-freemarker.core.TemplateMarkupOutputModel-java.lang.Integer-java.lang.Boolean-boolean-java.lang.Double-"><code>DefaultTruncateBuiltinAlgorithm(String, Integer, Boolean,
TemplateMarkupOutputModel, Integer, Boolean, boolean, Double)</code></a> the construction}.</div>
</li>
</ul>
<a name="getDefaultMTerminatorRemovesDots--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultMTerminatorRemovesDots</h4>
<pre>public&nbsp;boolean&nbsp;getDefaultMTerminatorRemovesDots()</pre>
</li>
</ul>
<a name="getWordBoundaryMinLength--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWordBoundaryMinLength</h4>
<pre>public&nbsp;double&nbsp;getWordBoundaryMinLength()</pre>
<div class="block">See similarly named parameter of <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#DefaultTruncateBuiltinAlgorithm-java.lang.String-java.lang.Integer-java.lang.Boolean-freemarker.core.TemplateMarkupOutputModel-java.lang.Integer-java.lang.Boolean-boolean-java.lang.Double-"><code>DefaultTruncateBuiltinAlgorithm(String, Integer, Boolean,
TemplateMarkupOutputModel, Integer, Boolean, boolean, Double)</code></a> the construction}.</div>
</li>
</ul>
<a name="getAddSpaceAtWordBoundary--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAddSpaceAtWordBoundary</h4>
<pre>public&nbsp;boolean&nbsp;getAddSpaceAtWordBoundary()</pre>
<div class="block">See similarly named parameter of <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#DefaultTruncateBuiltinAlgorithm-java.lang.String-java.lang.Integer-java.lang.Boolean-freemarker.core.TemplateMarkupOutputModel-java.lang.Integer-java.lang.Boolean-boolean-java.lang.Double-"><code>DefaultTruncateBuiltinAlgorithm(String, Integer, Boolean,
TemplateMarkupOutputModel, Integer, Boolean, boolean, Double)</code></a> the construction}.</div>
</li>
</ul>
<a name="getMTerminatorLength-freemarker.core.TemplateMarkupOutputModel-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMTerminatorLength</h4>
<pre>protected&nbsp;int&nbsp;getMTerminatorLength(<a href="../../freemarker/core/TemplateMarkupOutputModel.html" title="interface in freemarker.core">TemplateMarkupOutputModel</a>&lt;?&gt;&nbsp;mTerminator)
throws <a href="../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></pre>
<div class="block">Returns the (estimated) length of the argument terminator. It should only count characters that are visible for
the user (like in the web browser).
<p>In the implementation in <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html" title="class in freemarker.core"><code>DefaultTruncateBuiltinAlgorithm</code></a>, if the markup is HTML/XML/XHTML, then this
counts the characters outside tags and comments, and inside CDATA sections (ignoring the CDATA section
delimiters). Furthermore then it counts character and entity references as having length of 1. If the markup
is not HTML/XML/XHTML (or subclasses of those <a href="../../freemarker/core/MarkupOutputFormat.html" title="class in freemarker.core"><code>MarkupOutputFormat</code></a>-s) then it doesn't know how to
measure it, and simply returns 3.</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="getTerminatorRemovesDots-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTerminatorRemovesDots</h4>
<pre>protected&nbsp;boolean&nbsp;getTerminatorRemovesDots(java.lang.String&nbsp;terminator)
throws <a href="../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></pre>
<div class="block">Tells if the dots touched by the terminator text should be removed.
<p>The implementation in <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html" title="class in freemarker.core"><code>DefaultTruncateBuiltinAlgorithm</code></a> return <code>true</code> if the terminator starts
with dot (or ellipsis).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>terminator</code> - A <a href="../../freemarker/template/TemplateScalarModel.html" title="interface in freemarker.template"><code>TemplateScalarModel</code></a> or <a href="../../freemarker/core/TemplateMarkupOutputModel.html" title="interface in freemarker.core"><code>TemplateMarkupOutputModel</code></a>. Not <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>
</dl>
</li>
</ul>
<a name="getMTerminatorRemovesDots-freemarker.core.TemplateMarkupOutputModel-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getMTerminatorRemovesDots</h4>
<pre>protected&nbsp;boolean&nbsp;getMTerminatorRemovesDots(<a href="../../freemarker/core/TemplateMarkupOutputModel.html" title="interface in freemarker.core">TemplateMarkupOutputModel</a>&nbsp;terminator)
throws <a href="../../freemarker/template/TemplateModelException.html" title="class in freemarker.template">TemplateModelException</a></pre>
<div class="block">Same as <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html#getTerminatorRemovesDots-java.lang.String-"><code>getTerminatorRemovesDots(String)</code></a>, but invoked for a markup terminator.
<p>The implementation in <a href="../../freemarker/core/DefaultTruncateBuiltinAlgorithm.html" title="class in freemarker.core"><code>DefaultTruncateBuiltinAlgorithm</code></a> will skip HTML/XML tags and comments,
and resolves relevant character references to find out if the first character is dot or ellipsis. But it only
does this for HTML/XMl/XHTML (or subclasses of those <a href="../../freemarker/core/MarkupOutputFormat.html" title="class in freemarker.core"><code>MarkupOutputFormat</code></a>-s), otherwise it always
returns <code>true</code> to be on the safe side.</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>
</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/DefaultTruncateBuiltinAlgorithm.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/core/CustomAttribute.html" title="class in freemarker.core"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../freemarker/core/DirectiveCallPlace.html" title="interface in freemarker.core"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?freemarker/core/DefaultTruncateBuiltinAlgorithm.html" target="_top">Frames</a></li>
<li><a href="DefaultTruncateBuiltinAlgorithm.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>Nested&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>