blob: 9d32c60870d376c11dcf44404510dd55940a6b11 [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>ClassTemplateLoader (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="ClassTemplateLoader (FreeMarker 2.3.32 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":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/ClassTemplateLoader.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/cache/CacheStorageWithGetSize.html" title="interface in freemarker.cache"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../freemarker/cache/ConcurrentCacheStorage.html" title="interface in freemarker.cache"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?freemarker/cache/ClassTemplateLoader.html" target="_top">Frames</a></li>
<li><a href="ClassTemplateLoader.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>Field&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>Field&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.cache</div>
<h2 title="Class ClassTemplateLoader" class="title">Class ClassTemplateLoader</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../freemarker/cache/URLTemplateLoader.html" title="class in freemarker.cache">freemarker.cache.URLTemplateLoader</a></li>
<li>
<ul class="inheritance">
<li>freemarker.cache.ClassTemplateLoader</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/cache/TemplateLoader.html" title="interface in freemarker.cache">TemplateLoader</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">ClassTemplateLoader</span>
extends <a href="../../freemarker/cache/URLTemplateLoader.html" title="class in freemarker.cache">URLTemplateLoader</a></pre>
<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". Naturally, it can load from jar files, or from
anywhere where Java can load classes from. Internally, it uses <code>Class.getResource(String)</code> or
<code>ClassLoader.getResource(String)</code> to load templates.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== 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/cache/ClassTemplateLoader.html#ClassTemplateLoader--">ClassTemplateLoader</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">It's a confusing constructor, and seldom useful; use <a href="../../freemarker/cache/ClassTemplateLoader.html#ClassTemplateLoader-java.lang.Class-java.lang.String-"><code>ClassTemplateLoader(Class, String)</code></a>
instead.</span></div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../freemarker/cache/ClassTemplateLoader.html#ClassTemplateLoader-java.lang.Class-">ClassTemplateLoader</a></span>(java.lang.Class&lt;?&gt;&nbsp;resourceLoaderClass)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">It's confusing that the base path is <code>""</code>; use <a href="../../freemarker/cache/ClassTemplateLoader.html#ClassTemplateLoader-java.lang.Class-java.lang.String-"><code>ClassTemplateLoader(Class, String)</code></a>
instead.</span></div>
</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../freemarker/cache/ClassTemplateLoader.html#ClassTemplateLoader-java.lang.Class-java.lang.String-">ClassTemplateLoader</a></span>(java.lang.Class&lt;?&gt;&nbsp;resourceLoaderClass,
java.lang.String&nbsp;basePackagePath)</code>
<div class="block">Creates a template loader that will use the <code>Class.getResource(String)</code> method of the specified class to
load the resources, and the specified base package path (absolute or relative).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../freemarker/cache/ClassTemplateLoader.html#ClassTemplateLoader-java.lang.ClassLoader-java.lang.String-">ClassTemplateLoader</a></span>(java.lang.ClassLoader&nbsp;classLoader,
java.lang.String&nbsp;basePackagePath)</code>
<div class="block">Similar to <a href="../../freemarker/cache/ClassTemplateLoader.html#ClassTemplateLoader-java.lang.Class-java.lang.String-"><code>ClassTemplateLoader(Class, String)</code></a>, but instead of <code>Class.getResource(String)</code> it uses
<code>ClassLoader.getResource(String)</code>.</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>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/cache/ClassTemplateLoader.html#getBasePackagePath--">getBasePackagePath</a></span>()</code>
<div class="block">See the similar parameter of <a href="../../freemarker/cache/ClassTemplateLoader.html#ClassTemplateLoader-java.lang.ClassLoader-java.lang.String-"><code>ClassTemplateLoader(ClassLoader, String)</code></a>; note that this is a normalized
version of what was actually passed to the constructor.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>java.lang.ClassLoader</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/cache/ClassTemplateLoader.html#getClassLoader--">getClassLoader</a></span>()</code>
<div class="block">See the similar parameter of <a href="../../freemarker/cache/ClassTemplateLoader.html#ClassTemplateLoader-java.lang.ClassLoader-java.lang.String-"><code>ClassTemplateLoader(ClassLoader, String)</code></a>; <code>null</code> when other mechanism
is used to load the resources.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>java.lang.Class</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/cache/ClassTemplateLoader.html#getResourceLoaderClass--">getResourceLoaderClass</a></span>()</code>
<div class="block">See the similar parameter of <a href="../../freemarker/cache/ClassTemplateLoader.html#ClassTemplateLoader-java.lang.Class-java.lang.String-"><code>ClassTemplateLoader(Class, String)</code></a>; <code>null</code> when other mechanism is
used to load the resources.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected java.net.URL</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../freemarker/cache/ClassTemplateLoader.html#getURL-java.lang.String-">getURL</a></span>(java.lang.String&nbsp;name)</code>
<div class="block">Given a template name (plus potential locale decorations) retrieves
an URL that points the template source.</div>
</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/cache/ClassTemplateLoader.html#toString--">toString</a></span>()</code>
<div class="block">Show class name and some details that are useful in template-not-found errors.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.freemarker.cache.URLTemplateLoader">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;freemarker.cache.<a href="../../freemarker/cache/URLTemplateLoader.html" title="class in freemarker.cache">URLTemplateLoader</a></h3>
<code><a href="../../freemarker/cache/URLTemplateLoader.html#canonicalizePrefix-java.lang.String-">canonicalizePrefix</a>, <a href="../../freemarker/cache/URLTemplateLoader.html#closeTemplateSource-java.lang.Object-">closeTemplateSource</a>, <a href="../../freemarker/cache/URLTemplateLoader.html#findTemplateSource-java.lang.String-">findTemplateSource</a>, <a href="../../freemarker/cache/URLTemplateLoader.html#getLastModified-java.lang.Object-">getLastModified</a>, <a href="../../freemarker/cache/URLTemplateLoader.html#getReader-java.lang.Object-java.lang.String-">getReader</a>, <a href="../../freemarker/cache/URLTemplateLoader.html#getURLConnectionUsesCaches--">getURLConnectionUsesCaches</a>, <a href="../../freemarker/cache/URLTemplateLoader.html#setURLConnectionUsesCaches-java.lang.Boolean-">setURLConnectionUsesCaches</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&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="ClassTemplateLoader--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ClassTemplateLoader</h4>
<pre>@Deprecated
public&nbsp;ClassTemplateLoader()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">It's a confusing constructor, and seldom useful; use <a href="../../freemarker/cache/ClassTemplateLoader.html#ClassTemplateLoader-java.lang.Class-java.lang.String-"><code>ClassTemplateLoader(Class, String)</code></a>
instead.</span></div>
<div class="block">Creates a template loader that will use the <code>Class.getResource(String)</code> method of its own class to load the
resources, and <code>"/"</code> as base package path. This means that that template paths will be resolved relatively
the root package of the class hierarchy, so you hardly ever should use this constructor, rather do something like
this:<br>
<a href="../../freemarker/cache/ClassTemplateLoader.html#ClassTemplateLoader-java.lang.Class-java.lang.String-"><code>new ClassTemplateLoader(com.example.myapplication.SomeClass.class,
"templates")</code></a>
<p>
If you extend this class, then the extending class will be used to load the resources.</div>
</li>
</ul>
<a name="ClassTemplateLoader-java.lang.Class-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ClassTemplateLoader</h4>
<pre>@Deprecated
public&nbsp;ClassTemplateLoader(java.lang.Class&lt;?&gt;&nbsp;resourceLoaderClass)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">It's confusing that the base path is <code>""</code>; use <a href="../../freemarker/cache/ClassTemplateLoader.html#ClassTemplateLoader-java.lang.Class-java.lang.String-"><code>ClassTemplateLoader(Class, String)</code></a>
instead.</span></div>
<div class="block">Creates a template loader that will use the <code>Class.getResource(String)</code> method of the specified class to
load the resources, and <code>""</code> as base package path. This means that template paths will be resolved
relatively to the class location, that is, relatively to the directory (package) of the class.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>resourceLoaderClass</code> - the class whose <code>Class.getResource(String)</code> will be used to load the templates.</dd>
</dl>
</li>
</ul>
<a name="ClassTemplateLoader-java.lang.Class-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ClassTemplateLoader</h4>
<pre>public&nbsp;ClassTemplateLoader(java.lang.Class&lt;?&gt;&nbsp;resourceLoaderClass,
java.lang.String&nbsp;basePackagePath)</pre>
<div class="block">Creates a template loader that will use the <code>Class.getResource(String)</code> method of the specified class to
load the resources, and the specified base package path (absolute or relative).
<p>
Examples:
<ul>
<li>Relative base path (will load from the <code>com.example.myapplication.templates</code> package):<br>
<code>new ClassTemplateLoader(com.example.myapplication.SomeClass.class, "templates")</code>
<li>Absolute base path:<br>
<code>new ClassTemplateLoader(somepackage.SomeClass.class, "/com/example/myapplication/templates")</code>
</ul></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>resourceLoaderClass</code> - The class whose <code>Class.getResource(String)</code> method will be used to load the templates. Be sure
that you chose a class whose defining class-loader sees the templates. This parameter can't be
<code>null</code>.</dd>
<dd><code>basePackagePath</code> - The package that contains the templates, in path (<code>/</code>-separated) format. If it doesn't start
with a <code>/</code> then it's relative to the path (package) of the <code>resourceLoaderClass</code> class. If
it starts with <code>/</code> then it's relative to the root of the package hierarchy. Note that path
components should be separated by forward slashes independently of the separator character used by the
underlying operating system. This parameter can't be <code>null</code>.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../freemarker/cache/ClassTemplateLoader.html#ClassTemplateLoader-java.lang.ClassLoader-java.lang.String-"><code>ClassTemplateLoader(ClassLoader, String)</code></a></dd>
</dl>
</li>
</ul>
<a name="ClassTemplateLoader-java.lang.ClassLoader-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ClassTemplateLoader</h4>
<pre>public&nbsp;ClassTemplateLoader(java.lang.ClassLoader&nbsp;classLoader,
java.lang.String&nbsp;basePackagePath)</pre>
<div class="block">Similar to <a href="../../freemarker/cache/ClassTemplateLoader.html#ClassTemplateLoader-java.lang.Class-java.lang.String-"><code>ClassTemplateLoader(Class, String)</code></a>, but instead of <code>Class.getResource(String)</code> it uses
<code>ClassLoader.getResource(String)</code>. Because a <code>ClassLoader</code> isn't bound to any Java package, it
doesn't mater if the <code>basePackagePath</code> starts with <code>/</code> or not, it will be always relative to the root
of the package hierarchy</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="getURL-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getURL</h4>
<pre>protected&nbsp;java.net.URL&nbsp;getURL(java.lang.String&nbsp;name)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../freemarker/cache/URLTemplateLoader.html#getURL-java.lang.String-">URLTemplateLoader</a></code></span></div>
<div class="block">Given a template name (plus potential locale decorations) retrieves
an URL that points the template source.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../freemarker/cache/URLTemplateLoader.html#getURL-java.lang.String-">getURL</a></code>&nbsp;in class&nbsp;<code><a href="../../freemarker/cache/URLTemplateLoader.html" title="class in freemarker.cache">URLTemplateLoader</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the name of the sought template, including the locale
decorations.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an URL that points to the template source, or <code>null</code> if the template does not exist.</dd>
</dl>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;java.lang.String&nbsp;toString()</pre>
<div class="block">Show class name and some details that are useful in template-not-found errors.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.21</dd>
</dl>
</li>
</ul>
<a name="getResourceLoaderClass--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getResourceLoaderClass</h4>
<pre>public&nbsp;java.lang.Class&nbsp;getResourceLoaderClass()</pre>
<div class="block">See the similar parameter of <a href="../../freemarker/cache/ClassTemplateLoader.html#ClassTemplateLoader-java.lang.Class-java.lang.String-"><code>ClassTemplateLoader(Class, String)</code></a>; <code>null</code> when other mechanism is
used to load the resources.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="getClassLoader--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getClassLoader</h4>
<pre>public&nbsp;java.lang.ClassLoader&nbsp;getClassLoader()</pre>
<div class="block">See the similar parameter of <a href="../../freemarker/cache/ClassTemplateLoader.html#ClassTemplateLoader-java.lang.ClassLoader-java.lang.String-"><code>ClassTemplateLoader(ClassLoader, String)</code></a>; <code>null</code> when other mechanism
is used to load the resources.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
<a name="getBasePackagePath--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getBasePackagePath</h4>
<pre>public&nbsp;java.lang.String&nbsp;getBasePackagePath()</pre>
<div class="block">See the similar parameter of <a href="../../freemarker/cache/ClassTemplateLoader.html#ClassTemplateLoader-java.lang.ClassLoader-java.lang.String-"><code>ClassTemplateLoader(ClassLoader, String)</code></a>; note that this is a normalized
version of what was actually passed to the constructor.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3.22</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ClassTemplateLoader.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/cache/CacheStorageWithGetSize.html" title="interface in freemarker.cache"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../freemarker/cache/ConcurrentCacheStorage.html" title="interface in freemarker.cache"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../index.html?freemarker/cache/ClassTemplateLoader.html" target="_top">Frames</a></li>
<li><a href="ClassTemplateLoader.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>Field&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>Field&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>