<!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>TemplateTestCase xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<pre>

<a name="1" href="#1">1</a>   <strong class="jxr_keyword">package</strong> org.apache.velocity.test;
<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.BufferedWriter;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.FileOutputStream;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.OutputStreamWriter;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.Writer;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Hashtable;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.Vector;
<a name="30" href="#30">30</a>  
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.Template;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.VelocityContext;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.app.FieldMethodizer;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.runtime.RuntimeSingleton;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.test.provider.BoolObj;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.test.provider.NullToStringObject;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.test.provider.TestNumber;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.test.provider.TestProvider;
<a name="39" href="#39">39</a>  
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment">/**</em>
<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * Easily add test cases which evaluate templates and check their output.</em>
<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> *</em>
<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> * NOTE:</em>
<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> * This class DOES NOT extend RuntimeTestCase because the TemplateTestSuite</em>
<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> * already initializes the Velocity runtime and adds the template</em>
<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> * test cases. Having this class extend RuntimeTestCase causes the</em>
<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> * Runtime to be initialized twice which is not good. I only discovered</em>
<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> * this after a couple hours of wondering why all the properties</em>
<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> * being setup were ending up as Vectors. At first I thought it</em>
<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment"> * was a problem with the Configuration class, but the Runtime</em>
<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment"> * was being initialized twice: so the first time the property</em>
<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment"> * is seen it's stored as a String, the second time it's seen</em>
<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment"> * the Configuration class makes a Vector with both Strings.</em>
<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment"> * As a result all the getBoolean(property) calls were failing because</em>
<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment"> * the Configurations class was trying to create a Boolean from</em>
<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment"> * a Vector which doesn't really work that well. I have learned</em>
<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment"> * my lesson and now have to add some code to make sure the</em>
<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment"> * Runtime isn't initialized more then once :-)</em>
<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment"> *</em>
<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dlr@finemaltcoding.com" target="alexandria_uri">mailto:dlr@finemaltcoding.com</a>"&gt;Daniel Rall&lt;/a&gt;</em>
<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:jvanzyl@apache.org" target="alexandria_uri">mailto:jvanzyl@apache.org</a>"&gt;Jason van Zyl&lt;/a&gt;</em>
<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:geirm@optonline.net" target="alexandria_uri">mailto:geirm@optonline.net</a>"&gt;Geir Magnusson Jr.&lt;/a&gt;</em>
<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:jon@latchkey.com" target="alexandria_uri">mailto:jon@latchkey.com</a>"&gt;Jon S. Stevens&lt;/a&gt;</em>
<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment"> * @version $Id: TemplateTestCase.java 463298 2006-10-12 16:10:32Z henning $</em>
<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment"> */</em>
<a name="66" href="#66">66</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/velocity/test/TemplateTestCase.html">TemplateTestCase</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/velocity/test/BaseTestCase.html">BaseTestCase</a> implements <a href="../../../../org/apache/velocity/test/TemplateTestBase.html">TemplateTestBase</a>
<a name="67" href="#67">67</a>  {
<a name="68" href="#68">68</a>      <em class="jxr_javadoccomment">/**</em>
<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     * The base file name of the template and comparison file (i.e. array for</em>
<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     * array.vm and array.cmp).</em>
<a name="71" href="#71">71</a>  <em class="jxr_javadoccomment">     */</em>
<a name="72" href="#72">72</a>      <strong class="jxr_keyword">protected</strong> String baseFileName;
<a name="73" href="#73">73</a>  
<a name="74" href="#74">74</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/velocity/test/provider/TestProvider.html">TestProvider</a> provider;
<a name="75" href="#75">75</a>      <strong class="jxr_keyword">private</strong> ArrayList al;
<a name="76" href="#76">76</a>      <strong class="jxr_keyword">private</strong> Hashtable h;
<a name="77" href="#77">77</a>      <strong class="jxr_keyword">private</strong> VelocityContext context;
<a name="78" href="#78">78</a>      <strong class="jxr_keyword">private</strong> VelocityContext context1;
<a name="79" href="#79">79</a>      <strong class="jxr_keyword">private</strong> VelocityContext context2;
<a name="80" href="#80">80</a>      <strong class="jxr_keyword">private</strong> Vector vec;
<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">     * Creates a new instance.</em>
<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment">     *</em>
<a name="85" href="#85">85</a>  <em class="jxr_javadoccomment">     * @param baseFileName The base name of the template and comparison file to</em>
<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment">     *                     use (i.e. array for array.vm and array.cmp).</em>
<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     */</em>
<a name="88" href="#88">88</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/velocity/test/TemplateTestCase.html">TemplateTestCase</a> (String baseFileName)
<a name="89" href="#89">89</a>      {
<a name="90" href="#90">90</a>          <strong class="jxr_keyword">super</strong>(getTestCaseName(baseFileName));
<a name="91" href="#91">91</a>          <strong class="jxr_keyword">this</strong>.baseFileName = baseFileName;
<a name="92" href="#92">92</a>      }
<a name="93" href="#93">93</a>  
<a name="94" href="#94">94</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> junit.framework.Test suite()
<a name="95" href="#95">95</a>      {
<a name="96" href="#96">96</a>          <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/velocity/test/TemplateTestSuite.html">TemplateTestSuite</a>();
<a name="97" href="#97">97</a>      }
<a name="98" href="#98">98</a>  
<a name="99" href="#99">99</a>      <em class="jxr_javadoccomment">/**</em>
<a name="100" href="#100">100</a> <em class="jxr_javadoccomment">     * Sets up the test.</em>
<a name="101" href="#101">101</a> <em class="jxr_javadoccomment">     */</em>
<a name="102" href="#102">102</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setUp ()
<a name="103" href="#103">103</a>     {
<a name="104" href="#104">104</a>         provider = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/velocity/test/provider/TestProvider.html">TestProvider</a>();
<a name="105" href="#105">105</a>         al = provider.getCustomers();
<a name="106" href="#106">106</a>         h = <strong class="jxr_keyword">new</strong> Hashtable();
<a name="107" href="#107">107</a> 
<a name="108" href="#108">108</a>         h.put(<span class="jxr_string">"Bar"</span>, <span class="jxr_string">"this is from a hashtable!"</span>);
<a name="109" href="#109">109</a>         h.put(<span class="jxr_string">"Foo"</span>, <span class="jxr_string">"this is from a hashtable too!"</span>);
<a name="110" href="#110">110</a> 
<a name="111" href="#111">111</a>         <em class="jxr_comment">/*</em>
<a name="112" href="#112">112</a> <em class="jxr_comment">         *  lets set up a vector of objects to test late introspection. See ASTMethod.java</em>
<a name="113" href="#113">113</a> <em class="jxr_comment">         */</em>
<a name="114" href="#114">114</a> 
<a name="115" href="#115">115</a>         vec = <strong class="jxr_keyword">new</strong> Vector();
<a name="116" href="#116">116</a> 
<a name="117" href="#117">117</a>         vec.addElement(<strong class="jxr_keyword">new</strong> String(<span class="jxr_string">"string1"</span>));
<a name="118" href="#118">118</a>         vec.addElement(<strong class="jxr_keyword">new</strong> String(<span class="jxr_string">"string2"</span>));
<a name="119" href="#119">119</a> 
<a name="120" href="#120">120</a>         <em class="jxr_comment">/*</em>
<a name="121" href="#121">121</a> <em class="jxr_comment">         *  set up 3 chained contexts, and add our data</em>
<a name="122" href="#122">122</a> <em class="jxr_comment">         *  throught the 3 of them.</em>
<a name="123" href="#123">123</a> <em class="jxr_comment">         */</em>
<a name="124" href="#124">124</a> 
<a name="125" href="#125">125</a>         context2 = <strong class="jxr_keyword">new</strong> VelocityContext();
<a name="126" href="#126">126</a>         context1 = <strong class="jxr_keyword">new</strong> VelocityContext( context2 );
<a name="127" href="#127">127</a>         context = <strong class="jxr_keyword">new</strong> VelocityContext( context1 );
<a name="128" href="#128">128</a> 
<a name="129" href="#129">129</a>         context.put(<span class="jxr_string">"provider"</span>, provider);
<a name="130" href="#130">130</a>         context1.put(<span class="jxr_string">"name"</span>, <span class="jxr_string">"jason"</span>);
<a name="131" href="#131">131</a>         context1.put(<span class="jxr_string">"name2"</span>, <strong class="jxr_keyword">new</strong> StringBuffer(<span class="jxr_string">"jason"</span>));
<a name="132" href="#132">132</a>         context1.put(<span class="jxr_string">"name3"</span>, <strong class="jxr_keyword">new</strong> StringBuffer(<span class="jxr_string">"geoge"</span>));
<a name="133" href="#133">133</a>         context2.put(<span class="jxr_string">"providers"</span>, provider.getCustomers2());
<a name="134" href="#134">134</a>         context.put(<span class="jxr_string">"list"</span>, al);
<a name="135" href="#135">135</a>         context1.put(<span class="jxr_string">"hashtable"</span>, h);
<a name="136" href="#136">136</a>         context2.put(<span class="jxr_string">"hashmap"</span>, <strong class="jxr_keyword">new</strong> HashMap());
<a name="137" href="#137">137</a>         context2.put(<span class="jxr_string">"search"</span>, provider.getSearch());
<a name="138" href="#138">138</a>         context.put(<span class="jxr_string">"relatedSearches"</span>, provider.getRelSearches());
<a name="139" href="#139">139</a>         context1.put(<span class="jxr_string">"searchResults"</span>, provider.getRelSearches());
<a name="140" href="#140">140</a>         context2.put(<span class="jxr_string">"stringarray"</span>, provider.getArray());
<a name="141" href="#141">141</a>         context.put(<span class="jxr_string">"vector"</span>, vec );
<a name="142" href="#142">142</a>         context.put(<span class="jxr_string">"mystring"</span>, <strong class="jxr_keyword">new</strong> String());
<a name="143" href="#143">143</a>         context.put(<span class="jxr_string">"runtime"</span>, <strong class="jxr_keyword">new</strong> FieldMethodizer( <span class="jxr_string">"org.apache.velocity.runtime.RuntimeSingleton"</span> ));
<a name="144" href="#144">144</a>         context.put(<span class="jxr_string">"fmprov"</span>, <strong class="jxr_keyword">new</strong> FieldMethodizer( provider ));
<a name="145" href="#145">145</a>         context.put(<span class="jxr_string">"Floog"</span>, <span class="jxr_string">"floogie woogie"</span>);
<a name="146" href="#146">146</a>         context.put(<span class="jxr_string">"boolobj"</span>, <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/velocity/test/provider/BoolObj.html">BoolObj</a>() );
<a name="147" href="#147">147</a> 
<a name="148" href="#148">148</a>         <em class="jxr_comment">/*</em>
<a name="149" href="#149">149</a> <em class="jxr_comment">         *  we want to make sure we test all types of iterative objects</em>
<a name="150" href="#150">150</a> <em class="jxr_comment">         *  in #foreach()</em>
<a name="151" href="#151">151</a> <em class="jxr_comment">         */</em>
<a name="152" href="#152">152</a> 
<a name="153" href="#153">153</a>         Object[] oarr = { <span class="jxr_string">"a"</span>,<span class="jxr_string">"b"</span>,<span class="jxr_string">"c"</span>,<span class="jxr_string">"d"</span> } ;
<a name="154" href="#154">154</a>         <strong class="jxr_keyword">int</strong> intarr[] = { 10, 20, 30, 40, 50 };
<a name="155" href="#155">155</a> 
<a name="156" href="#156">156</a>         context.put( <span class="jxr_string">"collection"</span>, vec );
<a name="157" href="#157">157</a>         context2.put(<span class="jxr_string">"iterator"</span>, vec.iterator());
<a name="158" href="#158">158</a>         context1.put(<span class="jxr_string">"map"</span>, h );
<a name="159" href="#159">159</a>         context.put(<span class="jxr_string">"obarr"</span>, oarr );
<a name="160" href="#160">160</a>         context.put(<span class="jxr_string">"enumerator"</span>, vec.elements());
<a name="161" href="#161">161</a>         context.put(<span class="jxr_string">"intarr"</span>, intarr );
<a name="162" href="#162">162</a> 
<a name="163" href="#163">163</a>         <em class="jxr_comment">// Add some Numbers</em>
<a name="164" href="#164">164</a>         context.put (<span class="jxr_string">"int1"</span>, <strong class="jxr_keyword">new</strong> Integer (1000));
<a name="165" href="#165">165</a>         context.put (<span class="jxr_string">"long1"</span>, <strong class="jxr_keyword">new</strong> Long (10000000000l));
<a name="166" href="#166">166</a>         context.put (<span class="jxr_string">"float1"</span>, <strong class="jxr_keyword">new</strong> Float (1000.1234));
<a name="167" href="#167">167</a>         context.put (<span class="jxr_string">"double1"</span>, <strong class="jxr_keyword">new</strong> Double (10000000000d));
<a name="168" href="#168">168</a> 
<a name="169" href="#169">169</a>         <em class="jxr_comment">// Add a TemplateNumber</em>
<a name="170" href="#170">170</a>         context.put (<span class="jxr_string">"templatenumber1"</span>, <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/velocity/test/provider/TestNumber.html">TestNumber</a> (999.125));
<a name="171" href="#171">171</a> 
<a name="172" href="#172">172</a>         <em class="jxr_javadoccomment">/**</em>
<a name="173" href="#173">173</a> <em class="jxr_javadoccomment">         * Test #foreach() with a list containing nulls</em>
<a name="174" href="#174">174</a> <em class="jxr_javadoccomment">         */</em>
<a name="175" href="#175">175</a>         ArrayList nullList = <strong class="jxr_keyword">new</strong> ArrayList();
<a name="176" href="#176">176</a>         nullList.add(<span class="jxr_string">"a"</span>);
<a name="177" href="#177">177</a>         nullList.add(<span class="jxr_string">"b"</span>);
<a name="178" href="#178">178</a>         nullList.add(<strong class="jxr_keyword">null</strong>);
<a name="179" href="#179">179</a>         nullList.add(<span class="jxr_string">"d"</span>);
<a name="180" href="#180">180</a>         context.put(<span class="jxr_string">"nullList"</span>, nullList);
<a name="181" href="#181">181</a> 
<a name="182" href="#182">182</a>         <em class="jxr_comment">// test silent references with a null tostring</em>
<a name="183" href="#183">183</a>         context.put(<span class="jxr_string">"nullToString"</span>,<strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/velocity/test/provider/NullToStringObject.html">NullToStringObject</a>());
<a name="184" href="#184">184</a>     }
<a name="185" href="#185">185</a> 
<a name="186" href="#186">186</a>     <em class="jxr_javadoccomment">/**</em>
<a name="187" href="#187">187</a> <em class="jxr_javadoccomment">     * Runs the test.</em>
<a name="188" href="#188">188</a> <em class="jxr_javadoccomment">     */</em>
<a name="189" href="#189">189</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> runTest ()
<a name="190" href="#190">190</a>         <strong class="jxr_keyword">throws</strong> Exception
<a name="191" href="#191">191</a>     {
<a name="192" href="#192">192</a>         Template template = RuntimeSingleton.getTemplate
<a name="193" href="#193">193</a>             (getFileName(<strong class="jxr_keyword">null</strong>, baseFileName, TMPL_FILE_EXT));
<a name="194" href="#194">194</a> 
<a name="195" href="#195">195</a>         assureResultsDirectoryExists(RESULT_DIR);
<a name="196" href="#196">196</a> 
<a name="197" href="#197">197</a>         <em class="jxr_comment">/*<em class="jxr_comment"> get the file to write to */</em></em>
<a name="198" href="#198">198</a>         FileOutputStream fos =
<a name="199" href="#199">199</a>             <strong class="jxr_keyword">new</strong> FileOutputStream (getFileName(
<a name="200" href="#200">200</a>                 RESULT_DIR, baseFileName, RESULT_FILE_EXT));
<a name="201" href="#201">201</a> 
<a name="202" href="#202">202</a>         Writer writer = <strong class="jxr_keyword">new</strong> BufferedWriter(<strong class="jxr_keyword">new</strong> OutputStreamWriter(fos));
<a name="203" href="#203">203</a> 
<a name="204" href="#204">204</a>         <em class="jxr_comment">/*<em class="jxr_comment"> process the template */</em></em>
<a name="205" href="#205">205</a>         template.merge( context, writer);
<a name="206" href="#206">206</a> 
<a name="207" href="#207">207</a>         <em class="jxr_comment">/*<em class="jxr_comment"> close the file */</em></em>
<a name="208" href="#208">208</a>         writer.flush();
<a name="209" href="#209">209</a>         writer.close();
<a name="210" href="#210">210</a> 
<a name="211" href="#211">211</a>         <strong class="jxr_keyword">if</strong> (!isMatch(RESULT_DIR,COMPARE_DIR,baseFileName,
<a name="212" href="#212">212</a>                 RESULT_FILE_EXT,CMP_FILE_EXT))
<a name="213" href="#213">213</a>         {
<a name="214" href="#214">214</a>             fail(<span class="jxr_string">"Processed template did not match expected output"</span>);
<a name="215" href="#215">215</a>         }
<a name="216" href="#216">216</a>     }
<a name="217" href="#217">217</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

