<!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>VelocityEngine xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/apache/velocity/app/VelocityEngine.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <strong class="jxr_keyword">package</strong> org.apache.velocity.app;
<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.BufferedReader;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.InputStream;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.InputStreamReader;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.io.Reader;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.io.StringReader;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.io.UnsupportedEncodingException;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.io.Writer;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
<a name="31" href="#31">31</a>  
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.collections.ExtendedProperties;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.Template;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.context.Context;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.context.InternalContextAdapterImpl;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.exception.MethodInvocationException;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.exception.ParseErrorException;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.exception.ResourceNotFoundException;
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.exception.TemplateInitException;
<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.runtime.RuntimeConstants;
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.runtime.RuntimeInstance;
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.runtime.log.Log;
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.runtime.parser.ParseException;
<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.runtime.parser.node.SimpleNode;
<a name="45" href="#45">45</a>  
<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment">/**</em>
<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> * This class provides a separate new-able instance of the</em>
<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> * Velocity template engine.  The alternative model for use</em>
<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment"> * is using the Velocity class which employs the singleton</em>
<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment"> * model.</em>
<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment"> * &lt;/p&gt;</em>
<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment"> *</em>
<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment"> * Please ensure that you call one of the init() variants.</em>
<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment"> * This is critical for proper behavior.</em>
<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment"> * &lt;/p&gt;</em>
<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment"> *</em>
<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment"> * &lt;p&gt; Coming soon : Velocity will call</em>
<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment"> * the parameter-less init() at the first use of this class</em>
<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment"> * if the init() wasn't explicitly called.  While this will</em>
<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment"> * ensure that Velocity functions, it almost certainly won't</em>
<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment"> * function in the way you intend, so please make sure to</em>
<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment"> * call init().</em>
<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment"> * &lt;/p&gt;</em>
<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment"> *</em>
<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment"> * @version $Id: VelocityEngine.java 471381 2006-11-05 08:56:58Z wglass $</em>
<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment"> */</em>
<a name="69" href="#69">69</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/velocity/app/VelocityEngine.html">VelocityEngine</a> implements <a href="../../../../org/apache/velocity/runtime/RuntimeConstants.html">RuntimeConstants</a>
<a name="70" href="#70">70</a>  {
<a name="71" href="#71">71</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/velocity/runtime/RuntimeInstance.html">RuntimeInstance</a> ri = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/velocity/runtime/RuntimeInstance.html">RuntimeInstance</a>();
<a name="72" href="#72">72</a>  
<a name="73" href="#73">73</a>  
<a name="74" href="#74">74</a>      <em class="jxr_javadoccomment">/**</em>
<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment">     *  Init-less CTOR</em>
<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     */</em>
<a name="77" href="#77">77</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/velocity/app/VelocityEngine.html">VelocityEngine</a>()
<a name="78" href="#78">78</a>      {
<a name="79" href="#79">79</a>          <em class="jxr_comment">// do nothing</em>
<a name="80" href="#80">80</a>      }
<a name="81" href="#81">81</a>  
<a name="82" href="#82">82</a>      <em class="jxr_javadoccomment">/**</em>
<a name="83" href="#83">83</a>  <em class="jxr_javadoccomment">     *  CTOR that invokes an init(String), initializing</em>
<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment">     *  the engine using the properties file specified</em>
<a name="85" href="#85">85</a>  <em class="jxr_javadoccomment">     *</em>
<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment">     * @param propsFilename name of properties file to init with</em>
<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     * @throws Exception</em>
<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     */</em>
<a name="89" href="#89">89</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/velocity/app/VelocityEngine.html">VelocityEngine</a>(String propsFilename)
<a name="90" href="#90">90</a>          <strong class="jxr_keyword">throws</strong> Exception
<a name="91" href="#91">91</a>      {
<a name="92" href="#92">92</a>          ri.init(propsFilename);
<a name="93" href="#93">93</a>      }
<a name="94" href="#94">94</a>  
<a name="95" href="#95">95</a>      <em class="jxr_javadoccomment">/**</em>
<a name="96" href="#96">96</a>  <em class="jxr_javadoccomment">     *  CTOR that invokes an init(String), initializing</em>
<a name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     *  the engine using the Properties specified</em>
<a name="98" href="#98">98</a>  <em class="jxr_javadoccomment">     *</em>
<a name="99" href="#99">99</a>  <em class="jxr_javadoccomment">     * @param p name of properties  to init with</em>
<a name="100" href="#100">100</a> <em class="jxr_javadoccomment">     * @throws Exception</em>
<a name="101" href="#101">101</a> <em class="jxr_javadoccomment">     */</em>
<a name="102" href="#102">102</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/velocity/app/VelocityEngine.html">VelocityEngine</a>(Properties p)
<a name="103" href="#103">103</a>         <strong class="jxr_keyword">throws</strong> Exception
<a name="104" href="#104">104</a>     {
<a name="105" href="#105">105</a>         ri.init(p);
<a name="106" href="#106">106</a>     }
<a name="107" href="#107">107</a> 
<a name="108" href="#108">108</a>     <em class="jxr_javadoccomment">/**</em>
<a name="109" href="#109">109</a> <em class="jxr_javadoccomment">     *  initialize the Velocity runtime engine, using the default</em>
<a name="110" href="#110">110</a> <em class="jxr_javadoccomment">     *  properties of the Velocity distribution</em>
<a name="111" href="#111">111</a> <em class="jxr_javadoccomment">     * @throws Exception</em>
<a name="112" href="#112">112</a> <em class="jxr_javadoccomment">     */</em>
<a name="113" href="#113">113</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> init()
<a name="114" href="#114">114</a>         <strong class="jxr_keyword">throws</strong> Exception
<a name="115" href="#115">115</a>     {
<a name="116" href="#116">116</a>         ri.init();
<a name="117" href="#117">117</a>     }
<a name="118" href="#118">118</a> 
<a name="119" href="#119">119</a>     <em class="jxr_javadoccomment">/**</em>
<a name="120" href="#120">120</a> <em class="jxr_javadoccomment">     *  initialize the Velocity runtime engine, using default properties</em>
<a name="121" href="#121">121</a> <em class="jxr_javadoccomment">     *  plus the properties in the properties file passed in as the arg</em>
<a name="122" href="#122">122</a> <em class="jxr_javadoccomment">     *</em>
<a name="123" href="#123">123</a> <em class="jxr_javadoccomment">     *  @param propsFilename file containing properties to use to initialize</em>
<a name="124" href="#124">124</a> <em class="jxr_javadoccomment">     *         the Velocity runtime</em>
<a name="125" href="#125">125</a> <em class="jxr_javadoccomment">     * @throws Exception</em>
<a name="126" href="#126">126</a> <em class="jxr_javadoccomment">     */</em>
<a name="127" href="#127">127</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> init(String propsFilename)
<a name="128" href="#128">128</a>         <strong class="jxr_keyword">throws</strong> Exception
<a name="129" href="#129">129</a>     {
<a name="130" href="#130">130</a>         ri.init(propsFilename);
<a name="131" href="#131">131</a>     }
<a name="132" href="#132">132</a> 
<a name="133" href="#133">133</a>     <em class="jxr_javadoccomment">/**</em>
<a name="134" href="#134">134</a> <em class="jxr_javadoccomment">     *  initialize the Velocity runtime engine, using default properties</em>
<a name="135" href="#135">135</a> <em class="jxr_javadoccomment">     *  plus the properties in the passed in java.util.Properties object</em>
<a name="136" href="#136">136</a> <em class="jxr_javadoccomment">     *</em>
<a name="137" href="#137">137</a> <em class="jxr_javadoccomment">     *  @param p  Proprties object containing initialization properties</em>
<a name="138" href="#138">138</a> <em class="jxr_javadoccomment">     * @throws Exception</em>
<a name="139" href="#139">139</a> <em class="jxr_javadoccomment">     *</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">void</strong> init(Properties p)
<a name="142" href="#142">142</a>         <strong class="jxr_keyword">throws</strong> Exception
<a name="143" href="#143">143</a>     {
<a name="144" href="#144">144</a>         ri.init(p);
<a name="145" href="#145">145</a>     }
<a name="146" href="#146">146</a> 
<a name="147" href="#147">147</a>     <em class="jxr_javadoccomment">/**</em>
<a name="148" href="#148">148</a> <em class="jxr_javadoccomment">     * Set a Velocity Runtime property.</em>
<a name="149" href="#149">149</a> <em class="jxr_javadoccomment">     *</em>
<a name="150" href="#150">150</a> <em class="jxr_javadoccomment">     * @param  key</em>
<a name="151" href="#151">151</a> <em class="jxr_javadoccomment">     * @param  value</em>
<a name="152" href="#152">152</a> <em class="jxr_javadoccomment">     */</em>
<a name="153" href="#153">153</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setProperty(String key, Object value)
<a name="154" href="#154">154</a>     {
<a name="155" href="#155">155</a>         ri.setProperty(key,value);
<a name="156" href="#156">156</a>     }
<a name="157" href="#157">157</a> 
<a name="158" href="#158">158</a>     <em class="jxr_javadoccomment">/**</em>
<a name="159" href="#159">159</a> <em class="jxr_javadoccomment">     * Add a Velocity Runtime property.</em>
<a name="160" href="#160">160</a> <em class="jxr_javadoccomment">     *</em>
<a name="161" href="#161">161</a> <em class="jxr_javadoccomment">     * @param  key</em>
<a name="162" href="#162">162</a> <em class="jxr_javadoccomment">     * @param  value</em>
<a name="163" href="#163">163</a> <em class="jxr_javadoccomment">     */</em>
<a name="164" href="#164">164</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addProperty(String key, Object value)
<a name="165" href="#165">165</a>     {
<a name="166" href="#166">166</a>         ri.addProperty(key,value);
<a name="167" href="#167">167</a>     }
<a name="168" href="#168">168</a> 
<a name="169" href="#169">169</a>     <em class="jxr_javadoccomment">/**</em>
<a name="170" href="#170">170</a> <em class="jxr_javadoccomment">     * Clear a Velocity Runtime property.</em>
<a name="171" href="#171">171</a> <em class="jxr_javadoccomment">     *</em>
<a name="172" href="#172">172</a> <em class="jxr_javadoccomment">     * @param key of property to clear</em>
<a name="173" href="#173">173</a> <em class="jxr_javadoccomment">     */</em>
<a name="174" href="#174">174</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> clearProperty(String key)
<a name="175" href="#175">175</a>     {
<a name="176" href="#176">176</a>         ri.clearProperty(key);
<a name="177" href="#177">177</a>     }
<a name="178" href="#178">178</a> 
<a name="179" href="#179">179</a>     <em class="jxr_javadoccomment">/**</em>
<a name="180" href="#180">180</a> <em class="jxr_javadoccomment">     * Set an entire configuration at once. This is</em>
<a name="181" href="#181">181</a> <em class="jxr_javadoccomment">     * useful in cases where the parent application uses</em>
<a name="182" href="#182">182</a> <em class="jxr_javadoccomment">     * the ExtendedProperties class and the velocity configuration</em>
<a name="183" href="#183">183</a> <em class="jxr_javadoccomment">     * is a subset of the parent application's configuration.</em>
<a name="184" href="#184">184</a> <em class="jxr_javadoccomment">     *</em>
<a name="185" href="#185">185</a> <em class="jxr_javadoccomment">     * @param  configuration</em>
<a name="186" href="#186">186</a> <em class="jxr_javadoccomment">     *</em>
<a name="187" href="#187">187</a> <em class="jxr_javadoccomment">     */</em>
<a name="188" href="#188">188</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setExtendedProperties( ExtendedProperties configuration)
<a name="189" href="#189">189</a>     {
<a name="190" href="#190">190</a>         ri.setConfiguration( configuration );
<a name="191" href="#191">191</a>     }
<a name="192" href="#192">192</a> 
<a name="193" href="#193">193</a>     <em class="jxr_javadoccomment">/**</em>
<a name="194" href="#194">194</a> <em class="jxr_javadoccomment">     *  Get a Velocity Runtime property.</em>
<a name="195" href="#195">195</a> <em class="jxr_javadoccomment">     *</em>
<a name="196" href="#196">196</a> <em class="jxr_javadoccomment">     *  @param key property to retrieve</em>
<a name="197" href="#197">197</a> <em class="jxr_javadoccomment">     *  @return property value or null if the property</em>
<a name="198" href="#198">198</a> <em class="jxr_javadoccomment">     *        not currently set</em>
<a name="199" href="#199">199</a> <em class="jxr_javadoccomment">     */</em>
<a name="200" href="#200">200</a>     <strong class="jxr_keyword">public</strong> Object getProperty( String key )
<a name="201" href="#201">201</a>     {
<a name="202" href="#202">202</a>         <strong class="jxr_keyword">return</strong> ri.getProperty( key );
<a name="203" href="#203">203</a>     }
<a name="204" href="#204">204</a> 
<a name="205" href="#205">205</a>     <em class="jxr_javadoccomment">/**</em>
<a name="206" href="#206">206</a> <em class="jxr_javadoccomment">     *  renders the input string using the context into the output writer.</em>
<a name="207" href="#207">207</a> <em class="jxr_javadoccomment">     *  To be used when a template is dynamically constructed, or want to use</em>
<a name="208" href="#208">208</a> <em class="jxr_javadoccomment">     *  Velocity as a token replacer.</em>
<a name="209" href="#209">209</a> <em class="jxr_javadoccomment">     *</em>
<a name="210" href="#210">210</a> <em class="jxr_javadoccomment">     *  @param context context to use in rendering input string</em>
<a name="211" href="#211">211</a> <em class="jxr_javadoccomment">     *  @param out  Writer in which to render the output</em>
<a name="212" href="#212">212</a> <em class="jxr_javadoccomment">     *  @param logTag  string to be used as the template name for log</em>
<a name="213" href="#213">213</a> <em class="jxr_javadoccomment">     *                 messages in case of error</em>
<a name="214" href="#214">214</a> <em class="jxr_javadoccomment">     *  @param instring input string containing the VTL to be rendered</em>
<a name="215" href="#215">215</a> <em class="jxr_javadoccomment">     *</em>
<a name="216" href="#216">216</a> <em class="jxr_javadoccomment">     *  @return true if successful, false otherwise.  If false, see</em>
<a name="217" href="#217">217</a> <em class="jxr_javadoccomment">     *             Velocity runtime log</em>
<a name="218" href="#218">218</a> <em class="jxr_javadoccomment">     * @throws ParseErrorException</em>
<a name="219" href="#219">219</a> <em class="jxr_javadoccomment">     * @throws MethodInvocationException</em>
<a name="220" href="#220">220</a> <em class="jxr_javadoccomment">     * @throws ResourceNotFoundException</em>
<a name="221" href="#221">221</a> <em class="jxr_javadoccomment">     * @throws IOException</em>
<a name="222" href="#222">222</a> <em class="jxr_javadoccomment">     */</em>
<a name="223" href="#223">223</a>     <strong class="jxr_keyword">public</strong>  <strong class="jxr_keyword">boolean</strong> evaluate( Context context,  Writer out,
<a name="224" href="#224">224</a>                                      String logTag, String instring )
<a name="225" href="#225">225</a>         <strong class="jxr_keyword">throws</strong> ParseErrorException, MethodInvocationException,
<a name="226" href="#226">226</a>             ResourceNotFoundException, IOException
<a name="227" href="#227">227</a>     {
<a name="228" href="#228">228</a>         <strong class="jxr_keyword">return</strong> evaluate( context, out, logTag, <strong class="jxr_keyword">new</strong> BufferedReader( <strong class="jxr_keyword">new</strong> StringReader( instring )) );
<a name="229" href="#229">229</a>     }
<a name="230" href="#230">230</a> 
<a name="231" href="#231">231</a>     <em class="jxr_javadoccomment">/**</em>
<a name="232" href="#232">232</a> <em class="jxr_javadoccomment">     *  Renders the input stream using the context into the output writer.</em>
<a name="233" href="#233">233</a> <em class="jxr_javadoccomment">     *  To be used when a template is dynamically constructed, or want to</em>
<a name="234" href="#234">234</a> <em class="jxr_javadoccomment">     *  use Velocity as a token replacer.</em>
<a name="235" href="#235">235</a> <em class="jxr_javadoccomment">     *</em>
<a name="236" href="#236">236</a> <em class="jxr_javadoccomment">     *  @param context context to use in rendering input string</em>
<a name="237" href="#237">237</a> <em class="jxr_javadoccomment">     *  @param writer  Writer in which to render the output</em>
<a name="238" href="#238">238</a> <em class="jxr_javadoccomment">     *  @param logTag  string to be used as the template name for log messages</em>
<a name="239" href="#239">239</a> <em class="jxr_javadoccomment">     *                 in case of error</em>
<a name="240" href="#240">240</a> <em class="jxr_javadoccomment">     *  @param instream input stream containing the VTL to be rendered</em>
<a name="241" href="#241">241</a> <em class="jxr_javadoccomment">     *</em>
<a name="242" href="#242">242</a> <em class="jxr_javadoccomment">     *  @return true if successful, false otherwise.  If false, see</em>
<a name="243" href="#243">243</a> <em class="jxr_javadoccomment">     *               Velocity runtime log</em>
<a name="244" href="#244">244</a> <em class="jxr_javadoccomment">     * @throws ParseErrorException</em>
<a name="245" href="#245">245</a> <em class="jxr_javadoccomment">     * @throws MethodInvocationException</em>
<a name="246" href="#246">246</a> <em class="jxr_javadoccomment">     * @throws ResourceNotFoundException</em>
<a name="247" href="#247">247</a> <em class="jxr_javadoccomment">     * @throws IOException</em>
<a name="248" href="#248">248</a> <em class="jxr_javadoccomment">     *  @deprecated Use</em>
<a name="249" href="#249">249</a> <em class="jxr_javadoccomment">     *  {@link #evaluate( Context context, Writer writer,</em>
<a name="250" href="#250">250</a> <em class="jxr_javadoccomment">     *      String logTag, Reader reader ) }</em>
<a name="251" href="#251">251</a> <em class="jxr_javadoccomment">     */</em>
<a name="252" href="#252">252</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> evaluate( Context context, Writer writer,
<a name="253" href="#253">253</a>                                     String logTag, InputStream instream )
<a name="254" href="#254">254</a>         <strong class="jxr_keyword">throws</strong> ParseErrorException, MethodInvocationException,
<a name="255" href="#255">255</a>             ResourceNotFoundException, IOException
<a name="256" href="#256">256</a>     {
<a name="257" href="#257">257</a>         <em class="jxr_comment">/*</em>
<a name="258" href="#258">258</a> <em class="jxr_comment">         *  first, parse - convert ParseException if thrown</em>
<a name="259" href="#259">259</a> <em class="jxr_comment">         */</em>
<a name="260" href="#260">260</a>         BufferedReader br  = <strong class="jxr_keyword">null</strong>;
<a name="261" href="#261">261</a>         String encoding = <strong class="jxr_keyword">null</strong>;
<a name="262" href="#262">262</a> 
<a name="263" href="#263">263</a>         <strong class="jxr_keyword">try</strong>
<a name="264" href="#264">264</a>         {
<a name="265" href="#265">265</a>             encoding = ri.getString(INPUT_ENCODING,ENCODING_DEFAULT);
<a name="266" href="#266">266</a>             br = <strong class="jxr_keyword">new</strong> BufferedReader(  <strong class="jxr_keyword">new</strong> InputStreamReader( instream, encoding));
<a name="267" href="#267">267</a>         }
<a name="268" href="#268">268</a>         <strong class="jxr_keyword">catch</strong>( UnsupportedEncodingException  uce )
<a name="269" href="#269">269</a>         {
<a name="270" href="#270">270</a>             String msg = <span class="jxr_string">"Unsupported input encoding : "</span> + encoding
<a name="271" href="#271">271</a>                 + <span class="jxr_string">" for template "</span> + logTag;
<a name="272" href="#272">272</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/velocity/exception/ParseErrorException.html">ParseErrorException</a>( msg );
<a name="273" href="#273">273</a>         }
<a name="274" href="#274">274</a> 
<a name="275" href="#275">275</a>         <strong class="jxr_keyword">return</strong> evaluate( context, writer, logTag, br );
<a name="276" href="#276">276</a>     }
<a name="277" href="#277">277</a> 
<a name="278" href="#278">278</a>     <em class="jxr_javadoccomment">/**</em>
<a name="279" href="#279">279</a> <em class="jxr_javadoccomment">     *  Renders the input reader using the context into the output writer.</em>
<a name="280" href="#280">280</a> <em class="jxr_javadoccomment">     *  To be used when a template is dynamically constructed, or want to</em>
<a name="281" href="#281">281</a> <em class="jxr_javadoccomment">     *  use Velocity as a token replacer.</em>
<a name="282" href="#282">282</a> <em class="jxr_javadoccomment">     *</em>
<a name="283" href="#283">283</a> <em class="jxr_javadoccomment">     *  @param context context to use in rendering input string</em>
<a name="284" href="#284">284</a> <em class="jxr_javadoccomment">     *  @param writer  Writer in which to render the output</em>
<a name="285" href="#285">285</a> <em class="jxr_javadoccomment">     *  @param logTag  string to be used as the template name for log messages</em>
<a name="286" href="#286">286</a> <em class="jxr_javadoccomment">     *                 in case of error</em>
<a name="287" href="#287">287</a> <em class="jxr_javadoccomment">     *  @param reader Reader containing the VTL to be rendered</em>
<a name="288" href="#288">288</a> <em class="jxr_javadoccomment">     *</em>
<a name="289" href="#289">289</a> <em class="jxr_javadoccomment">     *  @return true if successful, false otherwise.  If false, see</em>
<a name="290" href="#290">290</a> <em class="jxr_javadoccomment">     *               Velocity runtime log</em>
<a name="291" href="#291">291</a> <em class="jxr_javadoccomment">     * @throws ParseErrorException</em>
<a name="292" href="#292">292</a> <em class="jxr_javadoccomment">     * @throws MethodInvocationException</em>
<a name="293" href="#293">293</a> <em class="jxr_javadoccomment">     * @throws ResourceNotFoundException</em>
<a name="294" href="#294">294</a> <em class="jxr_javadoccomment">     * @throws IOException</em>
<a name="295" href="#295">295</a> <em class="jxr_javadoccomment">     *</em>
<a name="296" href="#296">296</a> <em class="jxr_javadoccomment">     *  @since Velocity v1.1</em>
<a name="297" href="#297">297</a> <em class="jxr_javadoccomment">     */</em>
<a name="298" href="#298">298</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> evaluate(<a href="../../../../org/apache/velocity/context/Context.html">Context</a> context, Writer writer,
<a name="299" href="#299">299</a>                                     String logTag, Reader reader)
<a name="300" href="#300">300</a>         <strong class="jxr_keyword">throws</strong> ParseErrorException, MethodInvocationException,
<a name="301" href="#301">301</a>             ResourceNotFoundException,IOException
<a name="302" href="#302">302</a>     {
<a name="303" href="#303">303</a>         <a href="../../../../org/apache/velocity/runtime/parser/node/SimpleNode.html">SimpleNode</a> nodeTree = <strong class="jxr_keyword">null</strong>;
<a name="304" href="#304">304</a> 
<a name="305" href="#305">305</a>         <strong class="jxr_keyword">try</strong>
<a name="306" href="#306">306</a>         {
<a name="307" href="#307">307</a>             nodeTree = ri.parse(reader, logTag);
<a name="308" href="#308">308</a>         }
<a name="309" href="#309">309</a>         <strong class="jxr_keyword">catch</strong> (ParseException pex)
<a name="310" href="#310">310</a>         {
<a name="311" href="#311">311</a>             <strong class="jxr_keyword">throw</strong>  <strong class="jxr_keyword">new</strong> ParseErrorException( pex );
<a name="312" href="#312">312</a>         }
<a name="313" href="#313">313</a>         <strong class="jxr_keyword">catch</strong> (TemplateInitException pex)
<a name="314" href="#314">314</a>         {
<a name="315" href="#315">315</a>             <strong class="jxr_keyword">throw</strong>  <strong class="jxr_keyword">new</strong> ParseErrorException( pex );
<a name="316" href="#316">316</a>         }
<a name="317" href="#317">317</a> 
<a name="318" href="#318">318</a>         <em class="jxr_comment">/*</em>
<a name="319" href="#319">319</a> <em class="jxr_comment">         * now we want to init and render</em>
<a name="320" href="#320">320</a> <em class="jxr_comment">         */</em>
<a name="321" href="#321">321</a> 
<a name="322" href="#322">322</a>         <strong class="jxr_keyword">if</strong> (nodeTree != <strong class="jxr_keyword">null</strong>)
<a name="323" href="#323">323</a>         {
<a name="324" href="#324">324</a>             <a href="../../../../org/apache/velocity/context/InternalContextAdapterImpl.html">InternalContextAdapterImpl</a> ica =
<a name="325" href="#325">325</a>                 <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/velocity/context/InternalContextAdapterImpl.html">InternalContextAdapterImpl</a>( context );
<a name="326" href="#326">326</a> 
<a name="327" href="#327">327</a>             ica.pushCurrentTemplateName( logTag );
<a name="328" href="#328">328</a> 
<a name="329" href="#329">329</a>             <strong class="jxr_keyword">try</strong>
<a name="330" href="#330">330</a>             {
<a name="331" href="#331">331</a>                 <strong class="jxr_keyword">try</strong>
<a name="332" href="#332">332</a>                 {
<a name="333" href="#333">333</a>                     nodeTree.init( ica, ri );
<a name="334" href="#334">334</a>                 }
<a name="335" href="#335">335</a>                 <strong class="jxr_keyword">catch</strong> (TemplateInitException pex)
<a name="336" href="#336">336</a>                 {
<a name="337" href="#337">337</a>                     <strong class="jxr_keyword">throw</strong>  <strong class="jxr_keyword">new</strong> ParseErrorException( pex );
<a name="338" href="#338">338</a>                 }
<a name="339" href="#339">339</a>                 <em class="jxr_javadoccomment">/**</em>
<a name="340" href="#340">340</a> <em class="jxr_javadoccomment">                 * pass through application level runtime exceptions</em>
<a name="341" href="#341">341</a> <em class="jxr_javadoccomment">                 */</em>
<a name="342" href="#342">342</a>                 <strong class="jxr_keyword">catch</strong>( RuntimeException e )
<a name="343" href="#343">343</a>                 {
<a name="344" href="#344">344</a>                     <strong class="jxr_keyword">throw</strong> e;
<a name="345" href="#345">345</a>                 }
<a name="346" href="#346">346</a>                 <strong class="jxr_keyword">catch</strong>(Exception e)
<a name="347" href="#347">347</a>                 {
<a name="348" href="#348">348</a>                     getLog().error(<span class="jxr_string">"Velocity.evaluate() : init exception for tag = "</span>
<a name="349" href="#349">349</a>                                    + logTag, e);
<a name="350" href="#350">350</a>                 }
<a name="351" href="#351">351</a> 
<a name="352" href="#352">352</a>                 <em class="jxr_comment">/*</em>
<a name="353" href="#353">353</a> <em class="jxr_comment">                 *  now render, and let any exceptions fly</em>
<a name="354" href="#354">354</a> <em class="jxr_comment">                 */</em>
<a name="355" href="#355">355</a> 
<a name="356" href="#356">356</a>                 nodeTree.render( ica, writer );
<a name="357" href="#357">357</a>             }
<a name="358" href="#358">358</a>             <strong class="jxr_keyword">finally</strong>
<a name="359" href="#359">359</a>             {
<a name="360" href="#360">360</a>                 ica.popCurrentTemplateName();
<a name="361" href="#361">361</a>             }
<a name="362" href="#362">362</a> 
<a name="363" href="#363">363</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="364" href="#364">364</a>         }
<a name="365" href="#365">365</a> 
<a name="366" href="#366">366</a>         <strong class="jxr_keyword">return</strong> false;
<a name="367" href="#367">367</a>     }
<a name="368" href="#368">368</a> 
<a name="369" href="#369">369</a> 
<a name="370" href="#370">370</a>     <em class="jxr_javadoccomment">/**</em>
<a name="371" href="#371">371</a> <em class="jxr_javadoccomment">     *  Invokes a currently registered Velocimacro with the parms provided</em>
<a name="372" href="#372">372</a> <em class="jxr_javadoccomment">     *  and places the rendered stream into the writer.</em>
<a name="373" href="#373">373</a> <em class="jxr_javadoccomment">     *</em>
<a name="374" href="#374">374</a> <em class="jxr_javadoccomment">     *  Note : currently only accepts args to the VM if they are in the context.</em>
<a name="375" href="#375">375</a> <em class="jxr_javadoccomment">     *</em>
<a name="376" href="#376">376</a> <em class="jxr_javadoccomment">     *  @param vmName name of Velocimacro to call</em>
<a name="377" href="#377">377</a> <em class="jxr_javadoccomment">     *  @param logTag string to be used for template name in case of error</em>
<a name="378" href="#378">378</a> <em class="jxr_javadoccomment">     *  @param params args used to invoke Velocimacro. In context key format :</em>
<a name="379" href="#379">379</a> <em class="jxr_javadoccomment">     *                  eg  "foo","bar" (rather than "$foo","$bar")</em>
<a name="380" href="#380">380</a> <em class="jxr_javadoccomment">     *  @param context Context object containing data/objects used for rendering.</em>
<a name="381" href="#381">381</a> <em class="jxr_javadoccomment">     *  @param writer  Writer for output stream</em>
<a name="382" href="#382">382</a> <em class="jxr_javadoccomment">     *  @return true if Velocimacro exists and successfully invoked, false otherwise.</em>
<a name="383" href="#383">383</a> <em class="jxr_javadoccomment">     * @throws Exception</em>
<a name="384" href="#384">384</a> <em class="jxr_javadoccomment">     */</em>
<a name="385" href="#385">385</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> invokeVelocimacro( String vmName, String logTag,
<a name="386" href="#386">386</a>                                               String params[], <a href="../../../../org/apache/velocity/context/Context.html">Context</a> context,
<a name="387" href="#387">387</a>                                               Writer writer )
<a name="388" href="#388">388</a>         <strong class="jxr_keyword">throws</strong> Exception
<a name="389" href="#389">389</a>     {
<a name="390" href="#390">390</a>         <em class="jxr_comment">/*</em>
<a name="391" href="#391">391</a> <em class="jxr_comment">         *  check parms</em>
<a name="392" href="#392">392</a> <em class="jxr_comment">         */</em>
<a name="393" href="#393">393</a> 
<a name="394" href="#394">394</a>         <strong class="jxr_keyword">if</strong> ( vmName == <strong class="jxr_keyword">null</strong> ||  params == <strong class="jxr_keyword">null</strong> ||  context == <strong class="jxr_keyword">null</strong>
<a name="395" href="#395">395</a>              || writer == <strong class="jxr_keyword">null</strong> || logTag == <strong class="jxr_keyword">null</strong>)
<a name="396" href="#396">396</a>         {
<a name="397" href="#397">397</a>             getLog().error(<span class="jxr_string">"VelocityEngine.invokeVelocimacro() : invalid parameter"</span>);
<a name="398" href="#398">398</a>             <strong class="jxr_keyword">return</strong> false;
<a name="399" href="#399">399</a>         }
<a name="400" href="#400">400</a> 
<a name="401" href="#401">401</a>         <em class="jxr_comment">/*</em>
<a name="402" href="#402">402</a> <em class="jxr_comment">         * does the VM exist?</em>
<a name="403" href="#403">403</a> <em class="jxr_comment">         */</em>
<a name="404" href="#404">404</a> 
<a name="405" href="#405">405</a>         <strong class="jxr_keyword">if</strong> (!ri.isVelocimacro( vmName, logTag ))
<a name="406" href="#406">406</a>         {
<a name="407" href="#407">407</a>             getLog().error(<span class="jxr_string">"VelocityEngine.invokeVelocimacro() : VM '"</span> + vmName
<a name="408" href="#408">408</a>                            + <span class="jxr_string">"' not registered."</span>);
<a name="409" href="#409">409</a>             <strong class="jxr_keyword">return</strong> false;
<a name="410" href="#410">410</a>         }
<a name="411" href="#411">411</a> 
<a name="412" href="#412">412</a>         <em class="jxr_comment">/*</em>
<a name="413" href="#413">413</a> <em class="jxr_comment">         *  now just create the VM call, and use evaluate</em>
<a name="414" href="#414">414</a> <em class="jxr_comment">         */</em>
<a name="415" href="#415">415</a> 
<a name="416" href="#416">416</a>         StringBuffer construct = <strong class="jxr_keyword">new</strong> StringBuffer(<span class="jxr_string">"#"</span>);
<a name="417" href="#417">417</a> 
<a name="418" href="#418">418</a>         construct.append( vmName );
<a name="419" href="#419">419</a>         construct.append( <span class="jxr_string">"("</span> );
<a name="420" href="#420">420</a> 
<a name="421" href="#421">421</a>         <strong class="jxr_keyword">for</strong>( <strong class="jxr_keyword">int</strong> i = 0; i &lt; params.length; i++)
<a name="422" href="#422">422</a>         {
<a name="423" href="#423">423</a>             construct.append( <span class="jxr_string">" $"</span> );
<a name="424" href="#424">424</a>             construct.append( params[i] );
<a name="425" href="#425">425</a>         }
<a name="426" href="#426">426</a> 
<a name="427" href="#427">427</a>         construct.append(<span class="jxr_string">" )"</span>);
<a name="428" href="#428">428</a> 
<a name="429" href="#429">429</a>         <strong class="jxr_keyword">try</strong>
<a name="430" href="#430">430</a>         {
<a name="431" href="#431">431</a>             <strong class="jxr_keyword">boolean</strong> retval = evaluate(  context,  writer,
<a name="432" href="#432">432</a>                                          logTag, construct.toString() );
<a name="433" href="#433">433</a> 
<a name="434" href="#434">434</a>             <strong class="jxr_keyword">return</strong> retval;
<a name="435" href="#435">435</a>         }
<a name="436" href="#436">436</a>         <em class="jxr_javadoccomment">/**</em>
<a name="437" href="#437">437</a> <em class="jxr_javadoccomment">         * pass through application level runtime exceptions</em>
<a name="438" href="#438">438</a> <em class="jxr_javadoccomment">         */</em>
<a name="439" href="#439">439</a>         <strong class="jxr_keyword">catch</strong>( RuntimeException e )
<a name="440" href="#440">440</a>         {
<a name="441" href="#441">441</a>             <strong class="jxr_keyword">throw</strong> e;
<a name="442" href="#442">442</a>         }
<a name="443" href="#443">443</a>         <strong class="jxr_keyword">catch</strong>(Exception e)
<a name="444" href="#444">444</a>         {
<a name="445" href="#445">445</a>             getLog().error(<span class="jxr_string">"VelocityEngine.invokeVelocimacro() : error "</span>, e);
<a name="446" href="#446">446</a>             <strong class="jxr_keyword">throw</strong> e;
<a name="447" href="#447">447</a>         }
<a name="448" href="#448">448</a>     }
<a name="449" href="#449">449</a> 
<a name="450" href="#450">450</a>     <em class="jxr_javadoccomment">/**</em>
<a name="451" href="#451">451</a> <em class="jxr_javadoccomment">     *  Merges a template and puts the rendered stream into the writer.</em>
<a name="452" href="#452">452</a> <em class="jxr_javadoccomment">     *  The default encoding that Velocity uses to read template files is defined in</em>
<a name="453" href="#453">453</a> <em class="jxr_javadoccomment">     *  the property input.encoding and defaults to ISO-8859-1.</em>
<a name="454" href="#454">454</a> <em class="jxr_javadoccomment">     *</em>
<a name="455" href="#455">455</a> <em class="jxr_javadoccomment">     *  @param templateName name of template to be used in merge</em>
<a name="456" href="#456">456</a> <em class="jxr_javadoccomment">     *  @param context  filled context to be used in merge</em>
<a name="457" href="#457">457</a> <em class="jxr_javadoccomment">     *  @param  writer  writer to write template into</em>
<a name="458" href="#458">458</a> <em class="jxr_javadoccomment">     *</em>
<a name="459" href="#459">459</a> <em class="jxr_javadoccomment">     *  @return true if successful, false otherwise.  Errors</em>
<a name="460" href="#460">460</a> <em class="jxr_javadoccomment">     *           logged to velocity log.</em>
<a name="461" href="#461">461</a> <em class="jxr_javadoccomment">     * @throws ResourceNotFoundException</em>
<a name="462" href="#462">462</a> <em class="jxr_javadoccomment">     * @throws ParseErrorException</em>
<a name="463" href="#463">463</a> <em class="jxr_javadoccomment">     * @throws MethodInvocationException</em>
<a name="464" href="#464">464</a> <em class="jxr_javadoccomment">     * @throws Exception</em>
<a name="465" href="#465">465</a> <em class="jxr_javadoccomment">     * *  @deprecated Use</em>
<a name="466" href="#466">466</a> <em class="jxr_javadoccomment">     *  {@link #mergeTemplate( String templateName, String encoding,</em>
<a name="467" href="#467">467</a> <em class="jxr_javadoccomment">     *                Context context, Writer writer )}</em>
<a name="468" href="#468">468</a> <em class="jxr_javadoccomment">     */</em>
<a name="469" href="#469">469</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> mergeTemplate( String templateName,
<a name="470" href="#470">470</a>                                          <a href="../../../../org/apache/velocity/context/Context.html">Context</a> context, Writer writer )
<a name="471" href="#471">471</a>         <strong class="jxr_keyword">throws</strong> ResourceNotFoundException, ParseErrorException, MethodInvocationException, Exception
<a name="472" href="#472">472</a>     {
<a name="473" href="#473">473</a>         <strong class="jxr_keyword">return</strong> mergeTemplate( templateName, ri.getString(INPUT_ENCODING,ENCODING_DEFAULT),
<a name="474" href="#474">474</a>                                context, writer );
<a name="475" href="#475">475</a>     }
<a name="476" href="#476">476</a> 
<a name="477" href="#477">477</a>     <em class="jxr_javadoccomment">/**</em>
<a name="478" href="#478">478</a> <em class="jxr_javadoccomment">     *  merges a template and puts the rendered stream into the writer</em>
<a name="479" href="#479">479</a> <em class="jxr_javadoccomment">     *</em>
<a name="480" href="#480">480</a> <em class="jxr_javadoccomment">     *  @param templateName name of template to be used in merge</em>
<a name="481" href="#481">481</a> <em class="jxr_javadoccomment">     *  @param encoding encoding used in template</em>
<a name="482" href="#482">482</a> <em class="jxr_javadoccomment">     *  @param context  filled context to be used in merge</em>
<a name="483" href="#483">483</a> <em class="jxr_javadoccomment">     *  @param  writer  writer to write template into</em>
<a name="484" href="#484">484</a> <em class="jxr_javadoccomment">     *</em>
<a name="485" href="#485">485</a> <em class="jxr_javadoccomment">     *  @return true if successful, false otherwise.  Errors</em>
<a name="486" href="#486">486</a> <em class="jxr_javadoccomment">     *           logged to velocity log</em>
<a name="487" href="#487">487</a> <em class="jxr_javadoccomment">     * @throws ResourceNotFoundException</em>
<a name="488" href="#488">488</a> <em class="jxr_javadoccomment">     * @throws ParseErrorException</em>
<a name="489" href="#489">489</a> <em class="jxr_javadoccomment">     * @throws MethodInvocationException</em>
<a name="490" href="#490">490</a> <em class="jxr_javadoccomment">     * @throws Exception</em>
<a name="491" href="#491">491</a> <em class="jxr_javadoccomment">     *</em>
<a name="492" href="#492">492</a> <em class="jxr_javadoccomment">     *  @since Velocity v1.1</em>
<a name="493" href="#493">493</a> <em class="jxr_javadoccomment">     */</em>
<a name="494" href="#494">494</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> mergeTemplate( String templateName, String encoding,
<a name="495" href="#495">495</a>                                       <a href="../../../../org/apache/velocity/context/Context.html">Context</a> context, Writer writer )
<a name="496" href="#496">496</a>         <strong class="jxr_keyword">throws</strong> ResourceNotFoundException, ParseErrorException, MethodInvocationException, Exception
<a name="497" href="#497">497</a>     {
<a name="498" href="#498">498</a>         <a href="../../../../org/apache/velocity/Template.html">Template</a> template = ri.getTemplate(templateName, encoding);
<a name="499" href="#499">499</a> 
<a name="500" href="#500">500</a>         <strong class="jxr_keyword">if</strong> ( template == <strong class="jxr_keyword">null</strong> )
<a name="501" href="#501">501</a>         {
<a name="502" href="#502">502</a>             getLog().error(<span class="jxr_string">"Velocity.mergeTemplate() was unable to load template '"</span>
<a name="503" href="#503">503</a>                            + templateName + <span class="jxr_string">"'"</span>);
<a name="504" href="#504">504</a>             <strong class="jxr_keyword">return</strong> false;
<a name="505" href="#505">505</a>         }
<a name="506" href="#506">506</a>         <strong class="jxr_keyword">else</strong>
<a name="507" href="#507">507</a>         {
<a name="508" href="#508">508</a>             template.merge(context, writer);
<a name="509" href="#509">509</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="510" href="#510">510</a>          }
<a name="511" href="#511">511</a>     }
<a name="512" href="#512">512</a> 
<a name="513" href="#513">513</a>     <em class="jxr_javadoccomment">/**</em>
<a name="514" href="#514">514</a> <em class="jxr_javadoccomment">     *  Returns a &lt;code&gt;Template&lt;/code&gt; from the Velocity</em>
<a name="515" href="#515">515</a> <em class="jxr_javadoccomment">     *  resource management system.</em>
<a name="516" href="#516">516</a> <em class="jxr_javadoccomment">     *</em>
<a name="517" href="#517">517</a> <em class="jxr_javadoccomment">     * @param name The file name of the desired template.</em>
<a name="518" href="#518">518</a> <em class="jxr_javadoccomment">     * @return     The template.</em>
<a name="519" href="#519">519</a> <em class="jxr_javadoccomment">     * @throws ResourceNotFoundException if template not found</em>
<a name="520" href="#520">520</a> <em class="jxr_javadoccomment">     *          from any available source.</em>
<a name="521" href="#521">521</a> <em class="jxr_javadoccomment">     * @throws ParseErrorException if template cannot be parsed due</em>
<a name="522" href="#522">522</a> <em class="jxr_javadoccomment">     *          to syntax (or other) error.</em>
<a name="523" href="#523">523</a> <em class="jxr_javadoccomment">     * @throws Exception if an error occurs in template initialization</em>
<a name="524" href="#524">524</a> <em class="jxr_javadoccomment">     */</em>
<a name="525" href="#525">525</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/velocity/Template.html">Template</a> getTemplate(String name)
<a name="526" href="#526">526</a>         <strong class="jxr_keyword">throws</strong> ResourceNotFoundException, ParseErrorException, Exception
<a name="527" href="#527">527</a>     {
<a name="528" href="#528">528</a>         <strong class="jxr_keyword">return</strong> ri.getTemplate( name );
<a name="529" href="#529">529</a>     }
<a name="530" href="#530">530</a> 
<a name="531" href="#531">531</a>     <em class="jxr_javadoccomment">/**</em>
<a name="532" href="#532">532</a> <em class="jxr_javadoccomment">     *  Returns a &lt;code&gt;Template&lt;/code&gt; from the Velocity</em>
<a name="533" href="#533">533</a> <em class="jxr_javadoccomment">     *  resource management system.</em>
<a name="534" href="#534">534</a> <em class="jxr_javadoccomment">     *</em>
<a name="535" href="#535">535</a> <em class="jxr_javadoccomment">     * @param name The file name of the desired template.</em>
<a name="536" href="#536">536</a> <em class="jxr_javadoccomment">     * @param encoding The character encoding to use for the template.</em>
<a name="537" href="#537">537</a> <em class="jxr_javadoccomment">     * @return     The template.</em>
<a name="538" href="#538">538</a> <em class="jxr_javadoccomment">     * @throws ResourceNotFoundException if template not found</em>
<a name="539" href="#539">539</a> <em class="jxr_javadoccomment">     *          from any available source.</em>
<a name="540" href="#540">540</a> <em class="jxr_javadoccomment">     * @throws ParseErrorException if template cannot be parsed due</em>
<a name="541" href="#541">541</a> <em class="jxr_javadoccomment">     *          to syntax (or other) error.</em>
<a name="542" href="#542">542</a> <em class="jxr_javadoccomment">     * @throws Exception if an error occurs in template initialization</em>
<a name="543" href="#543">543</a> <em class="jxr_javadoccomment">     *</em>
<a name="544" href="#544">544</a> <em class="jxr_javadoccomment">     *  @since Velocity v1.1</em>
<a name="545" href="#545">545</a> <em class="jxr_javadoccomment">     */</em>
<a name="546" href="#546">546</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/velocity/Template.html">Template</a> getTemplate(String name, String encoding)
<a name="547" href="#547">547</a>         <strong class="jxr_keyword">throws</strong> ResourceNotFoundException, ParseErrorException, Exception
<a name="548" href="#548">548</a>     {
<a name="549" href="#549">549</a>         <strong class="jxr_keyword">return</strong> ri.getTemplate( name, encoding );
<a name="550" href="#550">550</a>     }
<a name="551" href="#551">551</a> 
<a name="552" href="#552">552</a>     <em class="jxr_javadoccomment">/**</em>
<a name="553" href="#553">553</a> <em class="jxr_javadoccomment">     *   Determines if a resource is accessable via the currently</em>
<a name="554" href="#554">554</a> <em class="jxr_javadoccomment">     *   configured resource loaders.</em>
<a name="555" href="#555">555</a> <em class="jxr_javadoccomment">     *   &lt;br&gt;&lt;br&gt;</em>
<a name="556" href="#556">556</a> <em class="jxr_javadoccomment">     *   Note that the current implementation will &lt;b&gt;not&lt;/b&gt;</em>
<a name="557" href="#557">557</a> <em class="jxr_javadoccomment">     *   change the state of the system in any real way - so this</em>
<a name="558" href="#558">558</a> <em class="jxr_javadoccomment">     *   cannot be used to pre-load the resource cache, as the</em>
<a name="559" href="#559">559</a> <em class="jxr_javadoccomment">     *   previous implementation did as a side-effect.</em>
<a name="560" href="#560">560</a> <em class="jxr_javadoccomment">     *   &lt;br&gt;&lt;br&gt;</em>
<a name="561" href="#561">561</a> <em class="jxr_javadoccomment">     *   The previous implementation exhibited extreme lazyness and</em>
<a name="562" href="#562">562</a> <em class="jxr_javadoccomment">     *   sloth, and the author has been flogged.</em>
<a name="563" href="#563">563</a> <em class="jxr_javadoccomment">     *</em>
<a name="564" href="#564">564</a> <em class="jxr_javadoccomment">     *   @param resourceName  name of the resource to search for</em>
<a name="565" href="#565">565</a> <em class="jxr_javadoccomment">     *   @return true if found, false otherwise</em>
<a name="566" href="#566">566</a> <em class="jxr_javadoccomment">     */</em>
<a name="567" href="#567">567</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> resourceExists(String resourceName)
<a name="568" href="#568">568</a>     {
<a name="569" href="#569">569</a>         <strong class="jxr_keyword">return</strong> (ri.getLoaderNameForResource(resourceName) != <strong class="jxr_keyword">null</strong>);
<a name="570" href="#570">570</a>     }
<a name="571" href="#571">571</a> 
<a name="572" href="#572">572</a>     <em class="jxr_javadoccomment">/**</em>
<a name="573" href="#573">573</a> <em class="jxr_javadoccomment">     * @param resourceName</em>
<a name="574" href="#574">574</a> <em class="jxr_javadoccomment">     * @return True if the template exists.</em>
<a name="575" href="#575">575</a> <em class="jxr_javadoccomment">     * @see #resourceExists(String)</em>
<a name="576" href="#576">576</a> <em class="jxr_javadoccomment">     * @deprecated Use resourceExists(String) instead.</em>
<a name="577" href="#577">577</a> <em class="jxr_javadoccomment">     */</em>
<a name="578" href="#578">578</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> templateExists(String resourceName)
<a name="579" href="#579">579</a>     {
<a name="580" href="#580">580</a>         <strong class="jxr_keyword">return</strong> resourceExists(resourceName);
<a name="581" href="#581">581</a>     }
<a name="582" href="#582">582</a> 
<a name="583" href="#583">583</a> 
<a name="584" href="#584">584</a>     <em class="jxr_javadoccomment">/**</em>
<a name="585" href="#585">585</a> <em class="jxr_javadoccomment">     * Returns a convenient Log instance that wraps the current LogChute.</em>
<a name="586" href="#586">586</a> <em class="jxr_javadoccomment">     * Use this to log error messages. It has the usual methods you'd expect.</em>
<a name="587" href="#587">587</a> <em class="jxr_javadoccomment">     * @return A log object.</em>
<a name="588" href="#588">588</a> <em class="jxr_javadoccomment">     */</em>
<a name="589" href="#589">589</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/velocity/runtime/log/Log.html">Log</a> getLog()
<a name="590" href="#590">590</a>     {
<a name="591" href="#591">591</a>         <strong class="jxr_keyword">return</strong> ri.getLog();
<a name="592" href="#592">592</a>     }
<a name="593" href="#593">593</a> 
<a name="594" href="#594">594</a>     <em class="jxr_javadoccomment">/**</em>
<a name="595" href="#595">595</a> <em class="jxr_javadoccomment">     * @param message</em>
<a name="596" href="#596">596</a> <em class="jxr_javadoccomment">     * @deprecated Use getLog() and call warn() on it.</em>
<a name="597" href="#597">597</a> <em class="jxr_javadoccomment">     */</em>
<a name="598" href="#598">598</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> warn(Object message)
<a name="599" href="#599">599</a>     {
<a name="600" href="#600">600</a>         getLog().warn(message);
<a name="601" href="#601">601</a>     }
<a name="602" href="#602">602</a> 
<a name="603" href="#603">603</a>     <em class="jxr_javadoccomment">/**</em>
<a name="604" href="#604">604</a> <em class="jxr_javadoccomment">     * @param message</em>
<a name="605" href="#605">605</a> <em class="jxr_javadoccomment">     * @deprecated Use getLog() and call warn() on it.</em>
<a name="606" href="#606">606</a> <em class="jxr_javadoccomment">     */</em>
<a name="607" href="#607">607</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> info(Object message)
<a name="608" href="#608">608</a>     {
<a name="609" href="#609">609</a>         getLog().info(message);
<a name="610" href="#610">610</a>     }
<a name="611" href="#611">611</a> 
<a name="612" href="#612">612</a>     <em class="jxr_javadoccomment">/**</em>
<a name="613" href="#613">613</a> <em class="jxr_javadoccomment">     * @param message</em>
<a name="614" href="#614">614</a> <em class="jxr_javadoccomment">     * @deprecated Use getLog() and call warn() on it.</em>
<a name="615" href="#615">615</a> <em class="jxr_javadoccomment">     */</em>
<a name="616" href="#616">616</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> error(Object message)
<a name="617" href="#617">617</a>     {
<a name="618" href="#618">618</a>         getLog().error(message);
<a name="619" href="#619">619</a>     }
<a name="620" href="#620">620</a> 
<a name="621" href="#621">621</a>     <em class="jxr_javadoccomment">/**</em>
<a name="622" href="#622">622</a> <em class="jxr_javadoccomment">     * @param message</em>
<a name="623" href="#623">623</a> <em class="jxr_javadoccomment">     * @deprecated Use getLog() and call warn() on it.</em>
<a name="624" href="#624">624</a> <em class="jxr_javadoccomment">     */</em>
<a name="625" href="#625">625</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> debug(Object message)
<a name="626" href="#626">626</a>     {
<a name="627" href="#627">627</a>         getLog().debug(message);
<a name="628" href="#628">628</a>     }
<a name="629" href="#629">629</a> 
<a name="630" href="#630">630</a>     <em class="jxr_javadoccomment">/**</em>
<a name="631" href="#631">631</a> <em class="jxr_javadoccomment">     *  &lt;p&gt;</em>
<a name="632" href="#632">632</a> <em class="jxr_javadoccomment">     *  Sets an application attribute (which can be any Object) that will be</em>
<a name="633" href="#633">633</a> <em class="jxr_javadoccomment">     *  accessible from any component of the system that gets a</em>
<a name="634" href="#634">634</a> <em class="jxr_javadoccomment">     *  RuntimeServices. This allows communication between the application</em>
<a name="635" href="#635">635</a> <em class="jxr_javadoccomment">     *  environment and custom pluggable components of the Velocity engine,</em>
<a name="636" href="#636">636</a> <em class="jxr_javadoccomment">     *  such as ResourceLoaders and LogChutes.</em>
<a name="637" href="#637">637</a> <em class="jxr_javadoccomment">     *  &lt;/p&gt;</em>
<a name="638" href="#638">638</a> <em class="jxr_javadoccomment">     *</em>
<a name="639" href="#639">639</a> <em class="jxr_javadoccomment">     *  &lt;p&gt;</em>
<a name="640" href="#640">640</a> <em class="jxr_javadoccomment">     *  Note that there is no enforcement or rules for the key</em>
<a name="641" href="#641">641</a> <em class="jxr_javadoccomment">     *  used - it is up to the application developer.  However, to</em>
<a name="642" href="#642">642</a> <em class="jxr_javadoccomment">     *  help make the intermixing of components possible, using</em>
<a name="643" href="#643">643</a> <em class="jxr_javadoccomment">     *  the target Class name (e.g. com.foo.bar ) as the key</em>
<a name="644" href="#644">644</a> <em class="jxr_javadoccomment">     *  might help avoid collision.</em>
<a name="645" href="#645">645</a> <em class="jxr_javadoccomment">     *  &lt;/p&gt;</em>
<a name="646" href="#646">646</a> <em class="jxr_javadoccomment">     *</em>
<a name="647" href="#647">647</a> <em class="jxr_javadoccomment">     *  @param key object 'name' under which the object is stored</em>
<a name="648" href="#648">648</a> <em class="jxr_javadoccomment">     *  @param value object to store under this key</em>
<a name="649" href="#649">649</a> <em class="jxr_javadoccomment">     */</em>
<a name="650" href="#650">650</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setApplicationAttribute( Object key, Object value )
<a name="651" href="#651">651</a>      {
<a name="652" href="#652">652</a>         ri.setApplicationAttribute(key, value);
<a name="653" href="#653">653</a>      }
<a name="654" href="#654">654</a> 
<a name="655" href="#655">655</a>      <em class="jxr_javadoccomment">/**</em>
<a name="656" href="#656">656</a> <em class="jxr_javadoccomment">      *  &lt;p&gt;</em>
<a name="657" href="#657">657</a> <em class="jxr_javadoccomment">      *  Return an application attribute (which can be any Object)</em>
<a name="658" href="#658">658</a> <em class="jxr_javadoccomment">      *  that was set by the application in order to be accessible from</em>
<a name="659" href="#659">659</a> <em class="jxr_javadoccomment">      *  any component of the system that gets a RuntimeServices.</em>
<a name="660" href="#660">660</a> <em class="jxr_javadoccomment">      *  This allows communication between the application</em>
<a name="661" href="#661">661</a> <em class="jxr_javadoccomment">      *  environment and custom pluggable components of the</em>
<a name="662" href="#662">662</a> <em class="jxr_javadoccomment">      *  Velocity engine, such as ResourceLoaders and LogChutes.</em>
<a name="663" href="#663">663</a> <em class="jxr_javadoccomment">      *  &lt;/p&gt;</em>
<a name="664" href="#664">664</a> <em class="jxr_javadoccomment">      *</em>
<a name="665" href="#665">665</a> <em class="jxr_javadoccomment">      *  @param key object 'name' under which the object is stored</em>
<a name="666" href="#666">666</a> <em class="jxr_javadoccomment">      *  @return value object to store under this key</em>
<a name="667" href="#667">667</a> <em class="jxr_javadoccomment">      */</em>
<a name="668" href="#668">668</a>      <strong class="jxr_keyword">public</strong> Object getApplicationAttribute( Object key )
<a name="669" href="#669">669</a>      {
<a name="670" href="#670">670</a>         <strong class="jxr_keyword">return</strong> ri.getApplicationAttribute(key);
<a name="671" href="#671">671</a>      }
<a name="672" href="#672">672</a> 
<a name="673" href="#673">673</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

