<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<title>ResourceLoader xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../apidocs/org/apache/velocity/runtime/resource/loader/ResourceLoader.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <strong class="jxr_keyword">package</strong> org.apache.velocity.runtime.resource.loader;
<a name="2" href="#2">2</a>   
<a name="3" href="#3">3</a>   <em class="jxr_comment">/*</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> *</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a name="19" href="#19">19</a>  <em class="jxr_comment"> * under the License.    </em>
<a name="20" href="#20">20</a>  <em class="jxr_comment"> */</em>
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.InputStream;
<a name="23" href="#23">23</a>  
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.runtime.RuntimeServices;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.runtime.log.Log;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.runtime.resource.Resource;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.runtime.resource.ResourceCacheImpl;
<a name="28" href="#28">28</a>  
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.exception.ResourceNotFoundException;
<a name="30" href="#30">30</a>  
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.collections.ExtendedProperties;
<a name="32" href="#32">32</a>  
<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment">/**</em>
<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> * This is abstract class the all text resource loaders should</em>
<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> * extend.</em>
<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> *</em>
<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:jvanzyl@apache.org" target="alexandria_uri">mailto:jvanzyl@apache.org</a>"&gt;Jason van Zyl&lt;/a&gt;</em>
<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:geirm@optonline.net" target="alexandria_uri">mailto:geirm@optonline.net</a>"&gt;Geir Magnusson Jr.&lt;/a&gt;</em>
<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * @version $Id: ResourceLoader.java 463298 2006-10-12 16:10:32Z henning $</em>
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> */</em>
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/velocity/runtime/resource/loader/ResourceLoader.html">ResourceLoader</a>
<a name="42" href="#42">42</a>  {
<a name="43" href="#43">43</a>      <em class="jxr_javadoccomment">/**</em>
<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment">     * Does this loader want templates produced with it</em>
<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment">     * cached in the Runtime.</em>
<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment">     */</em>
<a name="47" href="#47">47</a>       <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isCachingOn = false;
<a name="48" href="#48">48</a>  
<a name="49" href="#49">49</a>      <em class="jxr_javadoccomment">/**</em>
<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment">     * This property will be passed on to the templates</em>
<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment">     * that are created with this loader.</em>
<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment">     */</em>
<a name="53" href="#53">53</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">long</strong> modificationCheckInterval = 2;
<a name="54" href="#54">54</a>  
<a name="55" href="#55">55</a>      <em class="jxr_javadoccomment">/**</em>
<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     * Class name for this loader, for logging/debuggin</em>
<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     * purposes.</em>
<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment">     */</em>
<a name="59" href="#59">59</a>      <strong class="jxr_keyword">protected</strong> String className = <strong class="jxr_keyword">null</strong>;
<a name="60" href="#60">60</a>  
<a name="61" href="#61">61</a>      <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/velocity/runtime/RuntimeServices.html">RuntimeServices</a> rsvc = <strong class="jxr_keyword">null</strong>;
<a name="62" href="#62">62</a>      <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/velocity/runtime/log/Log.html">Log</a> log = <strong class="jxr_keyword">null</strong>;
<a name="63" href="#63">63</a>  
<a name="64" href="#64">64</a>      <em class="jxr_javadoccomment">/**</em>
<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">     * This initialization is used by all resource</em>
<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment">     * loaders and must be called to set up common</em>
<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment">     * properties shared by all resource loaders</em>
<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     * @param rs</em>
<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     * @param configuration</em>
<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     */</em>
<a name="71" href="#71">71</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> commonInit( RuntimeServices rs, ExtendedProperties configuration)
<a name="72" href="#72">72</a>      {
<a name="73" href="#73">73</a>          <strong class="jxr_keyword">this</strong>.rsvc = rs;
<a name="74" href="#74">74</a>          <strong class="jxr_keyword">this</strong>.log = rsvc.getLog();
<a name="75" href="#75">75</a>  
<a name="76" href="#76">76</a>          <em class="jxr_comment">/*</em>
<a name="77" href="#77">77</a>  <em class="jxr_comment">         *  these two properties are not required for all loaders.</em>
<a name="78" href="#78">78</a>  <em class="jxr_comment">         *  For example, for ClasspathLoader, what would cache mean?</em>
<a name="79" href="#79">79</a>  <em class="jxr_comment">         *  so adding default values which I think are the safest</em>
<a name="80" href="#80">80</a>  <em class="jxr_comment">         *</em>
<a name="81" href="#81">81</a>  <em class="jxr_comment">         *  don't cache, and modCheckInterval irrelevant...</em>
<a name="82" href="#82">82</a>  <em class="jxr_comment">         */</em>
<a name="83" href="#83">83</a>  
<a name="84" href="#84">84</a>          <strong class="jxr_keyword">try</strong>
<a name="85" href="#85">85</a>          {
<a name="86" href="#86">86</a>              isCachingOn = configuration.getBoolean(<span class="jxr_string">"cache"</span>, false);
<a name="87" href="#87">87</a>          }
<a name="88" href="#88">88</a>          <strong class="jxr_keyword">catch</strong> (Exception e)
<a name="89" href="#89">89</a>          {
<a name="90" href="#90">90</a>              isCachingOn = false;
<a name="91" href="#91">91</a>              log.error(<span class="jxr_string">"Exception using default of '"</span> + isCachingOn + '\'', e);
<a name="92" href="#92">92</a>          }
<a name="93" href="#93">93</a>          <strong class="jxr_keyword">try</strong>
<a name="94" href="#94">94</a>          {
<a name="95" href="#95">95</a>              modificationCheckInterval = configuration.getLong(<span class="jxr_string">"modificationCheckInterval"</span>, 0);
<a name="96" href="#96">96</a>          }
<a name="97" href="#97">97</a>          <strong class="jxr_keyword">catch</strong> (Exception e)
<a name="98" href="#98">98</a>          {
<a name="99" href="#99">99</a>              modificationCheckInterval = 0;
<a name="100" href="#100">100</a>             log.error(<span class="jxr_string">"Exception using default of '"</span> +
<a name="101" href="#101">101</a>                       modificationCheckInterval + '\'', e);
<a name="102" href="#102">102</a>         }
<a name="103" href="#103">103</a> 
<a name="104" href="#104">104</a>         <em class="jxr_comment">/*</em>
<a name="105" href="#105">105</a> <em class="jxr_comment">         * this is a must!</em>
<a name="106" href="#106">106</a> <em class="jxr_comment">         */</em>
<a name="107" href="#107">107</a>         className = ResourceCacheImpl.<strong class="jxr_keyword">class</strong>.getName();
<a name="108" href="#108">108</a>         <strong class="jxr_keyword">try</strong>
<a name="109" href="#109">109</a>         {
<a name="110" href="#110">110</a>             className = configuration.getString(<span class="jxr_string">"class"</span>, className);
<a name="111" href="#111">111</a>         }
<a name="112" href="#112">112</a>         <strong class="jxr_keyword">catch</strong> (Exception e)
<a name="113" href="#113">113</a>         {
<a name="114" href="#114">114</a>             log.error(<span class="jxr_string">"Exception using default of '"</span> + className + '\'', e);
<a name="115" href="#115">115</a>         }
<a name="116" href="#116">116</a>     }
<a name="117" href="#117">117</a> 
<a name="118" href="#118">118</a>     <em class="jxr_javadoccomment">/**</em>
<a name="119" href="#119">119</a> <em class="jxr_javadoccomment">     * Initialize the template loader with a</em>
<a name="120" href="#120">120</a> <em class="jxr_javadoccomment">     * a resources class.</em>
<a name="121" href="#121">121</a> <em class="jxr_javadoccomment">     * @param configuration</em>
<a name="122" href="#122">122</a> <em class="jxr_javadoccomment">     */</em>
<a name="123" href="#123">123</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">void</strong> init( ExtendedProperties configuration);
<a name="124" href="#124">124</a> 
<a name="125" href="#125">125</a>     <em class="jxr_javadoccomment">/**</em>
<a name="126" href="#126">126</a> <em class="jxr_javadoccomment">     * Get the InputStream that the Runtime will parse</em>
<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">     * to create a template.</em>
<a name="128" href="#128">128</a> <em class="jxr_javadoccomment">     * @param source</em>
<a name="129" href="#129">129</a> <em class="jxr_javadoccomment">     * @return The input stream for the requested resource.</em>
<a name="130" href="#130">130</a> <em class="jxr_javadoccomment">     * @throws ResourceNotFoundException</em>
<a name="131" href="#131">131</a> <em class="jxr_javadoccomment">     */</em>
<a name="132" href="#132">132</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> InputStream getResourceStream( String source )
<a name="133" href="#133">133</a>         <strong class="jxr_keyword">throws</strong> ResourceNotFoundException;
<a name="134" href="#134">134</a> 
<a name="135" href="#135">135</a>     <em class="jxr_javadoccomment">/**</em>
<a name="136" href="#136">136</a> <em class="jxr_javadoccomment">     * Given a template, check to see if the source of InputStream</em>
<a name="137" href="#137">137</a> <em class="jxr_javadoccomment">     * has been modified.</em>
<a name="138" href="#138">138</a> <em class="jxr_javadoccomment">     * @param resource</em>
<a name="139" href="#139">139</a> <em class="jxr_javadoccomment">     * @return True if the resource has been modified.</em>
<a name="140" href="#140">140</a> <em class="jxr_javadoccomment">     */</em>
<a name="141" href="#141">141</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">boolean</strong> isSourceModified(<a href="../../../../../../org/apache/velocity/runtime/resource/Resource.html">Resource</a> resource);
<a name="142" href="#142">142</a> 
<a name="143" href="#143">143</a>     <em class="jxr_javadoccomment">/**</em>
<a name="144" href="#144">144</a> <em class="jxr_javadoccomment">     * Get the last modified time of the InputStream source</em>
<a name="145" href="#145">145</a> <em class="jxr_javadoccomment">     * that was used to create the template. We need the template</em>
<a name="146" href="#146">146</a> <em class="jxr_javadoccomment">     * here because we have to extract the name of the template</em>
<a name="147" href="#147">147</a> <em class="jxr_javadoccomment">     * in order to locate the InputStream source.</em>
<a name="148" href="#148">148</a> <em class="jxr_javadoccomment">     * @param resource</em>
<a name="149" href="#149">149</a> <em class="jxr_javadoccomment">     * @return Time in millis when the resource has been modified.</em>
<a name="150" href="#150">150</a> <em class="jxr_javadoccomment">     */</em>
<a name="151" href="#151">151</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">long</strong> getLastModified(<a href="../../../../../../org/apache/velocity/runtime/resource/Resource.html">Resource</a> resource);
<a name="152" href="#152">152</a> 
<a name="153" href="#153">153</a>     <em class="jxr_javadoccomment">/**</em>
<a name="154" href="#154">154</a> <em class="jxr_javadoccomment">     * Return the class name of this resource Loader</em>
<a name="155" href="#155">155</a> <em class="jxr_javadoccomment">     * @return Class name of the resource loader.</em>
<a name="156" href="#156">156</a> <em class="jxr_javadoccomment">     */</em>
<a name="157" href="#157">157</a>     <strong class="jxr_keyword">public</strong> String getClassName()
<a name="158" href="#158">158</a>     {
<a name="159" href="#159">159</a>         <strong class="jxr_keyword">return</strong> className;
<a name="160" href="#160">160</a>     }
<a name="161" href="#161">161</a> 
<a name="162" href="#162">162</a>     <em class="jxr_javadoccomment">/**</em>
<a name="163" href="#163">163</a> <em class="jxr_javadoccomment">     * Set the caching state. If true, then this loader</em>
<a name="164" href="#164">164</a> <em class="jxr_javadoccomment">     * would like the Runtime to cache templates that</em>
<a name="165" href="#165">165</a> <em class="jxr_javadoccomment">     * have been created with InputStreams provided</em>
<a name="166" href="#166">166</a> <em class="jxr_javadoccomment">     * by this loader.</em>
<a name="167" href="#167">167</a> <em class="jxr_javadoccomment">     * @param value</em>
<a name="168" href="#168">168</a> <em class="jxr_javadoccomment">     */</em>
<a name="169" href="#169">169</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setCachingOn(<strong class="jxr_keyword">boolean</strong> value)
<a name="170" href="#170">170</a>     {
<a name="171" href="#171">171</a>         isCachingOn = value;
<a name="172" href="#172">172</a>     }
<a name="173" href="#173">173</a> 
<a name="174" href="#174">174</a>     <em class="jxr_javadoccomment">/**</em>
<a name="175" href="#175">175</a> <em class="jxr_javadoccomment">     * The Runtime uses this to find out whether this</em>
<a name="176" href="#176">176</a> <em class="jxr_javadoccomment">     * template loader wants the Runtime to cache</em>
<a name="177" href="#177">177</a> <em class="jxr_javadoccomment">     * templates created with InputStreams provided</em>
<a name="178" href="#178">178</a> <em class="jxr_javadoccomment">     * by this loader.</em>
<a name="179" href="#179">179</a> <em class="jxr_javadoccomment">     * @return True if this resource loader caches.</em>
<a name="180" href="#180">180</a> <em class="jxr_javadoccomment">     */</em>
<a name="181" href="#181">181</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isCachingOn()
<a name="182" href="#182">182</a>     {
<a name="183" href="#183">183</a>         <strong class="jxr_keyword">return</strong> isCachingOn;
<a name="184" href="#184">184</a>     }
<a name="185" href="#185">185</a> 
<a name="186" href="#186">186</a>     <em class="jxr_javadoccomment">/**</em>
<a name="187" href="#187">187</a> <em class="jxr_javadoccomment">     * Set the interval at which the InputStream source</em>
<a name="188" href="#188">188</a> <em class="jxr_javadoccomment">     * should be checked for modifications.</em>
<a name="189" href="#189">189</a> <em class="jxr_javadoccomment">     * @param modificationCheckInterval</em>
<a name="190" href="#190">190</a> <em class="jxr_javadoccomment">     */</em>
<a name="191" href="#191">191</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setModificationCheckInterval(<strong class="jxr_keyword">long</strong> modificationCheckInterval)
<a name="192" href="#192">192</a>     {
<a name="193" href="#193">193</a>         <strong class="jxr_keyword">this</strong>.modificationCheckInterval = modificationCheckInterval;
<a name="194" href="#194">194</a>     }
<a name="195" href="#195">195</a> 
<a name="196" href="#196">196</a>     <em class="jxr_javadoccomment">/**</em>
<a name="197" href="#197">197</a> <em class="jxr_javadoccomment">     * Get the interval at which the InputStream source</em>
<a name="198" href="#198">198</a> <em class="jxr_javadoccomment">     * should be checked for modifications.</em>
<a name="199" href="#199">199</a> <em class="jxr_javadoccomment">     * @return The modification check interval.</em>
<a name="200" href="#200">200</a> <em class="jxr_javadoccomment">     */</em>
<a name="201" href="#201">201</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">long</strong> getModificationCheckInterval()
<a name="202" href="#202">202</a>     {
<a name="203" href="#203">203</a>         <strong class="jxr_keyword">return</strong> modificationCheckInterval;
<a name="204" href="#204">204</a>     }
<a name="205" href="#205">205</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

