<!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>TestProvider 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.provider;
<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.util.ArrayList;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.Hashtable;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Stack;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.Vector;
<a name="27" href="#27">27</a>  
<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment">/**</em>
<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment"> * This class is used by the testbed. Instances of the class</em>
<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment"> * are fed into the context that is set before the AST</em>
<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment"> * is traversed and dynamic content generated.</em>
<a name="32" href="#32">32</a>  <em class="jxr_javadoccomment"> *</em>
<a name="33" href="#33">33</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="34" href="#34">34</a>  <em class="jxr_javadoccomment"> * @version $Id: TestProvider.java 463298 2006-10-12 16:10:32Z henning $</em>
<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> */</em>
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/velocity/test/provider/TestProvider.html">TestProvider</a>
<a name="37" href="#37">37</a>  {
<a name="38" href="#38">38</a>      String title = <span class="jxr_string">"lunatic"</span>;
<a name="39" href="#39">39</a>      <strong class="jxr_keyword">boolean</strong> state;
<a name="40" href="#40">40</a>      Object ob = <strong class="jxr_keyword">null</strong>;
<a name="41" href="#41">41</a>  
<a name="42" href="#42">42</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String PUB_STAT_STRING = <span class="jxr_string">"Public Static String"</span>;
<a name="43" href="#43">43</a>  
<a name="44" href="#44">44</a>      <strong class="jxr_keyword">int</strong> stateint = 0;
<a name="45" href="#45">45</a>  
<a name="46" href="#46">46</a>  
<a name="47" href="#47">47</a>      <strong class="jxr_keyword">public</strong> String getName()
<a name="48" href="#48">48</a>      {
<a name="49" href="#49">49</a>          <strong class="jxr_keyword">return</strong> <span class="jxr_string">"jason"</span>;
<a name="50" href="#50">50</a>      }
<a name="51" href="#51">51</a>  
<a name="52" href="#52">52</a>      <strong class="jxr_keyword">public</strong> Stack getStack()
<a name="53" href="#53">53</a>      {
<a name="54" href="#54">54</a>          Stack stack = <strong class="jxr_keyword">new</strong> Stack();
<a name="55" href="#55">55</a>          stack.push(<span class="jxr_string">"stack element 1"</span>);
<a name="56" href="#56">56</a>          stack.push(<span class="jxr_string">"stack element 2"</span>);
<a name="57" href="#57">57</a>          stack.push(<span class="jxr_string">"stack element 3"</span>);
<a name="58" href="#58">58</a>          <strong class="jxr_keyword">return</strong> stack;
<a name="59" href="#59">59</a>      }
<a name="60" href="#60">60</a>  
<a name="61" href="#61">61</a>      <strong class="jxr_keyword">public</strong> List getEmptyList()
<a name="62" href="#62">62</a>      {
<a name="63" href="#63">63</a>          List list = <strong class="jxr_keyword">new</strong> ArrayList();
<a name="64" href="#64">64</a>          <strong class="jxr_keyword">return</strong> list;
<a name="65" href="#65">65</a>      }
<a name="66" href="#66">66</a>  
<a name="67" href="#67">67</a>      <strong class="jxr_keyword">public</strong> List getList()
<a name="68" href="#68">68</a>      {
<a name="69" href="#69">69</a>          List list = <strong class="jxr_keyword">new</strong> ArrayList();
<a name="70" href="#70">70</a>          list.add(<span class="jxr_string">"list element 1"</span>);
<a name="71" href="#71">71</a>          list.add(<span class="jxr_string">"list element 2"</span>);
<a name="72" href="#72">72</a>          list.add(<span class="jxr_string">"list element 3"</span>);
<a name="73" href="#73">73</a>  
<a name="74" href="#74">74</a>          <strong class="jxr_keyword">return</strong> list;
<a name="75" href="#75">75</a>      }
<a name="76" href="#76">76</a>  
<a name="77" href="#77">77</a>      <strong class="jxr_keyword">public</strong> Hashtable getSearch()
<a name="78" href="#78">78</a>      {
<a name="79" href="#79">79</a>          Hashtable h = <strong class="jxr_keyword">new</strong> Hashtable();
<a name="80" href="#80">80</a>          h.put(<span class="jxr_string">"Text"</span>, <span class="jxr_string">"this is some text"</span>);
<a name="81" href="#81">81</a>          h.put(<span class="jxr_string">"EscText"</span>, <span class="jxr_string">"this is escaped text"</span>);
<a name="82" href="#82">82</a>          h.put(<span class="jxr_string">"Title"</span>, <span class="jxr_string">"this is the title"</span>);
<a name="83" href="#83">83</a>          h.put(<span class="jxr_string">"Index"</span>, <span class="jxr_string">"this is the index"</span>);
<a name="84" href="#84">84</a>          h.put(<span class="jxr_string">"URL"</span>, <span class="jxr_string">"http://periapt.com"</span>);
<a name="85" href="#85">85</a>  
<a name="86" href="#86">86</a>          ArrayList al = <strong class="jxr_keyword">new</strong> ArrayList();
<a name="87" href="#87">87</a>          al.add(h);
<a name="88" href="#88">88</a>  
<a name="89" href="#89">89</a>          h.put(<span class="jxr_string">"RelatedLinks"</span>, al);
<a name="90" href="#90">90</a>  
<a name="91" href="#91">91</a>          <strong class="jxr_keyword">return</strong> h;
<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> Hashtable getHashtable()
<a name="95" href="#95">95</a>      {
<a name="96" href="#96">96</a>          Hashtable h = <strong class="jxr_keyword">new</strong> Hashtable();
<a name="97" href="#97">97</a>          h.put(<span class="jxr_string">"key0"</span>, <span class="jxr_string">"value0"</span>);
<a name="98" href="#98">98</a>          h.put(<span class="jxr_string">"key1"</span>, <span class="jxr_string">"value1"</span>);
<a name="99" href="#99">99</a>          h.put(<span class="jxr_string">"key2"</span>, <span class="jxr_string">"value2"</span>);
<a name="100" href="#100">100</a> 
<a name="101" href="#101">101</a>         <strong class="jxr_keyword">return</strong> h;
<a name="102" href="#102">102</a>     }
<a name="103" href="#103">103</a> 
<a name="104" href="#104">104</a>     <strong class="jxr_keyword">public</strong> ArrayList getRelSearches()
<a name="105" href="#105">105</a>     {
<a name="106" href="#106">106</a>         ArrayList al = <strong class="jxr_keyword">new</strong> ArrayList();
<a name="107" href="#107">107</a>         al.add(getSearch());
<a name="108" href="#108">108</a> 
<a name="109" href="#109">109</a>         <strong class="jxr_keyword">return</strong> al;
<a name="110" href="#110">110</a>     }
<a name="111" href="#111">111</a> 
<a name="112" href="#112">112</a>     <strong class="jxr_keyword">public</strong> String getTitle()
<a name="113" href="#113">113</a>     {
<a name="114" href="#114">114</a>         <strong class="jxr_keyword">return</strong> title;
<a name="115" href="#115">115</a>     }
<a name="116" href="#116">116</a> 
<a name="117" href="#117">117</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setTitle(String title)
<a name="118" href="#118">118</a>     {
<a name="119" href="#119">119</a>         <strong class="jxr_keyword">this</strong>.title = title;
<a name="120" href="#120">120</a>     }
<a name="121" href="#121">121</a> 
<a name="122" href="#122">122</a>     <strong class="jxr_keyword">public</strong> Object[] getMenu()
<a name="123" href="#123">123</a>     {
<a name="124" href="#124">124</a>         <em class="jxr_comment">//ArrayList al = new ArrayList();</em>
<a name="125" href="#125">125</a>         Object[] menu = <strong class="jxr_keyword">new</strong> Object[3];
<a name="126" href="#126">126</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 3; i++)
<a name="127" href="#127">127</a>         {
<a name="128" href="#128">128</a>             Hashtable item = <strong class="jxr_keyword">new</strong> Hashtable();
<a name="129" href="#129">129</a>             item.put(<span class="jxr_string">"id"</span>, <span class="jxr_string">"item"</span> + Integer.toString(i+1));
<a name="130" href="#130">130</a>             item.put(<span class="jxr_string">"name"</span>, <span class="jxr_string">"name"</span> + Integer.toString(i+1));
<a name="131" href="#131">131</a>             item.put(<span class="jxr_string">"label"</span>, <span class="jxr_string">"label"</span> + Integer.toString(i+1));
<a name="132" href="#132">132</a>             <em class="jxr_comment">//al.add(item);</em>
<a name="133" href="#133">133</a>             menu[i] = item;
<a name="134" href="#134">134</a>         }
<a name="135" href="#135">135</a> 
<a name="136" href="#136">136</a>         <em class="jxr_comment">//return al;</em>
<a name="137" href="#137">137</a>         <strong class="jxr_keyword">return</strong> menu;
<a name="138" href="#138">138</a>     }
<a name="139" href="#139">139</a> 
<a name="140" href="#140">140</a>     <strong class="jxr_keyword">public</strong> ArrayList getCustomers()
<a name="141" href="#141">141</a>     {
<a name="142" href="#142">142</a>         ArrayList list = <strong class="jxr_keyword">new</strong> ArrayList();
<a name="143" href="#143">143</a> 
<a name="144" href="#144">144</a>         list.add(<span class="jxr_string">"ArrayList element 1"</span>);
<a name="145" href="#145">145</a>         list.add(<span class="jxr_string">"ArrayList element 2"</span>);
<a name="146" href="#146">146</a>         list.add(<span class="jxr_string">"ArrayList element 3"</span>);
<a name="147" href="#147">147</a>         list.add(<span class="jxr_string">"ArrayList element 4"</span>);
<a name="148" href="#148">148</a> 
<a name="149" href="#149">149</a>         <strong class="jxr_keyword">return</strong> list;
<a name="150" href="#150">150</a>     }
<a name="151" href="#151">151</a> 
<a name="152" href="#152">152</a>     <strong class="jxr_keyword">public</strong> ArrayList getCustomers2()
<a name="153" href="#153">153</a>     {
<a name="154" href="#154">154</a>         ArrayList list = <strong class="jxr_keyword">new</strong> ArrayList();
<a name="155" href="#155">155</a> 
<a name="156" href="#156">156</a>         list.add(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/velocity/test/provider/TestProvider.html">TestProvider</a>());
<a name="157" href="#157">157</a>         list.add(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/velocity/test/provider/TestProvider.html">TestProvider</a>());
<a name="158" href="#158">158</a>         list.add(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/velocity/test/provider/TestProvider.html">TestProvider</a>());
<a name="159" href="#159">159</a>         list.add(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/velocity/test/provider/TestProvider.html">TestProvider</a>());
<a name="160" href="#160">160</a> 
<a name="161" href="#161">161</a>         <strong class="jxr_keyword">return</strong> list;
<a name="162" href="#162">162</a>     }
<a name="163" href="#163">163</a> 
<a name="164" href="#164">164</a>     <strong class="jxr_keyword">public</strong> Object me()
<a name="165" href="#165">165</a>     {
<a name="166" href="#166">166</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
<a name="167" href="#167">167</a>     }
<a name="168" href="#168">168</a> 
<a name="169" href="#169">169</a>     <strong class="jxr_keyword">public</strong> String toString()
<a name="170" href="#170">170</a>     {
<a name="171" href="#171">171</a>         <strong class="jxr_keyword">return</strong> (<span class="jxr_string">"test provider"</span>);
<a name="172" href="#172">172</a>     }
<a name="173" href="#173">173</a> 
<a name="174" href="#174">174</a>     <strong class="jxr_keyword">public</strong> Vector getVector()
<a name="175" href="#175">175</a>     {
<a name="176" href="#176">176</a>         Vector list = <strong class="jxr_keyword">new</strong> Vector();
<a name="177" href="#177">177</a> 
<a name="178" href="#178">178</a>         list.addElement(<span class="jxr_string">"vector element 1"</span>);
<a name="179" href="#179">179</a>         list.addElement(<span class="jxr_string">"vector element 2"</span>);
<a name="180" href="#180">180</a> 
<a name="181" href="#181">181</a>         <strong class="jxr_keyword">return</strong> list;
<a name="182" href="#182">182</a>     }
<a name="183" href="#183">183</a> 
<a name="184" href="#184">184</a>     <strong class="jxr_keyword">public</strong> String[] getArray()
<a name="185" href="#185">185</a>     {
<a name="186" href="#186">186</a>         String[] strings = <strong class="jxr_keyword">new</strong> String[2];
<a name="187" href="#187">187</a>         strings[0] = <span class="jxr_string">"first element"</span>;
<a name="188" href="#188">188</a>         strings[1] = <span class="jxr_string">"second element"</span>;
<a name="189" href="#189">189</a>         <strong class="jxr_keyword">return</strong> strings;
<a name="190" href="#190">190</a>     }
<a name="191" href="#191">191</a> 
<a name="192" href="#192">192</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> theAPLRules()
<a name="193" href="#193">193</a>     {
<a name="194" href="#194">194</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="195" href="#195">195</a>     }
<a name="196" href="#196">196</a> 
<a name="197" href="#197">197</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getStateTrue()
<a name="198" href="#198">198</a>     {
<a name="199" href="#199">199</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="200" href="#200">200</a>     }
<a name="201" href="#201">201</a> 
<a name="202" href="#202">202</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> getStateFalse()
<a name="203" href="#203">203</a>     {
<a name="204" href="#204">204</a>         <strong class="jxr_keyword">return</strong> false;
<a name="205" href="#205">205</a>     }
<a name="206" href="#206">206</a> 
<a name="207" href="#207">207</a>     <strong class="jxr_keyword">public</strong> String objectArrayMethod(Object[] o)
<a name="208" href="#208">208</a>     {
<a name="209" href="#209">209</a>         <strong class="jxr_keyword">return</strong> <span class="jxr_string">"result of objectArrayMethod"</span>;
<a name="210" href="#210">210</a>     }
<a name="211" href="#211">211</a> 
<a name="212" href="#212">212</a>     <strong class="jxr_keyword">public</strong> String concat(Object[] strings)
<a name="213" href="#213">213</a>     {
<a name="214" href="#214">214</a>         StringBuffer result = <strong class="jxr_keyword">new</strong> StringBuffer();
<a name="215" href="#215">215</a> 
<a name="216" href="#216">216</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; strings.length; i++)
<a name="217" href="#217">217</a>         {
<a name="218" href="#218">218</a>             result.append((String) strings[i]).append(' ');
<a name="219" href="#219">219</a>         }
<a name="220" href="#220">220</a> 
<a name="221" href="#221">221</a>         <strong class="jxr_keyword">return</strong> result.toString();
<a name="222" href="#222">222</a>     }
<a name="223" href="#223">223</a> 
<a name="224" href="#224">224</a>     <strong class="jxr_keyword">public</strong> String concat(List strings)
<a name="225" href="#225">225</a>     {
<a name="226" href="#226">226</a>         StringBuffer result = <strong class="jxr_keyword">new</strong> StringBuffer();
<a name="227" href="#227">227</a> 
<a name="228" href="#228">228</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; strings.size(); i++)
<a name="229" href="#229">229</a>         {
<a name="230" href="#230">230</a>             result.append((String) strings.get(i)).append(' ');
<a name="231" href="#231">231</a>         }
<a name="232" href="#232">232</a> 
<a name="233" href="#233">233</a>         <strong class="jxr_keyword">return</strong> result.toString();
<a name="234" href="#234">234</a>     }
<a name="235" href="#235">235</a> 
<a name="236" href="#236">236</a>     <strong class="jxr_keyword">public</strong> String objConcat(List objects)
<a name="237" href="#237">237</a>     {
<a name="238" href="#238">238</a>         StringBuffer result = <strong class="jxr_keyword">new</strong> StringBuffer();
<a name="239" href="#239">239</a> 
<a name="240" href="#240">240</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; objects.size(); i++)
<a name="241" href="#241">241</a>         {
<a name="242" href="#242">242</a>             result.append(objects.get(i)).append(' ');
<a name="243" href="#243">243</a>         }
<a name="244" href="#244">244</a> 
<a name="245" href="#245">245</a>         <strong class="jxr_keyword">return</strong> result.toString();
<a name="246" href="#246">246</a>     }
<a name="247" href="#247">247</a> 
<a name="248" href="#248">248</a>     <strong class="jxr_keyword">public</strong> String parse(String a, Object o, String c, String d)
<a name="249" href="#249">249</a>     {
<a name="250" href="#250">250</a>         <strong class="jxr_keyword">return</strong> a + o.toString() + c + d;
<a name="251" href="#251">251</a>     }
<a name="252" href="#252">252</a> 
<a name="253" href="#253">253</a>     <strong class="jxr_keyword">public</strong> String concat(String a, String b)
<a name="254" href="#254">254</a>     {
<a name="255" href="#255">255</a>         <strong class="jxr_keyword">return</strong> a + b;
<a name="256" href="#256">256</a>     }
<a name="257" href="#257">257</a> 
<a name="258" href="#258">258</a>     <em class="jxr_comment">// These two are for testing subclasses.</em>
<a name="259" href="#259">259</a> 
<a name="260" href="#260">260</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/velocity/test/provider/Person.html">Person</a> getPerson()
<a name="261" href="#261">261</a>     {
<a name="262" href="#262">262</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/velocity/test/provider/Person.html">Person</a>();
<a name="263" href="#263">263</a>     }
<a name="264" href="#264">264</a> 
<a name="265" href="#265">265</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/velocity/test/provider/Child.html">Child</a> getChild()
<a name="266" href="#266">266</a>     {
<a name="267" href="#267">267</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/velocity/test/provider/Child.html">Child</a>();
<a name="268" href="#268">268</a>     }
<a name="269" href="#269">269</a> 
<a name="270" href="#270">270</a>     <strong class="jxr_keyword">public</strong> String showPerson(<a href="../../../../../org/apache/velocity/test/provider/Person.html">Person</a> person)
<a name="271" href="#271">271</a>     {
<a name="272" href="#272">272</a>         <strong class="jxr_keyword">return</strong> person.getName();
<a name="273" href="#273">273</a>     }
<a name="274" href="#274">274</a> 
<a name="275" href="#275">275</a>     <em class="jxr_javadoccomment">/**</em>
<a name="276" href="#276">276</a> <em class="jxr_javadoccomment">     * Chop i characters off the end of a string.</em>
<a name="277" href="#277">277</a> <em class="jxr_javadoccomment">     *</em>
<a name="278" href="#278">278</a> <em class="jxr_javadoccomment">     * @param string String to chop.</em>
<a name="279" href="#279">279</a> <em class="jxr_javadoccomment">     * @param i Number of characters to chop.</em>
<a name="280" href="#280">280</a> <em class="jxr_javadoccomment">     * @return String with processed answer.</em>
<a name="281" href="#281">281</a> <em class="jxr_javadoccomment">     */</em>
<a name="282" href="#282">282</a>     <strong class="jxr_keyword">public</strong> String chop(String string, <strong class="jxr_keyword">int</strong> i)
<a name="283" href="#283">283</a>     {
<a name="284" href="#284">284</a>         <strong class="jxr_keyword">return</strong>(string.substring(0, string.length() - i));
<a name="285" href="#285">285</a>     }
<a name="286" href="#286">286</a> 
<a name="287" href="#287">287</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> allEmpty(Object[] list)
<a name="288" href="#288">288</a>     {
<a name="289" href="#289">289</a>         <strong class="jxr_keyword">int</strong> size = list.length;
<a name="290" href="#290">290</a> 
<a name="291" href="#291">291</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; size; i++)
<a name="292" href="#292">292</a>             <strong class="jxr_keyword">if</strong> (list[i].toString().length() &gt; 0)
<a name="293" href="#293">293</a>                 <strong class="jxr_keyword">return</strong> false;
<a name="294" href="#294">294</a> 
<a name="295" href="#295">295</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="296" href="#296">296</a>     }
<a name="297" href="#297">297</a> 
<a name="298" href="#298">298</a>     <em class="jxr_comment">/*</em>
<a name="299" href="#299">299</a> <em class="jxr_comment">     * This can't have the signature</em>
<a name="300" href="#300">300</a> <em class="jxr_comment">     *</em>
<a name="301" href="#301">301</a> <em class="jxr_comment">     *    public void setState(boolean state)</em>
<a name="302" href="#302">302</a> <em class="jxr_comment">     *</em>
<a name="303" href="#303">303</a> <em class="jxr_comment">     *    or dynamically invoking the method</em>
<a name="304" href="#304">304</a> <em class="jxr_comment">     *    doesn't work ... you would have to</em>
<a name="305" href="#305">305</a> <em class="jxr_comment">     *    put a wrapper around a method for a</em>
<a name="306" href="#306">306</a> <em class="jxr_comment">     *    real boolean property that takes a</em>
<a name="307" href="#307">307</a> <em class="jxr_comment">     *    Boolean object if you wanted this to</em>
<a name="308" href="#308">308</a> <em class="jxr_comment">     *    work. Not really sure how useful it</em>
<a name="309" href="#309">309</a> <em class="jxr_comment">     *    is anyway. Who cares about boolean</em>
<a name="310" href="#310">310</a> <em class="jxr_comment">     *    values you can just set a variable.</em>
<a name="311" href="#311">311</a> <em class="jxr_comment">     *</em>
<a name="312" href="#312">312</a> <em class="jxr_comment">     */</em>
<a name="313" href="#313">313</a> 
<a name="314" href="#314">314</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setState(Boolean state)
<a name="315" href="#315">315</a>     {
<a name="316" href="#316">316</a>     }
<a name="317" href="#317">317</a> 
<a name="318" href="#318">318</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setBangStart( Integer i )
<a name="319" href="#319">319</a>     {
<a name="320" href="#320">320</a>         System.out.println(<span class="jxr_string">"SetBangStart() : called with val = "</span> + i );
<a name="321" href="#321">321</a>         stateint = i.intValue();
<a name="322" href="#322">322</a>     }
<a name="323" href="#323">323</a>     <strong class="jxr_keyword">public</strong> Integer bang()
<a name="324" href="#324">324</a>     {
<a name="325" href="#325">325</a>         System.out.println(<span class="jxr_string">"Bang! : "</span> + stateint );
<a name="326" href="#326">326</a>         Integer ret = <strong class="jxr_keyword">new</strong> Integer( stateint );
<a name="327" href="#327">327</a>         stateint++;
<a name="328" href="#328">328</a>         <strong class="jxr_keyword">return</strong> ret;
<a name="329" href="#329">329</a>     }
<a name="330" href="#330">330</a> 
<a name="331" href="#331">331</a>     <em class="jxr_javadoccomment">/**</em>
<a name="332" href="#332">332</a> <em class="jxr_javadoccomment">     * Test the ability of vel to use a get(key)</em>
<a name="333" href="#333">333</a> <em class="jxr_javadoccomment">     * method for any object type, not just one</em>
<a name="334" href="#334">334</a> <em class="jxr_javadoccomment">     * that implements the Map interface.</em>
<a name="335" href="#335">335</a> <em class="jxr_javadoccomment">     */</em>
<a name="336" href="#336">336</a>     <strong class="jxr_keyword">public</strong> String get(String key)
<a name="337" href="#337">337</a>     {
<a name="338" href="#338">338</a>         <strong class="jxr_keyword">return</strong> key;
<a name="339" href="#339">339</a>     }
<a name="340" href="#340">340</a> 
<a name="341" href="#341">341</a>     <em class="jxr_javadoccomment">/**</em>
<a name="342" href="#342">342</a> <em class="jxr_javadoccomment">     * Test the ability of vel to use a put(key)</em>
<a name="343" href="#343">343</a> <em class="jxr_javadoccomment">     * method for any object type, not just one</em>
<a name="344" href="#344">344</a> <em class="jxr_javadoccomment">     * that implements the Map interface.</em>
<a name="345" href="#345">345</a> <em class="jxr_javadoccomment">     */</em>
<a name="346" href="#346">346</a>     <strong class="jxr_keyword">public</strong> String put(String key, Object o)
<a name="347" href="#347">347</a>     {
<a name="348" href="#348">348</a>         ob = o;
<a name="349" href="#349">349</a>         <strong class="jxr_keyword">return</strong> key;
<a name="350" href="#350">350</a>     }
<a name="351" href="#351">351</a> 
<a name="352" href="#352">352</a>     <strong class="jxr_keyword">public</strong> String getFoo()
<a name="353" href="#353">353</a>         <strong class="jxr_keyword">throws</strong> Exception
<a name="354" href="#354">354</a>     {
<a name="355" href="#355">355</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> Exception(<span class="jxr_string">"From getFoo()"</span>);
<a name="356" href="#356">356</a>     }
<a name="357" href="#357">357</a> 
<a name="358" href="#358">358</a>     <strong class="jxr_keyword">public</strong> String getThrow()
<a name="359" href="#359">359</a>         <strong class="jxr_keyword">throws</strong> Exception
<a name="360" href="#360">360</a>     {
<a name="361" href="#361">361</a>        <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> Exception(<span class="jxr_string">"From getThrow()"</span>);
<a name="362" href="#362">362</a>     }
<a name="363" href="#363">363</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

