Code Search for Developers
 
 
  

STAXEventWriter.html from PeerWriter at Krugle


Show STAXEventWriter.html syntax highlighted

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

<a name="1" href="#1">1</a>   <em class="comment">/*</em>
<a name="2" href="#2">2</a>   <em class="comment"> * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved.</em>
<a name="3" href="#3">3</a>   <em class="comment"> *</em>
<a name="4" href="#4">4</a>   <em class="comment"> * This software is open source.</em>
<a name="5" href="#5">5</a>   <em class="comment"> * See the bottom of this file for the licence.</em>
<a name="6" href="#6">6</a>   <em class="comment"> */</em>
<a name="7" href="#7">7</a>   
<a name="8" href="#8">8</a>   <strong>package</strong> <a href="../../../org/dom4j/io/package-summary.html">org.dom4j.io</a>;
<a name="9" href="#9">9</a>   
<a name="10" href="#10">10</a>  <strong>import</strong> java.io.File;
<a name="11" href="#11">11</a>  <strong>import</strong> java.io.FileWriter;
<a name="12" href="#12">12</a>  <strong>import</strong> java.io.IOException;
<a name="13" href="#13">13</a>  <strong>import</strong> java.io.OutputStream;
<a name="14" href="#14">14</a>  <strong>import</strong> java.io.StringWriter;
<a name="15" href="#15">15</a>  <strong>import</strong> java.io.Writer;
<a name="16" href="#16">16</a>  <strong>import</strong> java.util.Iterator;
<a name="17" href="#17">17</a>  
<a name="18" href="#18">18</a>  <strong>import</strong> javax.xml.namespace.QName;
<a name="19" href="#19">19</a>  <strong>import</strong> javax.xml.stream.XMLEventFactory;
<a name="20" href="#20">20</a>  <strong>import</strong> javax.xml.stream.XMLOutputFactory;
<a name="21" href="#21">21</a>  <strong>import</strong> javax.xml.stream.XMLStreamException;
<a name="22" href="#22">22</a>  <strong>import</strong> javax.xml.stream.events.Characters;
<a name="23" href="#23">23</a>  <strong>import</strong> javax.xml.stream.events.DTD;
<a name="24" href="#24">24</a>  <strong>import</strong> javax.xml.stream.events.EndDocument;
<a name="25" href="#25">25</a>  <strong>import</strong> javax.xml.stream.events.EndElement;
<a name="26" href="#26">26</a>  <strong>import</strong> javax.xml.stream.events.EntityReference;
<a name="27" href="#27">27</a>  <strong>import</strong> javax.xml.stream.events.ProcessingInstruction;
<a name="28" href="#28">28</a>  <strong>import</strong> javax.xml.stream.events.StartDocument;
<a name="29" href="#29">29</a>  <strong>import</strong> javax.xml.stream.events.StartElement;
<a name="30" href="#30">30</a>  <strong>import</strong> javax.xml.stream.util.XMLEventConsumer;
<a name="31" href="#31">31</a>  
<a name="32" href="#32">32</a>  <strong>import</strong> org.dom4j.Attribute;
<a name="33" href="#33">33</a>  <strong>import</strong> org.dom4j.Branch;
<a name="34" href="#34">34</a>  <strong>import</strong> org.dom4j.CDATA;
<a name="35" href="#35">35</a>  <strong>import</strong> org.dom4j.Comment;
<a name="36" href="#36">36</a>  <strong>import</strong> org.dom4j.Document;
<a name="37" href="#37">37</a>  <strong>import</strong> org.dom4j.DocumentType;
<a name="38" href="#38">38</a>  <strong>import</strong> org.dom4j.Element;
<a name="39" href="#39">39</a>  <strong>import</strong> org.dom4j.Entity;
<a name="40" href="#40">40</a>  <strong>import</strong> org.dom4j.Namespace;
<a name="41" href="#41">41</a>  <strong>import</strong> org.dom4j.Node;
<a name="42" href="#42">42</a>  <strong>import</strong> org.dom4j.Text;
<a name="43" href="#43">43</a>  
<a name="44" href="#44">44</a>  <em>/**<em>*</em></em>
<a name="45" href="#45">45</a>  <em> * Writes DOM4J {@link Node}s to a StAX event stream. In addition the</em>
<a name="46" href="#46">46</a>  <em> * &lt;code>createXXX&lt;/code> methods are provided to directly create STAX events</em>
<a name="47" href="#47">47</a>  <em> * from DOM4J nodes.</em>
<a name="48" href="#48">48</a>  <em> * </em>
<a name="49" href="#49">49</a>  <em> * @author Christian Niles</em>
<a name="50" href="#50">50</a>  <em> */</em>
<a name="51" href="#51">51</a>  <strong>public</strong> <strong>class</strong> <a href="../../../org/dom4j/io/STAXEventWriter.html">STAXEventWriter</a> {
<a name="52" href="#52">52</a>      <em>/**<em>* The event stream to which events are written. */</em></em>
<a name="53" href="#53">53</a>      <strong>private</strong> XMLEventConsumer consumer;
<a name="54" href="#54">54</a>  
<a name="55" href="#55">55</a>      <em>/**<em>* The event factory used to construct events. */</em></em>
<a name="56" href="#56">56</a>      <strong>private</strong> XMLEventFactory factory = XMLEventFactory.newInstance();
<a name="57" href="#57">57</a>  
<a name="58" href="#58">58</a>      <strong>private</strong> XMLOutputFactory outputFactory = XMLOutputFactory.newInstance();
<a name="59" href="#59">59</a>  
<a name="60" href="#60">60</a>      <strong>public</strong> <a href="../../../org/dom4j/io/STAXEventWriter.html">STAXEventWriter</a>() {
<a name="61" href="#61">61</a>      }
<a name="62" href="#62">62</a>  
<a name="63" href="#63">63</a>      <em>/**<em>*</em></em>
<a name="64" href="#64">64</a>  <em>     * Constructs a &lt;code>STAXEventWriter&lt;/code> that writes events to the</em>
<a name="65" href="#65">65</a>  <em>     * provided file.</em>
<a name="66" href="#66">66</a>  <em>     * </em>
<a name="67" href="#67">67</a>  <em>     * @param file</em>
<a name="68" href="#68">68</a>  <em>     *            The file to which events will be written.</em>
<a name="69" href="#69">69</a>  <em>     * </em>
<a name="70" href="#70">70</a>  <em>     * @throws XMLStreamException</em>
<a name="71" href="#71">71</a>  <em>     *             If an error occurs creating an event writer from the file.</em>
<a name="72" href="#72">72</a>  <em>     * @throws IOException</em>
<a name="73" href="#73">73</a>  <em>     *             If an error occurs openin the file for writing.</em>
<a name="74" href="#74">74</a>  <em>     */</em>
<a name="75" href="#75">75</a>      <strong>public</strong> <a href="../../../org/dom4j/io/STAXEventWriter.html">STAXEventWriter</a>(File file) throws XMLStreamException, IOException {
<a name="76" href="#76">76</a>          consumer = outputFactory.createXMLEventWriter(<strong>new</strong> FileWriter(file));
<a name="77" href="#77">77</a>      }
<a name="78" href="#78">78</a>  
<a name="79" href="#79">79</a>      <em>/**<em>*</em></em>
<a name="80" href="#80">80</a>  <em>     * Constructs a &lt;code>STAXEventWriter&lt;/code> that writes events to the</em>
<a name="81" href="#81">81</a>  <em>     * provided character stream.</em>
<a name="82" href="#82">82</a>  <em>     * </em>
<a name="83" href="#83">83</a>  <em>     * @param writer</em>
<a name="84" href="#84">84</a>  <em>     *            The character stream to which events will be written.</em>
<a name="85" href="#85">85</a>  <em>     * </em>
<a name="86" href="#86">86</a>  <em>     * @throws XMLStreamException</em>
<a name="87" href="#87">87</a>  <em>     *             If an error occurs constructing an event writer from the</em>
<a name="88" href="#88">88</a>  <em>     *             character stream.</em>
<a name="89" href="#89">89</a>  <em>     */</em>
<a name="90" href="#90">90</a>      <strong>public</strong> <a href="../../../org/dom4j/io/STAXEventWriter.html">STAXEventWriter</a>(Writer writer) throws XMLStreamException {
<a name="91" href="#91">91</a>          consumer = outputFactory.createXMLEventWriter(writer);
<a name="92" href="#92">92</a>      }
<a name="93" href="#93">93</a>  
<a name="94" href="#94">94</a>      <em>/**<em>*</em></em>
<a name="95" href="#95">95</a>  <em>     * Constructs a &lt;code>STAXEventWriter&lt;/code> that writes events to the</em>
<a name="96" href="#96">96</a>  <em>     * provided stream.</em>
<a name="97" href="#97">97</a>  <em>     * </em>
<a name="98" href="#98">98</a>  <em>     * @param stream</em>
<a name="99" href="#99">99</a>  <em>     *            The output stream to which events will be written.</em>
<a name="100" href="#100">100</a> <em>     * </em>
<a name="101" href="#101">101</a> <em>     * @throws XMLStreamException</em>
<a name="102" href="#102">102</a> <em>     *             If an error occurs constructing an event writer from the</em>
<a name="103" href="#103">103</a> <em>     *             stream.</em>
<a name="104" href="#104">104</a> <em>     */</em>
<a name="105" href="#105">105</a>     <strong>public</strong> <a href="../../../org/dom4j/io/STAXEventWriter.html">STAXEventWriter</a>(OutputStream stream) throws XMLStreamException {
<a name="106" href="#106">106</a>         consumer = outputFactory.createXMLEventWriter(stream);
<a name="107" href="#107">107</a>     }
<a name="108" href="#108">108</a> 
<a name="109" href="#109">109</a>     <em>/**<em>*</em></em>
<a name="110" href="#110">110</a> <em>     * Constructs a &lt;code>STAXEventWriter&lt;/code> that writes events to the</em>
<a name="111" href="#111">111</a> <em>     * provided event stream.</em>
<a name="112" href="#112">112</a> <em>     * </em>
<a name="113" href="#113">113</a> <em>     * @param consumer</em>
<a name="114" href="#114">114</a> <em>     *            The event stream to which events will be written.</em>
<a name="115" href="#115">115</a> <em>     */</em>
<a name="116" href="#116">116</a>     <strong>public</strong> <a href="../../../org/dom4j/io/STAXEventWriter.html">STAXEventWriter</a>(XMLEventConsumer consumer) {
<a name="117" href="#117">117</a>         <strong>this</strong>.consumer = consumer;
<a name="118" href="#118">118</a>     }
<a name="119" href="#119">119</a> 
<a name="120" href="#120">120</a>     <em>/**<em>*</em></em>
<a name="121" href="#121">121</a> <em>     * Returns a reference to the underlying event consumer to which events are</em>
<a name="122" href="#122">122</a> <em>     * written.</em>
<a name="123" href="#123">123</a> <em>     * </em>
<a name="124" href="#124">124</a> <em>     * @return The underlying event consumer to which events are written.</em>
<a name="125" href="#125">125</a> <em>     */</em>
<a name="126" href="#126">126</a>     <strong>public</strong> XMLEventConsumer getConsumer() {
<a name="127" href="#127">127</a>         <strong>return</strong> consumer;
<a name="128" href="#128">128</a>     }
<a name="129" href="#129">129</a> 
<a name="130" href="#130">130</a>     <em>/**<em>*</em></em>
<a name="131" href="#131">131</a> <em>     * Sets the underlying event consumer to which events are written.</em>
<a name="132" href="#132">132</a> <em>     * </em>
<a name="133" href="#133">133</a> <em>     * @param consumer</em>
<a name="134" href="#134">134</a> <em>     *            The event consumer to which events should be written.</em>
<a name="135" href="#135">135</a> <em>     */</em>
<a name="136" href="#136">136</a>     <strong>public</strong> <strong>void</strong> setConsumer(XMLEventConsumer consumer) {
<a name="137" href="#137">137</a>         <strong>this</strong>.consumer = consumer;
<a name="138" href="#138">138</a>     }
<a name="139" href="#139">139</a> 
<a name="140" href="#140">140</a>     <em>/**<em>*</em></em>
<a name="141" href="#141">141</a> <em>     * Returns a reference to the event factory used to construct STAX events.</em>
<a name="142" href="#142">142</a> <em>     * </em>
<a name="143" href="#143">143</a> <em>     * @return The event factory used to construct STAX events.</em>
<a name="144" href="#144">144</a> <em>     */</em>
<a name="145" href="#145">145</a>     <strong>public</strong> XMLEventFactory getEventFactory() {
<a name="146" href="#146">146</a>         <strong>return</strong> factory;
<a name="147" href="#147">147</a>     }
<a name="148" href="#148">148</a> 
<a name="149" href="#149">149</a>     <em>/**<em>*</em></em>
<a name="150" href="#150">150</a> <em>     * Sets the event factory used to construct STAX events.</em>
<a name="151" href="#151">151</a> <em>     * </em>
<a name="152" href="#152">152</a> <em>     * @param eventFactory</em>
<a name="153" href="#153">153</a> <em>     *            The new event factory.</em>
<a name="154" href="#154">154</a> <em>     */</em>
<a name="155" href="#155">155</a>     <strong>public</strong> <strong>void</strong> setEventFactory(XMLEventFactory eventFactory) {
<a name="156" href="#156">156</a>         <strong>this</strong>.factory = eventFactory;
<a name="157" href="#157">157</a>     }
<a name="158" href="#158">158</a> 
<a name="159" href="#159">159</a>     <em>/**<em>*</em></em>
<a name="160" href="#160">160</a> <em>     * Writes a DOM4J {@link Node}to the stream. This method is simply a</em>
<a name="161" href="#161">161</a> <em>     * gateway to the overloaded methods such as {@link#writeElement(Element)}.</em>
<a name="162" href="#162">162</a> <em>     * </em>
<a name="163" href="#163">163</a> <em>     * @param n</em>
<a name="164" href="#164">164</a> <em>     *            The DOM4J {@link Node}to write to the stream.</em>
<a name="165" href="#165">165</a> <em>     * </em>
<a name="166" href="#166">166</a> <em>     * @throws XMLStreamException</em>
<a name="167" href="#167">167</a> <em>     *             If an error occurs writing to the stream.</em>
<a name="168" href="#168">168</a> <em>     */</em>
<a name="169" href="#169">169</a>     <strong>public</strong> <strong>void</strong> writeNode(<a href="../../../org/dom4j/Node.html">Node</a> n) throws XMLStreamException {
<a name="170" href="#170">170</a>         <strong>switch</strong> (n.getNodeType()) {
<a name="171" href="#171">171</a>             <strong>case</strong> Node.ELEMENT_NODE:
<a name="172" href="#172">172</a>                 writeElement((Element) n);
<a name="173" href="#173">173</a> 
<a name="174" href="#174">174</a>                 <strong>break</strong>;
<a name="175" href="#175">175</a> 
<a name="176" href="#176">176</a>             <strong>case</strong> Node.TEXT_NODE:
<a name="177" href="#177">177</a>                 writeText((Text) n);
<a name="178" href="#178">178</a> 
<a name="179" href="#179">179</a>                 <strong>break</strong>;
<a name="180" href="#180">180</a> 
<a name="181" href="#181">181</a>             <strong>case</strong> Node.ATTRIBUTE_NODE:
<a name="182" href="#182">182</a>                 writeAttribute((Attribute) n);
<a name="183" href="#183">183</a> 
<a name="184" href="#184">184</a>                 <strong>break</strong>;
<a name="185" href="#185">185</a> 
<a name="186" href="#186">186</a>             <strong>case</strong> Node.NAMESPACE_NODE:
<a name="187" href="#187">187</a>                 writeNamespace((Namespace) n);
<a name="188" href="#188">188</a> 
<a name="189" href="#189">189</a>                 <strong>break</strong>;
<a name="190" href="#190">190</a> 
<a name="191" href="#191">191</a>             <strong>case</strong> Node.COMMENT_NODE:
<a name="192" href="#192">192</a>                 writeComment((Comment) n);
<a name="193" href="#193">193</a> 
<a name="194" href="#194">194</a>                 <strong>break</strong>;
<a name="195" href="#195">195</a> 
<a name="196" href="#196">196</a>             <strong>case</strong> Node.CDATA_SECTION_NODE:
<a name="197" href="#197">197</a>                 writeCDATA((CDATA) n);
<a name="198" href="#198">198</a> 
<a name="199" href="#199">199</a>                 <strong>break</strong>;
<a name="200" href="#200">200</a> 
<a name="201" href="#201">201</a>             <strong>case</strong> Node.PROCESSING_INSTRUCTION_NODE:
<a name="202" href="#202">202</a>                 writeProcessingInstruction((org.dom4j.ProcessingInstruction) n);
<a name="203" href="#203">203</a> 
<a name="204" href="#204">204</a>                 <strong>break</strong>;
<a name="205" href="#205">205</a> 
<a name="206" href="#206">206</a>             <strong>case</strong> Node.ENTITY_REFERENCE_NODE:
<a name="207" href="#207">207</a>                 writeEntity((Entity) n);
<a name="208" href="#208">208</a> 
<a name="209" href="#209">209</a>                 <strong>break</strong>;
<a name="210" href="#210">210</a> 
<a name="211" href="#211">211</a>             <strong>case</strong> Node.DOCUMENT_NODE:
<a name="212" href="#212">212</a>                 writeDocument((Document) n);
<a name="213" href="#213">213</a> 
<a name="214" href="#214">214</a>                 <strong>break</strong>;
<a name="215" href="#215">215</a> 
<a name="216" href="#216">216</a>             <strong>case</strong> Node.DOCUMENT_TYPE_NODE:
<a name="217" href="#217">217</a>                 writeDocumentType((DocumentType) n);
<a name="218" href="#218">218</a> 
<a name="219" href="#219">219</a>                 <strong>break</strong>;
<a name="220" href="#220">220</a> 
<a name="221" href="#221">221</a>             <strong>default</strong>:
<a name="222" href="#222">222</a>                 <strong>throw</strong> <strong>new</strong> XMLStreamException(<span class="string">"Unsupported DOM4J Node: "</span> + n);
<a name="223" href="#223">223</a>         }
<a name="224" href="#224">224</a>     }
<a name="225" href="#225">225</a> 
<a name="226" href="#226">226</a>     <em>/**<em>*</em></em>
<a name="227" href="#227">227</a> <em>     * Writes each child node within the provided {@link Branch}instance. This</em>
<a name="228" href="#228">228</a> <em>     * method simply iterates through the {@link Branch}'s nodes and calls</em>
<a name="229" href="#229">229</a> <em>     * {@link #writeNode(Node)}.</em>
<a name="230" href="#230">230</a> <em>     * </em>
<a name="231" href="#231">231</a> <em>     * @param branch</em>
<a name="232" href="#232">232</a> <em>     *            The node whose children will be written to the stream.</em>
<a name="233" href="#233">233</a> <em>     * </em>
<a name="234" href="#234">234</a> <em>     * @throws XMLStreamException</em>
<a name="235" href="#235">235</a> <em>     *             If an error occurs writing to the stream.</em>
<a name="236" href="#236">236</a> <em>     */</em>
<a name="237" href="#237">237</a>     <strong>public</strong> <strong>void</strong> writeChildNodes(<a href="../../../org/dom4j/Branch.html">Branch</a> branch) throws XMLStreamException {
<a name="238" href="#238">238</a>         <strong>for</strong> (<strong>int</strong> i = 0, s = branch.nodeCount(); i &lt; s; i++) {
<a name="239" href="#239">239</a>             <a href="../../../org/dom4j/Node.html">Node</a> n = branch.node(i);
<a name="240" href="#240">240</a>             writeNode(n);
<a name="241" href="#241">241</a>         }
<a name="242" href="#242">242</a>     }
<a name="243" href="#243">243</a> 
<a name="244" href="#244">244</a>     <em>/**<em>*</em></em>
<a name="245" href="#245">245</a> <em>     * Writes a DOM4J {@link Element}node and its children to the stream.</em>
<a name="246" href="#246">246</a> <em>     * </em>
<a name="247" href="#247">247</a> <em>     * @param elem</em>
<a name="248" href="#248">248</a> <em>     *            The {@link Element}node to write to the stream.</em>
<a name="249" href="#249">249</a> <em>     * </em>
<a name="250" href="#250">250</a> <em>     * @throws XMLStreamException</em>
<a name="251" href="#251">251</a> <em>     *             If an error occurs writing to the stream.</em>
<a name="252" href="#252">252</a> <em>     */</em>
<a name="253" href="#253">253</a>     <strong>public</strong> <strong>void</strong> writeElement(<a href="../../../org/dom4j/Element.html">Element</a> elem) throws XMLStreamException {
<a name="254" href="#254">254</a>         consumer.add(createStartElement(elem));
<a name="255" href="#255">255</a>         writeChildNodes(elem);
<a name="256" href="#256">256</a>         consumer.add(createEndElement(elem));
<a name="257" href="#257">257</a>     }
<a name="258" href="#258">258</a> 
<a name="259" href="#259">259</a>     <em>/**<em>*</em></em>
<a name="260" href="#260">260</a> <em>     * Constructs a STAX {@link StartElement}event from a DOM4J {@link</em>
<a name="261" href="#261">261</a> <em>     * Element}.</em>
<a name="262" href="#262">262</a> <em>     * </em>
<a name="263" href="#263">263</a> <em>     * @param elem</em>
<a name="264" href="#264">264</a> <em>     *            The {@link Element}from which to construct the event.</em>
<a name="265" href="#265">265</a> <em>     * </em>
<a name="266" href="#266">266</a> <em>     * @return The newly constructed {@link StartElement}event.</em>
<a name="267" href="#267">267</a> <em>     */</em>
<a name="268" href="#268">268</a>     <strong>public</strong> StartElement createStartElement(<a href="../../../org/dom4j/Element.html">Element</a> elem) {
<a name="269" href="#269">269</a>         <em class="comment">// create name</em>
<a name="270" href="#270">270</a>         <a href="../../../org/dom4j/QName.html">QName</a> tagName = createQName(elem.getQName());
<a name="271" href="#271">271</a> 
<a name="272" href="#272">272</a>         <em class="comment">// create attribute &amp; namespace iterators</em>
<a name="273" href="#273">273</a>         Iterator attrIter = <strong>new</strong> AttributeIterator(elem.attributeIterator());
<a name="274" href="#274">274</a>         Iterator nsIter = <strong>new</strong> NamespaceIterator(elem.declaredNamespaces()
<a name="275" href="#275">275</a>                 .iterator());
<a name="276" href="#276">276</a> 
<a name="277" href="#277">277</a>         <em class="comment">// create start event</em>
<a name="278" href="#278">278</a>         <strong>return</strong> factory.createStartElement(tagName, attrIter, nsIter);
<a name="279" href="#279">279</a>     }
<a name="280" href="#280">280</a> 
<a name="281" href="#281">281</a>     <em>/**<em>*</em></em>
<a name="282" href="#282">282</a> <em>     * Constructs a STAX {@link EndElement}event from a DOM4J {@link Element}.</em>
<a name="283" href="#283">283</a> <em>     * </em>
<a name="284" href="#284">284</a> <em>     * @param elem</em>
<a name="285" href="#285">285</a> <em>     *            The {@link Element}from which to construct the event.</em>
<a name="286" href="#286">286</a> <em>     * </em>
<a name="287" href="#287">287</a> <em>     * @return The newly constructed {@link EndElement}event.</em>
<a name="288" href="#288">288</a> <em>     */</em>
<a name="289" href="#289">289</a>     <strong>public</strong> EndElement createEndElement(<a href="../../../org/dom4j/Element.html">Element</a> elem) {
<a name="290" href="#290">290</a>         <a href="../../../org/dom4j/QName.html">QName</a> tagName = createQName(elem.getQName());
<a name="291" href="#291">291</a>         Iterator nsIter = <strong>new</strong> NamespaceIterator(elem.declaredNamespaces()
<a name="292" href="#292">292</a>                 .iterator());
<a name="293" href="#293">293</a> 
<a name="294" href="#294">294</a>         <strong>return</strong> factory.createEndElement(tagName, nsIter);
<a name="295" href="#295">295</a>     }
<a name="296" href="#296">296</a> 
<a name="297" href="#297">297</a>     <em>/**<em>*</em></em>
<a name="298" href="#298">298</a> <em>     * Writes a DOM4J {@link Attribute}to the stream.</em>
<a name="299" href="#299">299</a> <em>     * </em>
<a name="300" href="#300">300</a> <em>     * @param attr</em>
<a name="301" href="#301">301</a> <em>     *            The {@link Attribute}to write to the stream.</em>
<a name="302" href="#302">302</a> <em>     * </em>
<a name="303" href="#303">303</a> <em>     * @throws XMLStreamException</em>
<a name="304" href="#304">304</a> <em>     *             If an error occurs writing to the stream.</em>
<a name="305" href="#305">305</a> <em>     */</em>
<a name="306" href="#306">306</a>     <strong>public</strong> <strong>void</strong> writeAttribute(<a href="../../../org/dom4j/Attribute.html">Attribute</a> attr) throws XMLStreamException {
<a name="307" href="#307">307</a>         consumer.add(createAttribute(attr));
<a name="308" href="#308">308</a>     }
<a name="309" href="#309">309</a> 
<a name="310" href="#310">310</a>     <em>/**<em>*</em></em>
<a name="311" href="#311">311</a> <em>     * Constructs a STAX {@link javax.xml.stream.events.Attribute}event from a</em>
<a name="312" href="#312">312</a> <em>     * DOM4J {@link Attribute}.</em>
<a name="313" href="#313">313</a> <em>     * </em>
<a name="314" href="#314">314</a> <em>     * @param attr</em>
<a name="315" href="#315">315</a> <em>     *            The {@link Attribute}from which to construct the event.</em>
<a name="316" href="#316">316</a> <em>     * </em>
<a name="317" href="#317">317</a> <em>     * @return The newly constructed {@link javax.xml.stream.events.Attribute}</em>
<a name="318" href="#318">318</a> <em>     *         event.</em>
<a name="319" href="#319">319</a> <em>     */</em>
<a name="320" href="#320">320</a>     <strong>public</strong> javax.xml.stream.events.Attribute createAttribute(<a href="../../../org/dom4j/Attribute.html">Attribute</a> attr) {
<a name="321" href="#321">321</a>         <a href="../../../org/dom4j/QName.html">QName</a> attrName = createQName(attr.getQName());
<a name="322" href="#322">322</a>         String value = attr.getValue();
<a name="323" href="#323">323</a> 
<a name="324" href="#324">324</a>         <strong>return</strong> factory.createAttribute(attrName, value);
<a name="325" href="#325">325</a>     }
<a name="326" href="#326">326</a> 
<a name="327" href="#327">327</a>     <em>/**<em>*</em></em>
<a name="328" href="#328">328</a> <em>     * Writes a DOM4J {@link Namespace}to the stream.</em>
<a name="329" href="#329">329</a> <em>     * </em>
<a name="330" href="#330">330</a> <em>     * @param ns</em>
<a name="331" href="#331">331</a> <em>     *            The {@link Namespace}to write to the stream.</em>
<a name="332" href="#332">332</a> <em>     * </em>
<a name="333" href="#333">333</a> <em>     * @throws XMLStreamException</em>
<a name="334" href="#334">334</a> <em>     *             If an error occurs writing to the stream.</em>
<a name="335" href="#335">335</a> <em>     */</em>
<a name="336" href="#336">336</a>     <strong>public</strong> <strong>void</strong> writeNamespace(<a href="../../../org/dom4j/Namespace.html">Namespace</a> ns) throws XMLStreamException {
<a name="337" href="#337">337</a>         consumer.add(createNamespace(ns));
<a name="338" href="#338">338</a>     }
<a name="339" href="#339">339</a> 
<a name="340" href="#340">340</a>     <em>/**<em>*</em></em>
<a name="341" href="#341">341</a> <em>     * Constructs a STAX {@link javax.xml.stream.events.Namespace}event from a</em>
<a name="342" href="#342">342</a> <em>     * DOM4J {@link Namespace}.</em>
<a name="343" href="#343">343</a> <em>     * </em>
<a name="344" href="#344">344</a> <em>     * @param ns</em>
<a name="345" href="#345">345</a> <em>     *            The {@link Namespace}from which to construct the event.</em>
<a name="346" href="#346">346</a> <em>     * </em>
<a name="347" href="#347">347</a> <em>     * @return The constructed {@link javax.xml.stream.events.Namespace}event.</em>
<a name="348" href="#348">348</a> <em>     */</em>
<a name="349" href="#349">349</a>     <strong>public</strong> javax.xml.stream.events.Namespace createNamespace(<a href="../../../org/dom4j/Namespace.html">Namespace</a> ns) {
<a name="350" href="#350">350</a>         String prefix = ns.getPrefix();
<a name="351" href="#351">351</a>         String uri = ns.getURI();
<a name="352" href="#352">352</a> 
<a name="353" href="#353">353</a>         <strong>return</strong> factory.createNamespace(prefix, uri);
<a name="354" href="#354">354</a>     }
<a name="355" href="#355">355</a> 
<a name="356" href="#356">356</a>     <em>/**<em>*</em></em>
<a name="357" href="#357">357</a> <em>     * Writes a DOM4J {@link Text}to the stream.</em>
<a name="358" href="#358">358</a> <em>     * </em>
<a name="359" href="#359">359</a> <em>     * @param text</em>
<a name="360" href="#360">360</a> <em>     *            The {@link Text}to write to the stream.</em>
<a name="361" href="#361">361</a> <em>     * </em>
<a name="362" href="#362">362</a> <em>     * @throws XMLStreamException</em>
<a name="363" href="#363">363</a> <em>     *             If an error occurs writing to the stream.</em>
<a name="364" href="#364">364</a> <em>     */</em>
<a name="365" href="#365">365</a>     <strong>public</strong> <strong>void</strong> writeText(<a href="../../../org/dom4j/Text.html">Text</a> text) throws XMLStreamException {
<a name="366" href="#366">366</a>         consumer.add(createCharacters(text));
<a name="367" href="#367">367</a>     }
<a name="368" href="#368">368</a> 
<a name="369" href="#369">369</a>     <em>/**<em>*</em></em>
<a name="370" href="#370">370</a> <em>     * Constructs a STAX {@link Characters}event from a DOM4J {@link Text}.</em>
<a name="371" href="#371">371</a> <em>     * </em>
<a name="372" href="#372">372</a> <em>     * @param text</em>
<a name="373" href="#373">373</a> <em>     *            The {@link Text}from which to construct the event.</em>
<a name="374" href="#374">374</a> <em>     * </em>
<a name="375" href="#375">375</a> <em>     * @return The constructed {@link Characters}event.</em>
<a name="376" href="#376">376</a> <em>     */</em>
<a name="377" href="#377">377</a>     <strong>public</strong> Characters createCharacters(<a href="../../../org/dom4j/Text.html">Text</a> text) {
<a name="378" href="#378">378</a>         <strong>return</strong> factory.createCharacters(text.getText());
<a name="379" href="#379">379</a>     }
<a name="380" href="#380">380</a> 
<a name="381" href="#381">381</a>     <em>/**<em>*</em></em>
<a name="382" href="#382">382</a> <em>     * Writes a DOM4J {@link CDATA}to the event stream.</em>
<a name="383" href="#383">383</a> <em>     * </em>
<a name="384" href="#384">384</a> <em>     * @param cdata</em>
<a name="385" href="#385">385</a> <em>     *            The {@link CDATA}to write to the stream.</em>
<a name="386" href="#386">386</a> <em>     * </em>
<a name="387" href="#387">387</a> <em>     * @throws XMLStreamException</em>
<a name="388" href="#388">388</a> <em>     *             If an error occurs writing to the stream.</em>
<a name="389" href="#389">389</a> <em>     */</em>
<a name="390" href="#390">390</a>     <strong>public</strong> <strong>void</strong> writeCDATA(<a href="../../../org/dom4j/CDATA.html">CDATA</a> cdata) throws XMLStreamException {
<a name="391" href="#391">391</a>         consumer.add(createCharacters(cdata));
<a name="392" href="#392">392</a>     }
<a name="393" href="#393">393</a> 
<a name="394" href="#394">394</a>     <em>/**<em>*</em></em>
<a name="395" href="#395">395</a> <em>     * Constructs a STAX {@link Characters}event from a DOM4J {@link CDATA}.</em>
<a name="396" href="#396">396</a> <em>     * </em>
<a name="397" href="#397">397</a> <em>     * @param cdata</em>
<a name="398" href="#398">398</a> <em>     *            The {@link CDATA}from which to construct the event.</em>
<a name="399" href="#399">399</a> <em>     * </em>
<a name="400" href="#400">400</a> <em>     * @return The newly constructed {@link Characters}event.</em>
<a name="401" href="#401">401</a> <em>     */</em>
<a name="402" href="#402">402</a>     <strong>public</strong> Characters createCharacters(<a href="../../../org/dom4j/CDATA.html">CDATA</a> cdata) {
<a name="403" href="#403">403</a>         <strong>return</strong> factory.createCData(cdata.getText());
<a name="404" href="#404">404</a>     }
<a name="405" href="#405">405</a> 
<a name="406" href="#406">406</a>     <em>/**<em>*</em></em>
<a name="407" href="#407">407</a> <em>     * Writes a DOM4J {@link Comment}to the stream.</em>
<a name="408" href="#408">408</a> <em>     * </em>
<a name="409" href="#409">409</a> <em>     * @param comment</em>
<a name="410" href="#410">410</a> <em>     *            The {@link Comment}to write to the stream.</em>
<a name="411" href="#411">411</a> <em>     * </em>
<a name="412" href="#412">412</a> <em>     * @throws XMLStreamException</em>
<a name="413" href="#413">413</a> <em>     *             If an error occurs writing to the stream.</em>
<a name="414" href="#414">414</a> <em>     */</em>
<a name="415" href="#415">415</a>     <strong>public</strong> <strong>void</strong> writeComment(<a href="../../../org/dom4j/Comment.html">Comment</a> comment) throws XMLStreamException {
<a name="416" href="#416">416</a>         consumer.add(createComment(comment));
<a name="417" href="#417">417</a>     }
<a name="418" href="#418">418</a> 
<a name="419" href="#419">419</a>     <em>/**<em>*</em></em>
<a name="420" href="#420">420</a> <em>     * Constructs a STAX {@link javax.xml.stream.events.Comment}event from a</em>
<a name="421" href="#421">421</a> <em>     * DOM4J {@link Comment}.</em>
<a name="422" href="#422">422</a> <em>     * </em>
<a name="423" href="#423">423</a> <em>     * @param comment</em>
<a name="424" href="#424">424</a> <em>     *            The {@link Comment}from which to construct the event.</em>
<a name="425" href="#425">425</a> <em>     * </em>
<a name="426" href="#426">426</a> <em>     * @return The constructed {@link javax.xml.stream.events.Comment}event.</em>
<a name="427" href="#427">427</a> <em>     */</em>
<a name="428" href="#428">428</a>     <strong>public</strong> javax.xml.stream.events.Comment createComment(<a href="../../../org/dom4j/Comment.html">Comment</a> comment) {
<a name="429" href="#429">429</a>         <strong>return</strong> factory.createComment(comment.getText());
<a name="430" href="#430">430</a>     }
<a name="431" href="#431">431</a> 
<a name="432" href="#432">432</a>     <em>/**<em>*</em></em>
<a name="433" href="#433">433</a> <em>     * Writes a DOM4J {@link ProcessingInstruction}to the stream.</em>
<a name="434" href="#434">434</a> <em>     * </em>
<a name="435" href="#435">435</a> <em>     * @param pi</em>
<a name="436" href="#436">436</a> <em>     *            The {@link ProcessingInstruction}to write to the stream.</em>
<a name="437" href="#437">437</a> <em>     * </em>
<a name="438" href="#438">438</a> <em>     * @throws XMLStreamException</em>
<a name="439" href="#439">439</a> <em>     *             If an error occurs writing to the stream.</em>
<a name="440" href="#440">440</a> <em>     */</em>
<a name="441" href="#441">441</a>     <strong>public</strong> <strong>void</strong> writeProcessingInstruction(org.dom4j.ProcessingInstruction pi)
<a name="442" href="#442">442</a>             throws XMLStreamException {
<a name="443" href="#443">443</a>         consumer.add(createProcessingInstruction(pi));
<a name="444" href="#444">444</a>     }
<a name="445" href="#445">445</a> 
<a name="446" href="#446">446</a>     <em>/**<em>*</em></em>
<a name="447" href="#447">447</a> <em>     * Constructs a STAX {@link javax.xml.stream.events.ProcessingInstruction}</em>
<a name="448" href="#448">448</a> <em>     * event from a DOM4J {@link ProcessingInstruction}.</em>
<a name="449" href="#449">449</a> <em>     * </em>
<a name="450" href="#450">450</a> <em>     * @param pi</em>
<a name="451" href="#451">451</a> <em>     *            The {@link ProcessingInstruction}from which to construct the</em>
<a name="452" href="#452">452</a> <em>     *            event.</em>
<a name="453" href="#453">453</a> <em>     * </em>
<a name="454" href="#454">454</a> <em>     * @return The constructed {@link</em>
<a name="455" href="#455">455</a> <em>     *         javax.xml.stream.events.ProcessingInstruction} event.</em>
<a name="456" href="#456">456</a> <em>     */</em>
<a name="457" href="#457">457</a>     <strong>public</strong> <a href="../../../org/dom4j/ProcessingInstruction.html">ProcessingInstruction</a> createProcessingInstruction(
<a name="458" href="#458">458</a>             org.dom4j.ProcessingInstruction pi) {
<a name="459" href="#459">459</a>         String target = pi.getTarget();
<a name="460" href="#460">460</a>         String data = pi.getText();
<a name="461" href="#461">461</a> 
<a name="462" href="#462">462</a>         <strong>return</strong> factory.createProcessingInstruction(target, data);
<a name="463" href="#463">463</a>     }
<a name="464" href="#464">464</a> 
<a name="465" href="#465">465</a>     <em>/**<em>*</em></em>
<a name="466" href="#466">466</a> <em>     * Writes a DOM4J {@link Entity}to the stream.</em>
<a name="467" href="#467">467</a> <em>     * </em>
<a name="468" href="#468">468</a> <em>     * @param entity</em>
<a name="469" href="#469">469</a> <em>     *            The {@link Entity}to write to the stream.</em>
<a name="470" href="#470">470</a> <em>     * </em>
<a name="471" href="#471">471</a> <em>     * @throws XMLStreamException</em>
<a name="472" href="#472">472</a> <em>     *             If an error occurs writing to the stream.</em>
<a name="473" href="#473">473</a> <em>     */</em>
<a name="474" href="#474">474</a>     <strong>public</strong> <strong>void</strong> writeEntity(<a href="../../../org/dom4j/Entity.html">Entity</a> entity) throws XMLStreamException {
<a name="475" href="#475">475</a>         consumer.add(createEntityReference(entity));
<a name="476" href="#476">476</a>     }
<a name="477" href="#477">477</a> 
<a name="478" href="#478">478</a>     <em>/**<em>*</em></em>
<a name="479" href="#479">479</a> <em>     * Constructs a STAX {@link EntityReference}event from a DOM4J {@link</em>
<a name="480" href="#480">480</a> <em>     * Entity}.</em>
<a name="481" href="#481">481</a> <em>     * </em>
<a name="482" href="#482">482</a> <em>     * @param entity</em>
<a name="483" href="#483">483</a> <em>     *            The {@link Entity}from which to construct the event.</em>
<a name="484" href="#484">484</a> <em>     * </em>
<a name="485" href="#485">485</a> <em>     * @return The constructed {@link EntityReference}event.</em>
<a name="486" href="#486">486</a> <em>     */</em>
<a name="487" href="#487">487</a>     <strong>private</strong> EntityReference createEntityReference(<a href="../../../org/dom4j/Entity.html">Entity</a> entity) {
<a name="488" href="#488">488</a>         <strong>return</strong> factory.createEntityReference(entity.getName(), <strong>null</strong>);
<a name="489" href="#489">489</a>     }
<a name="490" href="#490">490</a> 
<a name="491" href="#491">491</a>     <em>/**<em>*</em></em>
<a name="492" href="#492">492</a> <em>     * Writes a DOM4J {@link DocumentType}to the stream.</em>
<a name="493" href="#493">493</a> <em>     * </em>
<a name="494" href="#494">494</a> <em>     * @param docType</em>
<a name="495" href="#495">495</a> <em>     *            The {@link DocumentType}to write to the stream.</em>
<a name="496" href="#496">496</a> <em>     * </em>
<a name="497" href="#497">497</a> <em>     * @throws XMLStreamException</em>
<a name="498" href="#498">498</a> <em>     *             If an error occurs writing to the stream.</em>
<a name="499" href="#499">499</a> <em>     */</em>
<a name="500" href="#500">500</a>     <strong>public</strong> <strong>void</strong> writeDocumentType(<a href="../../../org/dom4j/DocumentType.html">DocumentType</a> docType)
<a name="501" href="#501">501</a>             throws XMLStreamException {
<a name="502" href="#502">502</a>         consumer.add(createDTD(docType));
<a name="503" href="#503">503</a>     }
<a name="504" href="#504">504</a> 
<a name="505" href="#505">505</a>     <em>/**<em>*</em></em>
<a name="506" href="#506">506</a> <em>     * Constructs a STAX {@link DTD}event from a DOM4J {@link DocumentType}.</em>
<a name="507" href="#507">507</a> <em>     * </em>
<a name="508" href="#508">508</a> <em>     * @param docType</em>
<a name="509" href="#509">509</a> <em>     *            The {@link DocumentType}from which to construct the event.</em>
<a name="510" href="#510">510</a> <em>     * </em>
<a name="511" href="#511">511</a> <em>     * @return The constructed {@link DTD}event.</em>
<a name="512" href="#512">512</a> <em>     * </em>
<a name="513" href="#513">513</a> <em>     * @throws RuntimeException</em>
<a name="514" href="#514">514</a> <em>     *             DOCUMENT ME!</em>
<a name="515" href="#515">515</a> <em>     */</em>
<a name="516" href="#516">516</a>     <strong>public</strong> DTD createDTD(<a href="../../../org/dom4j/DocumentType.html">DocumentType</a> docType) {
<a name="517" href="#517">517</a>         StringWriter decl = <strong>new</strong> StringWriter();
<a name="518" href="#518">518</a> 
<a name="519" href="#519">519</a>         <strong>try</strong> {
<a name="520" href="#520">520</a>             docType.write(decl);
<a name="521" href="#521">521</a>         } <strong>catch</strong> (IOException e) {
<a name="522" href="#522">522</a>             <strong>throw</strong> <strong>new</strong> RuntimeException(<span class="string">"Error writing DTD"</span>, e);
<a name="523" href="#523">523</a>         }
<a name="524" href="#524">524</a> 
<a name="525" href="#525">525</a>         <strong>return</strong> factory.createDTD(decl.toString());
<a name="526" href="#526">526</a>     }
<a name="527" href="#527">527</a> 
<a name="528" href="#528">528</a>     <em>/**<em>*</em></em>
<a name="529" href="#529">529</a> <em>     * Writes a DOM4J {@link Document}node, and all its contents, to the</em>
<a name="530" href="#530">530</a> <em>     * stream.</em>
<a name="531" href="#531">531</a> <em>     * </em>
<a name="532" href="#532">532</a> <em>     * @param doc</em>
<a name="533" href="#533">533</a> <em>     *            The {@link Document}to write to the stream.</em>
<a name="534" href="#534">534</a> <em>     * </em>
<a name="535" href="#535">535</a> <em>     * @throws XMLStreamException</em>
<a name="536" href="#536">536</a> <em>     *             If an error occurs writing to the stream.</em>
<a name="537" href="#537">537</a> <em>     */</em>
<a name="538" href="#538">538</a>     <strong>public</strong> <strong>void</strong> writeDocument(<a href="../../../org/dom4j/Document.html">Document</a> doc) throws XMLStreamException {
<a name="539" href="#539">539</a>         consumer.add(createStartDocument(doc));
<a name="540" href="#540">540</a> 
<a name="541" href="#541">541</a>         writeChildNodes(doc);
<a name="542" href="#542">542</a> 
<a name="543" href="#543">543</a>         consumer.add(createEndDocument(doc));
<a name="544" href="#544">544</a>     }
<a name="545" href="#545">545</a> 
<a name="546" href="#546">546</a>     <em>/**<em>*</em></em>
<a name="547" href="#547">547</a> <em>     * Constructs a STAX {@link StartDocument}event from a DOM4J {@link</em>
<a name="548" href="#548">548</a> <em>     * Document}.</em>
<a name="549" href="#549">549</a> <em>     * </em>
<a name="550" href="#550">550</a> <em>     * @param doc</em>
<a name="551" href="#551">551</a> <em>     *            The {@link Document}from which to construct the event.</em>
<a name="552" href="#552">552</a> <em>     * </em>
<a name="553" href="#553">553</a> <em>     * @return The constructed {@link StartDocument}event.</em>
<a name="554" href="#554">554</a> <em>     */</em>
<a name="555" href="#555">555</a>     <strong>public</strong> StartDocument createStartDocument(<a href="../../../org/dom4j/Document.html">Document</a> doc) {
<a name="556" href="#556">556</a>         String encoding = doc.getXMLEncoding();
<a name="557" href="#557">557</a> 
<a name="558" href="#558">558</a>         <strong>if</strong> (encoding != <strong>null</strong>) {
<a name="559" href="#559">559</a>             <strong>return</strong> factory.createStartDocument(encoding);
<a name="560" href="#560">560</a>         } <strong>else</strong> {
<a name="561" href="#561">561</a>             <strong>return</strong> factory.createStartDocument();
<a name="562" href="#562">562</a>         }
<a name="563" href="#563">563</a>     }
<a name="564" href="#564">564</a> 
<a name="565" href="#565">565</a>     <em>/**<em>*</em></em>
<a name="566" href="#566">566</a> <em>     * Constructs a STAX {@link EndDocument}event from a DOM4J {@link</em>
<a name="567" href="#567">567</a> <em>     * Document}.</em>
<a name="568" href="#568">568</a> <em>     * </em>
<a name="569" href="#569">569</a> <em>     * @param doc</em>
<a name="570" href="#570">570</a> <em>     *            The {@link Document}from which to construct the event.</em>
<a name="571" href="#571">571</a> <em>     * </em>
<a name="572" href="#572">572</a> <em>     * @return The constructed {@link EndDocument}event.</em>
<a name="573" href="#573">573</a> <em>     */</em>
<a name="574" href="#574">574</a>     <strong>public</strong> EndDocument createEndDocument(<a href="../../../org/dom4j/Document.html">Document</a> doc) {
<a name="575" href="#575">575</a>         <strong>return</strong> factory.createEndDocument();
<a name="576" href="#576">576</a>     }
<a name="577" href="#577">577</a> 
<a name="578" href="#578">578</a>     <em>/**<em>*</em></em>
<a name="579" href="#579">579</a> <em>     * Constructs a STAX {@link QName}from a DOM4J {@link org.dom4j.QName}.</em>
<a name="580" href="#580">580</a> <em>     * </em>
<a name="581" href="#581">581</a> <em>     * @param qname</em>
<a name="582" href="#582">582</a> <em>     *            The {@link org.dom4j.QName}from which to construct the STAX</em>
<a name="583" href="#583">583</a> <em>     *            {@link QName}.</em>
<a name="584" href="#584">584</a> <em>     * </em>
<a name="585" href="#585">585</a> <em>     * @return The constructed {@link QName}.</em>
<a name="586" href="#586">586</a> <em>     */</em>
<a name="587" href="#587">587</a>     <strong>public</strong> <a href="../../../org/dom4j/QName.html">QName</a> createQName(org.dom4j.QName qname) {
<a name="588" href="#588">588</a>         <strong>return</strong> <strong>new</strong> <a href="../../../org/dom4j/QName.html">QName</a>(qname.getNamespaceURI(), qname.getName(), qname
<a name="589" href="#589">589</a>                 .getNamespacePrefix());
<a name="590" href="#590">590</a>     }
<a name="591" href="#591">591</a> 
<a name="592" href="#592">592</a>     <em>/**<em>*</em></em>
<a name="593" href="#593">593</a> <em>     * Internal {@link Iterator}implementation used to pass DOM4J {@link</em>
<a name="594" href="#594">594</a> <em>     * Attribute}s to the stream.</em>
<a name="595" href="#595">595</a> <em>     */</em>
<a name="596" href="#596">596</a>     <strong>private</strong> <strong>class</strong> AttributeIterator implements Iterator {
<a name="597" href="#597">597</a>         <em>/**<em>* The underlying DOm4J attribute iterator. */</em></em>
<a name="598" href="#598">598</a>         <strong>private</strong> Iterator iter;
<a name="599" href="#599">599</a> 
<a name="600" href="#600">600</a>         <strong>public</strong> AttributeIterator(Iterator iter) {
<a name="601" href="#601">601</a>             <strong>this</strong>.iter = iter;
<a name="602" href="#602">602</a>         }
<a name="603" href="#603">603</a> 
<a name="604" href="#604">604</a>         <strong>public</strong> <strong>boolean</strong> hasNext() {
<a name="605" href="#605">605</a>             <strong>return</strong> iter.hasNext();
<a name="606" href="#606">606</a>         }
<a name="607" href="#607">607</a> 
<a name="608" href="#608">608</a>         <strong>public</strong> Object next() {
<a name="609" href="#609">609</a>             <a href="../../../org/dom4j/Attribute.html">Attribute</a> attr = (Attribute) iter.next();
<a name="610" href="#610">610</a>             <a href="../../../org/dom4j/QName.html">QName</a> attrName = createQName(attr.getQName());
<a name="611" href="#611">611</a>             String value = attr.getValue();
<a name="612" href="#612">612</a> 
<a name="613" href="#613">613</a>             <strong>return</strong> factory.createAttribute(attrName, value);
<a name="614" href="#614">614</a>         }
<a name="615" href="#615">615</a> 
<a name="616" href="#616">616</a>         <strong>public</strong> <strong>void</strong> remove() {
<a name="617" href="#617">617</a>             <strong>throw</strong> <strong>new</strong> UnsupportedOperationException();
<a name="618" href="#618">618</a>         }
<a name="619" href="#619">619</a>     }
<a name="620" href="#620">620</a> 
<a name="621" href="#621">621</a>     <em>/**<em>*</em></em>
<a name="622" href="#622">622</a> <em>     * Internal {@link Iterator}implementation used to pass DOM4J {@link</em>
<a name="623" href="#623">623</a> <em>     * Namespace}s to the stream.</em>
<a name="624" href="#624">624</a> <em>     */</em>
<a name="625" href="#625">625</a>     <strong>private</strong> <strong>class</strong> NamespaceIterator implements Iterator {
<a name="626" href="#626">626</a>         <strong>private</strong> Iterator iter;
<a name="627" href="#627">627</a> 
<a name="628" href="#628">628</a>         <strong>public</strong> NamespaceIterator(Iterator iter) {
<a name="629" href="#629">629</a>             <strong>this</strong>.iter = iter;
<a name="630" href="#630">630</a>         }
<a name="631" href="#631">631</a> 
<a name="632" href="#632">632</a>         <strong>public</strong> <strong>boolean</strong> hasNext() {
<a name="633" href="#633">633</a>             <strong>return</strong> iter.hasNext();
<a name="634" href="#634">634</a>         }
<a name="635" href="#635">635</a> 
<a name="636" href="#636">636</a>         <strong>public</strong> Object next() {
<a name="637" href="#637">637</a>             <a href="../../../org/dom4j/Namespace.html">Namespace</a> ns = (Namespace) iter.next();
<a name="638" href="#638">638</a>             String prefix = ns.getPrefix();
<a name="639" href="#639">639</a>             String nsURI = ns.getURI();
<a name="640" href="#640">640</a> 
<a name="641" href="#641">641</a>             <strong>return</strong> factory.createNamespace(prefix, nsURI);
<a name="642" href="#642">642</a>         }
<a name="643" href="#643">643</a> 
<a name="644" href="#644">644</a>         <strong>public</strong> <strong>void</strong> remove() {
<a name="645" href="#645">645</a>             <strong>throw</strong> <strong>new</strong> UnsupportedOperationException();
<a name="646" href="#646">646</a>         }
<a name="647" href="#647">647</a>     }
<a name="648" href="#648">648</a> }
<a name="649" href="#649">649</a> 
<a name="650" href="#650">650</a> <em class="comment">/*</em>
<a name="651" href="#651">651</a> <em class="comment"> * Redistribution and use of this software and associated documentation</em>
<a name="652" href="#652">652</a> <em class="comment"> * ("Software"), with or without modification, are permitted provided that the</em>
<a name="653" href="#653">653</a> <em class="comment"> * following conditions are met:</em>
<a name="654" href="#654">654</a> <em class="comment"> * </em>
<a name="655" href="#655">655</a> <em class="comment"> * 1. Redistributions of source code must retain copyright statements and</em>
<a name="656" href="#656">656</a> <em class="comment"> * notices. Redistributions must also contain a copy of this document.</em>
<a name="657" href="#657">657</a> <em class="comment"> * </em>
<a name="658" href="#658">658</a> <em class="comment"> * 2. Redistributions in binary form must reproduce the above copyright notice,</em>
<a name="659" href="#659">659</a> <em class="comment"> * this list of conditions and the following disclaimer in the documentation</em>
<a name="660" href="#660">660</a> <em class="comment"> * and/or other materials provided with the distribution.</em>
<a name="661" href="#661">661</a> <em class="comment"> * </em>
<a name="662" href="#662">662</a> <em class="comment"> * 3. The name "DOM4J" must not be used to endorse or promote products derived</em>
<a name="663" href="#663">663</a> <em class="comment"> * from this Software without prior written permission of MetaStuff, Ltd. For</em>
<a name="664" href="#664">664</a> <em class="comment"> * written permission, please contact dom4j-info@metastuff.com.</em>
<a name="665" href="#665">665</a> <em class="comment"> * </em>
<a name="666" href="#666">666</a> <em class="comment"> * 4. Products derived from this Software may not be called "DOM4J" nor may</em>
<a name="667" href="#667">667</a> <em class="comment"> * "DOM4J" appear in their names without prior written permission of MetaStuff,</em>
<a name="668" href="#668">668</a> <em class="comment"> * Ltd. DOM4J is a registered trademark of MetaStuff, Ltd.</em>
<a name="669" href="#669">669</a> <em class="comment"> * </em>
<a name="670" href="#670">670</a> <em class="comment"> * 5. Due credit should be given to the DOM4J Project - <a href="http://www.dom4j.org" target="alexandria_uri">http://www.dom4j.org</a></em>
<a name="671" href="#671">671</a> <em class="comment"> * </em>
<a name="672" href="#672">672</a> <em class="comment"> * THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS ``AS IS'' AND</em>
<a name="673" href="#673">673</a> <em class="comment"> * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</em>
<a name="674" href="#674">674</a> <em class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</em>
<a name="675" href="#675">675</a> <em class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL METASTUFF, LTD. OR ITS CONTRIBUTORS BE</em>
<a name="676" href="#676">676</a> <em class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</em>
<a name="677" href="#677">677</a> <em class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</em>
<a name="678" href="#678">678</a> <em class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</em>
<a name="679" href="#679">679</a> <em class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</em>
<a name="680" href="#680">680</a> <em class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</em>
<a name="681" href="#681">681</a> <em class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE</em>
<a name="682" href="#682">682</a> <em class="comment"> * POSSIBILITY OF SUCH DAMAGE.</em>
<a name="683" href="#683">683</a> <em class="comment"> * </em>
<a name="684" href="#684">684</a> <em class="comment"> * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved.</em>
<a name="685" href="#685">685</a> <em class="comment"> */</em>
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>





See more files for this project here

PeerWriter

PeerWriter is a collaborative text editor. Multiple peers can edit the same document while they see overall changes in real-time. PeerWriter is based on a decentralized infrastructure, using a non-locking concurrency protocol ensuring global consistency.

Project homepage: http://sourceforge.net/projects/peerwriter
Programming language(s): Java,XML
License: gpl2

  DOMReader.html
  DOMWriter.html
  DispatchHandler.html
  DocumentInputSource.html
  DocumentResult.html
  DocumentSource.html
  ElementModifier.html
  ElementStack.html
  HTMLWriter.html
  JAXPHelper.html
  OutputFormat.html
  PruningDispatchHandler.html
  PruningElementStack.html
  SAXContentHandler.html
  SAXEventRecorder.html
  SAXHelper.html
  SAXModifier.html
  SAXModifyContentHandler.html
  SAXModifyElementHandler.html
  SAXModifyException.html
  SAXModifyReader.html
  SAXReader.html
  SAXValidator.html
  SAXWriter.html
  STAXEventReader.html
  STAXEventWriter.html
  XMLResult.html
  XMLWriter.html
  XPP3Reader.html
  XPPReader.html
  package-frame.html
  package-summary.html