<!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>JcrConverter 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>  
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">package</strong> org.apache.chemistry.opencmis.jcr;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.PropertyIds;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyBoolean;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyData;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyDateTime;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyDecimal;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyHtml;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyId;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyInteger;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyString;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyUri;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AbstractPropertyData;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyBooleanImpl;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDateTimeImpl;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDecimalImpl;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIntegerImpl;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyStringImpl;
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyUriImpl;
<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.jcr.util.Util;
<a name="41" href="#41">41</a>  
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> javax.jcr.Node;
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> javax.jcr.Property;
<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> javax.jcr.PropertyType;
<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> javax.jcr.RepositoryException;
<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> javax.jcr.Value;
<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> javax.jcr.ValueFactory;
<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> javax.jcr.ValueFormatException;
<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> javax.jcr.nodetype.NodeType;
<a name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> java.math.BigDecimal;
<a name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> java.math.BigInteger;
<a name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> java.util.GregorianCalendar;
<a name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a name="55" href="#55">55</a>  
<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment">/**</em>
<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment"> * Utility class providing methods for converting various entities from/to their respective representation</em>
<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment"> * in JCR/CMIS.</em>
<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment"> */</em>
<a name="60" href="#60">60</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/chemistry/opencmis/jcr/JcrConverter.html">JcrConverter</a> {
<a name="61" href="#61">61</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/chemistry/opencmis/jcr/JcrConverter.html">JcrConverter</a>() {}
<a name="62" href="#62">62</a>  
<a name="63" href="#63">63</a>      <em class="jxr_javadoccomment">/**</em>
<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     * Escapes all illegal JCR name characters of a string.</em>
<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">     * The encoding is loosely modeled after URI encoding, but only encodes</em>
<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment">     * the characters it absolutely needs to in order to make the resulting</em>
<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment">     * string a valid JCR name.</em>
<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     * &lt;p/&gt;</em>
<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     * QName EBNF:&lt;br&gt;</em>
<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     * &lt;pre&gt;</em>
<a name="71" href="#71">71</a>  <em class="jxr_javadoccomment">     * simplename ::= onecharsimplename | twocharsimplename | threeormorecharname</em>
<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment">     * onecharsimplename ::= (* Any Unicode character except: '.', '/', ':', '[', ']', '*', '|' or any whitespace character *)</em>
<a name="73" href="#73">73</a>  <em class="jxr_javadoccomment">     * twocharsimplename ::= '.' onecharsimplename | onecharsimplename '.' | onecharsimplename onecharsimplename</em>
<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     * threeormorecharname ::= nonspace string nonspace</em>
<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment">     * string ::= char | string char</em>
<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     * char ::= nonspace | ' '</em>
<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     * nonspace ::= (* Any Unicode character except: '/', ':', '[', ']', '*', '|' or any whitespace character *)</em>
<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">     * &lt;/pre&gt;</em>
<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment">     *</em>
<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">     * @param cmisName the name to escape</em>
<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     * @return the escaped name</em>
<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment">     */</em>    
<a name="83" href="#83">83</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String toJcrName(String cmisName) {
<a name="84" href="#84">84</a>          StringBuilder buffer = <strong class="jxr_keyword">new</strong> StringBuilder(cmisName.length() * 2);
<a name="85" href="#85">85</a>          <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; cmisName.length(); i++) {
<a name="86" href="#86">86</a>              <strong class="jxr_keyword">char</strong> ch = cmisName.charAt(i);
<a name="87" href="#87">87</a>              <strong class="jxr_keyword">if</strong> (ch == '%' || ch == '/' || ch == ':' || ch == '[' || ch == ']' || ch == '*' || ch == '|'
<a name="88" href="#88">88</a>                      || ch == '\t' || ch == '\r' || ch == '\n'
<a name="89" href="#89">89</a>                      || ch == '.' &amp;&amp; cmisName.length() &lt; 3
<a name="90" href="#90">90</a>                      || ch == ' ' &amp;&amp; (i == 0 || i == cmisName.length() - 1)) {
<a name="91" href="#91">91</a>                  buffer.append('%');
<a name="92" href="#92">92</a>                  buffer.append(Character.toUpperCase(Character.forDigit(ch / 16, 16)));
<a name="93" href="#93">93</a>                  buffer.append(Character.toUpperCase(Character.forDigit(ch % 16, 16)));
<a name="94" href="#94">94</a>              }
<a name="95" href="#95">95</a>              <strong class="jxr_keyword">else</strong> {
<a name="96" href="#96">96</a>                  buffer.append(ch);
<a name="97" href="#97">97</a>              }
<a name="98" href="#98">98</a>          }
<a name="99" href="#99">99</a>          <strong class="jxr_keyword">return</strong> buffer.toString();
<a name="100" href="#100">100</a>     }
<a name="101" href="#101">101</a> 
<a name="102" href="#102">102</a>     <em class="jxr_javadoccomment">/**</em>
<a name="103" href="#103">103</a> <em class="jxr_javadoccomment">     * Checks if the given name is valid a valid JCR name</em>
<a name="104" href="#104">104</a> <em class="jxr_javadoccomment">     *</em>
<a name="105" href="#105">105</a> <em class="jxr_javadoccomment">     * @param name  the name to check</em>
<a name="106" href="#106">106</a> <em class="jxr_javadoccomment">     * @return &lt;code&gt;true&lt;/code&gt; if the name is valid, &lt;code&gt;false&lt;/code&gt; otherwise.</em>
<a name="107" href="#107">107</a> <em class="jxr_javadoccomment">     */</em>
<a name="108" href="#108">108</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> isValidJcrName(String name) { 
<a name="109" href="#109">109</a>         <strong class="jxr_keyword">if</strong> (name == <strong class="jxr_keyword">null</strong> || name.length() == 0) {
<a name="110" href="#110">110</a>             <strong class="jxr_keyword">return</strong> false;
<a name="111" href="#111">111</a>         }
<a name="112" href="#112">112</a> 
<a name="113" href="#113">113</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; name.length(); i++) {
<a name="114" href="#114">114</a>             <strong class="jxr_keyword">char</strong> ch = name.charAt(i);
<a name="115" href="#115">115</a>             <strong class="jxr_keyword">if</strong> (ch == '%' || ch == '/' || ch == ':' || ch == '[' || ch == ']' || ch == '*' || ch == '|'
<a name="116" href="#116">116</a>                     || ch == '\t' || ch == '\r' || ch == '\n'
<a name="117" href="#117">117</a>                     || ch == '.' &amp;&amp; name.length() &lt; 3
<a name="118" href="#118">118</a>                     || ch == ' ' &amp;&amp; (i == 0 || i == name.length() - 1)) {
<a name="119" href="#119">119</a>                 <strong class="jxr_keyword">return</strong> false;
<a name="120" href="#120">120</a>             }
<a name="121" href="#121">121</a>         }
<a name="122" href="#122">122</a> 
<a name="123" href="#123">123</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="124" href="#124">124</a>     }
<a name="125" href="#125">125</a> 
<a name="126" href="#126">126</a>     <em class="jxr_javadoccomment">/**</em>
<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">     * Convert a JCR &lt;code&gt;Property&lt;/code&gt; to a CMIS &lt;code&gt;PropertyData&lt;/code&gt;.</em>
<a name="128" href="#128">128</a> <em class="jxr_javadoccomment">     * </em>
<a name="129" href="#129">129</a> <em class="jxr_javadoccomment">     * @param jcrProperty</em>
<a name="130" href="#130">130</a> <em class="jxr_javadoccomment">     * @return  </em>
<a name="131" href="#131">131</a> <em class="jxr_javadoccomment">     * @throws RepositoryException</em>
<a name="132" href="#132">132</a> <em class="jxr_javadoccomment">     */</em>
<a name="133" href="#133">133</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> PropertyData&lt;?&gt; convert(Property jcrProperty) <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="134" href="#134">134</a>         AbstractPropertyData&lt;?&gt; propertyData;
<a name="135" href="#135">135</a> 
<a name="136" href="#136">136</a>         <strong class="jxr_keyword">switch</strong> (jcrProperty.getType()) {
<a name="137" href="#137">137</a>             <strong class="jxr_keyword">case</strong> PropertyType.BINARY:
<a name="138" href="#138">138</a>             <strong class="jxr_keyword">case</strong> PropertyType.NAME:
<a name="139" href="#139">139</a>             <strong class="jxr_keyword">case</strong> PropertyType.PATH:
<a name="140" href="#140">140</a>             <strong class="jxr_keyword">case</strong> PropertyType.REFERENCE:
<a name="141" href="#141">141</a>             <strong class="jxr_keyword">case</strong> PropertyType.WEAKREFERENCE:
<a name="142" href="#142">142</a>             <strong class="jxr_keyword">case</strong> PropertyType.STRING:
<a name="143" href="#143">143</a>                 propertyData = jcrProperty.isMultiple()
<a name="144" href="#144">144</a>                     ? <strong class="jxr_keyword">new</strong> PropertyStringImpl(jcrProperty.getName(), toStrings(jcrProperty.getValues()))
<a name="145" href="#145">145</a>                     : <strong class="jxr_keyword">new</strong> PropertyStringImpl(jcrProperty.getName(), jcrProperty.getString());
<a name="146" href="#146">146</a>                 <strong class="jxr_keyword">break</strong>;
<a name="147" href="#147">147</a> 
<a name="148" href="#148">148</a>             <strong class="jxr_keyword">case</strong> PropertyType.LONG:
<a name="149" href="#149">149</a>                 propertyData = jcrProperty.isMultiple()
<a name="150" href="#150">150</a>                     ? <strong class="jxr_keyword">new</strong> PropertyIntegerImpl(jcrProperty.getName(), toInts(jcrProperty.getValues()))
<a name="151" href="#151">151</a>                     : <strong class="jxr_keyword">new</strong> PropertyIntegerImpl(jcrProperty.getName(), BigInteger.valueOf(jcrProperty.getLong()));
<a name="152" href="#152">152</a>                 <strong class="jxr_keyword">break</strong>;
<a name="153" href="#153">153</a> 
<a name="154" href="#154">154</a>             <strong class="jxr_keyword">case</strong> PropertyType.DECIMAL:
<a name="155" href="#155">155</a>                 propertyData = jcrProperty.isMultiple()
<a name="156" href="#156">156</a>                     ? <strong class="jxr_keyword">new</strong> PropertyDecimalImpl(jcrProperty.getName(), toDecs(jcrProperty.getValues()))
<a name="157" href="#157">157</a>                     : <strong class="jxr_keyword">new</strong> PropertyDecimalImpl(jcrProperty.getName(), jcrProperty.getDecimal());
<a name="158" href="#158">158</a>                 <strong class="jxr_keyword">break</strong>;
<a name="159" href="#159">159</a> 
<a name="160" href="#160">160</a>             <strong class="jxr_keyword">case</strong> PropertyType.DOUBLE:
<a name="161" href="#161">161</a>                 propertyData = jcrProperty.isMultiple()
<a name="162" href="#162">162</a>                     ? <strong class="jxr_keyword">new</strong> PropertyDecimalImpl(jcrProperty.getName(), doublesToDecs(jcrProperty.getValues()))
<a name="163" href="#163">163</a>                     : <strong class="jxr_keyword">new</strong> PropertyDecimalImpl(jcrProperty.getName(), BigDecimal.valueOf(jcrProperty.getDouble()));
<a name="164" href="#164">164</a>                 <strong class="jxr_keyword">break</strong>;
<a name="165" href="#165">165</a> 
<a name="166" href="#166">166</a>             <strong class="jxr_keyword">case</strong> PropertyType.DATE:
<a name="167" href="#167">167</a>                 propertyData = jcrProperty.isMultiple()
<a name="168" href="#168">168</a>                     ? <strong class="jxr_keyword">new</strong> PropertyDateTimeImpl(jcrProperty.getName(), toDates(jcrProperty.getValues()))
<a name="169" href="#169">169</a>                     : <strong class="jxr_keyword">new</strong> PropertyDateTimeImpl(jcrProperty.getName(), Util.toCalendar(jcrProperty.getDate()));
<a name="170" href="#170">170</a>                 <strong class="jxr_keyword">break</strong>;
<a name="171" href="#171">171</a> 
<a name="172" href="#172">172</a>             <strong class="jxr_keyword">case</strong> PropertyType.BOOLEAN:
<a name="173" href="#173">173</a>                 propertyData = jcrProperty.isMultiple()
<a name="174" href="#174">174</a>                     ? <strong class="jxr_keyword">new</strong> PropertyBooleanImpl(jcrProperty.getName(), toBools(jcrProperty.getValues()))
<a name="175" href="#175">175</a>                     : <strong class="jxr_keyword">new</strong> PropertyBooleanImpl(jcrProperty.getName(), jcrProperty.getBoolean());
<a name="176" href="#176">176</a>                 <strong class="jxr_keyword">break</strong>;
<a name="177" href="#177">177</a> 
<a name="178" href="#178">178</a>             <strong class="jxr_keyword">case</strong> PropertyType.URI:
<a name="179" href="#179">179</a>                 propertyData = jcrProperty.isMultiple()
<a name="180" href="#180">180</a>                     ? <strong class="jxr_keyword">new</strong> PropertyUriImpl(jcrProperty.getName(), toStrings(jcrProperty.getValues()))
<a name="181" href="#181">181</a>                     : <strong class="jxr_keyword">new</strong> PropertyUriImpl(jcrProperty.getName(), jcrProperty.getString());
<a name="182" href="#182">182</a>                 <strong class="jxr_keyword">break</strong>;
<a name="183" href="#183">183</a> 
<a name="184" href="#184">184</a>             <strong class="jxr_keyword">default</strong>:
<a name="185" href="#185">185</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Invalid property type: "</span> + jcrProperty.getType());
<a name="186" href="#186">186</a>         }
<a name="187" href="#187">187</a> 
<a name="188" href="#188">188</a>         propertyData.setDisplayName(jcrProperty.getName());
<a name="189" href="#189">189</a>         propertyData.setLocalName(jcrProperty.getName());
<a name="190" href="#190">190</a>         propertyData.setQueryName(jcrProperty.getName());
<a name="191" href="#191">191</a>         
<a name="192" href="#192">192</a>         <strong class="jxr_keyword">return</strong> propertyData;
<a name="193" href="#193">193</a>     }
<a name="194" href="#194">194</a> 
<a name="195" href="#195">195</a>     <em class="jxr_javadoccomment">/**</em>
<a name="196" href="#196">196</a> <em class="jxr_javadoccomment">     * Set a property on a JCR node. </em>
<a name="197" href="#197">197</a> <em class="jxr_javadoccomment">     *</em>
<a name="198" href="#198">198</a> <em class="jxr_javadoccomment">     * @param node  the node to set the property</em>
<a name="199" href="#199">199</a> <em class="jxr_javadoccomment">     * @param propertyData  the property to set</em>
<a name="200" href="#200">200</a> <em class="jxr_javadoccomment">     * @throws RepositoryException</em>
<a name="201" href="#201">201</a> <em class="jxr_javadoccomment">     */</em>
<a name="202" href="#202">202</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> setProperty(Node node, PropertyData&lt;?&gt; propertyData) <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="203" href="#203">203</a>         Value[] values;
<a name="204" href="#204">204</a>         <strong class="jxr_keyword">int</strong> propertyType;
<a name="205" href="#205">205</a> 
<a name="206" href="#206">206</a>         <strong class="jxr_keyword">if</strong> (propertyData instanceof PropertyBoolean) {
<a name="207" href="#207">207</a>             values = toValue((PropertyBoolean) propertyData, node.getSession().getValueFactory());
<a name="208" href="#208">208</a>             propertyType = PropertyType.BOOLEAN;
<a name="209" href="#209">209</a>         }
<a name="210" href="#210">210</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyData instanceof PropertyDateTime) {
<a name="211" href="#211">211</a>             values = toValue((PropertyDateTime) propertyData, node.getSession().getValueFactory());
<a name="212" href="#212">212</a>             propertyType = PropertyType.DATE;
<a name="213" href="#213">213</a>         }
<a name="214" href="#214">214</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyData instanceof PropertyDecimal) {
<a name="215" href="#215">215</a>             values = toValue((PropertyDecimal) propertyData, node.getSession().getValueFactory());
<a name="216" href="#216">216</a>             propertyType = PropertyType.DECIMAL;
<a name="217" href="#217">217</a>         }
<a name="218" href="#218">218</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyData instanceof PropertyHtml) {
<a name="219" href="#219">219</a>             values = toValue((PropertyHtml) propertyData, node.getSession().getValueFactory());
<a name="220" href="#220">220</a>             propertyType = PropertyType.STRING;
<a name="221" href="#221">221</a>         }
<a name="222" href="#222">222</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyData instanceof PropertyId) {
<a name="223" href="#223">223</a>             values = toValue((PropertyId) propertyData, node.getSession().getValueFactory());
<a name="224" href="#224">224</a>             propertyType = PropertyType.STRING;
<a name="225" href="#225">225</a>         }
<a name="226" href="#226">226</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyData instanceof PropertyInteger) {
<a name="227" href="#227">227</a>             values = toValue((PropertyInteger) propertyData, node.getSession().getValueFactory());
<a name="228" href="#228">228</a>             propertyType = PropertyType.DECIMAL;
<a name="229" href="#229">229</a>         }
<a name="230" href="#230">230</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyData instanceof PropertyString) {
<a name="231" href="#231">231</a>             values = toValue((PropertyString) propertyData, node.getSession().getValueFactory());
<a name="232" href="#232">232</a>             propertyType = PropertyType.STRING;
<a name="233" href="#233">233</a>         }
<a name="234" href="#234">234</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyData instanceof PropertyUri) {
<a name="235" href="#235">235</a>             values = toValue((PropertyUri) propertyData, node.getSession().getValueFactory());
<a name="236" href="#236">236</a>             propertyType = PropertyType.URI;
<a name="237" href="#237">237</a>         }
<a name="238" href="#238">238</a>         <strong class="jxr_keyword">else</strong> {
<a name="239" href="#239">239</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Invalid property type: "</span> + propertyData);
<a name="240" href="#240">240</a>         }
<a name="241" href="#241">241</a> 
<a name="242" href="#242">242</a>         String id = propertyData.getId();
<a name="243" href="#243">243</a>         String name;
<a name="244" href="#244">244</a>         <strong class="jxr_keyword">if</strong> (PropertyIds.NAME.equals(id)) {
<a name="245" href="#245">245</a>             node.addMixin(NodeType.MIX_TITLE);
<a name="246" href="#246">246</a>             name = Property.JCR_TITLE;
<a name="247" href="#247">247</a>         }
<a name="248" href="#248">248</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (PropertyIds.CONTENT_STREAM_MIME_TYPE.equals(id)) {
<a name="249" href="#249">249</a>             name = Property.JCR_MIMETYPE;
<a name="250" href="#250">250</a>         }
<a name="251" href="#251">251</a>         <strong class="jxr_keyword">else</strong> {
<a name="252" href="#252">252</a>             name = toJcrName(propertyData.getId());
<a name="253" href="#253">253</a>         }
<a name="254" href="#254">254</a> 
<a name="255" href="#255">255</a>         <strong class="jxr_keyword">if</strong> (values.length == 1) {
<a name="256" href="#256">256</a>             node.setProperty(name, values[0]);
<a name="257" href="#257">257</a>         }
<a name="258" href="#258">258</a>         <strong class="jxr_keyword">else</strong> {
<a name="259" href="#259">259</a>             node.setProperty(name, values, propertyType);
<a name="260" href="#260">260</a>         }
<a name="261" href="#261">261</a>     }
<a name="262" href="#262">262</a> 
<a name="263" href="#263">263</a>     <em class="jxr_javadoccomment">/**</em>
<a name="264" href="#264">264</a> <em class="jxr_javadoccomment">     * Remove a property from a JCR node</em>
<a name="265" href="#265">265</a> <em class="jxr_javadoccomment">     *</em>
<a name="266" href="#266">266</a> <em class="jxr_javadoccomment">     * @param node  the node from which to remove the property</em>
<a name="267" href="#267">267</a> <em class="jxr_javadoccomment">     * @param propertyData  the property to remove</em>
<a name="268" href="#268">268</a> <em class="jxr_javadoccomment">     * @throws RepositoryException</em>
<a name="269" href="#269">269</a> <em class="jxr_javadoccomment">     */</em>
<a name="270" href="#270">270</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> removeProperty(Node node, PropertyData&lt;?&gt; propertyData) <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="271" href="#271">271</a>         String id = propertyData.getId();
<a name="272" href="#272">272</a>         String name = PropertyIds.NAME.equals(id)
<a name="273" href="#273">273</a>                 ? Property.JCR_TITLE :
<a name="274" href="#274">274</a>                 toJcrName(propertyData.getId());
<a name="275" href="#275">275</a> 
<a name="276" href="#276">276</a>         <strong class="jxr_keyword">if</strong> (node.hasProperty(name)) {
<a name="277" href="#277">277</a>             node.getProperty(name).remove();
<a name="278" href="#278">278</a>         }
<a name="279" href="#279">279</a>     }
<a name="280" href="#280">280</a> 
<a name="281" href="#281">281</a>     <em class="jxr_comment">//------------------------------------------&lt; private &gt;---</em>
<a name="282" href="#282">282</a> 
<a name="283" href="#283">283</a>     <em class="jxr_javadoccomment">/**</em>
<a name="284" href="#284">284</a> <em class="jxr_javadoccomment">     * Convert an array of &lt;code&gt;Value&lt;/code&gt;s to a list of &lt;code&gt;String&lt;/code&gt;s.</em>
<a name="285" href="#285">285</a> <em class="jxr_javadoccomment">     */</em>
<a name="286" href="#286">286</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;String&gt; toStrings(Value[] values) <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="287" href="#287">287</a>         ArrayList&lt;String&gt; strings = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;(values.length);
<a name="288" href="#288">288</a> 
<a name="289" href="#289">289</a>         <strong class="jxr_keyword">for</strong> (Value v : values) {
<a name="290" href="#290">290</a>             strings.add(v.getString());
<a name="291" href="#291">291</a>         }
<a name="292" href="#292">292</a> 
<a name="293" href="#293">293</a>         <strong class="jxr_keyword">return</strong> strings;
<a name="294" href="#294">294</a>     }
<a name="295" href="#295">295</a> 
<a name="296" href="#296">296</a>     <em class="jxr_javadoccomment">/**</em>
<a name="297" href="#297">297</a> <em class="jxr_javadoccomment">     * Convert an array of &lt;code&gt;Value&lt;/code&gt;s to a list of &lt;code&gt;BigInteger&lt;/code&gt;s.</em>
<a name="298" href="#298">298</a> <em class="jxr_javadoccomment">     */</em>
<a name="299" href="#299">299</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;BigInteger&gt; toInts(Value[] values) <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="300" href="#300">300</a>         ArrayList&lt;BigInteger&gt; ints = <strong class="jxr_keyword">new</strong> ArrayList&lt;BigInteger&gt;(values.length);
<a name="301" href="#301">301</a> 
<a name="302" href="#302">302</a>         <strong class="jxr_keyword">for</strong> (Value v : values) {
<a name="303" href="#303">303</a>             ints.add(BigInteger.valueOf(v.getLong()));
<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">return</strong> ints;
<a name="307" href="#307">307</a>     }
<a name="308" href="#308">308</a> 
<a name="309" href="#309">309</a>     <em class="jxr_javadoccomment">/**</em>
<a name="310" href="#310">310</a> <em class="jxr_javadoccomment">     * Convert an array of &lt;code&gt;Value&lt;/code&gt;s to a list of &lt;code&gt;BigDecimal&lt;/code&gt;s.</em>
<a name="311" href="#311">311</a> <em class="jxr_javadoccomment">     */</em>
<a name="312" href="#312">312</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;BigDecimal&gt; toDecs(Value[] values) <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="313" href="#313">313</a>         ArrayList&lt;BigDecimal&gt; decs = <strong class="jxr_keyword">new</strong> ArrayList&lt;BigDecimal&gt;(values.length);
<a name="314" href="#314">314</a> 
<a name="315" href="#315">315</a>         <strong class="jxr_keyword">for</strong> (Value v : values) {
<a name="316" href="#316">316</a>             decs.add(v.getDecimal());
<a name="317" href="#317">317</a>         }
<a name="318" href="#318">318</a> 
<a name="319" href="#319">319</a>         <strong class="jxr_keyword">return</strong> decs;
<a name="320" href="#320">320</a>     }
<a name="321" href="#321">321</a> 
<a name="322" href="#322">322</a>     <em class="jxr_javadoccomment">/**</em>
<a name="323" href="#323">323</a> <em class="jxr_javadoccomment">     * Convert an array of double &lt;code&gt;Value&lt;/code&gt;s to a list of &lt;code&gt;BigInteger&lt;/code&gt;s.</em>
<a name="324" href="#324">324</a> <em class="jxr_javadoccomment">     */</em>
<a name="325" href="#325">325</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;BigDecimal&gt; doublesToDecs(Value[] values) <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="326" href="#326">326</a>         ArrayList&lt;BigDecimal&gt; decs = <strong class="jxr_keyword">new</strong> ArrayList&lt;BigDecimal&gt;(values.length);
<a name="327" href="#327">327</a> 
<a name="328" href="#328">328</a>         <strong class="jxr_keyword">for</strong> (Value v : values) {
<a name="329" href="#329">329</a>             decs.add(BigDecimal.valueOf(v.getDouble()));
<a name="330" href="#330">330</a>         }
<a name="331" href="#331">331</a> 
<a name="332" href="#332">332</a>         <strong class="jxr_keyword">return</strong> decs;
<a name="333" href="#333">333</a>     }
<a name="334" href="#334">334</a> 
<a name="335" href="#335">335</a>     <em class="jxr_javadoccomment">/**</em>
<a name="336" href="#336">336</a> <em class="jxr_javadoccomment">     * Convert an array of &lt;code&gt;Value&lt;/code&gt;s to a list of &lt;code&gt;Booleans&lt;/code&gt;s.</em>
<a name="337" href="#337">337</a> <em class="jxr_javadoccomment">     */</em>
<a name="338" href="#338">338</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;Boolean&gt; toBools(Value[] values) <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="339" href="#339">339</a>         ArrayList&lt;Boolean&gt; bools = <strong class="jxr_keyword">new</strong> ArrayList&lt;Boolean&gt;(values.length);
<a name="340" href="#340">340</a> 
<a name="341" href="#341">341</a>         <strong class="jxr_keyword">for</strong> (Value v : values) {
<a name="342" href="#342">342</a>             bools.add(v.getBoolean());
<a name="343" href="#343">343</a>         }
<a name="344" href="#344">344</a> 
<a name="345" href="#345">345</a>         <strong class="jxr_keyword">return</strong> bools;
<a name="346" href="#346">346</a>     }
<a name="347" href="#347">347</a> 
<a name="348" href="#348">348</a>     <em class="jxr_javadoccomment">/**</em>
<a name="349" href="#349">349</a> <em class="jxr_javadoccomment">     * Convert an array of &lt;code&gt;Value&lt;/code&gt;s to a list of &lt;code&gt;GregorianCalendar&lt;/code&gt;s.</em>
<a name="350" href="#350">350</a> <em class="jxr_javadoccomment">     */</em>
<a name="351" href="#351">351</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;GregorianCalendar&gt; toDates(Value[] values) <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="352" href="#352">352</a>         ArrayList&lt;GregorianCalendar&gt; dates = <strong class="jxr_keyword">new</strong> ArrayList&lt;GregorianCalendar&gt;(values.length);
<a name="353" href="#353">353</a> 
<a name="354" href="#354">354</a>         <strong class="jxr_keyword">for</strong> (Value v : values) {
<a name="355" href="#355">355</a>             dates.add(Util.toCalendar(v.getDate()));
<a name="356" href="#356">356</a>         }
<a name="357" href="#357">357</a> 
<a name="358" href="#358">358</a>         <strong class="jxr_keyword">return</strong> dates;
<a name="359" href="#359">359</a>     }
<a name="360" href="#360">360</a> 
<a name="361" href="#361">361</a>     <em class="jxr_javadoccomment">/**</em>
<a name="362" href="#362">362</a> <em class="jxr_javadoccomment">     * Convert a &lt;code&gt;PropertyBoolean&lt;/code&gt; to an array of JCR &lt;code&gt;Values&lt;/code&gt;.</em>
<a name="363" href="#363">363</a> <em class="jxr_javadoccomment">     */</em>
<a name="364" href="#364">364</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Value[] toValue(PropertyBoolean propertyData, ValueFactory valueFactory) {
<a name="365" href="#365">365</a>         List&lt;Boolean&gt; values = propertyData.getValues();
<a name="366" href="#366">366</a>         <strong class="jxr_keyword">if</strong> (values == <strong class="jxr_keyword">null</strong>) {
<a name="367" href="#367">367</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> Value[0];
<a name="368" href="#368">368</a>         }
<a name="369" href="#369">369</a> 
<a name="370" href="#370">370</a>         Value[] result = <strong class="jxr_keyword">new</strong> Value[values.size()];
<a name="371" href="#371">371</a>         <strong class="jxr_keyword">int</strong> k = 0;
<a name="372" href="#372">372</a>         <strong class="jxr_keyword">for</strong> (Boolean v : values) {
<a name="373" href="#373">373</a>             result[k++] = valueFactory.createValue(v);
<a name="374" href="#374">374</a>         }
<a name="375" href="#375">375</a> 
<a name="376" href="#376">376</a>         <strong class="jxr_keyword">return</strong> result;
<a name="377" href="#377">377</a>     }
<a name="378" href="#378">378</a> 
<a name="379" href="#379">379</a>     <em class="jxr_javadoccomment">/**</em>
<a name="380" href="#380">380</a> <em class="jxr_javadoccomment">     * Convert a &lt;code&gt;PropertyDateTime&lt;/code&gt; to an array of JCR &lt;code&gt;Values&lt;/code&gt;.</em>
<a name="381" href="#381">381</a> <em class="jxr_javadoccomment">     */</em>
<a name="382" href="#382">382</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Value[] toValue(PropertyDateTime propertyData, ValueFactory valueFactory) {
<a name="383" href="#383">383</a>         List&lt;GregorianCalendar&gt; values = propertyData.getValues();
<a name="384" href="#384">384</a>         <strong class="jxr_keyword">if</strong> (values == <strong class="jxr_keyword">null</strong>) {
<a name="385" href="#385">385</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> Value[0];
<a name="386" href="#386">386</a>         }
<a name="387" href="#387">387</a> 
<a name="388" href="#388">388</a>         Value[] result = <strong class="jxr_keyword">new</strong> Value[values.size()];
<a name="389" href="#389">389</a>         <strong class="jxr_keyword">int</strong> k = 0;
<a name="390" href="#390">390</a>         <strong class="jxr_keyword">for</strong> (GregorianCalendar v : values) {
<a name="391" href="#391">391</a>             result[k++] = valueFactory.createValue(v);
<a name="392" href="#392">392</a>         }
<a name="393" href="#393">393</a> 
<a name="394" href="#394">394</a>         <strong class="jxr_keyword">return</strong> result;
<a name="395" href="#395">395</a>     }
<a name="396" href="#396">396</a> 
<a name="397" href="#397">397</a>     <em class="jxr_javadoccomment">/**</em>
<a name="398" href="#398">398</a> <em class="jxr_javadoccomment">     * Convert a &lt;code&gt;PropertyDecimal&lt;/code&gt; to an array of JCR &lt;code&gt;Values&lt;/code&gt;.</em>
<a name="399" href="#399">399</a> <em class="jxr_javadoccomment">     */</em>
<a name="400" href="#400">400</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Value[] toValue(PropertyDecimal propertyData, ValueFactory valueFactory) {
<a name="401" href="#401">401</a>         List&lt;BigDecimal&gt; values = propertyData.getValues();
<a name="402" href="#402">402</a>         <strong class="jxr_keyword">if</strong> (values == <strong class="jxr_keyword">null</strong>) {
<a name="403" href="#403">403</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> Value[0];
<a name="404" href="#404">404</a>         }
<a name="405" href="#405">405</a> 
<a name="406" href="#406">406</a>         Value[] result = <strong class="jxr_keyword">new</strong> Value[values.size()];
<a name="407" href="#407">407</a>         <strong class="jxr_keyword">int</strong> k = 0;
<a name="408" href="#408">408</a>         <strong class="jxr_keyword">for</strong> (BigDecimal v : values) {
<a name="409" href="#409">409</a>             result[k++] = valueFactory.createValue(v);
<a name="410" href="#410">410</a>         }
<a name="411" href="#411">411</a> 
<a name="412" href="#412">412</a>         <strong class="jxr_keyword">return</strong> result;
<a name="413" href="#413">413</a>     }
<a name="414" href="#414">414</a> 
<a name="415" href="#415">415</a>     <em class="jxr_javadoccomment">/**</em>
<a name="416" href="#416">416</a> <em class="jxr_javadoccomment">     * Convert a &lt;code&gt;PropertyHtml&lt;/code&gt; to an array of JCR &lt;code&gt;Values&lt;/code&gt;.</em>
<a name="417" href="#417">417</a> <em class="jxr_javadoccomment">     */</em>
<a name="418" href="#418">418</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Value[] toValue(PropertyHtml propertyData, ValueFactory valueFactory) {
<a name="419" href="#419">419</a>         List&lt;String&gt; values = propertyData.getValues();
<a name="420" href="#420">420</a>         <strong class="jxr_keyword">if</strong> (values == <strong class="jxr_keyword">null</strong>) {
<a name="421" href="#421">421</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> Value[0];
<a name="422" href="#422">422</a>         }
<a name="423" href="#423">423</a> 
<a name="424" href="#424">424</a>         Value[] result = <strong class="jxr_keyword">new</strong> Value[values.size()];
<a name="425" href="#425">425</a>         <strong class="jxr_keyword">int</strong> k = 0;
<a name="426" href="#426">426</a>         <strong class="jxr_keyword">for</strong> (String v : values) {
<a name="427" href="#427">427</a>             result[k++] = valueFactory.createValue(v);
<a name="428" href="#428">428</a>         }
<a name="429" href="#429">429</a> 
<a name="430" href="#430">430</a>         <strong class="jxr_keyword">return</strong> result;
<a name="431" href="#431">431</a>     }
<a name="432" href="#432">432</a> 
<a name="433" href="#433">433</a>     <em class="jxr_javadoccomment">/**</em>
<a name="434" href="#434">434</a> <em class="jxr_javadoccomment">     * Convert a &lt;code&gt;PropertyId&lt;/code&gt; to an array of JCR &lt;code&gt;Values&lt;/code&gt;.</em>
<a name="435" href="#435">435</a> <em class="jxr_javadoccomment">     */</em>
<a name="436" href="#436">436</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Value[] toValue(PropertyId propertyData, ValueFactory valueFactory) {
<a name="437" href="#437">437</a>         List&lt;String&gt; values = propertyData.getValues();
<a name="438" href="#438">438</a>         <strong class="jxr_keyword">if</strong> (values == <strong class="jxr_keyword">null</strong>) {
<a name="439" href="#439">439</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> Value[0];
<a name="440" href="#440">440</a>         }
<a name="441" href="#441">441</a> 
<a name="442" href="#442">442</a>         Value[] result = <strong class="jxr_keyword">new</strong> Value[values.size()];
<a name="443" href="#443">443</a>         <strong class="jxr_keyword">int</strong> k = 0;
<a name="444" href="#444">444</a>         <strong class="jxr_keyword">for</strong> (String v : values) {
<a name="445" href="#445">445</a>             result[k++] = valueFactory.createValue(v);
<a name="446" href="#446">446</a>         }
<a name="447" href="#447">447</a> 
<a name="448" href="#448">448</a>         <strong class="jxr_keyword">return</strong> result;
<a name="449" href="#449">449</a>     }
<a name="450" href="#450">450</a> 
<a name="451" href="#451">451</a>     <em class="jxr_javadoccomment">/**</em>
<a name="452" href="#452">452</a> <em class="jxr_javadoccomment">     * Convert a &lt;code&gt;PropertyInteger&lt;/code&gt; to an array of JCR &lt;code&gt;Values&lt;/code&gt;.</em>
<a name="453" href="#453">453</a> <em class="jxr_javadoccomment">     */</em>
<a name="454" href="#454">454</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Value[] toValue(PropertyInteger propertyData, ValueFactory valueFactory) {
<a name="455" href="#455">455</a>         List&lt;BigInteger&gt; values = propertyData.getValues();
<a name="456" href="#456">456</a>         <strong class="jxr_keyword">if</strong> (values == <strong class="jxr_keyword">null</strong>) {
<a name="457" href="#457">457</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> Value[0];
<a name="458" href="#458">458</a>         }
<a name="459" href="#459">459</a> 
<a name="460" href="#460">460</a>         Value[] result = <strong class="jxr_keyword">new</strong> Value[values.size()];
<a name="461" href="#461">461</a>         <strong class="jxr_keyword">int</strong> k = 0;
<a name="462" href="#462">462</a>         <strong class="jxr_keyword">for</strong> (BigInteger v : values) {
<a name="463" href="#463">463</a>             result[k++] = valueFactory.createValue(<strong class="jxr_keyword">new</strong> BigDecimal(v));
<a name="464" href="#464">464</a>         }
<a name="465" href="#465">465</a> 
<a name="466" href="#466">466</a>         <strong class="jxr_keyword">return</strong> result;
<a name="467" href="#467">467</a>     }
<a name="468" href="#468">468</a> 
<a name="469" href="#469">469</a>     <em class="jxr_javadoccomment">/**</em>
<a name="470" href="#470">470</a> <em class="jxr_javadoccomment">     * Convert a &lt;code&gt;PropertyString&lt;/code&gt; to an array of JCR &lt;code&gt;Values&lt;/code&gt;.</em>
<a name="471" href="#471">471</a> <em class="jxr_javadoccomment">     */</em>
<a name="472" href="#472">472</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Value[] toValue(PropertyString propertyData, ValueFactory valueFactory) {
<a name="473" href="#473">473</a>         List&lt;String&gt; values = propertyData.getValues();
<a name="474" href="#474">474</a>         <strong class="jxr_keyword">if</strong> (values == <strong class="jxr_keyword">null</strong>) {
<a name="475" href="#475">475</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> Value[0];
<a name="476" href="#476">476</a>         }
<a name="477" href="#477">477</a> 
<a name="478" href="#478">478</a>         Value[] result = <strong class="jxr_keyword">new</strong> Value[values.size()];
<a name="479" href="#479">479</a>         <strong class="jxr_keyword">int</strong> k = 0;
<a name="480" href="#480">480</a>         <strong class="jxr_keyword">for</strong> (String v : values) {
<a name="481" href="#481">481</a>             result[k++] = valueFactory.createValue(v);
<a name="482" href="#482">482</a>         }
<a name="483" href="#483">483</a> 
<a name="484" href="#484">484</a>         <strong class="jxr_keyword">return</strong> result;
<a name="485" href="#485">485</a>     }
<a name="486" href="#486">486</a> 
<a name="487" href="#487">487</a>     <em class="jxr_javadoccomment">/**</em>
<a name="488" href="#488">488</a> <em class="jxr_javadoccomment">     * Convert a &lt;code&gt;PropertyUri&lt;/code&gt; to an array of JCR &lt;code&gt;Values&lt;/code&gt;.</em>
<a name="489" href="#489">489</a> <em class="jxr_javadoccomment">     */</em>
<a name="490" href="#490">490</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Value[] toValue(PropertyUri propertyData, ValueFactory valueFactory) <strong class="jxr_keyword">throws</strong> ValueFormatException {
<a name="491" href="#491">491</a>         List&lt;String&gt; values = propertyData.getValues();
<a name="492" href="#492">492</a>         <strong class="jxr_keyword">if</strong> (values == <strong class="jxr_keyword">null</strong>) {
<a name="493" href="#493">493</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> Value[0];
<a name="494" href="#494">494</a>         }
<a name="495" href="#495">495</a> 
<a name="496" href="#496">496</a>         Value[] result = <strong class="jxr_keyword">new</strong> Value[values.size()];
<a name="497" href="#497">497</a>         <strong class="jxr_keyword">int</strong> k = 0;
<a name="498" href="#498">498</a>         <strong class="jxr_keyword">for</strong> (String v : values) {
<a name="499" href="#499">499</a>             result[k++] = valueFactory.createValue(v, PropertyType.URI);
<a name="500" href="#500">500</a>         }
<a name="501" href="#501">501</a> 
<a name="502" href="#502">502</a>         <strong class="jxr_keyword">return</strong> result;
<a name="503" href="#503">503</a>     }
<a name="504" href="#504">504</a> 
<a name="505" href="#505">505</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

