<!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>RuntimeServices xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/apache/velocity/runtime/RuntimeServices.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <strong class="jxr_keyword">package</strong> org.apache.velocity.runtime;
<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.IOException;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.Reader;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.Writer;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
<a name="26" href="#26">26</a>  
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.collections.ExtendedProperties;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.Template;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.app.event.EventCartridge;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.context.Context;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.exception.MethodInvocationException;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.exception.ParseErrorException;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.exception.ResourceNotFoundException;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.runtime.directive.Directive;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.runtime.log.Log;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.runtime.parser.ParseException;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.runtime.parser.Parser;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.runtime.parser.node.Node;
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.runtime.parser.node.SimpleNode;
<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.runtime.resource.ContentResource;
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.util.introspection.Introspector;
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.util.introspection.Uberspect;
<a name="43" href="#43">43</a>  
<a name="44" href="#44">44</a>  
<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment">/**</em>
<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> * Interface for internal runtime services that are needed by the</em>
<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> * various components w/in Velocity.  This was taken from the old</em>
<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> * Runtime singleton, and anything not necessary was removed.</em>
<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> *</em>
<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment"> *  Currently implemented by RuntimeInstance.</em>
<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment"> *</em>
<a name="52" href="#52">52</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 Magusson Jr.&lt;/a&gt;</em>
<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment"> * @version $Id: RuntimeServices.java 685724 2008-08-13 23:12:12Z nbubna $</em>
<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment"> */</em>
<a name="55" href="#55">55</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">interface</strong> <a href="../../../../org/apache/velocity/runtime/RuntimeServices.html">RuntimeServices</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/velocity/runtime/RuntimeLogger.html">RuntimeLogger</a>
<a name="56" href="#56">56</a>  {
<a name="57" href="#57">57</a>  
<a name="58" href="#58">58</a>     <em class="jxr_javadoccomment">/**</em>
<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment">     * This is the primary initialization method in the Velocity</em>
<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">     * Runtime. The systems that are setup/initialized here are</em>
<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment">     * as follows:</em>
<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     *</em>
<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     * &lt;ul&gt;</em>
<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     *   &lt;li&gt;Logging System&lt;/li&gt;</em>
<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">     *   &lt;li&gt;ResourceManager&lt;/li&gt;</em>
<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment">     *   &lt;li&gt;Parser Pool&lt;/li&gt;</em>
<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment">     *   &lt;li&gt;Global Cache&lt;/li&gt;</em>
<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     *   &lt;li&gt;Static Content Include System&lt;/li&gt;</em>
<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     *   &lt;li&gt;Velocimacro System&lt;/li&gt;</em>
<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     * &lt;/ul&gt;</em>
<a name="71" href="#71">71</a>  <em class="jxr_javadoccomment">     * @throws Exception</em>
<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment">     */</em>
<a name="73" href="#73">73</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> init() <strong class="jxr_keyword">throws</strong> Exception;
<a name="74" href="#74">74</a>  
<a name="75" href="#75">75</a>      <em class="jxr_javadoccomment">/**</em>
<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     * Allows an external system to set a property in</em>
<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     * the Velocity Runtime.</em>
<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">     *</em>
<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment">     * @param key property key</em>
<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">     * @param value property value</em>
<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     */</em>
<a name="82" href="#82">82</a>      <strong class="jxr_keyword">public</strong>  <strong class="jxr_keyword">void</strong> setProperty(String key, Object value);
<a name="83" href="#83">83</a>  
<a name="84" href="#84">84</a>      <em class="jxr_javadoccomment">/**</em>
<a name="85" href="#85">85</a>  <em class="jxr_javadoccomment">     * Allow an external system to set an ExtendedProperties</em>
<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment">     * object to use. This is useful where the external</em>
<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     * system also uses the ExtendedProperties class and</em>
<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     * the velocity configuration is a subset of</em>
<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     * parent application's configuration. This is</em>
<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     * the case with Turbine.</em>
<a name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     *</em>
<a name="92" href="#92">92</a>  <em class="jxr_javadoccomment">     * @param configuration</em>
<a name="93" href="#93">93</a>  <em class="jxr_javadoccomment">     */</em>
<a name="94" href="#94">94</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setConfiguration( ExtendedProperties configuration);
<a name="95" href="#95">95</a>  
<a name="96" href="#96">96</a>      <em class="jxr_javadoccomment">/**</em>
<a name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     * Add a property to the configuration. If it already</em>
<a name="98" href="#98">98</a>  <em class="jxr_javadoccomment">     * exists then the value stated here will be added</em>
<a name="99" href="#99">99</a>  <em class="jxr_javadoccomment">     * to the configuration entry. For example, if</em>
<a name="100" href="#100">100</a> <em class="jxr_javadoccomment">     *</em>
<a name="101" href="#101">101</a> <em class="jxr_javadoccomment">     * resource.loader = file</em>
<a name="102" href="#102">102</a> <em class="jxr_javadoccomment">     *</em>
<a name="103" href="#103">103</a> <em class="jxr_javadoccomment">     * is already present in the configuration and you</em>
<a name="104" href="#104">104</a> <em class="jxr_javadoccomment">     *</em>
<a name="105" href="#105">105</a> <em class="jxr_javadoccomment">     * addProperty("resource.loader", "classpath")</em>
<a name="106" href="#106">106</a> <em class="jxr_javadoccomment">     *</em>
<a name="107" href="#107">107</a> <em class="jxr_javadoccomment">     * Then you will end up with a Vector like the</em>
<a name="108" href="#108">108</a> <em class="jxr_javadoccomment">     * following:</em>
<a name="109" href="#109">109</a> <em class="jxr_javadoccomment">     *</em>
<a name="110" href="#110">110</a> <em class="jxr_javadoccomment">     * ["file", "classpath"]</em>
<a name="111" href="#111">111</a> <em class="jxr_javadoccomment">     *</em>
<a name="112" href="#112">112</a> <em class="jxr_javadoccomment">     * @param key</em>
<a name="113" href="#113">113</a> <em class="jxr_javadoccomment">     * @param value</em>
<a name="114" href="#114">114</a> <em class="jxr_javadoccomment">     */</em>
<a name="115" href="#115">115</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addProperty(String key, Object value);
<a name="116" href="#116">116</a> 
<a name="117" href="#117">117</a>     <em class="jxr_javadoccomment">/**</em>
<a name="118" href="#118">118</a> <em class="jxr_javadoccomment">     * Clear the values pertaining to a particular</em>
<a name="119" href="#119">119</a> <em class="jxr_javadoccomment">     * property.</em>
<a name="120" href="#120">120</a> <em class="jxr_javadoccomment">     *</em>
<a name="121" href="#121">121</a> <em class="jxr_javadoccomment">     * @param key of property to clear</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">void</strong> clearProperty(String key);
<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">     *  Allows an external caller to get a property.  The calling</em>
<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">     *  routine is required to know the type, as this routine</em>
<a name="128" href="#128">128</a> <em class="jxr_javadoccomment">     *  will return an Object, as that is what properties can be.</em>
<a name="129" href="#129">129</a> <em class="jxr_javadoccomment">     *</em>
<a name="130" href="#130">130</a> <em class="jxr_javadoccomment">     *  @param key property to return</em>
<a name="131" href="#131">131</a> <em class="jxr_javadoccomment">     * @return The value.</em>
<a name="132" href="#132">132</a> <em class="jxr_javadoccomment">     */</em>
<a name="133" href="#133">133</a>     <strong class="jxr_keyword">public</strong>  Object getProperty( String key );
<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">     * Initialize the Velocity Runtime with a Properties</em>
<a name="137" href="#137">137</a> <em class="jxr_javadoccomment">     * object.</em>
<a name="138" href="#138">138</a> <em class="jxr_javadoccomment">     *</em>
<a name="139" href="#139">139</a> <em class="jxr_javadoccomment">     * @param p</em>
<a name="140" href="#140">140</a> <em class="jxr_javadoccomment">     * @throws Exception</em>
<a name="141" href="#141">141</a> <em class="jxr_javadoccomment">     */</em>
<a name="142" href="#142">142</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> init(Properties p) <strong class="jxr_keyword">throws</strong> Exception;
<a name="143" href="#143">143</a> 
<a name="144" href="#144">144</a>     <em class="jxr_javadoccomment">/**</em>
<a name="145" href="#145">145</a> <em class="jxr_javadoccomment">     * Initialize the Velocity Runtime with the name of</em>
<a name="146" href="#146">146</a> <em class="jxr_javadoccomment">     * ExtendedProperties object.</em>
<a name="147" href="#147">147</a> <em class="jxr_javadoccomment">     *</em>
<a name="148" href="#148">148</a> <em class="jxr_javadoccomment">     * @param configurationFile</em>
<a name="149" href="#149">149</a> <em class="jxr_javadoccomment">     * @throws Exception</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">void</strong> init(String configurationFile) <strong class="jxr_keyword">throws</strong> Exception;
<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">     * Wraps the String in a StringReader and passes it off to</em>
<a name="155" href="#155">155</a> <em class="jxr_javadoccomment">     * {@link #parse(Reader,String)}.</em>
<a name="156" href="#156">156</a> <em class="jxr_javadoccomment">     * @since 1.6</em>
<a name="157" href="#157">157</a> <em class="jxr_javadoccomment">     */</em>
<a name="158" href="#158">158</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/velocity/runtime/parser/node/SimpleNode.html">SimpleNode</a> parse(String string, String templateName)
<a name="159" href="#159">159</a>         <strong class="jxr_keyword">throws</strong> ParseException;
<a name="160" href="#160">160</a> 
<a name="161" href="#161">161</a>     <em class="jxr_javadoccomment">/**</em>
<a name="162" href="#162">162</a> <em class="jxr_javadoccomment">     * Parse the input and return the root of</em>
<a name="163" href="#163">163</a> <em class="jxr_javadoccomment">     * AST node structure.</em>
<a name="164" href="#164">164</a> <em class="jxr_javadoccomment">     * &lt;br&gt;&lt;br&gt;</em>
<a name="165" href="#165">165</a> <em class="jxr_javadoccomment">     *  In the event that it runs out of parsers in the</em>
<a name="166" href="#166">166</a> <em class="jxr_javadoccomment">     *  pool, it will create and let them be GC'd</em>
<a name="167" href="#167">167</a> <em class="jxr_javadoccomment">     *  dynamically, logging that it has to do that.  This</em>
<a name="168" href="#168">168</a> <em class="jxr_javadoccomment">     *  is considered an exceptional condition.  It is</em>
<a name="169" href="#169">169</a> <em class="jxr_javadoccomment">     *  expected that the user will set the</em>
<a name="170" href="#170">170</a> <em class="jxr_javadoccomment">     *  PARSER_POOL_SIZE property appropriately for their</em>
<a name="171" href="#171">171</a> <em class="jxr_javadoccomment">     *  application.  We will revisit this.</em>
<a name="172" href="#172">172</a> <em class="jxr_javadoccomment">     *</em>
<a name="173" href="#173">173</a> <em class="jxr_javadoccomment">     * @param reader inputstream retrieved by a resource loader</em>
<a name="174" href="#174">174</a> <em class="jxr_javadoccomment">     * @param templateName name of the template being parsed</em>
<a name="175" href="#175">175</a> <em class="jxr_javadoccomment">     * @return The AST representing the template.</em>
<a name="176" href="#176">176</a> <em class="jxr_javadoccomment">     * @throws ParseException</em>
<a name="177" href="#177">177</a> <em class="jxr_javadoccomment">     */</em>
<a name="178" href="#178">178</a>     <strong class="jxr_keyword">public</strong>  SimpleNode parse( Reader reader, String templateName )
<a name="179" href="#179">179</a>         <strong class="jxr_keyword">throws</strong> ParseException;
<a name="180" href="#180">180</a> 
<a name="181" href="#181">181</a>     <em class="jxr_javadoccomment">/**</em>
<a name="182" href="#182">182</a> <em class="jxr_javadoccomment">     *  Parse the input and return the root of the AST node structure.</em>
<a name="183" href="#183">183</a> <em class="jxr_javadoccomment">     *</em>
<a name="184" href="#184">184</a> <em class="jxr_javadoccomment">     * @param reader inputstream retrieved by a resource loader</em>
<a name="185" href="#185">185</a> <em class="jxr_javadoccomment">     * @param templateName name of the template being parsed</em>
<a name="186" href="#186">186</a> <em class="jxr_javadoccomment">     * @param dumpNamespace flag to dump the Velocimacro namespace for this template</em>
<a name="187" href="#187">187</a> <em class="jxr_javadoccomment">     * @return The AST representing the template.</em>
<a name="188" href="#188">188</a> <em class="jxr_javadoccomment">     * @throws ParseException</em>
<a name="189" href="#189">189</a> <em class="jxr_javadoccomment">     */</em>
<a name="190" href="#190">190</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/velocity/runtime/parser/node/SimpleNode.html">SimpleNode</a> parse( Reader reader, String templateName, <strong class="jxr_keyword">boolean</strong> dumpNamespace )
<a name="191" href="#191">191</a>         <strong class="jxr_keyword">throws</strong> ParseException;
<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">     * Renders the input string using the context into the output writer.</em>
<a name="195" href="#195">195</a> <em class="jxr_javadoccomment">     * To be used when a template is dynamically constructed, or want to use</em>
<a name="196" href="#196">196</a> <em class="jxr_javadoccomment">     * Velocity as a token replacer.</em>
<a name="197" href="#197">197</a> <em class="jxr_javadoccomment">     *</em>
<a name="198" href="#198">198</a> <em class="jxr_javadoccomment">     * @param context context to use in rendering input string</em>
<a name="199" href="#199">199</a> <em class="jxr_javadoccomment">     * @param out  Writer in which to render the output</em>
<a name="200" href="#200">200</a> <em class="jxr_javadoccomment">     * @param logTag  string to be used as the template name for log</em>
<a name="201" href="#201">201</a> <em class="jxr_javadoccomment">     *                messages in case of error</em>
<a name="202" href="#202">202</a> <em class="jxr_javadoccomment">     * @param instring input string containing the VTL to be rendered</em>
<a name="203" href="#203">203</a> <em class="jxr_javadoccomment">     *</em>
<a name="204" href="#204">204</a> <em class="jxr_javadoccomment">     * @return true if successful, false otherwise.  If false, see</em>
<a name="205" href="#205">205</a> <em class="jxr_javadoccomment">     *              Velocity runtime log</em>
<a name="206" href="#206">206</a> <em class="jxr_javadoccomment">     * @throws ParseErrorException The template could not be parsed.</em>
<a name="207" href="#207">207</a> <em class="jxr_javadoccomment">     * @throws MethodInvocationException A method on a context object could not be invoked.</em>
<a name="208" href="#208">208</a> <em class="jxr_javadoccomment">     * @throws ResourceNotFoundException A referenced resource could not be loaded.</em>
<a name="209" href="#209">209</a> <em class="jxr_javadoccomment">     * @throws IOException While rendering to the writer, an I/O problem occured.</em>
<a name="210" href="#210">210</a> <em class="jxr_javadoccomment">     * @since Velocity 1.6</em>
<a name="211" href="#211">211</a> <em class="jxr_javadoccomment">     */</em>
<a name="212" href="#212">212</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 out,
<a name="213" href="#213">213</a>                             String logTag, String instring) <strong class="jxr_keyword">throws</strong> IOException;
<a name="214" href="#214">214</a> 
<a name="215" href="#215">215</a>     <em class="jxr_javadoccomment">/**</em>
<a name="216" href="#216">216</a> <em class="jxr_javadoccomment">     * Renders the input reader using the context into the output writer.</em>
<a name="217" href="#217">217</a> <em class="jxr_javadoccomment">     * To be used when a template is dynamically constructed, or want to</em>
<a name="218" href="#218">218</a> <em class="jxr_javadoccomment">     * use Velocity as a token replacer.</em>
<a name="219" href="#219">219</a> <em class="jxr_javadoccomment">     *</em>
<a name="220" href="#220">220</a> <em class="jxr_javadoccomment">     * @param context context to use in rendering input string</em>
<a name="221" href="#221">221</a> <em class="jxr_javadoccomment">     * @param writer  Writer in which to render the output</em>
<a name="222" href="#222">222</a> <em class="jxr_javadoccomment">     * @param logTag  string to be used as the template name for log messages</em>
<a name="223" href="#223">223</a> <em class="jxr_javadoccomment">     *                in case of error</em>
<a name="224" href="#224">224</a> <em class="jxr_javadoccomment">     * @param reader Reader containing the VTL to be rendered</em>
<a name="225" href="#225">225</a> <em class="jxr_javadoccomment">     *</em>
<a name="226" href="#226">226</a> <em class="jxr_javadoccomment">     * @return true if successful, false otherwise.  If false, see</em>
<a name="227" href="#227">227</a> <em class="jxr_javadoccomment">     *              Velocity runtime log</em>
<a name="228" href="#228">228</a> <em class="jxr_javadoccomment">     * @throws ParseErrorException The template could not be parsed.</em>
<a name="229" href="#229">229</a> <em class="jxr_javadoccomment">     * @throws MethodInvocationException A method on a context object could not be invoked.</em>
<a name="230" href="#230">230</a> <em class="jxr_javadoccomment">     * @throws ResourceNotFoundException A referenced resource could not be loaded.</em>
<a name="231" href="#231">231</a> <em class="jxr_javadoccomment">     * @throws IOException While reading from the reader or rendering to the writer,</em>
<a name="232" href="#232">232</a> <em class="jxr_javadoccomment">     *                     an I/O problem occured.</em>
<a name="233" href="#233">233</a> <em class="jxr_javadoccomment">     * @since Velocity 1.6</em>
<a name="234" href="#234">234</a> <em class="jxr_javadoccomment">     */</em>
<a name="235" href="#235">235</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="236" href="#236">236</a>                             String logTag, Reader reader) <strong class="jxr_keyword">throws</strong> IOException;
<a name="237" href="#237">237</a> 
<a name="238" href="#238">238</a>     <em class="jxr_javadoccomment">/**</em>
<a name="239" href="#239">239</a> <em class="jxr_javadoccomment">     * Invokes a currently registered Velocimacro with the params provided</em>
<a name="240" href="#240">240</a> <em class="jxr_javadoccomment">     * and places the rendered stream into the writer.</em>
<a name="241" href="#241">241</a> <em class="jxr_javadoccomment">     * &lt;br&gt;</em>
<a name="242" href="#242">242</a> <em class="jxr_javadoccomment">     * Note : currently only accepts args to the VM if they are in the context.</em>
<a name="243" href="#243">243</a> <em class="jxr_javadoccomment">     *</em>
<a name="244" href="#244">244</a> <em class="jxr_javadoccomment">     * @param vmName name of Velocimacro to call</em>
<a name="245" href="#245">245</a> <em class="jxr_javadoccomment">     * @param logTag string to be used for template name in case of error. if null,</em>
<a name="246" href="#246">246</a> <em class="jxr_javadoccomment">     *               the vmName will be used</em>
<a name="247" href="#247">247</a> <em class="jxr_javadoccomment">     * @param params keys for args used to invoke Velocimacro, in java format</em>
<a name="248" href="#248">248</a> <em class="jxr_javadoccomment">     *               rather than VTL (eg  "foo" or "bar" rather than "$foo" or "$bar")</em>
<a name="249" href="#249">249</a> <em class="jxr_javadoccomment">     * @param context Context object containing data/objects used for rendering.</em>
<a name="250" href="#250">250</a> <em class="jxr_javadoccomment">     * @param writer  Writer for output stream</em>
<a name="251" href="#251">251</a> <em class="jxr_javadoccomment">     * @return true if Velocimacro exists and successfully invoked, false otherwise.</em>
<a name="252" href="#252">252</a> <em class="jxr_javadoccomment">     * @throws IOException While rendering to the writer, an I/O problem occured.</em>
<a name="253" href="#253">253</a> <em class="jxr_javadoccomment">     * @since 1.6</em>
<a name="254" href="#254">254</a> <em class="jxr_javadoccomment">     */</em>
<a name="255" href="#255">255</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> invokeVelocimacro(<strong class="jxr_keyword">final</strong> String vmName, String logTag,
<a name="256" href="#256">256</a>                                      String[] params, <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/velocity/context/Context.html">Context</a> context,
<a name="257" href="#257">257</a>                                      <strong class="jxr_keyword">final</strong> Writer writer) <strong class="jxr_keyword">throws</strong> IOException;
<a name="258" href="#258">258</a> 
<a name="259" href="#259">259</a>     <em class="jxr_javadoccomment">/**</em>
<a name="260" href="#260">260</a> <em class="jxr_javadoccomment">     * Returns a &lt;code&gt;Template&lt;/code&gt; from the resource manager.</em>
<a name="261" href="#261">261</a> <em class="jxr_javadoccomment">     * This method assumes that the character encoding of the</em>
<a name="262" href="#262">262</a> <em class="jxr_javadoccomment">     * template is set by the &lt;code&gt;input.encoding&lt;/code&gt;</em>
<a name="263" href="#263">263</a> <em class="jxr_javadoccomment">     * property.  The default is "ISO-8859-1"</em>
<a name="264" href="#264">264</a> <em class="jxr_javadoccomment">     *</em>
<a name="265" href="#265">265</a> <em class="jxr_javadoccomment">     * @param name The file name of the desired template.</em>
<a name="266" href="#266">266</a> <em class="jxr_javadoccomment">     * @return     The template.</em>
<a name="267" href="#267">267</a> <em class="jxr_javadoccomment">     * @throws ResourceNotFoundException if template not found</em>
<a name="268" href="#268">268</a> <em class="jxr_javadoccomment">     *          from any available source.</em>
<a name="269" href="#269">269</a> <em class="jxr_javadoccomment">     * @throws ParseErrorException if template cannot be parsed due</em>
<a name="270" href="#270">270</a> <em class="jxr_javadoccomment">     *          to syntax (or other) error.</em>
<a name="271" href="#271">271</a> <em class="jxr_javadoccomment">     * @throws Exception if an error occurs in template initialization</em>
<a name="272" href="#272">272</a> <em class="jxr_javadoccomment">     */</em>
<a name="273" href="#273">273</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/velocity/Template.html">Template</a> getTemplate(String name)
<a name="274" href="#274">274</a>         <strong class="jxr_keyword">throws</strong> ResourceNotFoundException, ParseErrorException, Exception;
<a name="275" href="#275">275</a> 
<a name="276" href="#276">276</a>     <em class="jxr_javadoccomment">/**</em>
<a name="277" href="#277">277</a> <em class="jxr_javadoccomment">     * Returns a &lt;code&gt;Template&lt;/code&gt; from the resource manager</em>
<a name="278" href="#278">278</a> <em class="jxr_javadoccomment">     *</em>
<a name="279" href="#279">279</a> <em class="jxr_javadoccomment">     * @param name The  name of the desired template.</em>
<a name="280" href="#280">280</a> <em class="jxr_javadoccomment">     * @param encoding Character encoding of the template</em>
<a name="281" href="#281">281</a> <em class="jxr_javadoccomment">     * @return     The template.</em>
<a name="282" href="#282">282</a> <em class="jxr_javadoccomment">     * @throws ResourceNotFoundException if template not found</em>
<a name="283" href="#283">283</a> <em class="jxr_javadoccomment">     *          from any available source.</em>
<a name="284" href="#284">284</a> <em class="jxr_javadoccomment">     * @throws ParseErrorException if template cannot be parsed due</em>
<a name="285" href="#285">285</a> <em class="jxr_javadoccomment">     *          to syntax (or other) error.</em>
<a name="286" href="#286">286</a> <em class="jxr_javadoccomment">     * @throws Exception if an error occurs in template initialization</em>
<a name="287" href="#287">287</a> <em class="jxr_javadoccomment">     */</em>
<a name="288" href="#288">288</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/velocity/Template.html">Template</a> getTemplate(String name, String  encoding)
<a name="289" href="#289">289</a>         <strong class="jxr_keyword">throws</strong> ResourceNotFoundException, ParseErrorException, Exception;
<a name="290" href="#290">290</a> 
<a name="291" href="#291">291</a>     <em class="jxr_javadoccomment">/**</em>
<a name="292" href="#292">292</a> <em class="jxr_javadoccomment">     * Returns a static content resource from the</em>
<a name="293" href="#293">293</a> <em class="jxr_javadoccomment">     * resource manager.  Uses the current value</em>
<a name="294" href="#294">294</a> <em class="jxr_javadoccomment">     * if INPUT_ENCODING as the character encoding.</em>
<a name="295" href="#295">295</a> <em class="jxr_javadoccomment">     *</em>
<a name="296" href="#296">296</a> <em class="jxr_javadoccomment">     * @param name Name of content resource to get</em>
<a name="297" href="#297">297</a> <em class="jxr_javadoccomment">     * @return parsed ContentResource object ready for use</em>
<a name="298" href="#298">298</a> <em class="jxr_javadoccomment">     * @throws ResourceNotFoundException if template not found</em>
<a name="299" href="#299">299</a> <em class="jxr_javadoccomment">     *          from any available source.</em>
<a name="300" href="#300">300</a> <em class="jxr_javadoccomment">     * @throws ParseErrorException</em>
<a name="301" href="#301">301</a> <em class="jxr_javadoccomment">     * @throws Exception</em>
<a name="302" href="#302">302</a> <em class="jxr_javadoccomment">     */</em>
<a name="303" href="#303">303</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/velocity/runtime/resource/ContentResource.html">ContentResource</a> getContent(String name)
<a name="304" href="#304">304</a>         <strong class="jxr_keyword">throws</strong> ResourceNotFoundException, ParseErrorException, Exception;
<a name="305" href="#305">305</a> 
<a name="306" href="#306">306</a>     <em class="jxr_javadoccomment">/**</em>
<a name="307" href="#307">307</a> <em class="jxr_javadoccomment">     * Returns a static content resource from the</em>
<a name="308" href="#308">308</a> <em class="jxr_javadoccomment">     * resource manager.</em>
<a name="309" href="#309">309</a> <em class="jxr_javadoccomment">     *</em>
<a name="310" href="#310">310</a> <em class="jxr_javadoccomment">     * @param name Name of content resource to get</em>
<a name="311" href="#311">311</a> <em class="jxr_javadoccomment">     * @param encoding Character encoding to use</em>
<a name="312" href="#312">312</a> <em class="jxr_javadoccomment">     * @return parsed ContentResource object ready for use</em>
<a name="313" href="#313">313</a> <em class="jxr_javadoccomment">     * @throws ResourceNotFoundException if template not found</em>
<a name="314" href="#314">314</a> <em class="jxr_javadoccomment">     *          from any available source.</em>
<a name="315" href="#315">315</a> <em class="jxr_javadoccomment">     * @throws ParseErrorException</em>
<a name="316" href="#316">316</a> <em class="jxr_javadoccomment">     * @throws Exception</em>
<a name="317" href="#317">317</a> <em class="jxr_javadoccomment">     */</em>
<a name="318" href="#318">318</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/velocity/runtime/resource/ContentResource.html">ContentResource</a> getContent( String name, String encoding )
<a name="319" href="#319">319</a>         <strong class="jxr_keyword">throws</strong> ResourceNotFoundException, ParseErrorException, Exception;
<a name="320" href="#320">320</a> 
<a name="321" href="#321">321</a>     <em class="jxr_javadoccomment">/**</em>
<a name="322" href="#322">322</a> <em class="jxr_javadoccomment">     *  Determines is a template exists, and returns name of the loader that</em>
<a name="323" href="#323">323</a> <em class="jxr_javadoccomment">     *  provides it.  This is a slightly less hokey way to support</em>
<a name="324" href="#324">324</a> <em class="jxr_javadoccomment">     *  the Velocity.templateExists() utility method, which was broken</em>
<a name="325" href="#325">325</a> <em class="jxr_javadoccomment">     *  when per-template encoding was introduced.  We can revisit this.</em>
<a name="326" href="#326">326</a> <em class="jxr_javadoccomment">     *</em>
<a name="327" href="#327">327</a> <em class="jxr_javadoccomment">     *  @param resourceName Name of template or content resource</em>
<a name="328" href="#328">328</a> <em class="jxr_javadoccomment">     *  @return class name of loader than can provide it</em>
<a name="329" href="#329">329</a> <em class="jxr_javadoccomment">     */</em>
<a name="330" href="#330">330</a>     <strong class="jxr_keyword">public</strong> String getLoaderNameForResource( String resourceName );
<a name="331" href="#331">331</a> 
<a name="332" href="#332">332</a>     <em class="jxr_javadoccomment">/**</em>
<a name="333" href="#333">333</a> <em class="jxr_javadoccomment">     * String property accessor method with default to hide the</em>
<a name="334" href="#334">334</a> <em class="jxr_javadoccomment">     * configuration implementation.</em>
<a name="335" href="#335">335</a> <em class="jxr_javadoccomment">     *</em>
<a name="336" href="#336">336</a> <em class="jxr_javadoccomment">     * @param key property key</em>
<a name="337" href="#337">337</a> <em class="jxr_javadoccomment">     * @param defaultValue  default value to return if key not</em>
<a name="338" href="#338">338</a> <em class="jxr_javadoccomment">     *               found in resource manager.</em>
<a name="339" href="#339">339</a> <em class="jxr_javadoccomment">     * @return String  value of key or default</em>
<a name="340" href="#340">340</a> <em class="jxr_javadoccomment">     */</em>
<a name="341" href="#341">341</a>     <strong class="jxr_keyword">public</strong> String getString( String key, String defaultValue);
<a name="342" href="#342">342</a> 
<a name="343" href="#343">343</a>     <em class="jxr_javadoccomment">/**</em>
<a name="344" href="#344">344</a> <em class="jxr_javadoccomment">     * Returns the appropriate VelocimacroProxy object if strVMname</em>
<a name="345" href="#345">345</a> <em class="jxr_javadoccomment">     * is a valid current Velocimacro.</em>
<a name="346" href="#346">346</a> <em class="jxr_javadoccomment">     *</em>
<a name="347" href="#347">347</a> <em class="jxr_javadoccomment">     * @param vmName  Name of velocimacro requested</em>
<a name="348" href="#348">348</a> <em class="jxr_javadoccomment">     * @param templateName Name of the namespace.</em>
<a name="349" href="#349">349</a> <em class="jxr_javadoccomment">     * @return VelocimacroProxy</em>
<a name="350" href="#350">350</a> <em class="jxr_javadoccomment">     */</em>
<a name="351" href="#351">351</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/velocity/runtime/directive/Directive.html">Directive</a> getVelocimacro( String vmName, String templateName  );
<a name="352" href="#352">352</a>     
<a name="353" href="#353">353</a>     <em class="jxr_javadoccomment">/**</em>
<a name="354" href="#354">354</a> <em class="jxr_javadoccomment">     * Returns the appropriate VelocimacroProxy object if strVMname</em>
<a name="355" href="#355">355</a> <em class="jxr_javadoccomment">     * is a valid current Velocimacro.</em>
<a name="356" href="#356">356</a> <em class="jxr_javadoccomment">     *</em>
<a name="357" href="#357">357</a> <em class="jxr_javadoccomment">     * @param vmName  Name of velocimacro requested</em>
<a name="358" href="#358">358</a> <em class="jxr_javadoccomment">     * @param templateName Name of the namespace.</em>
<a name="359" href="#359">359</a> <em class="jxr_javadoccomment">     * @param renderingTemplate Name of the template we are currently rendering. This</em>
<a name="360" href="#360">360</a> <em class="jxr_javadoccomment">     *    information is needed when VM_PERM_ALLOW_INLINE_REPLACE_GLOBAL setting is true</em>
<a name="361" href="#361">361</a> <em class="jxr_javadoccomment">     *    and template contains a macro with the same name as the global macro library.</em>
<a name="362" href="#362">362</a> <em class="jxr_javadoccomment">     * </em>
<a name="363" href="#363">363</a> <em class="jxr_javadoccomment">     * @since Velocity 1.6</em>
<a name="364" href="#364">364</a> <em class="jxr_javadoccomment">     * </em>
<a name="365" href="#365">365</a> <em class="jxr_javadoccomment">     * @return VelocimacroProxy</em>
<a name="366" href="#366">366</a> <em class="jxr_javadoccomment">     */</em>
<a name="367" href="#367">367</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/velocity/runtime/directive/Directive.html">Directive</a> getVelocimacro( String vmName, String templateName, String renderingTemplate  );
<a name="368" href="#368">368</a> 
<a name="369" href="#369">369</a>    <em class="jxr_javadoccomment">/**</em>
<a name="370" href="#370">370</a> <em class="jxr_javadoccomment">     * Adds a new Velocimacro. Usually called by Macro only while parsing.</em>
<a name="371" href="#371">371</a> <em class="jxr_javadoccomment">     *</em>
<a name="372" href="#372">372</a> <em class="jxr_javadoccomment">     * @param name  Name of velocimacro</em>
<a name="373" href="#373">373</a> <em class="jxr_javadoccomment">     * @param macro  String form of macro body</em>
<a name="374" href="#374">374</a> <em class="jxr_javadoccomment">     * @param argArray  Array of strings, containing the</em>
<a name="375" href="#375">375</a> <em class="jxr_javadoccomment">     *                         #macro() arguments.  the 0th is the name.</em>
<a name="376" href="#376">376</a> <em class="jxr_javadoccomment">     * @param sourceTemplate</em>
<a name="377" href="#377">377</a> <em class="jxr_javadoccomment">     * </em>
<a name="378" href="#378">378</a> <em class="jxr_javadoccomment">     * @deprecated Use addVelocimacro(String, Node, String[], String) instead</em>
<a name="379" href="#379">379</a> <em class="jxr_javadoccomment">     *                   </em>
<a name="380" href="#380">380</a> <em class="jxr_javadoccomment">     * @return boolean  True if added, false if rejected for some</em>
<a name="381" href="#381">381</a> <em class="jxr_javadoccomment">     *                  reason (either parameters or permission settings)</em>
<a name="382" href="#382">382</a> <em class="jxr_javadoccomment">     */</em>
<a name="383" href="#383">383</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> addVelocimacro( String name,
<a name="384" href="#384">384</a>                                           String macro,
<a name="385" href="#385">385</a>                                           String argArray[],
<a name="386" href="#386">386</a>                                           String sourceTemplate );
<a name="387" href="#387">387</a> 
<a name="388" href="#388">388</a>     <em class="jxr_javadoccomment">/**</em>
<a name="389" href="#389">389</a> <em class="jxr_javadoccomment">     * Adds a new Velocimacro. Usually called by Macro only while parsing.</em>
<a name="390" href="#390">390</a> <em class="jxr_javadoccomment">     *</em>
<a name="391" href="#391">391</a> <em class="jxr_javadoccomment">     * @param name  Name of velocimacro</em>
<a name="392" href="#392">392</a> <em class="jxr_javadoccomment">     * @param macro  root AST node of the parsed macro</em>
<a name="393" href="#393">393</a> <em class="jxr_javadoccomment">     * @param argArray  Array of strings, containing the</em>
<a name="394" href="#394">394</a> <em class="jxr_javadoccomment">     *                         #macro() arguments.  the 0th is the name.</em>
<a name="395" href="#395">395</a> <em class="jxr_javadoccomment">     * @param sourceTemplate</em>
<a name="396" href="#396">396</a> <em class="jxr_javadoccomment">     * </em>
<a name="397" href="#397">397</a> <em class="jxr_javadoccomment">     * @since Velocity 1.6</em>
<a name="398" href="#398">398</a> <em class="jxr_javadoccomment">     *                   </em>
<a name="399" href="#399">399</a> <em class="jxr_javadoccomment">     * @return boolean  True if added, false if rejected for some</em>
<a name="400" href="#400">400</a> <em class="jxr_javadoccomment">     *                  reason (either parameters or permission settings)</em>
<a name="401" href="#401">401</a> <em class="jxr_javadoccomment">     */</em>
<a name="402" href="#402">402</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> addVelocimacro( String name,
<a name="403" href="#403">403</a>                                           <a href="../../../../org/apache/velocity/runtime/parser/node/Node.html">Node</a> macro,
<a name="404" href="#404">404</a>                                           String argArray[],
<a name="405" href="#405">405</a>                                           String sourceTemplate );
<a name="406" href="#406">406</a>                                           
<a name="407" href="#407">407</a>                                           
<a name="408" href="#408">408</a>     <em class="jxr_javadoccomment">/**</em>
<a name="409" href="#409">409</a> <em class="jxr_javadoccomment">     *  Checks to see if a VM exists</em>
<a name="410" href="#410">410</a> <em class="jxr_javadoccomment">     *</em>
<a name="411" href="#411">411</a> <em class="jxr_javadoccomment">     * @param vmName  Name of velocimacro</em>
<a name="412" href="#412">412</a> <em class="jxr_javadoccomment">     * @param templateName</em>
<a name="413" href="#413">413</a> <em class="jxr_javadoccomment">     * @return boolean  True if VM by that name exists, false if not</em>
<a name="414" href="#414">414</a> <em class="jxr_javadoccomment">     */</em>
<a name="415" href="#415">415</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isVelocimacro( String vmName, String templateName );
<a name="416" href="#416">416</a> 
<a name="417" href="#417">417</a>     <em class="jxr_javadoccomment">/**</em>
<a name="418" href="#418">418</a> <em class="jxr_javadoccomment">     *  tells the vmFactory to dump the specified namespace.  This is to support</em>
<a name="419" href="#419">419</a> <em class="jxr_javadoccomment">     *  clearing the VM list when in inline-VM-local-scope mode</em>
<a name="420" href="#420">420</a> <em class="jxr_javadoccomment">     * @param namespace</em>
<a name="421" href="#421">421</a> <em class="jxr_javadoccomment">     * @return True if the Namespace was dumped.</em>
<a name="422" href="#422">422</a> <em class="jxr_javadoccomment">     */</em>
<a name="423" href="#423">423</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> dumpVMNamespace( String namespace );
<a name="424" href="#424">424</a> 
<a name="425" href="#425">425</a>     <em class="jxr_javadoccomment">/**</em>
<a name="426" href="#426">426</a> <em class="jxr_javadoccomment">     * String property accessor method to hide the configuration implementation</em>
<a name="427" href="#427">427</a> <em class="jxr_javadoccomment">     * @param key  property key</em>
<a name="428" href="#428">428</a> <em class="jxr_javadoccomment">     * @return   value of key or null</em>
<a name="429" href="#429">429</a> <em class="jxr_javadoccomment">     */</em>
<a name="430" href="#430">430</a>     <strong class="jxr_keyword">public</strong> String getString(String key);
<a name="431" href="#431">431</a> 
<a name="432" href="#432">432</a>     <em class="jxr_javadoccomment">/**</em>
<a name="433" href="#433">433</a> <em class="jxr_javadoccomment">     * Int property accessor method to hide the configuration implementation.</em>
<a name="434" href="#434">434</a> <em class="jxr_javadoccomment">     *</em>
<a name="435" href="#435">435</a> <em class="jxr_javadoccomment">     * @param key property key</em>
<a name="436" href="#436">436</a> <em class="jxr_javadoccomment">     * @return int value</em>
<a name="437" href="#437">437</a> <em class="jxr_javadoccomment">     */</em>
<a name="438" href="#438">438</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getInt( String key );
<a name="439" href="#439">439</a> 
<a name="440" href="#440">440</a>     <em class="jxr_javadoccomment">/**</em>
<a name="441" href="#441">441</a> <em class="jxr_javadoccomment">     * Int property accessor method to hide the configuration implementation.</em>
<a name="442" href="#442">442</a> <em class="jxr_javadoccomment">     *</em>
<a name="443" href="#443">443</a> <em class="jxr_javadoccomment">     * @param key  property key</em>
<a name="444" href="#444">444</a> <em class="jxr_javadoccomment">     * @param defaultValue default value</em>
<a name="445" href="#445">445</a> <em class="jxr_javadoccomment">     * @return int  value</em>
<a name="446" href="#446">446</a> <em class="jxr_javadoccomment">     */</em>
<a name="447" href="#447">447</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getInt( String key, <strong class="jxr_keyword">int</strong> defaultValue );
<a name="448" href="#448">448</a> 
<a name="449" href="#449">449</a>     <em class="jxr_javadoccomment">/**</em>
<a name="450" href="#450">450</a> <em class="jxr_javadoccomment">     * Boolean property accessor method to hide the configuration implementation.</em>
<a name="451" href="#451">451</a> <em class="jxr_javadoccomment">     *</em>
<a name="452" href="#452">452</a> <em class="jxr_javadoccomment">     * @param key  property key</em>
<a name="453" href="#453">453</a> <em class="jxr_javadoccomment">     * @param def default default value if property not found</em>
<a name="454" href="#454">454</a> <em class="jxr_javadoccomment">     * @return boolean  value of key or default value</em>
<a name="455" href="#455">455</a> <em class="jxr_javadoccomment">     */</em>
<a name="456" href="#456">456</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getBoolean( String key, <strong class="jxr_keyword">boolean</strong> def );
<a name="457" href="#457">457</a> 
<a name="458" href="#458">458</a>     <em class="jxr_javadoccomment">/**</em>
<a name="459" href="#459">459</a> <em class="jxr_javadoccomment">     * Return the velocity runtime configuration object.</em>
<a name="460" href="#460">460</a> <em class="jxr_javadoccomment">     *</em>
<a name="461" href="#461">461</a> <em class="jxr_javadoccomment">     * @return ExtendedProperties configuration object which houses</em>
<a name="462" href="#462">462</a> <em class="jxr_javadoccomment">     *                       the velocity runtime properties.</em>
<a name="463" href="#463">463</a> <em class="jxr_javadoccomment">     */</em>
<a name="464" href="#464">464</a>     <strong class="jxr_keyword">public</strong> ExtendedProperties getConfiguration();
<a name="465" href="#465">465</a> 
<a name="466" href="#466">466</a>     <em class="jxr_javadoccomment">/**</em>
<a name="467" href="#467">467</a> <em class="jxr_javadoccomment">     * Return the specified application attribute.</em>
<a name="468" href="#468">468</a> <em class="jxr_javadoccomment">     *</em>
<a name="469" href="#469">469</a> <em class="jxr_javadoccomment">     * @param key The name of the attribute to retrieve.</em>
<a name="470" href="#470">470</a> <em class="jxr_javadoccomment">     * @return The value of the attribute.</em>
<a name="471" href="#471">471</a> <em class="jxr_javadoccomment">     */</em>
<a name="472" href="#472">472</a>     <strong class="jxr_keyword">public</strong> Object getApplicationAttribute( Object key );
<a name="473" href="#473">473</a> 
<a name="474" href="#474">474</a>     <em class="jxr_javadoccomment">/**</em>
<a name="475" href="#475">475</a> <em class="jxr_javadoccomment">     * Set the specified application attribute.</em>
<a name="476" href="#476">476</a> <em class="jxr_javadoccomment">     *</em>
<a name="477" href="#477">477</a> <em class="jxr_javadoccomment">     * @param key The name of the attribute to set.</em>
<a name="478" href="#478">478</a> <em class="jxr_javadoccomment">     * @param value The attribute value to set.</em>
<a name="479" href="#479">479</a> <em class="jxr_javadoccomment">     * @return the displaced attribute value</em>
<a name="480" href="#480">480</a> <em class="jxr_javadoccomment">     */</em>
<a name="481" href="#481">481</a>     <strong class="jxr_keyword">public</strong> Object setApplicationAttribute( Object key, Object value );
<a name="482" href="#482">482</a> 
<a name="483" href="#483">483</a>     <em class="jxr_javadoccomment">/**</em>
<a name="484" href="#484">484</a> <em class="jxr_javadoccomment">     * Returns the configured class introspection/reflection</em>
<a name="485" href="#485">485</a> <em class="jxr_javadoccomment">     * implementation.</em>
<a name="486" href="#486">486</a> <em class="jxr_javadoccomment">     * @return The current Uberspect object.</em>
<a name="487" href="#487">487</a> <em class="jxr_javadoccomment">     */</em>
<a name="488" href="#488">488</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/velocity/util/introspection/Uberspect.html">Uberspect</a> getUberspect();
<a name="489" href="#489">489</a> 
<a name="490" href="#490">490</a>     <em class="jxr_javadoccomment">/**</em>
<a name="491" href="#491">491</a> <em class="jxr_javadoccomment">     * Returns a convenient Log instance that wraps the current LogChute.</em>
<a name="492" href="#492">492</a> <em class="jxr_javadoccomment">     * @return A log object.</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> <a href="../../../../org/apache/velocity/runtime/log/Log.html">Log</a> getLog();
<a name="495" href="#495">495</a> 
<a name="496" href="#496">496</a>     <em class="jxr_javadoccomment">/**</em>
<a name="497" href="#497">497</a> <em class="jxr_javadoccomment">     * Returns the event handlers for the application.</em>
<a name="498" href="#498">498</a> <em class="jxr_javadoccomment">     * @return The event handlers for the application.</em>
<a name="499" href="#499">499</a> <em class="jxr_javadoccomment">     */</em>
<a name="500" href="#500">500</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/velocity/app/event/EventCartridge.html">EventCartridge</a> getApplicationEventCartridge();
<a name="501" href="#501">501</a> 
<a name="502" href="#502">502</a> 
<a name="503" href="#503">503</a>     <em class="jxr_javadoccomment">/**</em>
<a name="504" href="#504">504</a> <em class="jxr_javadoccomment">     * Returns the configured method introspection/reflection</em>
<a name="505" href="#505">505</a> <em class="jxr_javadoccomment">     * implementation.</em>
<a name="506" href="#506">506</a> <em class="jxr_javadoccomment">     * @return The configured method introspection/reflection</em>
<a name="507" href="#507">507</a> <em class="jxr_javadoccomment">     * implementation.</em>
<a name="508" href="#508">508</a> <em class="jxr_javadoccomment">     */</em>
<a name="509" href="#509">509</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/velocity/util/introspection/Introspector.html">Introspector</a> getIntrospector();
<a name="510" href="#510">510</a> 
<a name="511" href="#511">511</a>     <em class="jxr_javadoccomment">/**</em>
<a name="512" href="#512">512</a> <em class="jxr_javadoccomment">     * Returns true if the RuntimeInstance has been successfully initialized.</em>
<a name="513" href="#513">513</a> <em class="jxr_javadoccomment">     * @return True if the RuntimeInstance has been successfully initialized.</em>
<a name="514" href="#514">514</a> <em class="jxr_javadoccomment">     */</em>
<a name="515" href="#515">515</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isInitialized();
<a name="516" href="#516">516</a> 
<a name="517" href="#517">517</a>     <em class="jxr_javadoccomment">/**</em>
<a name="518" href="#518">518</a> <em class="jxr_javadoccomment">     * Create a new parser instance.</em>
<a name="519" href="#519">519</a> <em class="jxr_javadoccomment">     * @return A new parser instance.</em>
<a name="520" href="#520">520</a> <em class="jxr_javadoccomment">     */</em>
<a name="521" href="#521">521</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/velocity/runtime/parser/Parser.html">Parser</a> createNewParser();
<a name="522" href="#522">522</a> 
<a name="523" href="#523">523</a>     <em class="jxr_javadoccomment">/**</em>
<a name="524" href="#524">524</a> <em class="jxr_javadoccomment">     * Retrieve a previously instantiated directive.</em>
<a name="525" href="#525">525</a> <em class="jxr_javadoccomment">     * @param name name of the directive</em>
<a name="526" href="#526">526</a> <em class="jxr_javadoccomment">     * @return the directive with that name, if any</em>
<a name="527" href="#527">527</a> <em class="jxr_javadoccomment">     * @since 1.6</em>
<a name="528" href="#528">528</a> <em class="jxr_javadoccomment">     */</em>
<a name="529" href="#529">529</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/velocity/runtime/directive/Directive.html">Directive</a> getDirective(String name);
<a name="530" href="#530">530</a> 
<a name="531" href="#531">531</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

