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

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.chemistry.opencmis.server.impl.atompub;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.io.ByteArrayInputStream;
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.ByteArrayOutputStream;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.File;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.InputStream;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.math.BigInteger;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a name="29" href="#29">29</a>  
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> javax.xml.bind.JAXBElement;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> javax.xml.bind.Unmarshaller;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> javax.xml.namespace.QName;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> javax.xml.stream.XMLInputFactory;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> javax.xml.stream.XMLOutputFactory;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> javax.xml.stream.XMLStreamException;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> javax.xml.stream.XMLStreamReader;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> javax.xml.stream.XMLStreamWriter;
<a name="38" href="#38">38</a>  
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.PropertyIds;
<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Acl;
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ContentStream;
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectData;
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Properties;
<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyData;
<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyId;
<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyString;
<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException;
<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.Base64;
<a name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.Constants;
<a name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.Converter;
<a name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.JaxBHelper;
<a name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ContentStreamImpl;
<a name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertiesImpl;
<a name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyStringImpl;
<a name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisObjectType;
<a name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.server.shared.ThresholdOutputStream;
<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"> * Parser for Atom Entries.</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> <strong class="jxr_keyword">class</strong> <a href="../../../../../../../org/apache/chemistry/opencmis/server/impl/atompub/AtomEntryParser.html">AtomEntryParser</a> {
<a name="63" href="#63">63</a>  
<a name="64" href="#64">64</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TAG_ENTRY = <span class="jxr_string">"entry"</span>;
<a name="65" href="#65">65</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TAG_TITLE = <span class="jxr_string">"title"</span>;
<a name="66" href="#66">66</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TAG_OBJECT = <span class="jxr_string">"object"</span>;
<a name="67" href="#67">67</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TAG_CONTENT = <span class="jxr_string">"content"</span>;
<a name="68" href="#68">68</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TAG_BASE64 = <span class="jxr_string">"base64"</span>;
<a name="69" href="#69">69</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TAG_MEDIATYPE = <span class="jxr_string">"mediatype"</span>;
<a name="70" href="#70">70</a>  
<a name="71" href="#71">71</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String ATTR_SRC = <span class="jxr_string">"src"</span>;
<a name="72" href="#72">72</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String ATTR_TYPE = <span class="jxr_string">"type"</span>;
<a name="73" href="#73">73</a>  
<a name="74" href="#74">74</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> ignoreAtomContentSrc;
<a name="75" href="#75">75</a>  
<a name="76" href="#76">76</a>      <strong class="jxr_keyword">private</strong> File tempDir;
<a name="77" href="#77">77</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> memoryThreshold;
<a name="78" href="#78">78</a>  
<a name="79" href="#79">79</a>      <strong class="jxr_keyword">private</strong> ObjectData object;
<a name="80" href="#80">80</a>      <strong class="jxr_keyword">private</strong> ContentStreamImpl atomContentStream;
<a name="81" href="#81">81</a>      <strong class="jxr_keyword">private</strong> ContentStreamImpl cmisContentStream;
<a name="82" href="#82">82</a>  
<a name="83" href="#83">83</a>      <em class="jxr_javadoccomment">/**</em>
<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment">     * Constructor.</em>
<a name="85" href="#85">85</a>  <em class="jxr_javadoccomment">     */</em>
<a name="86" href="#86">86</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../../org/apache/chemistry/opencmis/server/impl/atompub/AtomEntryParser.html">AtomEntryParser</a>(File tempDir, <strong class="jxr_keyword">int</strong> memoryThreshold) {
<a name="87" href="#87">87</a>          <strong class="jxr_keyword">this</strong>.tempDir = tempDir;
<a name="88" href="#88">88</a>          <strong class="jxr_keyword">this</strong>.memoryThreshold = memoryThreshold;
<a name="89" href="#89">89</a>      }
<a name="90" href="#90">90</a>  
<a name="91" href="#91">91</a>      <em class="jxr_javadoccomment">/**</em>
<a name="92" href="#92">92</a>  <em class="jxr_javadoccomment">     * Constructor that immediately parses the given stream.</em>
<a name="93" href="#93">93</a>  <em class="jxr_javadoccomment">     */</em>
<a name="94" href="#94">94</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../../org/apache/chemistry/opencmis/server/impl/atompub/AtomEntryParser.html">AtomEntryParser</a>(InputStream stream, File tempDir, <strong class="jxr_keyword">int</strong> memoryThreshold) <strong class="jxr_keyword">throws</strong> Exception {
<a name="95" href="#95">95</a>          <strong class="jxr_keyword">this</strong>(tempDir, memoryThreshold);
<a name="96" href="#96">96</a>          parse(stream);
<a name="97" href="#97">97</a>      }
<a name="98" href="#98">98</a>  
<a name="99" href="#99">99</a>      <em class="jxr_javadoccomment">/**</em>
<a name="100" href="#100">100</a> <em class="jxr_javadoccomment">     * Sets the flag controlling whether atom content src (external content) is</em>
<a name="101" href="#101">101</a> <em class="jxr_javadoccomment">     * ignored. This flag is false by default (not ignored).</em>
<a name="102" href="#102">102</a> <em class="jxr_javadoccomment">     */</em>
<a name="103" href="#103">103</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setIgnoreAtomContentSrc(<strong class="jxr_keyword">boolean</strong> ignoreAtomContentSrc) {
<a name="104" href="#104">104</a>         <strong class="jxr_keyword">this</strong>.ignoreAtomContentSrc = ignoreAtomContentSrc;
<a name="105" href="#105">105</a>     }
<a name="106" href="#106">106</a> 
<a name="107" href="#107">107</a>     <em class="jxr_javadoccomment">/**</em>
<a name="108" href="#108">108</a> <em class="jxr_javadoccomment">     * Returns the object.</em>
<a name="109" href="#109">109</a> <em class="jxr_javadoccomment">     */</em>
<a name="110" href="#110">110</a>     <strong class="jxr_keyword">public</strong> ObjectData getObject() {
<a name="111" href="#111">111</a>         <strong class="jxr_keyword">return</strong> object;
<a name="112" href="#112">112</a>     }
<a name="113" href="#113">113</a> 
<a name="114" href="#114">114</a>     <em class="jxr_javadoccomment">/**</em>
<a name="115" href="#115">115</a> <em class="jxr_javadoccomment">     * Returns the properties of the object.</em>
<a name="116" href="#116">116</a> <em class="jxr_javadoccomment">     */</em>
<a name="117" href="#117">117</a>     <strong class="jxr_keyword">public</strong> Properties getProperties() {
<a name="118" href="#118">118</a>         <strong class="jxr_keyword">return</strong> (object == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">null</strong> : object.getProperties());
<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">     * Returns the Id of the object.</em>
<a name="123" href="#123">123</a> <em class="jxr_javadoccomment">     */</em>
<a name="124" href="#124">124</a>     <strong class="jxr_keyword">public</strong> String getId() {
<a name="125" href="#125">125</a>         Properties properties = getProperties();
<a name="126" href="#126">126</a>         <strong class="jxr_keyword">if</strong> (properties == <strong class="jxr_keyword">null</strong>) {
<a name="127" href="#127">127</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="128" href="#128">128</a>         }
<a name="129" href="#129">129</a> 
<a name="130" href="#130">130</a>         Map&lt;String, PropertyData&lt;?&gt;&gt; propertiesMap = properties.getProperties();
<a name="131" href="#131">131</a>         <strong class="jxr_keyword">if</strong> (propertiesMap == <strong class="jxr_keyword">null</strong>) {
<a name="132" href="#132">132</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="133" href="#133">133</a>         }
<a name="134" href="#134">134</a> 
<a name="135" href="#135">135</a>         PropertyData&lt;?&gt; property = propertiesMap.get(PropertyIds.OBJECT_ID);
<a name="136" href="#136">136</a>         <strong class="jxr_keyword">if</strong> (property instanceof PropertyId) {
<a name="137" href="#137">137</a>             <strong class="jxr_keyword">return</strong> ((PropertyId) property).getFirstValue();
<a name="138" href="#138">138</a>         }
<a name="139" href="#139">139</a> 
<a name="140" href="#140">140</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="141" href="#141">141</a>     }
<a name="142" href="#142">142</a> 
<a name="143" href="#143">143</a>     <em class="jxr_javadoccomment">/**</em>
<a name="144" href="#144">144</a> <em class="jxr_javadoccomment">     * Returns the ACL of the object.</em>
<a name="145" href="#145">145</a> <em class="jxr_javadoccomment">     */</em>
<a name="146" href="#146">146</a>     <strong class="jxr_keyword">public</strong> Acl getAcl() {
<a name="147" href="#147">147</a>         <strong class="jxr_keyword">return</strong> (object == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">null</strong> : object.getAcl());
<a name="148" href="#148">148</a>     }
<a name="149" href="#149">149</a> 
<a name="150" href="#150">150</a>     <em class="jxr_javadoccomment">/**</em>
<a name="151" href="#151">151</a> <em class="jxr_javadoccomment">     * Returns the policy id list of the object.</em>
<a name="152" href="#152">152</a> <em class="jxr_javadoccomment">     */</em>
<a name="153" href="#153">153</a>     <strong class="jxr_keyword">public</strong> List&lt;String&gt; getPolicyIds() {
<a name="154" href="#154">154</a>         <strong class="jxr_keyword">if</strong> ((object == <strong class="jxr_keyword">null</strong>) || (object.getPolicyIds() == <strong class="jxr_keyword">null</strong>)) {
<a name="155" href="#155">155</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="156" href="#156">156</a>         }
<a name="157" href="#157">157</a> 
<a name="158" href="#158">158</a>         <strong class="jxr_keyword">return</strong> object.getPolicyIds().getPolicyIds();
<a name="159" href="#159">159</a>     }
<a name="160" href="#160">160</a> 
<a name="161" href="#161">161</a>     <em class="jxr_javadoccomment">/**</em>
<a name="162" href="#162">162</a> <em class="jxr_javadoccomment">     * Returns the content stream.</em>
<a name="163" href="#163">163</a> <em class="jxr_javadoccomment">     */</em>
<a name="164" href="#164">164</a>     <strong class="jxr_keyword">public</strong> ContentStream getContentStream() {
<a name="165" href="#165">165</a>         <strong class="jxr_keyword">return</strong> (cmisContentStream == <strong class="jxr_keyword">null</strong> ? atomContentStream : cmisContentStream);
<a name="166" href="#166">166</a>     }
<a name="167" href="#167">167</a> 
<a name="168" href="#168">168</a>     <em class="jxr_javadoccomment">/**</em>
<a name="169" href="#169">169</a> <em class="jxr_javadoccomment">     * Parses the stream.</em>
<a name="170" href="#170">170</a> <em class="jxr_javadoccomment">     */</em>
<a name="171" href="#171">171</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> parse(InputStream stream) <strong class="jxr_keyword">throws</strong> Exception {
<a name="172" href="#172">172</a>         object = <strong class="jxr_keyword">null</strong>;
<a name="173" href="#173">173</a>         atomContentStream = <strong class="jxr_keyword">null</strong>;
<a name="174" href="#174">174</a>         cmisContentStream = <strong class="jxr_keyword">null</strong>;
<a name="175" href="#175">175</a> 
<a name="176" href="#176">176</a>         <strong class="jxr_keyword">if</strong> (stream == <strong class="jxr_keyword">null</strong>) {
<a name="177" href="#177">177</a>             <strong class="jxr_keyword">return</strong>;
<a name="178" href="#178">178</a>         }
<a name="179" href="#179">179</a> 
<a name="180" href="#180">180</a>         XMLInputFactory factory = XMLInputFactory.newInstance();
<a name="181" href="#181">181</a>         factory.setProperty(XMLInputFactory.IS_COALESCING, Boolean.FALSE);
<a name="182" href="#182">182</a>         XMLStreamReader parser = factory.createXMLStreamReader(stream);
<a name="183" href="#183">183</a> 
<a name="184" href="#184">184</a>         <strong class="jxr_keyword">while</strong> (<strong class="jxr_keyword">true</strong>) {
<a name="185" href="#185">185</a>             <strong class="jxr_keyword">int</strong> event = parser.getEventType();
<a name="186" href="#186">186</a>             <strong class="jxr_keyword">if</strong> (event == XMLStreamReader.START_ELEMENT) {
<a name="187" href="#187">187</a>                 QName name = parser.getName();
<a name="188" href="#188">188</a> 
<a name="189" href="#189">189</a>                 <strong class="jxr_keyword">if</strong> (Constants.NAMESPACE_ATOM.equals(name.getNamespaceURI()) &amp;&amp; (TAG_ENTRY.equals(name.getLocalPart()))) {
<a name="190" href="#190">190</a>                     parseEntry(parser);
<a name="191" href="#191">191</a>                     <strong class="jxr_keyword">break</strong>;
<a name="192" href="#192">192</a>                 } <strong class="jxr_keyword">else</strong> {
<a name="193" href="#193">193</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"XML is not an Atom entry!"</span>);
<a name="194" href="#194">194</a>                 }
<a name="195" href="#195">195</a>             }
<a name="196" href="#196">196</a> 
<a name="197" href="#197">197</a>             <strong class="jxr_keyword">if</strong> (!next(parser)) {
<a name="198" href="#198">198</a>                 <strong class="jxr_keyword">break</strong>;
<a name="199" href="#199">199</a>             }
<a name="200" href="#200">200</a>         }
<a name="201" href="#201">201</a> 
<a name="202" href="#202">202</a>         parser.close();
<a name="203" href="#203">203</a>     }
<a name="204" href="#204">204</a> 
<a name="205" href="#205">205</a>     <em class="jxr_javadoccomment">/**</em>
<a name="206" href="#206">206</a> <em class="jxr_javadoccomment">     * Parses an Atom entry.</em>
<a name="207" href="#207">207</a> <em class="jxr_javadoccomment">     */</em>
<a name="208" href="#208">208</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> parseEntry(XMLStreamReader parser) <strong class="jxr_keyword">throws</strong> Exception {
<a name="209" href="#209">209</a>         String atomTitle = <strong class="jxr_keyword">null</strong>;
<a name="210" href="#210">210</a> 
<a name="211" href="#211">211</a>         next(parser);
<a name="212" href="#212">212</a> 
<a name="213" href="#213">213</a>         <em class="jxr_comment">// walk through all tags in entry</em>
<a name="214" href="#214">214</a>         <strong class="jxr_keyword">while</strong> (<strong class="jxr_keyword">true</strong>) {
<a name="215" href="#215">215</a>             <strong class="jxr_keyword">int</strong> event = parser.getEventType();
<a name="216" href="#216">216</a>             <strong class="jxr_keyword">if</strong> (event == XMLStreamReader.START_ELEMENT) {
<a name="217" href="#217">217</a>                 QName name = parser.getName();
<a name="218" href="#218">218</a> 
<a name="219" href="#219">219</a>                 <strong class="jxr_keyword">if</strong> (Constants.NAMESPACE_RESTATOM.equals(name.getNamespaceURI())) {
<a name="220" href="#220">220</a>                     <strong class="jxr_keyword">if</strong> (TAG_OBJECT.equals(name.getLocalPart())) {
<a name="221" href="#221">221</a>                         parseObject(parser);
<a name="222" href="#222">222</a>                     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (TAG_CONTENT.equals(name.getLocalPart())) {
<a name="223" href="#223">223</a>                         parseCmisContent(parser);
<a name="224" href="#224">224</a>                     } <strong class="jxr_keyword">else</strong> {
<a name="225" href="#225">225</a>                         skip(parser);
<a name="226" href="#226">226</a>                     }
<a name="227" href="#227">227</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (Constants.NAMESPACE_ATOM.equals(name.getNamespaceURI())) {
<a name="228" href="#228">228</a>                     <strong class="jxr_keyword">if</strong> (TAG_CONTENT.equals(name.getLocalPart())) {
<a name="229" href="#229">229</a>                         parseAtomContent(parser);
<a name="230" href="#230">230</a>                     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (TAG_TITLE.equals(name.getLocalPart())) {
<a name="231" href="#231">231</a>                         atomTitle = readText(parser);
<a name="232" href="#232">232</a>                     } <strong class="jxr_keyword">else</strong> {
<a name="233" href="#233">233</a>                         skip(parser);
<a name="234" href="#234">234</a>                     }
<a name="235" href="#235">235</a>                 } <strong class="jxr_keyword">else</strong> {
<a name="236" href="#236">236</a>                     skip(parser);
<a name="237" href="#237">237</a>                 }
<a name="238" href="#238">238</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (event == XMLStreamReader.END_ELEMENT) {
<a name="239" href="#239">239</a>                 <strong class="jxr_keyword">break</strong>;
<a name="240" href="#240">240</a>             } <strong class="jxr_keyword">else</strong> {
<a name="241" href="#241">241</a>                 <strong class="jxr_keyword">if</strong> (!next(parser)) {
<a name="242" href="#242">242</a>                     <strong class="jxr_keyword">break</strong>;
<a name="243" href="#243">243</a>                 }
<a name="244" href="#244">244</a>             }
<a name="245" href="#245">245</a>         }
<a name="246" href="#246">246</a> 
<a name="247" href="#247">247</a>         <em class="jxr_comment">// overwrite cmis:name with Atom title</em>
<a name="248" href="#248">248</a>         <strong class="jxr_keyword">if</strong> ((object != <strong class="jxr_keyword">null</strong>) &amp;&amp; (object.getProperties() != <strong class="jxr_keyword">null</strong>) &amp;&amp; (atomTitle != <strong class="jxr_keyword">null</strong>) &amp;&amp; (atomTitle.length() &gt; 0)) {
<a name="249" href="#249">249</a>             PropertyString nameProperty = <strong class="jxr_keyword">new</strong> PropertyStringImpl(PropertyIds.NAME, atomTitle);
<a name="250" href="#250">250</a>             ((PropertiesImpl) object.getProperties()).replaceProperty(nameProperty);
<a name="251" href="#251">251</a>         }
<a name="252" href="#252">252</a>     }
<a name="253" href="#253">253</a> 
<a name="254" href="#254">254</a>     <em class="jxr_javadoccomment">/**</em>
<a name="255" href="#255">255</a> <em class="jxr_javadoccomment">     * Parses a CMIS object.</em>
<a name="256" href="#256">256</a> <em class="jxr_javadoccomment">     */</em>
<a name="257" href="#257">257</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> parseObject(XMLStreamReader parser) <strong class="jxr_keyword">throws</strong> Exception {
<a name="258" href="#258">258</a>         Unmarshaller u = JaxBHelper.createUnmarshaller();
<a name="259" href="#259">259</a>         JAXBElement&lt;CmisObjectType&gt; jaxbObject = u.unmarshal(parser, CmisObjectType.<strong class="jxr_keyword">class</strong>);
<a name="260" href="#260">260</a> 
<a name="261" href="#261">261</a>         <strong class="jxr_keyword">if</strong> (jaxbObject != <strong class="jxr_keyword">null</strong>) {
<a name="262" href="#262">262</a>             object = Converter.convert(jaxbObject.getValue());
<a name="263" href="#263">263</a>         }
<a name="264" href="#264">264</a>     }
<a name="265" href="#265">265</a> 
<a name="266" href="#266">266</a>     <em class="jxr_javadoccomment">/**</em>
<a name="267" href="#267">267</a> <em class="jxr_javadoccomment">     * Extract the content stream.</em>
<a name="268" href="#268">268</a> <em class="jxr_javadoccomment">     */</em>
<a name="269" href="#269">269</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> parseAtomContent(XMLStreamReader parser) <strong class="jxr_keyword">throws</strong> Exception {
<a name="270" href="#270">270</a>         atomContentStream = <strong class="jxr_keyword">new</strong> ContentStreamImpl();
<a name="271" href="#271">271</a> 
<a name="272" href="#272">272</a>         <em class="jxr_comment">// read attributes</em>
<a name="273" href="#273">273</a>         String type = <span class="jxr_string">"text"</span>;
<a name="274" href="#274">274</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; parser.getAttributeCount(); i++) {
<a name="275" href="#275">275</a>             QName attrName = parser.getAttributeName(i);
<a name="276" href="#276">276</a>             <strong class="jxr_keyword">if</strong> (ATTR_TYPE.equals(attrName.getLocalPart())) {
<a name="277" href="#277">277</a>                 atomContentStream.setMimeType(parser.getAttributeValue(i));
<a name="278" href="#278">278</a>                 <strong class="jxr_keyword">if</strong> (parser.getAttributeValue(i) != <strong class="jxr_keyword">null</strong>) {
<a name="279" href="#279">279</a>                     type = parser.getAttributeValue(i).trim().toLowerCase();
<a name="280" href="#280">280</a>                 }
<a name="281" href="#281">281</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (ATTR_SRC.equals(attrName.getLocalPart())) {
<a name="282" href="#282">282</a>                 <strong class="jxr_keyword">if</strong> (ignoreAtomContentSrc) {
<a name="283" href="#283">283</a>                     atomContentStream = <strong class="jxr_keyword">null</strong>;
<a name="284" href="#284">284</a>                     skip(parser);
<a name="285" href="#285">285</a>                     <strong class="jxr_keyword">return</strong>;
<a name="286" href="#286">286</a>                 }
<a name="287" href="#287">287</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisNotSupportedException(<span class="jxr_string">"External content not supported!"</span>);
<a name="288" href="#288">288</a>             }
<a name="289" href="#289">289</a>         }
<a name="290" href="#290">290</a> 
<a name="291" href="#291">291</a>         byte[] bytes = <strong class="jxr_keyword">null</strong>;
<a name="292" href="#292">292</a>         <strong class="jxr_keyword">if</strong> (type.equals(<span class="jxr_string">"text"</span>) || type.equals(<span class="jxr_string">"html"</span>)) {
<a name="293" href="#293">293</a>             bytes = readText(parser).getBytes(<span class="jxr_string">"UTF-8"</span>);
<a name="294" href="#294">294</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (type.equals(<span class="jxr_string">"xhtml"</span>)) {
<a name="295" href="#295">295</a>             bytes = copy(parser);
<a name="296" href="#296">296</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (type.endsWith(<span class="jxr_string">"/xml"</span>) || type.endsWith(<span class="jxr_string">"+xml"</span>)) {
<a name="297" href="#297">297</a>             bytes = copy(parser);
<a name="298" href="#298">298</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (type.startsWith(<span class="jxr_string">"text/"</span>)) {
<a name="299" href="#299">299</a>             bytes = readText(parser).getBytes(<span class="jxr_string">"UTF-8"</span>);
<a name="300" href="#300">300</a>         } <strong class="jxr_keyword">else</strong> {
<a name="301" href="#301">301</a>             <a href="../../../../../../../org/apache/chemistry/opencmis/server/shared/ThresholdOutputStream.html">ThresholdOutputStream</a> ths = readBase64(parser);
<a name="302" href="#302">302</a>             atomContentStream.setStream(ths.getInputStream());
<a name="303" href="#303">303</a>             atomContentStream.setLength(BigInteger.valueOf(ths.getSize()));
<a name="304" href="#304">304</a>         }
<a name="305" href="#305">305</a> 
<a name="306" href="#306">306</a>         <strong class="jxr_keyword">if</strong> (bytes != <strong class="jxr_keyword">null</strong>) {
<a name="307" href="#307">307</a>             atomContentStream.setStream(<strong class="jxr_keyword">new</strong> ByteArrayInputStream(bytes));
<a name="308" href="#308">308</a>             atomContentStream.setLength(BigInteger.valueOf(bytes.length));
<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">     * Extract the content stream.</em>
<a name="314" href="#314">314</a> <em class="jxr_javadoccomment">     */</em>
<a name="315" href="#315">315</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> parseCmisContent(XMLStreamReader parser) <strong class="jxr_keyword">throws</strong> Exception {
<a name="316" href="#316">316</a>         cmisContentStream = <strong class="jxr_keyword">new</strong> ContentStreamImpl();
<a name="317" href="#317">317</a> 
<a name="318" href="#318">318</a>         next(parser);
<a name="319" href="#319">319</a> 
<a name="320" href="#320">320</a>         <em class="jxr_comment">// walk through all tags in content</em>
<a name="321" href="#321">321</a>         <strong class="jxr_keyword">while</strong> (<strong class="jxr_keyword">true</strong>) {
<a name="322" href="#322">322</a>             <strong class="jxr_keyword">int</strong> event = parser.getEventType();
<a name="323" href="#323">323</a>             <strong class="jxr_keyword">if</strong> (event == XMLStreamReader.START_ELEMENT) {
<a name="324" href="#324">324</a>                 QName name = parser.getName();
<a name="325" href="#325">325</a> 
<a name="326" href="#326">326</a>                 <strong class="jxr_keyword">if</strong> (Constants.NAMESPACE_RESTATOM.equals(name.getNamespaceURI())) {
<a name="327" href="#327">327</a>                     <strong class="jxr_keyword">if</strong> (TAG_MEDIATYPE.equals(name.getLocalPart())) {
<a name="328" href="#328">328</a>                         cmisContentStream.setMimeType(readText(parser));
<a name="329" href="#329">329</a>                     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (TAG_BASE64.equals(name.getLocalPart())) {
<a name="330" href="#330">330</a>                         <a href="../../../../../../../org/apache/chemistry/opencmis/server/shared/ThresholdOutputStream.html">ThresholdOutputStream</a> ths = readBase64(parser);
<a name="331" href="#331">331</a>                         cmisContentStream.setStream(ths.getInputStream());
<a name="332" href="#332">332</a>                         cmisContentStream.setLength(BigInteger.valueOf(ths.getSize()));
<a name="333" href="#333">333</a>                     } <strong class="jxr_keyword">else</strong> {
<a name="334" href="#334">334</a>                         skip(parser);
<a name="335" href="#335">335</a>                     }
<a name="336" href="#336">336</a>                 } <strong class="jxr_keyword">else</strong> {
<a name="337" href="#337">337</a>                     skip(parser);
<a name="338" href="#338">338</a>                 }
<a name="339" href="#339">339</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (event == XMLStreamReader.END_ELEMENT) {
<a name="340" href="#340">340</a>                 <strong class="jxr_keyword">break</strong>;
<a name="341" href="#341">341</a>             } <strong class="jxr_keyword">else</strong> {
<a name="342" href="#342">342</a>                 <strong class="jxr_keyword">if</strong> (!next(parser)) {
<a name="343" href="#343">343</a>                     <strong class="jxr_keyword">break</strong>;
<a name="344" href="#344">344</a>                 }
<a name="345" href="#345">345</a>             }
<a name="346" href="#346">346</a>         }
<a name="347" href="#347">347</a> 
<a name="348" href="#348">348</a>         next(parser);
<a name="349" href="#349">349</a>     }
<a name="350" href="#350">350</a> 
<a name="351" href="#351">351</a>     <em class="jxr_javadoccomment">/**</em>
<a name="352" href="#352">352</a> <em class="jxr_javadoccomment">     * Parses a tag that contains text.</em>
<a name="353" href="#353">353</a> <em class="jxr_javadoccomment">     */</em>
<a name="354" href="#354">354</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String readText(XMLStreamReader parser) <strong class="jxr_keyword">throws</strong> Exception {
<a name="355" href="#355">355</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder();
<a name="356" href="#356">356</a> 
<a name="357" href="#357">357</a>         next(parser);
<a name="358" href="#358">358</a> 
<a name="359" href="#359">359</a>         <strong class="jxr_keyword">while</strong> (<strong class="jxr_keyword">true</strong>) {
<a name="360" href="#360">360</a>             <strong class="jxr_keyword">int</strong> event = parser.getEventType();
<a name="361" href="#361">361</a>             <strong class="jxr_keyword">if</strong> (event == XMLStreamReader.END_ELEMENT) {
<a name="362" href="#362">362</a>                 <strong class="jxr_keyword">break</strong>;
<a name="363" href="#363">363</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (event == XMLStreamReader.CHARACTERS) {
<a name="364" href="#364">364</a>                 String s = parser.getText();
<a name="365" href="#365">365</a>                 <strong class="jxr_keyword">if</strong> (s != <strong class="jxr_keyword">null</strong>) {
<a name="366" href="#366">366</a>                     sb.append(s);
<a name="367" href="#367">367</a>                 }
<a name="368" href="#368">368</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (event == XMLStreamReader.START_ELEMENT) {
<a name="369" href="#369">369</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException(<span class="jxr_string">"Unexpected tag: "</span> + parser.getName());
<a name="370" href="#370">370</a>             }
<a name="371" href="#371">371</a> 
<a name="372" href="#372">372</a>             <strong class="jxr_keyword">if</strong> (!next(parser)) {
<a name="373" href="#373">373</a>                 <strong class="jxr_keyword">break</strong>;
<a name="374" href="#374">374</a>             }
<a name="375" href="#375">375</a>         }
<a name="376" href="#376">376</a> 
<a name="377" href="#377">377</a>         next(parser);
<a name="378" href="#378">378</a> 
<a name="379" href="#379">379</a>         <strong class="jxr_keyword">return</strong> sb.toString();
<a name="380" href="#380">380</a>     }
<a name="381" href="#381">381</a> 
<a name="382" href="#382">382</a>     <em class="jxr_javadoccomment">/**</em>
<a name="383" href="#383">383</a> <em class="jxr_javadoccomment">     * Parses a tag that contains base64 encoded content.</em>
<a name="384" href="#384">384</a> <em class="jxr_javadoccomment">     */</em>
<a name="385" href="#385">385</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../../org/apache/chemistry/opencmis/server/shared/ThresholdOutputStream.html">ThresholdOutputStream</a> readBase64(XMLStreamReader parser) <strong class="jxr_keyword">throws</strong> Exception {
<a name="386" href="#386">386</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/server/shared/ThresholdOutputStream.html">ThresholdOutputStream</a> bufferStream = <strong class="jxr_keyword">new</strong> <a href="../../../../../../../org/apache/chemistry/opencmis/server/shared/ThresholdOutputStream.html">ThresholdOutputStream</a>(tempDir, memoryThreshold);
<a name="387" href="#387">387</a>         Base64.OutputStream b64stream = <strong class="jxr_keyword">new</strong> Base64.OutputStream(bufferStream, Base64.DECODE);
<a name="388" href="#388">388</a> 
<a name="389" href="#389">389</a>         next(parser);
<a name="390" href="#390">390</a> 
<a name="391" href="#391">391</a>         <strong class="jxr_keyword">try</strong> {
<a name="392" href="#392">392</a>             <strong class="jxr_keyword">while</strong> (<strong class="jxr_keyword">true</strong>) {
<a name="393" href="#393">393</a>                 <strong class="jxr_keyword">int</strong> event = parser.getEventType();
<a name="394" href="#394">394</a>                 <strong class="jxr_keyword">if</strong> (event == XMLStreamReader.END_ELEMENT) {
<a name="395" href="#395">395</a>                     <strong class="jxr_keyword">break</strong>;
<a name="396" href="#396">396</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (event == XMLStreamReader.CHARACTERS) {
<a name="397" href="#397">397</a>                     String s = parser.getText();
<a name="398" href="#398">398</a>                     <strong class="jxr_keyword">if</strong> (s != <strong class="jxr_keyword">null</strong>) {
<a name="399" href="#399">399</a>                         b64stream.write(s.getBytes(<span class="jxr_string">"US-ASCII"</span>));
<a name="400" href="#400">400</a>                     }
<a name="401" href="#401">401</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (event == XMLStreamReader.START_ELEMENT) {
<a name="402" href="#402">402</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException(<span class="jxr_string">"Unexpected tag: "</span> + parser.getName());
<a name="403" href="#403">403</a>                 }
<a name="404" href="#404">404</a> 
<a name="405" href="#405">405</a>                 <strong class="jxr_keyword">if</strong> (!next(parser)) {
<a name="406" href="#406">406</a>                     <strong class="jxr_keyword">break</strong>;
<a name="407" href="#407">407</a>                 }
<a name="408" href="#408">408</a>             }
<a name="409" href="#409">409</a> 
<a name="410" href="#410">410</a>             b64stream.close();
<a name="411" href="#411">411</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="412" href="#412">412</a>             bufferStream.destroy(); <em class="jxr_comment">// remove temp file</em>
<a name="413" href="#413">413</a>             <strong class="jxr_keyword">throw</strong> e;
<a name="414" href="#414">414</a>         }
<a name="415" href="#415">415</a> 
<a name="416" href="#416">416</a>         next(parser);
<a name="417" href="#417">417</a> 
<a name="418" href="#418">418</a>         <strong class="jxr_keyword">return</strong> bufferStream;
<a name="419" href="#419">419</a>     }
<a name="420" href="#420">420</a> 
<a name="421" href="#421">421</a>     <em class="jxr_javadoccomment">/**</em>
<a name="422" href="#422">422</a> <em class="jxr_javadoccomment">     * Copies a subtree into a stream.</em>
<a name="423" href="#423">423</a> <em class="jxr_javadoccomment">     */</em>
<a name="424" href="#424">424</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> byte[] copy(XMLStreamReader parser) <strong class="jxr_keyword">throws</strong> Exception {
<a name="425" href="#425">425</a>         <em class="jxr_comment">// create a writer</em>
<a name="426" href="#426">426</a>         ByteArrayOutputStream out = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
<a name="427" href="#427">427</a>         XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(out);
<a name="428" href="#428">428</a> 
<a name="429" href="#429">429</a>         writer.writeStartDocument();
<a name="430" href="#430">430</a> 
<a name="431" href="#431">431</a>         <em class="jxr_comment">// copy subtree</em>
<a name="432" href="#432">432</a>         <strong class="jxr_keyword">int</strong> level = 1;
<a name="433" href="#433">433</a>         <strong class="jxr_keyword">while</strong> (next(parser)) {
<a name="434" href="#434">434</a>             <strong class="jxr_keyword">int</strong> event = parser.getEventType();
<a name="435" href="#435">435</a>             <strong class="jxr_keyword">if</strong> (event == XMLStreamReader.START_ELEMENT) {
<a name="436" href="#436">436</a>                 copyStartElement(parser, writer);
<a name="437" href="#437">437</a>                 level++;
<a name="438" href="#438">438</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (event == XMLStreamReader.CHARACTERS) {
<a name="439" href="#439">439</a>                 writer.writeCharacters(parser.getText());
<a name="440" href="#440">440</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (event == XMLStreamReader.COMMENT) {
<a name="441" href="#441">441</a>                 writer.writeComment(parser.getText());
<a name="442" href="#442">442</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (event == XMLStreamReader.CDATA) {
<a name="443" href="#443">443</a>                 writer.writeCData(parser.getText());
<a name="444" href="#444">444</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (event == XMLStreamReader.END_ELEMENT) {
<a name="445" href="#445">445</a>                 level--;
<a name="446" href="#446">446</a>                 <strong class="jxr_keyword">if</strong> (level == 0) {
<a name="447" href="#447">447</a>                     <strong class="jxr_keyword">break</strong>;
<a name="448" href="#448">448</a>                 }
<a name="449" href="#449">449</a>                 writer.writeEndElement();
<a name="450" href="#450">450</a>             } <strong class="jxr_keyword">else</strong> {
<a name="451" href="#451">451</a>                 <strong class="jxr_keyword">break</strong>;
<a name="452" href="#452">452</a>             }
<a name="453" href="#453">453</a>         }
<a name="454" href="#454">454</a> 
<a name="455" href="#455">455</a>         writer.writeEndDocument();
<a name="456" href="#456">456</a> 
<a name="457" href="#457">457</a>         next(parser);
<a name="458" href="#458">458</a> 
<a name="459" href="#459">459</a>         <strong class="jxr_keyword">return</strong> out.toByteArray();
<a name="460" href="#460">460</a>     }
<a name="461" href="#461">461</a> 
<a name="462" href="#462">462</a>     <em class="jxr_javadoccomment">/**</em>
<a name="463" href="#463">463</a> <em class="jxr_javadoccomment">     * Copies a XML start element.</em>
<a name="464" href="#464">464</a> <em class="jxr_javadoccomment">     */</em>
<a name="465" href="#465">465</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> copyStartElement(XMLStreamReader parser, XMLStreamWriter writer) <strong class="jxr_keyword">throws</strong> Exception {
<a name="466" href="#466">466</a>         String namespaceUri = parser.getNamespaceURI();
<a name="467" href="#467">467</a>         String prefix = parser.getPrefix();
<a name="468" href="#468">468</a>         String localName = parser.getLocalName();
<a name="469" href="#469">469</a> 
<a name="470" href="#470">470</a>         <em class="jxr_comment">// write start element</em>
<a name="471" href="#471">471</a>         <strong class="jxr_keyword">if</strong> (namespaceUri != <strong class="jxr_keyword">null</strong>) {
<a name="472" href="#472">472</a>             <strong class="jxr_keyword">if</strong> ((prefix == <strong class="jxr_keyword">null</strong>) || (prefix.length() == 0)) {
<a name="473" href="#473">473</a>                 writer.writeStartElement(localName);
<a name="474" href="#474">474</a>             } <strong class="jxr_keyword">else</strong> {
<a name="475" href="#475">475</a>                 writer.writeStartElement(prefix, localName, namespaceUri);
<a name="476" href="#476">476</a>             }
<a name="477" href="#477">477</a>         } <strong class="jxr_keyword">else</strong> {
<a name="478" href="#478">478</a>             writer.writeStartElement(localName);
<a name="479" href="#479">479</a>         }
<a name="480" href="#480">480</a> 
<a name="481" href="#481">481</a>         <em class="jxr_comment">// set namespaces</em>
<a name="482" href="#482">482</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; parser.getNamespaceCount(); i++) {
<a name="483" href="#483">483</a>             addNamespace(writer, parser.getNamespacePrefix(i), parser.getNamespaceURI(i));
<a name="484" href="#484">484</a>         }
<a name="485" href="#485">485</a>         addNamespaceIfMissing(writer, prefix, namespaceUri);
<a name="486" href="#486">486</a> 
<a name="487" href="#487">487</a>         <em class="jxr_comment">// write attributes</em>
<a name="488" href="#488">488</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; parser.getAttributeCount(); i++) {
<a name="489" href="#489">489</a>             String attrNamespaceUri = parser.getAttributeNamespace(i);
<a name="490" href="#490">490</a>             String attrPrefix = parser.getAttributePrefix(i);
<a name="491" href="#491">491</a>             String attrName = parser.getAttributeLocalName(i);
<a name="492" href="#492">492</a>             String attrValue = parser.getAttributeValue(i);
<a name="493" href="#493">493</a> 
<a name="494" href="#494">494</a>             <strong class="jxr_keyword">if</strong> ((attrNamespaceUri == <strong class="jxr_keyword">null</strong>) || (attrNamespaceUri.trim().length() == 0)) {
<a name="495" href="#495">495</a>                 writer.writeAttribute(attrName, attrValue);
<a name="496" href="#496">496</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ((attrPrefix == <strong class="jxr_keyword">null</strong>) || (attrPrefix.trim().length() == 0)) {
<a name="497" href="#497">497</a>                 writer.writeAttribute(attrNamespaceUri, attrName, attrValue);
<a name="498" href="#498">498</a>             } <strong class="jxr_keyword">else</strong> {
<a name="499" href="#499">499</a>                 addNamespaceIfMissing(writer, attrPrefix, attrNamespaceUri);
<a name="500" href="#500">500</a>                 writer.writeAttribute(attrPrefix, attrNamespaceUri, attrName, attrValue);
<a name="501" href="#501">501</a>             }
<a name="502" href="#502">502</a>         }
<a name="503" href="#503">503</a>     }
<a name="504" href="#504">504</a> 
<a name="505" href="#505">505</a>     <em class="jxr_javadoccomment">/**</em>
<a name="506" href="#506">506</a> <em class="jxr_javadoccomment">     * Checks if the given prefix is assigned to the given namespace.</em>
<a name="507" href="#507">507</a> <em class="jxr_javadoccomment">     */</em>
<a name="508" href="#508">508</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a name="509" href="#509">509</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> addNamespaceIfMissing(XMLStreamWriter writer, String prefix, String namespaceUri)
<a name="510" href="#510">510</a>             <strong class="jxr_keyword">throws</strong> Exception {
<a name="511" href="#511">511</a>         <strong class="jxr_keyword">if</strong> ((namespaceUri == <strong class="jxr_keyword">null</strong>) || (namespaceUri.trim().length() == 0)) {
<a name="512" href="#512">512</a>             <strong class="jxr_keyword">return</strong>;
<a name="513" href="#513">513</a>         }
<a name="514" href="#514">514</a> 
<a name="515" href="#515">515</a>         <strong class="jxr_keyword">if</strong> (prefix == <strong class="jxr_keyword">null</strong>) {
<a name="516" href="#516">516</a>             prefix = <span class="jxr_string">""</span>;
<a name="517" href="#517">517</a>         }
<a name="518" href="#518">518</a> 
<a name="519" href="#519">519</a>         Iterator&lt;String&gt; iter = (Iterator&lt;String&gt;) writer.getNamespaceContext().getPrefixes(namespaceUri);
<a name="520" href="#520">520</a>         <strong class="jxr_keyword">if</strong> (iter == <strong class="jxr_keyword">null</strong>) {
<a name="521" href="#521">521</a>             <strong class="jxr_keyword">return</strong>;
<a name="522" href="#522">522</a>         }
<a name="523" href="#523">523</a> 
<a name="524" href="#524">524</a>         <strong class="jxr_keyword">while</strong> (iter.hasNext()) {
<a name="525" href="#525">525</a>             String p = iter.next();
<a name="526" href="#526">526</a>             <strong class="jxr_keyword">if</strong> ((p != <strong class="jxr_keyword">null</strong>) &amp;&amp; (p.equals(prefix))) {
<a name="527" href="#527">527</a>                 <strong class="jxr_keyword">return</strong>;
<a name="528" href="#528">528</a>             }
<a name="529" href="#529">529</a>         }
<a name="530" href="#530">530</a> 
<a name="531" href="#531">531</a>         addNamespace(writer, prefix, namespaceUri);
<a name="532" href="#532">532</a>     }
<a name="533" href="#533">533</a> 
<a name="534" href="#534">534</a>     <em class="jxr_javadoccomment">/**</em>
<a name="535" href="#535">535</a> <em class="jxr_javadoccomment">     * Adds a namespace to a XML element.</em>
<a name="536" href="#536">536</a> <em class="jxr_javadoccomment">     */</em>
<a name="537" href="#537">537</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> addNamespace(XMLStreamWriter writer, String prefix, String namespaceUri) <strong class="jxr_keyword">throws</strong> Exception {
<a name="538" href="#538">538</a>         <strong class="jxr_keyword">if</strong> ((prefix == <strong class="jxr_keyword">null</strong>) || (prefix.trim().length() == 0)) {
<a name="539" href="#539">539</a>             writer.setDefaultNamespace(namespaceUri);
<a name="540" href="#540">540</a>             writer.writeDefaultNamespace(namespaceUri);
<a name="541" href="#541">541</a>         } <strong class="jxr_keyword">else</strong> {
<a name="542" href="#542">542</a>             writer.setPrefix(prefix, namespaceUri);
<a name="543" href="#543">543</a>             writer.writeNamespace(prefix, namespaceUri);
<a name="544" href="#544">544</a>         }
<a name="545" href="#545">545</a>     }
<a name="546" href="#546">546</a> 
<a name="547" href="#547">547</a>     <em class="jxr_javadoccomment">/**</em>
<a name="548" href="#548">548</a> <em class="jxr_javadoccomment">     * Skips a tag or subtree.</em>
<a name="549" href="#549">549</a> <em class="jxr_javadoccomment">     */</em>
<a name="550" href="#550">550</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> skip(XMLStreamReader parser) <strong class="jxr_keyword">throws</strong> Exception {
<a name="551" href="#551">551</a>         <strong class="jxr_keyword">int</strong> level = 1;
<a name="552" href="#552">552</a>         <strong class="jxr_keyword">while</strong> (next(parser)) {
<a name="553" href="#553">553</a>             <strong class="jxr_keyword">int</strong> event = parser.getEventType();
<a name="554" href="#554">554</a>             <strong class="jxr_keyword">if</strong> (event == XMLStreamReader.START_ELEMENT) {
<a name="555" href="#555">555</a>                 level++;
<a name="556" href="#556">556</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (event == XMLStreamReader.END_ELEMENT) {
<a name="557" href="#557">557</a>                 level--;
<a name="558" href="#558">558</a>                 <strong class="jxr_keyword">if</strong> (level == 0) {
<a name="559" href="#559">559</a>                     <strong class="jxr_keyword">break</strong>;
<a name="560" href="#560">560</a>                 }
<a name="561" href="#561">561</a>             }
<a name="562" href="#562">562</a>         }
<a name="563" href="#563">563</a> 
<a name="564" href="#564">564</a>         next(parser);
<a name="565" href="#565">565</a>     }
<a name="566" href="#566">566</a> 
<a name="567" href="#567">567</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> next(XMLStreamReader parser) <strong class="jxr_keyword">throws</strong> Exception {
<a name="568" href="#568">568</a>         <strong class="jxr_keyword">if</strong> (parser.hasNext()) {
<a name="569" href="#569">569</a>             <strong class="jxr_keyword">try</strong> {
<a name="570" href="#570">570</a>                 parser.next();
<a name="571" href="#571">571</a>             } <strong class="jxr_keyword">catch</strong> (XMLStreamException e) {
<a name="572" href="#572">572</a>                 <strong class="jxr_keyword">return</strong> false;
<a name="573" href="#573">573</a>             }
<a name="574" href="#574">574</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="575" href="#575">575</a>         }
<a name="576" href="#576">576</a> 
<a name="577" href="#577">577</a>         <strong class="jxr_keyword">return</strong> false;
<a name="578" href="#578">578</a>     }
<a name="579" href="#579">579</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

