<!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>ASTStringLiteral xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../apidocs/org/apache/velocity/runtime/parser/node/ASTStringLiteral.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <strong class="jxr_keyword">package</strong> org.apache.velocity.runtime.parser.node;
<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 or more</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * contributor license agreements. See the NOTICE file distributed with this</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * work for additional information regarding copyright ownership. The ASF</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * licenses this file to you under the Apache License, Version 2.0 (the</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance with the License.</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> * You may obtain a copy of the License at</em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> * </em>
<a name="11" href="#11">11</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="12" href="#12">12</a>  <em class="jxr_comment"> * </em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> * License for the specific language governing permissions and limitations under</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> * the License.</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
<a name="19" href="#19">19</a>  
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.io.StringReader;
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.StringWriter;
<a name="23" href="#23">23</a>  
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.text.StrBuilder;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.context.InternalContextAdapter;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.exception.MethodInvocationException;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.exception.ParseErrorException;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.exception.ResourceNotFoundException;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.exception.TemplateInitException;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.exception.VelocityException;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.runtime.RuntimeConstants;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.runtime.log.Log;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.runtime.parser.ParseException;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.runtime.parser.Parser;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.runtime.parser.Token;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.velocity.runtime.visitor.BaseVisitor;
<a name="37" href="#37">37</a>  
<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment">/**</em>
<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * ASTStringLiteral support. Will interpolate!</em>
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * </em>
<a name="41" href="#41">41</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="42" href="#42">42</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="43" href="#43">43</a>  <em class="jxr_javadoccomment"> * @version $Id: ASTStringLiteral.java 705297 2008-10-16 17:59:24Z nbubna $</em>
<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> */</em>
<a name="45" href="#45">45</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/velocity/runtime/parser/node/ASTStringLiteral.html">ASTStringLiteral</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../../org/apache/velocity/runtime/parser/node/SimpleNode.html">SimpleNode</a>
<a name="46" href="#46">46</a>  {
<a name="47" href="#47">47</a>      <em class="jxr_comment">/*<em class="jxr_comment"> cache the value of the interpolation switch */</em></em>
<a name="48" href="#48">48</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> interpolate = <strong class="jxr_keyword">true</strong>;
<a name="49" href="#49">49</a>  
<a name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/velocity/runtime/parser/node/SimpleNode.html">SimpleNode</a> nodeTree = <strong class="jxr_keyword">null</strong>;
<a name="51" href="#51">51</a>  
<a name="52" href="#52">52</a>      <strong class="jxr_keyword">private</strong> String image = <span class="jxr_string">""</span>;
<a name="53" href="#53">53</a>  
<a name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> String interpolateimage = <span class="jxr_string">""</span>;
<a name="55" href="#55">55</a>  
<a name="56" href="#56">56</a>      <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> true if the string contains a line comment (##) */</em>
<a name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> containsLineComment;
<a name="58" href="#58">58</a>  
<a name="59" href="#59">59</a>      <em class="jxr_javadoccomment">/**</em>
<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">     * @param id</em>
<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment">     */</em>
<a name="62" href="#62">62</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/velocity/runtime/parser/node/ASTStringLiteral.html">ASTStringLiteral</a>(<strong class="jxr_keyword">int</strong> id)
<a name="63" href="#63">63</a>      {
<a name="64" href="#64">64</a>          <strong class="jxr_keyword">super</strong>(id);
<a name="65" href="#65">65</a>      }
<a name="66" href="#66">66</a>  
<a name="67" href="#67">67</a>      <em class="jxr_javadoccomment">/**</em>
<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     * @param p</em>
<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     * @param id</em>
<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     */</em>
<a name="71" href="#71">71</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/velocity/runtime/parser/node/ASTStringLiteral.html">ASTStringLiteral</a>(<a href="../../../../../../org/apache/velocity/runtime/parser/Parser.html">Parser</a> p, <strong class="jxr_keyword">int</strong> id)
<a name="72" href="#72">72</a>      {
<a name="73" href="#73">73</a>          <strong class="jxr_keyword">super</strong>(p, id);
<a name="74" href="#74">74</a>      }
<a name="75" href="#75">75</a>  
<a name="76" href="#76">76</a>      <em class="jxr_javadoccomment">/**</em>
<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     * init : we don't have to do much. Init the tree (there shouldn't be one)</em>
<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">     * and then see if interpolation is turned on.</em>
<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment">     * </em>
<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">     * @param context</em>
<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     * @param data</em>
<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment">     * @return Init result.</em>
<a name="83" href="#83">83</a>  <em class="jxr_javadoccomment">     * @throws TemplateInitException</em>
<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment">     */</em>
<a name="85" href="#85">85</a>      <strong class="jxr_keyword">public</strong> Object init(<a href="../../../../../../org/apache/velocity/context/InternalContextAdapter.html">InternalContextAdapter</a> context, Object data)
<a name="86" href="#86">86</a>              <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/velocity/exception/TemplateInitException.html">TemplateInitException</a>
<a name="87" href="#87">87</a>      {
<a name="88" href="#88">88</a>          <em class="jxr_comment">/*</em>
<a name="89" href="#89">89</a>  <em class="jxr_comment">         * simple habit... we prollie don't have an AST beneath us</em>
<a name="90" href="#90">90</a>  <em class="jxr_comment">         */</em>
<a name="91" href="#91">91</a>  
<a name="92" href="#92">92</a>          <strong class="jxr_keyword">super</strong>.init(context, data);
<a name="93" href="#93">93</a>  
<a name="94" href="#94">94</a>          <em class="jxr_comment">/*</em>
<a name="95" href="#95">95</a>  <em class="jxr_comment">         * the stringlit is set at template parse time, so we can do this here</em>
<a name="96" href="#96">96</a>  <em class="jxr_comment">         * for now. if things change and we can somehow create stringlits at</em>
<a name="97" href="#97">97</a>  <em class="jxr_comment">         * runtime, this must move to the runtime execution path</em>
<a name="98" href="#98">98</a>  <em class="jxr_comment">         * </em>
<a name="99" href="#99">99</a>  <em class="jxr_comment">         * so, only if interpolation is turned on AND it starts with a " AND it</em>
<a name="100" href="#100">100</a> <em class="jxr_comment">         * has a directive or reference, then we can interpolate. Otherwise,</em>
<a name="101" href="#101">101</a> <em class="jxr_comment">         * don't bother.</em>
<a name="102" href="#102">102</a> <em class="jxr_comment">         */</em>
<a name="103" href="#103">103</a> 
<a name="104" href="#104">104</a>         interpolate = rsvc.getBoolean(
<a name="105" href="#105">105</a>                 RuntimeConstants.INTERPOLATE_STRINGLITERALS, <strong class="jxr_keyword">true</strong>)
<a name="106" href="#106">106</a>                 &amp;&amp; getFirstToken().image.startsWith(<span class="jxr_string">"\&quot;"</span>)
<a name="107" href="#107">107</a>                 &amp;&amp; ((getFirstToken().image.indexOf('$') != -1) || (getFirstToken().image
<a name="108" href="#108">108</a>                         .indexOf('#') != -1));
<a name="109" href="#109">109</a> 
<a name="110" href="#110">110</a>         <em class="jxr_comment">/*</em>
<a name="111" href="#111">111</a> <em class="jxr_comment">         * get the contents of the string, minus the '/" at each end</em>
<a name="112" href="#112">112</a> <em class="jxr_comment">         */</em>
<a name="113" href="#113">113</a> 
<a name="114" href="#114">114</a>         image = getFirstToken().image.substring(1, getFirstToken().image
<a name="115" href="#115">115</a>                 .length() - 1);
<a name="116" href="#116">116</a>         <strong class="jxr_keyword">if</strong> (getFirstToken().image.startsWith(<span class="jxr_string">"\&quot;"</span>))
<a name="117" href="#117">117</a>         {
<a name="118" href="#118">118</a>             image = unescape(image);
<a name="119" href="#119">119</a>         }
<a name="120" href="#120">120</a> 
<a name="121" href="#121">121</a>         <em class="jxr_javadoccomment">/**</em>
<a name="122" href="#122">122</a> <em class="jxr_javadoccomment">         * note. A kludge on a kludge. The first part, Geir calls this the</em>
<a name="123" href="#123">123</a> <em class="jxr_javadoccomment">         * dreaded &lt;MORE&gt; kludge. Basically, the use of the &lt;MORE&gt; token eats</em>
<a name="124" href="#124">124</a> <em class="jxr_javadoccomment">         * the last character of an interpolated string. EXCEPT when a line</em>
<a name="125" href="#125">125</a> <em class="jxr_javadoccomment">         * comment (##) is in the string this isn't an issue.</em>
<a name="126" href="#126">126</a> <em class="jxr_javadoccomment">         * </em>
<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">         * So, to solve this we look for a line comment. If it isn't found we</em>
<a name="128" href="#128">128</a> <em class="jxr_javadoccomment">         * add a space here and remove it later.</em>
<a name="129" href="#129">129</a> <em class="jxr_javadoccomment">         */</em>
<a name="130" href="#130">130</a> 
<a name="131" href="#131">131</a>         <em class="jxr_javadoccomment">/**</em>
<a name="132" href="#132">132</a> <em class="jxr_javadoccomment">         * Note - this should really use a regexp to look for [^\]## but</em>
<a name="133" href="#133">133</a> <em class="jxr_javadoccomment">         * apparently escaping of line comments isn't working right now anyway.</em>
<a name="134" href="#134">134</a> <em class="jxr_javadoccomment">         */</em>
<a name="135" href="#135">135</a>         containsLineComment = (image.indexOf(<span class="jxr_string">"##"</span>) != -1);
<a name="136" href="#136">136</a> 
<a name="137" href="#137">137</a>         <em class="jxr_comment">/*</em>
<a name="138" href="#138">138</a> <em class="jxr_comment">         * if appropriate, tack a space on the end (dreaded &lt;MORE&gt; kludge)</em>
<a name="139" href="#139">139</a> <em class="jxr_comment">         */</em>
<a name="140" href="#140">140</a> 
<a name="141" href="#141">141</a>         <strong class="jxr_keyword">if</strong> (!containsLineComment)
<a name="142" href="#142">142</a>         {
<a name="143" href="#143">143</a>             interpolateimage = image + <span class="jxr_string">" "</span>;
<a name="144" href="#144">144</a>         }
<a name="145" href="#145">145</a>         <strong class="jxr_keyword">else</strong>
<a name="146" href="#146">146</a>         {
<a name="147" href="#147">147</a>             interpolateimage = image;
<a name="148" href="#148">148</a>         }
<a name="149" href="#149">149</a> 
<a name="150" href="#150">150</a>         <strong class="jxr_keyword">if</strong> (interpolate)
<a name="151" href="#151">151</a>         {
<a name="152" href="#152">152</a>             <em class="jxr_comment">/*</em>
<a name="153" href="#153">153</a> <em class="jxr_comment">             * now parse and init the nodeTree</em>
<a name="154" href="#154">154</a> <em class="jxr_comment">             */</em>
<a name="155" href="#155">155</a>             StringReader br = <strong class="jxr_keyword">new</strong> StringReader(interpolateimage);
<a name="156" href="#156">156</a> 
<a name="157" href="#157">157</a>             <em class="jxr_comment">/*</em>
<a name="158" href="#158">158</a> <em class="jxr_comment">             * it's possible to not have an initialization context - or we don't</em>
<a name="159" href="#159">159</a> <em class="jxr_comment">             * want to trust the caller - so have a fallback value if so</em>
<a name="160" href="#160">160</a> <em class="jxr_comment">             * </em>
<a name="161" href="#161">161</a> <em class="jxr_comment">             * Also, do *not* dump the VM namespace for this template</em>
<a name="162" href="#162">162</a> <em class="jxr_comment">             */</em>
<a name="163" href="#163">163</a> 
<a name="164" href="#164">164</a>             String templateName =
<a name="165" href="#165">165</a>                 (context != <strong class="jxr_keyword">null</strong>) ? context.getCurrentTemplateName() : <span class="jxr_string">"StringLiteral"</span>;
<a name="166" href="#166">166</a>             <strong class="jxr_keyword">try</strong>
<a name="167" href="#167">167</a>             {
<a name="168" href="#168">168</a>                 nodeTree = rsvc.parse(br, templateName, false);
<a name="169" href="#169">169</a>             }
<a name="170" href="#170">170</a>             <strong class="jxr_keyword">catch</strong> (ParseException e)
<a name="171" href="#171">171</a>             {
<a name="172" href="#172">172</a>                 String msg = <span class="jxr_string">"Failed to parse String literal at "</span>+
<a name="173" href="#173">173</a>                     Log.formatFileString(templateName, getLine(), getColumn());
<a name="174" href="#174">174</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/velocity/exception/TemplateInitException.html">TemplateInitException</a>(msg, e, templateName, getColumn(), getLine());
<a name="175" href="#175">175</a>             }
<a name="176" href="#176">176</a> 
<a name="177" href="#177">177</a>             adjTokenLineNums(nodeTree);
<a name="178" href="#178">178</a>             
<a name="179" href="#179">179</a>             <em class="jxr_comment">/*</em>
<a name="180" href="#180">180</a> <em class="jxr_comment">             * init with context. It won't modify anything</em>
<a name="181" href="#181">181</a> <em class="jxr_comment">             */</em>
<a name="182" href="#182">182</a> 
<a name="183" href="#183">183</a>             nodeTree.init(context, rsvc);
<a name="184" href="#184">184</a>         }
<a name="185" href="#185">185</a> 
<a name="186" href="#186">186</a>         <strong class="jxr_keyword">return</strong> data;
<a name="187" href="#187">187</a>     }
<a name="188" href="#188">188</a>     
<a name="189" href="#189">189</a>     <em class="jxr_javadoccomment">/**</em>
<a name="190" href="#190">190</a> <em class="jxr_javadoccomment">     * Adjust all the line and column numbers that comprise a node so that they</em>
<a name="191" href="#191">191</a> <em class="jxr_javadoccomment">     * are corrected for the string literals position within the template file.</em>
<a name="192" href="#192">192</a> <em class="jxr_javadoccomment">     * This is neccessary if an exception is thrown while processing the node so</em>
<a name="193" href="#193">193</a> <em class="jxr_javadoccomment">     * that the line and column position reported reflects the error position</em>
<a name="194" href="#194">194</a> <em class="jxr_javadoccomment">     * within the template and not just relative to the error position within</em>
<a name="195" href="#195">195</a> <em class="jxr_javadoccomment">     * the string literal.</em>
<a name="196" href="#196">196</a> <em class="jxr_javadoccomment">     */</em>
<a name="197" href="#197">197</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> adjTokenLineNums(<a href="../../../../../../org/apache/velocity/runtime/parser/node/Node.html">Node</a> node)
<a name="198" href="#198">198</a>     {
<a name="199" href="#199">199</a>         <a href="../../../../../../org/apache/velocity/runtime/parser/Token.html">Token</a> tok = node.getFirstToken();
<a name="200" href="#200">200</a>         <em class="jxr_comment">// Test against null is probably not neccessary, but just being safe</em>
<a name="201" href="#201">201</a>         <strong class="jxr_keyword">while</strong>(tok != <strong class="jxr_keyword">null</strong> &amp;&amp; tok != node.getLastToken())
<a name="202" href="#202">202</a>         {
<a name="203" href="#203">203</a>             <em class="jxr_comment">// If tok is on the first line, then the actual column is </em>
<a name="204" href="#204">204</a>             <em class="jxr_comment">// offset by the template column.</em>
<a name="205" href="#205">205</a>           
<a name="206" href="#206">206</a>             <strong class="jxr_keyword">if</strong> (tok.beginLine == 1)
<a name="207" href="#207">207</a>                 tok.beginColumn += getColumn();
<a name="208" href="#208">208</a>             
<a name="209" href="#209">209</a>             <strong class="jxr_keyword">if</strong> (tok.endLine == 1)
<a name="210" href="#210">210</a>                 tok.endColumn += getColumn();
<a name="211" href="#211">211</a>             
<a name="212" href="#212">212</a>             tok.beginLine += getLine()- 1;
<a name="213" href="#213">213</a>             tok.endLine += getLine() - 1;
<a name="214" href="#214">214</a>             tok = tok.next;
<a name="215" href="#215">215</a>         }
<a name="216" href="#216">216</a>     }
<a name="217" href="#217">217</a>     
<a name="218" href="#218">218</a>     
<a name="219" href="#219">219</a>     <em class="jxr_javadoccomment">/**</em>
<a name="220" href="#220">220</a> <em class="jxr_javadoccomment">     * @since 1.6</em>
<a name="221" href="#221">221</a> <em class="jxr_javadoccomment">     */</em>
<a name="222" href="#222">222</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String unescape(<strong class="jxr_keyword">final</strong> String string)
<a name="223" href="#223">223</a>     {
<a name="224" href="#224">224</a>         <strong class="jxr_keyword">int</strong> u = string.indexOf(<span class="jxr_string">"&#92;&#92;u"</span>);
<a name="225" href="#225">225</a>         <strong class="jxr_keyword">if</strong> (u &lt; 0) <strong class="jxr_keyword">return</strong> string;
<a name="226" href="#226">226</a> 
<a name="227" href="#227">227</a>         StrBuilder result = <strong class="jxr_keyword">new</strong> StrBuilder();
<a name="228" href="#228">228</a>         
<a name="229" href="#229">229</a>         <strong class="jxr_keyword">int</strong> lastCopied = 0;
<a name="230" href="#230">230</a> 
<a name="231" href="#231">231</a>         <strong class="jxr_keyword">for</strong> (;;)
<a name="232" href="#232">232</a>         {
<a name="233" href="#233">233</a>             result.append(string.substring(lastCopied, u));
<a name="234" href="#234">234</a> 
<a name="235" href="#235">235</a>             <em class="jxr_comment">/*<em class="jxr_comment"> we don't worry about an exception here,</em></em>
<a name="236" href="#236">236</a> <em class="jxr_comment">             * because the lexer checked that string is correct */</em>
<a name="237" href="#237">237</a>             <strong class="jxr_keyword">char</strong> c = (<strong class="jxr_keyword">char</strong>) Integer.parseInt(string.substring(u + 2, u + 6), 16);
<a name="238" href="#238">238</a>             result.append(c);
<a name="239" href="#239">239</a> 
<a name="240" href="#240">240</a>             lastCopied = u + 6;
<a name="241" href="#241">241</a> 
<a name="242" href="#242">242</a>             u = string.indexOf(<span class="jxr_string">"&#92;&#92;u"</span>, lastCopied);
<a name="243" href="#243">243</a>             <strong class="jxr_keyword">if</strong> (u &lt; 0)
<a name="244" href="#244">244</a>             {
<a name="245" href="#245">245</a>                 result.append(string.substring(lastCopied));
<a name="246" href="#246">246</a>                 <strong class="jxr_keyword">return</strong> result.toString();
<a name="247" href="#247">247</a>             }
<a name="248" href="#248">248</a>         }
<a name="249" href="#249">249</a>     }
<a name="250" href="#250">250</a> 
<a name="251" href="#251">251</a> 
<a name="252" href="#252">252</a>     <em class="jxr_javadoccomment">/**</em>
<a name="253" href="#253">253</a> <em class="jxr_javadoccomment">     * @see org.apache.velocity.runtime.parser.node.SimpleNode#jjtAccept(org.apache.velocity.runtime.parser.node.ParserVisitor,</em>
<a name="254" href="#254">254</a> <em class="jxr_javadoccomment">     *      java.lang.Object)</em>
<a name="255" href="#255">255</a> <em class="jxr_javadoccomment">     */</em>
<a name="256" href="#256">256</a>     <strong class="jxr_keyword">public</strong> Object jjtAccept(<a href="../../../../../../org/apache/velocity/runtime/parser/node/ParserVisitor.html">ParserVisitor</a> visitor, Object data)
<a name="257" href="#257">257</a>     {
<a name="258" href="#258">258</a>         <strong class="jxr_keyword">return</strong> visitor.visit(<strong class="jxr_keyword">this</strong>, data);
<a name="259" href="#259">259</a>     }
<a name="260" href="#260">260</a> 
<a name="261" href="#261">261</a>     <em class="jxr_javadoccomment">/**</em>
<a name="262" href="#262">262</a> <em class="jxr_javadoccomment">     * Check to see if this is an interpolated string.</em>
<a name="263" href="#263">263</a> <em class="jxr_javadoccomment">     * @return true if this is constant (not an interpolated string)</em>
<a name="264" href="#264">264</a> <em class="jxr_javadoccomment">     * @since 1.6</em>
<a name="265" href="#265">265</a> <em class="jxr_javadoccomment">     */</em>
<a name="266" href="#266">266</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isConstant()
<a name="267" href="#267">267</a>     {
<a name="268" href="#268">268</a>         <strong class="jxr_keyword">return</strong> !interpolate;
<a name="269" href="#269">269</a>     }
<a name="270" href="#270">270</a> 
<a name="271" href="#271">271</a>     <em class="jxr_javadoccomment">/**</em>
<a name="272" href="#272">272</a> <em class="jxr_javadoccomment">     * renders the value of the string literal If the properties allow, and the</em>
<a name="273" href="#273">273</a> <em class="jxr_javadoccomment">     * string literal contains a $ or a # the literal is rendered against the</em>
<a name="274" href="#274">274</a> <em class="jxr_javadoccomment">     * context Otherwise, the stringlit is returned.</em>
<a name="275" href="#275">275</a> <em class="jxr_javadoccomment">     * </em>
<a name="276" href="#276">276</a> <em class="jxr_javadoccomment">     * @param context</em>
<a name="277" href="#277">277</a> <em class="jxr_javadoccomment">     * @return result of the rendering.</em>
<a name="278" href="#278">278</a> <em class="jxr_javadoccomment">     */</em>
<a name="279" href="#279">279</a>     <strong class="jxr_keyword">public</strong> Object value(<a href="../../../../../../org/apache/velocity/context/InternalContextAdapter.html">InternalContextAdapter</a> context)
<a name="280" href="#280">280</a>     {
<a name="281" href="#281">281</a>         <strong class="jxr_keyword">if</strong> (interpolate)
<a name="282" href="#282">282</a>         {
<a name="283" href="#283">283</a>             <strong class="jxr_keyword">try</strong>
<a name="284" href="#284">284</a>             {
<a name="285" href="#285">285</a>                 <em class="jxr_comment">/*</em>
<a name="286" href="#286">286</a> <em class="jxr_comment">                 * now render against the real context</em>
<a name="287" href="#287">287</a> <em class="jxr_comment">                 */</em>
<a name="288" href="#288">288</a> 
<a name="289" href="#289">289</a>                 StringWriter writer = <strong class="jxr_keyword">new</strong> StringWriter();
<a name="290" href="#290">290</a>                 nodeTree.render(context, writer);
<a name="291" href="#291">291</a> 
<a name="292" href="#292">292</a>                 <em class="jxr_comment">/*</em>
<a name="293" href="#293">293</a> <em class="jxr_comment">                 * and return the result as a String</em>
<a name="294" href="#294">294</a> <em class="jxr_comment">                 */</em>
<a name="295" href="#295">295</a> 
<a name="296" href="#296">296</a>                 String ret = writer.toString();
<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">                 * if appropriate, remove the space from the end (dreaded &lt;MORE&gt;</em>
<a name="300" href="#300">300</a> <em class="jxr_comment">                 * kludge part deux)</em>
<a name="301" href="#301">301</a> <em class="jxr_comment">                 */</em>
<a name="302" href="#302">302</a>                 <strong class="jxr_keyword">if</strong> (!containsLineComment &amp;&amp; ret.length() &gt; 0)
<a name="303" href="#303">303</a>                 {
<a name="304" href="#304">304</a>                     <strong class="jxr_keyword">return</strong> ret.substring(0, ret.length() - 1);
<a name="305" href="#305">305</a>                 }
<a name="306" href="#306">306</a>                 <strong class="jxr_keyword">else</strong>
<a name="307" href="#307">307</a>                 {
<a name="308" href="#308">308</a>                     <strong class="jxr_keyword">return</strong> ret;
<a name="309" href="#309">309</a>                 }
<a name="310" href="#310">310</a>             }
<a name="311" href="#311">311</a> 
<a name="312" href="#312">312</a>             <em class="jxr_javadoccomment">/**</em>
<a name="313" href="#313">313</a> <em class="jxr_javadoccomment">             * pass through application level runtime exceptions</em>
<a name="314" href="#314">314</a> <em class="jxr_javadoccomment">             */</em>
<a name="315" href="#315">315</a>             <strong class="jxr_keyword">catch</strong> (RuntimeException e)
<a name="316" href="#316">316</a>             {
<a name="317" href="#317">317</a>                 <strong class="jxr_keyword">throw</strong> e;
<a name="318" href="#318">318</a>             }
<a name="319" href="#319">319</a> 
<a name="320" href="#320">320</a>             <strong class="jxr_keyword">catch</strong> (IOException e)
<a name="321" href="#321">321</a>             {
<a name="322" href="#322">322</a>                 String msg = <span class="jxr_string">"Error in interpolating string literal"</span>;
<a name="323" href="#323">323</a>                 log.error(msg, e);
<a name="324" href="#324">324</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/velocity/exception/VelocityException.html">VelocityException</a>(msg, e);
<a name="325" href="#325">325</a>             }
<a name="326" href="#326">326</a> 
<a name="327" href="#327">327</a>         }
<a name="328" href="#328">328</a> 
<a name="329" href="#329">329</a>         <em class="jxr_comment">/*</em>
<a name="330" href="#330">330</a> <em class="jxr_comment">         * ok, either not allowed to interpolate, there wasn't a ref or</em>
<a name="331" href="#331">331</a> <em class="jxr_comment">         * directive, or we failed, so just output the literal</em>
<a name="332" href="#332">332</a> <em class="jxr_comment">         */</em>
<a name="333" href="#333">333</a> 
<a name="334" href="#334">334</a>         <strong class="jxr_keyword">return</strong> image;
<a name="335" href="#335">335</a>     }
<a name="336" href="#336">336</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

