blob: 27ca212a8375460fc60dac5a5376852f0aef871c [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:36 CET 2023 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>freemarker.cache (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="freemarker.cache (FreeMarker 2.3.32 API)";
}
}
catch(err) {
}
//-->
</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 class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.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>Prev&nbsp;Package</li>
<li><a href="../../freemarker/core/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?freemarker/cache/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.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>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Package" class="title">Package&nbsp;freemarker.cache</h1>
<div class="docSummary">
<div class="block">Template <em>loading</em> and caching.</div>
</div>
<p>See:&nbsp;<a href="#package.description">Description</a></p>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Interface</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../freemarker/cache/CacheStorage.html" title="interface in freemarker.cache">CacheStorage</a></td>
<td class="colLast">
<div class="block">Cache storage abstracts away the storage aspects of a cache - associating
an object with a key, retrieval and removal via the key.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../freemarker/cache/CacheStorageWithGetSize.html" title="interface in freemarker.cache">CacheStorageWithGetSize</a></td>
<td class="colLast">
<div class="block">A cache storage that has a <code>getSize()</code> method for returning the current number of cache entries.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../freemarker/cache/ConcurrentCacheStorage.html" title="interface in freemarker.cache">ConcurrentCacheStorage</a></td>
<td class="colLast">
<div class="block">An optional interface for cache storage that knows whether it can be
concurrently accessible without synchronization.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../freemarker/cache/StatefulTemplateLoader.html" title="interface in freemarker.cache">StatefulTemplateLoader</a></td>
<td class="colLast">
<div class="block">Interface that can be implemented by <a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache"><code>TemplateLoader</code></a>-s that maintain some
sort of internal state (i.e.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache">TemplateLoader</a></td>
<td class="colLast">
<div class="block">FreeMarker loads template "files" through objects that implement this interface,
thus the templates need not be real files, and can come from any kind of data source
(like classpath, servlet context, database, etc).</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../freemarker/cache/AndMatcher.html" title="class in freemarker.cache">AndMatcher</a></td>
<td class="colLast">
<div class="block">Logical "and" operation among the given matchers.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../freemarker/cache/ByteArrayTemplateLoader.html" title="class in freemarker.cache">ByteArrayTemplateLoader</a></td>
<td class="colLast">
<div class="block">A <a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache"><code>TemplateLoader</code></a> that uses a <code>Map</code> with <code>byte[]</code> as its source of templates.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../freemarker/cache/ClassTemplateLoader.html" title="class in freemarker.cache">ClassTemplateLoader</a></td>
<td class="colLast">
<div class="block">A <a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache"><code>TemplateLoader</code></a> that can load templates from the "classpath".</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../freemarker/cache/ConditionalTemplateConfigurationFactory.html" title="class in freemarker.cache">ConditionalTemplateConfigurationFactory</a></td>
<td class="colLast">
<div class="block">Returns the given <a href="../../freemarker/core/TemplateConfiguration.html" title="class in freemarker.core"><code>TemplateConfiguration</code></a> directly, or another <a href="../../freemarker/cache/TemplateConfigurationFactory.html" title="class in freemarker.cache"><code>TemplateConfigurationFactory</code></a>'s result, when
the specified matcher matches the template source.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../freemarker/cache/FileExtensionMatcher.html" title="class in freemarker.cache">FileExtensionMatcher</a></td>
<td class="colLast">
<div class="block">Matches the file extension; unlike other matchers, by default case <em>insensitive</em>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../freemarker/cache/FileNameGlobMatcher.html" title="class in freemarker.cache">FileNameGlobMatcher</a></td>
<td class="colLast">
<div class="block">As opposed to <a href="../../freemarker/cache/PathGlobMatcher.html" title="class in freemarker.cache"><code>PathGlobMatcher</code></a>, it only compares the "file name" part (the part after the last <code>/</code>) of
the source name with the given glob.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../freemarker/cache/FileTemplateLoader.html" title="class in freemarker.cache">FileTemplateLoader</a></td>
<td class="colLast">
<div class="block">A <a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache"><code>TemplateLoader</code></a> that uses files inside a specified directory as the source of templates.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../freemarker/cache/FirstMatchTemplateConfigurationFactory.html" title="class in freemarker.cache">FirstMatchTemplateConfigurationFactory</a></td>
<td class="colLast">
<div class="block">Returns the first non-<code>null</code> result of the child factories, ignoring all further child factories.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../freemarker/cache/MergingTemplateConfigurationFactory.html" title="class in freemarker.cache">MergingTemplateConfigurationFactory</a></td>
<td class="colLast">
<div class="block">Returns the merged results of all the child factories.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../freemarker/cache/MruCacheStorage.html" title="class in freemarker.cache">MruCacheStorage</a></td>
<td class="colLast">
<div class="block">A cache storage that implements a two-level Most Recently Used cache.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../freemarker/cache/MultiTemplateLoader.html" title="class in freemarker.cache">MultiTemplateLoader</a></td>
<td class="colLast">
<div class="block">A <a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache"><code>TemplateLoader</code></a> that uses a set of other loaders to load the templates.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../freemarker/cache/NotMatcher.html" title="class in freemarker.cache">NotMatcher</a></td>
<td class="colLast">
<div class="block">Logical "not" operation on the given matcher.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../freemarker/cache/NullCacheStorage.html" title="class in freemarker.cache">NullCacheStorage</a></td>
<td class="colLast">
<div class="block">A cache storage that doesn't store anything.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../freemarker/cache/OrMatcher.html" title="class in freemarker.cache">OrMatcher</a></td>
<td class="colLast">
<div class="block">Logical "or" operation among the given matchers.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../freemarker/cache/PathGlobMatcher.html" title="class in freemarker.cache">PathGlobMatcher</a></td>
<td class="colLast">
<div class="block">Matches the whole template source name (also known as template source path) with the given glob.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../freemarker/cache/PathRegexMatcher.html" title="class in freemarker.cache">PathRegexMatcher</a></td>
<td class="colLast">
<div class="block">Matches the whole template source name (also known as template source path) with the given regular expression.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../freemarker/cache/SoftCacheStorage.html" title="class in freemarker.cache">SoftCacheStorage</a></td>
<td class="colLast">
<div class="block">Soft cache storage is a cache storage that uses <code>SoftReference</code> objects to hold the objects it was passed,
therefore allows the garbage collector to purge the cache when it determines that it wants to free up memory.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../freemarker/cache/StringTemplateLoader.html" title="class in freemarker.cache">StringTemplateLoader</a></td>
<td class="colLast">
<div class="block">A <a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache"><code>TemplateLoader</code></a> that uses a <code>Map</code> with <code>String</code>-s as its source of
templates.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../freemarker/cache/StrongCacheStorage.html" title="class in freemarker.cache">StrongCacheStorage</a></td>
<td class="colLast">
<div class="block">Strong cache storage is a cache storage that simply wraps a <code>Map</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../freemarker/cache/TemplateCache.html" title="class in freemarker.cache">TemplateCache</a></td>
<td class="colLast">
<div class="block">Performs caching and on-demand loading of the templates.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../freemarker/cache/TemplateCache.MaybeMissingTemplate.html" title="class in freemarker.cache">TemplateCache.MaybeMissingTemplate</a></td>
<td class="colLast">
<div class="block">Used for the return value of <a href="../../freemarker/cache/TemplateCache.html#getTemplate-java.lang.String-java.util.Locale-java.lang.Object-java.lang.String-boolean-"><code>TemplateCache.getTemplate(String, Locale, Object, String, boolean)</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../freemarker/cache/TemplateConfigurationFactory.html" title="class in freemarker.cache">TemplateConfigurationFactory</a></td>
<td class="colLast">
<div class="block">Creates (or returns) <a href="../../freemarker/core/TemplateConfiguration.html" title="class in freemarker.core"><code>TemplateConfiguration</code></a>-s for template sources.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../freemarker/cache/TemplateLookupContext.html" title="class in freemarker.cache">TemplateLookupContext</a></td>
<td class="colLast">
<div class="block">Used as the parameter of <a href="../../freemarker/cache/TemplateLookupStrategy.html#lookup-freemarker.cache.TemplateLookupContext-"><code>TemplateLookupStrategy.lookup(TemplateLookupContext)</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../freemarker/cache/TemplateLookupResult.html" title="class in freemarker.cache">TemplateLookupResult</a></td>
<td class="colLast">
<div class="block">The return value of <a href="../../freemarker/cache/TemplateLookupStrategy.html#lookup-freemarker.cache.TemplateLookupContext-"><code>TemplateLookupStrategy.lookup(TemplateLookupContext)</code></a> and similar lookup methods.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../freemarker/cache/TemplateLookupStrategy.html" title="class in freemarker.cache">TemplateLookupStrategy</a></td>
<td class="colLast">
<div class="block">Finds the <a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache"><code>TemplateLoader</code></a>-level (storage-level) template source for the template name with which the template
was requested (as in <a href="../../freemarker/template/Configuration.html#getTemplate-java.lang.String-"><code>Configuration.getTemplate(String)</code></a>).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../freemarker/cache/TemplateNameFormat.html" title="class in freemarker.cache">TemplateNameFormat</a></td>
<td class="colLast">
<div class="block">Symbolizes a template name format, which defines the basic syntax of names through algorithms such as normalization.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../freemarker/cache/TemplateSourceMatcher.html" title="class in freemarker.cache">TemplateSourceMatcher</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../freemarker/cache/URLTemplateLoader.html" title="class in freemarker.cache">URLTemplateLoader</a></td>
<td class="colLast">
<div class="block">This is an abstract template loader that can load templates whose location can be described by an URL.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../freemarker/cache/WebappTemplateLoader.html" title="class in freemarker.cache">WebappTemplateLoader</a></td>
<td class="colLast">
<div class="block">A <a href="../../freemarker/cache/TemplateLoader.html" title="interface in freemarker.cache"><code>TemplateLoader</code></a> that uses streams reachable through <code>ServletContext.getResource(String)</code> as its source
of templates.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Exception Summary table, listing exceptions, and an explanation">
<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Exception</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../freemarker/cache/TemplateConfigurationFactoryException.html" title="class in freemarker.cache">TemplateConfigurationFactoryException</a></td>
<td class="colLast">
<div class="block">Non-I/O exception thrown by <a href="../../freemarker/cache/TemplateConfigurationFactory.html" title="class in freemarker.cache"><code>TemplateConfigurationFactory</code></a>-s.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="package.description">
<!-- -->
</a>
<h2 title="Package freemarker.cache Description">Package freemarker.cache Description</h2>
<div class="block"><p>Template <em>loading</em> and caching.
Beside the actual template cache, it contains loaders that can load template
files from the file system, from the classpath, or from a web application
context. If you have specific needs, you can plug custom template loaders into
the system by implementing the template loader interface.
</p></div>
</div>
<!-- ======= 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 class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.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>Prev&nbsp;Package</li>
<li><a href="../../freemarker/core/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?freemarker/cache/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.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>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>