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

<a name="1" href="#1">1</a>   <strong class="jxr_keyword">package</strong> org.apache.velocity.anakia;
<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> org.jdom.Element;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.jdom.Namespace;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.jdom.output.XMLOutputter;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a name="26" href="#26">26</a>  
<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment">/**</em>
<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment"> * A JDOM {@link Element} that is tailored for Anakia needs. It has</em>
<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment"> * {@link #selectNodes(String)} method as well as a {@link #toString()} that</em>
<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment"> * outputs the XML serialized form of the element. This way it acts in much the</em>
<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment"> * same way as a single-element {@link NodeList} would.</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:szegedia@freemail.hu" target="alexandria_uri">mailto:szegedia@freemail.hu</a>"&gt;Attila Szegedi&lt;/a&gt;</em>
<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> * @version $Id: AnakiaElement.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/anakia/AnakiaElement.html">AnakiaElement</a> <strong class="jxr_keyword">extends</strong> Element
<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">     * Version Id for serializable</em>
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment">     */</em>
<a name="41" href="#41">41</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> serialVersionUID = 8429597252274491314L;
<a name="42" href="#42">42</a>  
<a name="43" href="#43">43</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> XMLOutputter DEFAULT_OUTPUTTER = <strong class="jxr_keyword">new</strong> XMLOutputter();
<a name="44" href="#44">44</a>  
<a name="45" href="#45">45</a>      <strong class="jxr_keyword">static</strong>
<a name="46" href="#46">46</a>      {
<a name="47" href="#47">47</a>          DEFAULT_OUTPUTTER.getFormat().setLineSeparator(System.getProperty(<span class="jxr_string">"line.separator"</span>));
<a name="48" href="#48">48</a>      }
<a name="49" href="#49">49</a>  
<a name="50" href="#50">50</a>      <em class="jxr_javadoccomment">/**</em>
<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment">     * &lt;p&gt;</em>
<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment">     * This will create a new &lt;code&gt;AnakiaElement&lt;/code&gt;</em>
<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment">     *   with the supplied (local) name, and define</em>
<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment">     *   the &lt;code&gt;{@link Namespace}&lt;/code&gt; to be used.</em>
<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment">     * If the provided namespace is null, the element will have</em>
<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     * no namespace.</em>
<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     * &lt;/p&gt;</em>
<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment">     *</em>
<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment">     * @param name &lt;code&gt;String&lt;/code&gt; name of element.</em>
<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">     * @param namespace &lt;code&gt;Namespace&lt;/code&gt; to put element in.</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/anakia/AnakiaElement.html">AnakiaElement</a>(String name, Namespace namespace)
<a name="63" href="#63">63</a>      {
<a name="64" href="#64">64</a>          <strong class="jxr_keyword">super</strong>(name, namespace);
<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">     * &lt;p&gt;</em>
<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     *  This will create an &lt;code&gt;AnakiaElement&lt;/code&gt; in no</em>
<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     *    &lt;code&gt;{@link Namespace}&lt;/code&gt;.</em>
<a name="71" href="#71">71</a>  <em class="jxr_javadoccomment">     * &lt;/p&gt;</em>
<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment">     *</em>
<a name="73" href="#73">73</a>  <em class="jxr_javadoccomment">     * @param name &lt;code&gt;String&lt;/code&gt; name of element.</em>
<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     */</em>
<a name="75" href="#75">75</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/velocity/anakia/AnakiaElement.html">AnakiaElement</a>(String name)
<a name="76" href="#76">76</a>      {
<a name="77" href="#77">77</a>          <strong class="jxr_keyword">super</strong>(name);
<a name="78" href="#78">78</a>      }
<a name="79" href="#79">79</a>  
<a name="80" href="#80">80</a>      <em class="jxr_javadoccomment">/**</em>
<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     * &lt;p&gt;</em>
<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment">     *  This will create a new &lt;code&gt;AnakiaElement&lt;/code&gt; with</em>
<a name="83" href="#83">83</a>  <em class="jxr_javadoccomment">     *    the supplied (local) name, and specifies the URI</em>
<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment">     *    of the &lt;code&gt;{@link Namespace}&lt;/code&gt; the &lt;code&gt;Element&lt;/code&gt;</em>
<a name="85" href="#85">85</a>  <em class="jxr_javadoccomment">     *    should be in, resulting it being unprefixed (in the default</em>
<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment">     *    namespace).</em>
<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     * &lt;/p&gt;</em>
<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     *</em>
<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     * @param name &lt;code&gt;String&lt;/code&gt; name of element.</em>
<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     * @param uri &lt;code&gt;String&lt;/code&gt; URI for &lt;code&gt;Namespace&lt;/code&gt; element</em>
<a name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     *        should be in.</em>
<a name="92" href="#92">92</a>  <em class="jxr_javadoccomment">     */</em>
<a name="93" href="#93">93</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/velocity/anakia/AnakiaElement.html">AnakiaElement</a>(String name, String uri)
<a name="94" href="#94">94</a>      {
<a name="95" href="#95">95</a>          <strong class="jxr_keyword">super</strong>(name, uri);
<a name="96" href="#96">96</a>      }
<a name="97" href="#97">97</a>  
<a name="98" href="#98">98</a>      <em class="jxr_javadoccomment">/**</em>
<a name="99" href="#99">99</a>  <em class="jxr_javadoccomment">     * &lt;p&gt;</em>
<a name="100" href="#100">100</a> <em class="jxr_javadoccomment">     *  This will create a new &lt;code&gt;AnakiaElement&lt;/code&gt; with</em>
<a name="101" href="#101">101</a> <em class="jxr_javadoccomment">     *    the supplied (local) name, and specifies the prefix and URI</em>
<a name="102" href="#102">102</a> <em class="jxr_javadoccomment">     *    of the &lt;code&gt;{@link Namespace}&lt;/code&gt; the &lt;code&gt;Element&lt;/code&gt;</em>
<a name="103" href="#103">103</a> <em class="jxr_javadoccomment">     *    should be in.</em>
<a name="104" href="#104">104</a> <em class="jxr_javadoccomment">     * &lt;/p&gt;</em>
<a name="105" href="#105">105</a> <em class="jxr_javadoccomment">     *</em>
<a name="106" href="#106">106</a> <em class="jxr_javadoccomment">     * @param name &lt;code&gt;String&lt;/code&gt; name of element.</em>
<a name="107" href="#107">107</a> <em class="jxr_javadoccomment">     * @param prefix The prefix of the element.</em>
<a name="108" href="#108">108</a> <em class="jxr_javadoccomment">     * @param uri &lt;code&gt;String&lt;/code&gt; URI for &lt;code&gt;Namespace&lt;/code&gt; element</em>
<a name="109" href="#109">109</a> <em class="jxr_javadoccomment">     *        should be in.</em>
<a name="110" href="#110">110</a> <em class="jxr_javadoccomment">     */</em>
<a name="111" href="#111">111</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/velocity/anakia/AnakiaElement.html">AnakiaElement</a>(String name, String prefix, String uri)
<a name="112" href="#112">112</a>     {
<a name="113" href="#113">113</a>         <strong class="jxr_keyword">super</strong>(name, prefix, uri);
<a name="114" href="#114">114</a>     }
<a name="115" href="#115">115</a> 
<a name="116" href="#116">116</a>     <em class="jxr_javadoccomment">/**</em>
<a name="117" href="#117">117</a> <em class="jxr_javadoccomment">     * Applies an XPath expression to this element and returns the resulting</em>
<a name="118" href="#118">118</a> <em class="jxr_javadoccomment">     * node list. In order for this method to work, your application must have</em>
<a name="119" href="#119">119</a> <em class="jxr_javadoccomment">     * access to &lt;a href="<a href="http://code.werken.com" target="alexandria_uri">http://code.werken.com</a>"&gt;werken.xpath&lt;/a&gt; library</em>
<a name="120" href="#120">120</a> <em class="jxr_javadoccomment">     * classes. The implementation does cache the parsed format of XPath</em>
<a name="121" href="#121">121</a> <em class="jxr_javadoccomment">     * expressions in a weak hash map, keyed by the string representation of</em>
<a name="122" href="#122">122</a> <em class="jxr_javadoccomment">     * the XPath expression. As the string object passed as the argument is</em>
<a name="123" href="#123">123</a> <em class="jxr_javadoccomment">     * usually kept in the parsed template, this ensures that each XPath</em>
<a name="124" href="#124">124</a> <em class="jxr_javadoccomment">     * expression is parsed only once during the lifetime of the template that</em>
<a name="125" href="#125">125</a> <em class="jxr_javadoccomment">     * first invoked it.</em>
<a name="126" href="#126">126</a> <em class="jxr_javadoccomment">     * @param xpathExpression the XPath expression you wish to apply</em>
<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">     * @return a NodeList representing the nodes that are the result of</em>
<a name="128" href="#128">128</a> <em class="jxr_javadoccomment">     * application of the XPath to the current element. It can be empty.</em>
<a name="129" href="#129">129</a> <em class="jxr_javadoccomment">     */</em>
<a name="130" href="#130">130</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/velocity/anakia/NodeList.html">NodeList</a> selectNodes(String xpathExpression)
<a name="131" href="#131">131</a>     {
<a name="132" href="#132">132</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/velocity/anakia/NodeList.html">NodeList</a>(XPathCache.getXPath(xpathExpression).applyTo(<strong class="jxr_keyword">this</strong>), false);
<a name="133" href="#133">133</a>     }
<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">     * Returns the XML serialized form of this element, as produced by the default</em>
<a name="137" href="#137">137</a> <em class="jxr_javadoccomment">     * {@link XMLOutputter}.</em>
<a name="138" href="#138">138</a> 
<a name="139" href="#139">139</a> <em class="jxr_javadoccomment">     * @return The XML serialized form of this element, as produced by the default</em>
<a name="140" href="#140">140</a> <em class="jxr_javadoccomment">     * {@link XMLOutputter}.</em>
<a name="141" href="#141">141</a> <em class="jxr_javadoccomment">     */</em>
<a name="142" href="#142">142</a> 
<a name="143" href="#143">143</a>     <strong class="jxr_keyword">public</strong> String toString()
<a name="144" href="#144">144</a>     {
<a name="145" href="#145">145</a>         <strong class="jxr_keyword">return</strong> DEFAULT_OUTPUTTER.outputString(<strong class="jxr_keyword">this</strong>);
<a name="146" href="#146">146</a>     }
<a name="147" href="#147">147</a> 
<a name="148" href="#148">148</a>     <em class="jxr_javadoccomment">/**</em>
<a name="149" href="#149">149</a> <em class="jxr_javadoccomment">     * &lt;p&gt;</em>
<a name="150" href="#150">150</a> <em class="jxr_javadoccomment">     * This returns the full content of the element as a NodeList which</em>
<a name="151" href="#151">151</a> <em class="jxr_javadoccomment">     * may contain objects of type &lt;code&gt;String&lt;/code&gt;, &lt;code&gt;Element&lt;/code&gt;,</em>
<a name="152" href="#152">152</a> <em class="jxr_javadoccomment">     * &lt;code&gt;Comment&lt;/code&gt;, &lt;code&gt;ProcessingInstruction&lt;/code&gt;,</em>
<a name="153" href="#153">153</a> <em class="jxr_javadoccomment">     * &lt;code&gt;CDATA&lt;/code&gt;, and &lt;code&gt;EntityRef&lt;/code&gt;.</em>
<a name="154" href="#154">154</a> <em class="jxr_javadoccomment">     * The List returned is "live" in document order and modifications</em>
<a name="155" href="#155">155</a> <em class="jxr_javadoccomment">     * to it affect the element's actual contents.  Whitespace content is</em>
<a name="156" href="#156">156</a> <em class="jxr_javadoccomment">     * returned in its entirety.</em>
<a name="157" href="#157">157</a> <em class="jxr_javadoccomment">     * &lt;/p&gt;</em>
<a name="158" href="#158">158</a> <em class="jxr_javadoccomment">     *</em>
<a name="159" href="#159">159</a> <em class="jxr_javadoccomment">     * @return a &lt;code&gt;List&lt;/code&gt; containing the mixed content of the</em>
<a name="160" href="#160">160</a> <em class="jxr_javadoccomment">     *         element: may contain &lt;code&gt;String&lt;/code&gt;,</em>
<a name="161" href="#161">161</a> <em class="jxr_javadoccomment">     *         &lt;code&gt;{@link Element}&lt;/code&gt;, &lt;code&gt;{@link org.jdom.Comment}&lt;/code&gt;,</em>
<a name="162" href="#162">162</a> <em class="jxr_javadoccomment">     *         &lt;code&gt;{@link org.jdom.ProcessingInstruction}&lt;/code&gt;,</em>
<a name="163" href="#163">163</a> <em class="jxr_javadoccomment">     *         &lt;code&gt;{@link org.jdom.CDATA}&lt;/code&gt;, and</em>
<a name="164" href="#164">164</a> <em class="jxr_javadoccomment">     *         &lt;code&gt;{@link org.jdom.EntityRef}&lt;/code&gt; objects.</em>
<a name="165" href="#165">165</a> <em class="jxr_javadoccomment">     */</em>
<a name="166" href="#166">166</a>     <strong class="jxr_keyword">public</strong> List getContent()
<a name="167" href="#167">167</a>     {
<a name="168" href="#168">168</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/velocity/anakia/NodeList.html">NodeList</a>(<strong class="jxr_keyword">super</strong>.getContent(), false);
<a name="169" href="#169">169</a>     }
<a name="170" href="#170">170</a> 
<a name="171" href="#171">171</a>     <em class="jxr_javadoccomment">/**</em>
<a name="172" href="#172">172</a> <em class="jxr_javadoccomment">     * &lt;p&gt;</em>
<a name="173" href="#173">173</a> <em class="jxr_javadoccomment">     * This returns a &lt;code&gt;NodeList&lt;/code&gt; of all the child elements</em>
<a name="174" href="#174">174</a> <em class="jxr_javadoccomment">     * nested directly (one level deep) within this element, as</em>
<a name="175" href="#175">175</a> <em class="jxr_javadoccomment">     * &lt;code&gt;Element&lt;/code&gt; objects.  If this target element has no nested</em>
<a name="176" href="#176">176</a> <em class="jxr_javadoccomment">     * elements, an empty List is returned.  The returned list is "live"</em>
<a name="177" href="#177">177</a> <em class="jxr_javadoccomment">     * in document order and changes to it affect the element's actual</em>
<a name="178" href="#178">178</a> <em class="jxr_javadoccomment">     * contents.</em>
<a name="179" href="#179">179</a> <em class="jxr_javadoccomment">     * &lt;/p&gt;</em>
<a name="180" href="#180">180</a> <em class="jxr_javadoccomment">     * &lt;p&gt;</em>
<a name="181" href="#181">181</a> <em class="jxr_javadoccomment">     * This performs no recursion, so elements nested two levels</em>
<a name="182" href="#182">182</a> <em class="jxr_javadoccomment">     *   deep would have to be obtained with:</em>
<a name="183" href="#183">183</a> <em class="jxr_javadoccomment">     * &lt;pre&gt;</em>
<a name="184" href="#184">184</a> <em class="jxr_javadoccomment">     * &lt;code&gt;</em>
<a name="185" href="#185">185</a> <em class="jxr_javadoccomment">     *   Iterator itr = currentElement.getChildren().iterator();</em>
<a name="186" href="#186">186</a> <em class="jxr_javadoccomment">     *   while (itr.hasNext()) {</em>
<a name="187" href="#187">187</a> <em class="jxr_javadoccomment">     *     Element oneLevelDeep = (Element)nestedElements.next();</em>
<a name="188" href="#188">188</a> <em class="jxr_javadoccomment">     *     List twoLevelsDeep = oneLevelDeep.getChildren();</em>
<a name="189" href="#189">189</a> <em class="jxr_javadoccomment">     *     // Do something with these children</em>
<a name="190" href="#190">190</a> <em class="jxr_javadoccomment">     *   }</em>
<a name="191" href="#191">191</a> <em class="jxr_javadoccomment">     * &lt;/code&gt;</em>
<a name="192" href="#192">192</a> <em class="jxr_javadoccomment">     * &lt;/pre&gt;</em>
<a name="193" href="#193">193</a> <em class="jxr_javadoccomment">     * &lt;/p&gt;</em>
<a name="194" href="#194">194</a> <em class="jxr_javadoccomment">     *</em>
<a name="195" href="#195">195</a> <em class="jxr_javadoccomment">     * @return list of child &lt;code&gt;Element&lt;/code&gt; objects for this element</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> List getChildren()
<a name="198" href="#198">198</a>     {
<a name="199" href="#199">199</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/velocity/anakia/NodeList.html">NodeList</a>(<strong class="jxr_keyword">super</strong>.getChildren(), false);
<a name="200" href="#200">200</a>     }
<a name="201" href="#201">201</a> 
<a name="202" href="#202">202</a>     <em class="jxr_javadoccomment">/**</em>
<a name="203" href="#203">203</a> <em class="jxr_javadoccomment">     * &lt;p&gt;</em>
<a name="204" href="#204">204</a> <em class="jxr_javadoccomment">     * This returns a &lt;code&gt;NodeList&lt;/code&gt; of all the child elements</em>
<a name="205" href="#205">205</a> <em class="jxr_javadoccomment">     * nested directly (one level deep) within this element with the given</em>
<a name="206" href="#206">206</a> <em class="jxr_javadoccomment">     * local name and belonging to no namespace, returned as</em>
<a name="207" href="#207">207</a> <em class="jxr_javadoccomment">     * &lt;code&gt;Element&lt;/code&gt; objects.  If this target element has no nested</em>
<a name="208" href="#208">208</a> <em class="jxr_javadoccomment">     * elements with the given name outside a namespace, an empty List</em>
<a name="209" href="#209">209</a> <em class="jxr_javadoccomment">     * is returned.  The returned list is "live" in document order</em>
<a name="210" href="#210">210</a> <em class="jxr_javadoccomment">     * and changes to it affect the element's actual contents.</em>
<a name="211" href="#211">211</a> <em class="jxr_javadoccomment">     * &lt;/p&gt;</em>
<a name="212" href="#212">212</a> <em class="jxr_javadoccomment">     * &lt;p&gt;</em>
<a name="213" href="#213">213</a> <em class="jxr_javadoccomment">     * Please see the notes for &lt;code&gt;{@link #getChildren()}&lt;/code&gt;</em>
<a name="214" href="#214">214</a> <em class="jxr_javadoccomment">     * for a code example.</em>
<a name="215" href="#215">215</a> <em class="jxr_javadoccomment">     * &lt;/p&gt;</em>
<a name="216" href="#216">216</a> <em class="jxr_javadoccomment">     *</em>
<a name="217" href="#217">217</a> <em class="jxr_javadoccomment">     * @param name local name for the children to match</em>
<a name="218" href="#218">218</a> <em class="jxr_javadoccomment">     * @return all matching child elements</em>
<a name="219" href="#219">219</a> <em class="jxr_javadoccomment">     */</em>
<a name="220" href="#220">220</a>     <strong class="jxr_keyword">public</strong> List getChildren(String name)
<a name="221" href="#221">221</a>     {
<a name="222" href="#222">222</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/velocity/anakia/NodeList.html">NodeList</a>(<strong class="jxr_keyword">super</strong>.getChildren(name));
<a name="223" href="#223">223</a>     }
<a name="224" href="#224">224</a> 
<a name="225" href="#225">225</a>     <em class="jxr_javadoccomment">/**</em>
<a name="226" href="#226">226</a> <em class="jxr_javadoccomment">     * &lt;p&gt;</em>
<a name="227" href="#227">227</a> <em class="jxr_javadoccomment">     * This returns a &lt;code&gt;NodeList&lt;/code&gt; of all the child elements</em>
<a name="228" href="#228">228</a> <em class="jxr_javadoccomment">     * nested directly (one level deep) within this element with the given</em>
<a name="229" href="#229">229</a> <em class="jxr_javadoccomment">     * local name and belonging to the given Namespace, returned as</em>
<a name="230" href="#230">230</a> <em class="jxr_javadoccomment">     * &lt;code&gt;Element&lt;/code&gt; objects.  If this target element has no nested</em>
<a name="231" href="#231">231</a> <em class="jxr_javadoccomment">     * elements with the given name in the given Namespace, an empty List</em>
<a name="232" href="#232">232</a> <em class="jxr_javadoccomment">     * is returned.  The returned list is "live" in document order</em>
<a name="233" href="#233">233</a> <em class="jxr_javadoccomment">     * and changes to it affect the element's actual contents.</em>
<a name="234" href="#234">234</a> <em class="jxr_javadoccomment">     * &lt;/p&gt;</em>
<a name="235" href="#235">235</a> <em class="jxr_javadoccomment">     * &lt;p&gt;</em>
<a name="236" href="#236">236</a> <em class="jxr_javadoccomment">     * Please see the notes for &lt;code&gt;{@link #getChildren()}&lt;/code&gt;</em>
<a name="237" href="#237">237</a> <em class="jxr_javadoccomment">     * for a code example.</em>
<a name="238" href="#238">238</a> <em class="jxr_javadoccomment">     * &lt;/p&gt;</em>
<a name="239" href="#239">239</a> <em class="jxr_javadoccomment">     *</em>
<a name="240" href="#240">240</a> <em class="jxr_javadoccomment">     * @param name local name for the children to match</em>
<a name="241" href="#241">241</a> <em class="jxr_javadoccomment">     * @param ns &lt;code&gt;Namespace&lt;/code&gt; to search within</em>
<a name="242" href="#242">242</a> <em class="jxr_javadoccomment">     * @return all matching child elements</em>
<a name="243" href="#243">243</a> <em class="jxr_javadoccomment">     */</em>
<a name="244" href="#244">244</a>     <strong class="jxr_keyword">public</strong> List getChildren(String name, Namespace ns)
<a name="245" href="#245">245</a>     {
<a name="246" href="#246">246</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/velocity/anakia/NodeList.html">NodeList</a>(<strong class="jxr_keyword">super</strong>.getChildren(name, ns));
<a name="247" href="#247">247</a>     }
<a name="248" href="#248">248</a> 
<a name="249" href="#249">249</a>     <em class="jxr_javadoccomment">/**</em>
<a name="250" href="#250">250</a> <em class="jxr_javadoccomment">     * &lt;p&gt;</em>
<a name="251" href="#251">251</a> <em class="jxr_javadoccomment">     * This returns the complete set of attributes for this element, as a</em>
<a name="252" href="#252">252</a> <em class="jxr_javadoccomment">     * &lt;code&gt;NodeList&lt;/code&gt; of &lt;code&gt;Attribute&lt;/code&gt; objects in no particular</em>
<a name="253" href="#253">253</a> <em class="jxr_javadoccomment">     * order, or an empty list if there are none.</em>
<a name="254" href="#254">254</a> <em class="jxr_javadoccomment">     * The returned list is "live" and changes to it affect the</em>
<a name="255" href="#255">255</a> <em class="jxr_javadoccomment">     * element's actual attributes.</em>
<a name="256" href="#256">256</a> <em class="jxr_javadoccomment">     * &lt;/p&gt;</em>
<a name="257" href="#257">257</a> <em class="jxr_javadoccomment">     *</em>
<a name="258" href="#258">258</a> <em class="jxr_javadoccomment">     * @return attributes for the element</em>
<a name="259" href="#259">259</a> <em class="jxr_javadoccomment">     */</em>
<a name="260" href="#260">260</a>     <strong class="jxr_keyword">public</strong> List getAttributes()
<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/anakia/NodeList.html">NodeList</a>(<strong class="jxr_keyword">super</strong>.getAttributes());
<a name="263" href="#263">263</a>     }
<a name="264" href="#264">264</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

