<!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=UTF-8" />
<title>WSConverter xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../apidocs/org/apache/chemistry/opencmis/commons/impl/WSConverter.html">View Javadoc</a></div><pre>

<a class="jxr_linenumber" name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a class="jxr_linenumber" name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" 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 class="jxr_linenumber" name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a class="jxr_linenumber" name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
<a class="jxr_linenumber" name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.chemistry.opencmis.commons.impl;
<a class="jxr_linenumber" name="20" href="#20">20</a>  
<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.io.BufferedInputStream;
<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.ByteArrayInputStream;
<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.FilterInputStream;
<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.InputStream;
<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.io.OutputStream;
<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.Method;
<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.math.BigDecimal;
<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.math.BigInteger;
<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.EnumSet;
<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.GregorianCalendar;
<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashMap;
<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
<a class="jxr_linenumber" name="38" href="#38">38</a>  
<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> javax.activation.DataHandler;
<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> javax.activation.DataSource;
<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> javax.xml.datatype.DatatypeConfigurationException;
<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> javax.xml.datatype.DatatypeFactory;
<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> javax.xml.datatype.XMLGregorianCalendar;
<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.ParserConfigurationException;
<a class="jxr_linenumber" name="45" href="#45">45</a>  
<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Ace;
<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Acl;
<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.AclCapabilities;
<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.AllowableActions;
<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.BulkUpdateObjectIdAndChangeToken;
<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.CmisExtensionElement;
<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ContentStream;
<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.CreatablePropertyTypes;
<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ExtensionFeature;
<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ExtensionsData;
<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.FailedToDeleteData;
<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.NewTypeSettableAttributes;
<a class="jxr_linenumber" name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectData;
<a class="jxr_linenumber" name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectInFolderContainer;
<a class="jxr_linenumber" name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectInFolderData;
<a class="jxr_linenumber" name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectInFolderList;
<a class="jxr_linenumber" name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectList;
<a class="jxr_linenumber" name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectParentData;
<a class="jxr_linenumber" name="64" href="#64">64</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PermissionMapping;
<a class="jxr_linenumber" name="65" href="#65">65</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PolicyIdList;
<a class="jxr_linenumber" name="66" href="#66">66</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Properties;
<a class="jxr_linenumber" name="67" href="#67">67</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyBoolean;
<a class="jxr_linenumber" name="68" href="#68">68</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyData;
<a class="jxr_linenumber" name="69" href="#69">69</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyDateTime;
<a class="jxr_linenumber" name="70" href="#70">70</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyDecimal;
<a class="jxr_linenumber" name="71" href="#71">71</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyHtml;
<a class="jxr_linenumber" name="72" href="#72">72</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyId;
<a class="jxr_linenumber" name="73" href="#73">73</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyInteger;
<a class="jxr_linenumber" name="74" href="#74">74</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyString;
<a class="jxr_linenumber" name="75" href="#75">75</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyUri;
<a class="jxr_linenumber" name="76" href="#76">76</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.RenditionData;
<a class="jxr_linenumber" name="77" href="#77">77</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.RepositoryCapabilities;
<a class="jxr_linenumber" name="78" href="#78">78</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
<a class="jxr_linenumber" name="79" href="#79">79</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.Choice;
<a class="jxr_linenumber" name="80" href="#80">80</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.DocumentTypeDefinition;
<a class="jxr_linenumber" name="81" href="#81">81</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.FolderTypeDefinition;
<a class="jxr_linenumber" name="82" href="#82">82</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.ItemTypeDefinition;
<a class="jxr_linenumber" name="83" href="#83">83</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PermissionDefinition;
<a class="jxr_linenumber" name="84" href="#84">84</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PolicyTypeDefinition;
<a class="jxr_linenumber" name="85" href="#85">85</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyBooleanDefinition;
<a class="jxr_linenumber" name="86" href="#86">86</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyDateTimeDefinition;
<a class="jxr_linenumber" name="87" href="#87">87</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyDecimalDefinition;
<a class="jxr_linenumber" name="88" href="#88">88</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition;
<a class="jxr_linenumber" name="89" href="#89">89</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyHtmlDefinition;
<a class="jxr_linenumber" name="90" href="#90">90</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyIdDefinition;
<a class="jxr_linenumber" name="91" href="#91">91</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyIntegerDefinition;
<a class="jxr_linenumber" name="92" href="#92">92</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyStringDefinition;
<a class="jxr_linenumber" name="93" href="#93">93</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyUriDefinition;
<a class="jxr_linenumber" name="94" href="#94">94</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.RelationshipTypeDefinition;
<a class="jxr_linenumber" name="95" href="#95">95</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.SecondaryTypeDefinition;
<a class="jxr_linenumber" name="96" href="#96">96</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
<a class="jxr_linenumber" name="97" href="#97">97</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer;
<a class="jxr_linenumber" name="98" href="#98">98</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionList;
<a class="jxr_linenumber" name="99" href="#99">99</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeMutability;
<a class="jxr_linenumber" name="100" href="#100">100</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.AclPropagation;
<a class="jxr_linenumber" name="101" href="#101">101</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Action;
<a class="jxr_linenumber" name="102" href="#102">102</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
<a class="jxr_linenumber" name="103" href="#103">103</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityAcl;
<a class="jxr_linenumber" name="104" href="#104">104</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityChanges;
<a class="jxr_linenumber" name="105" href="#105">105</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityContentStreamUpdates;
<a class="jxr_linenumber" name="106" href="#106">106</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityJoin;
<a class="jxr_linenumber" name="107" href="#107">107</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityOrderBy;
<a class="jxr_linenumber" name="108" href="#108">108</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityQuery;
<a class="jxr_linenumber" name="109" href="#109">109</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityRenditions;
<a class="jxr_linenumber" name="110" href="#110">110</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Cardinality;
<a class="jxr_linenumber" name="111" href="#111">111</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.ChangeType;
<a class="jxr_linenumber" name="112" href="#112">112</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CmisVersion;
<a class="jxr_linenumber" name="113" href="#113">113</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.ContentStreamAllowed;
<a class="jxr_linenumber" name="114" href="#114">114</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.DateTimeResolution;
<a class="jxr_linenumber" name="115" href="#115">115</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.PropertyType;
<a class="jxr_linenumber" name="116" href="#116">116</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.SupportedPermissions;
<a class="jxr_linenumber" name="117" href="#117">117</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Updatability;
<a class="jxr_linenumber" name="118" href="#118">118</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException;
<a class="jxr_linenumber" name="119" href="#119">119</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AbstractPropertyData;
<a class="jxr_linenumber" name="120" href="#120">120</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AbstractPropertyDefinition;
<a class="jxr_linenumber" name="121" href="#121">121</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AbstractTypeDefinition;
<a class="jxr_linenumber" name="122" href="#122">122</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AccessControlEntryImpl;
<a class="jxr_linenumber" name="123" href="#123">123</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AccessControlListImpl;
<a class="jxr_linenumber" name="124" href="#124">124</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AccessControlPrincipalDataImpl;
<a class="jxr_linenumber" name="125" href="#125">125</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AclCapabilitiesDataImpl;
<a class="jxr_linenumber" name="126" href="#126">126</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AllowableActionsImpl;
<a class="jxr_linenumber" name="127" href="#127">127</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.BulkUpdateObjectIdAndChangeTokenImpl;
<a class="jxr_linenumber" name="128" href="#128">128</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ChangeEventInfoDataImpl;
<a class="jxr_linenumber" name="129" href="#129">129</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ChoiceImpl;
<a class="jxr_linenumber" name="130" href="#130">130</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.CmisExtensionElementImpl;
<a class="jxr_linenumber" name="131" href="#131">131</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ContentStreamImpl;
<a class="jxr_linenumber" name="132" href="#132">132</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.CreatablePropertyTypesImpl;
<a class="jxr_linenumber" name="133" href="#133">133</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.DocumentTypeDefinitionImpl;
<a class="jxr_linenumber" name="134" href="#134">134</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ExtensionDataImpl;
<a class="jxr_linenumber" name="135" href="#135">135</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ExtensionFeatureImpl;
<a class="jxr_linenumber" name="136" href="#136">136</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.FailedToDeleteDataImpl;
<a class="jxr_linenumber" name="137" href="#137">137</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.FolderTypeDefinitionImpl;
<a class="jxr_linenumber" name="138" href="#138">138</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ItemTypeDefinitionImpl;
<a class="jxr_linenumber" name="139" href="#139">139</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.NewTypeSettableAttributesImpl;
<a class="jxr_linenumber" name="140" href="#140">140</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectDataImpl;
<a class="jxr_linenumber" name="141" href="#141">141</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectInFolderContainerImpl;
<a class="jxr_linenumber" name="142" href="#142">142</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectInFolderDataImpl;
<a class="jxr_linenumber" name="143" href="#143">143</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectInFolderListImpl;
<a class="jxr_linenumber" name="144" href="#144">144</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectListImpl;
<a class="jxr_linenumber" name="145" href="#145">145</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectParentDataImpl;
<a class="jxr_linenumber" name="146" href="#146">146</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PartialContentStreamImpl;
<a class="jxr_linenumber" name="147" href="#147">147</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PermissionDefinitionDataImpl;
<a class="jxr_linenumber" name="148" href="#148">148</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PermissionMappingDataImpl;
<a class="jxr_linenumber" name="149" href="#149">149</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PolicyIdListImpl;
<a class="jxr_linenumber" name="150" href="#150">150</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PolicyTypeDefinitionImpl;
<a class="jxr_linenumber" name="151" href="#151">151</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertiesImpl;
<a class="jxr_linenumber" name="152" href="#152">152</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyBooleanDefinitionImpl;
<a class="jxr_linenumber" name="153" href="#153">153</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyBooleanImpl;
<a class="jxr_linenumber" name="154" href="#154">154</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDateTimeDefinitionImpl;
<a class="jxr_linenumber" name="155" href="#155">155</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDateTimeImpl;
<a class="jxr_linenumber" name="156" href="#156">156</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDecimalDefinitionImpl;
<a class="jxr_linenumber" name="157" href="#157">157</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDecimalImpl;
<a class="jxr_linenumber" name="158" href="#158">158</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyHtmlDefinitionImpl;
<a class="jxr_linenumber" name="159" href="#159">159</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyHtmlImpl;
<a class="jxr_linenumber" name="160" href="#160">160</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIdDefinitionImpl;
<a class="jxr_linenumber" name="161" href="#161">161</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIdImpl;
<a class="jxr_linenumber" name="162" href="#162">162</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIntegerDefinitionImpl;
<a class="jxr_linenumber" name="163" href="#163">163</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIntegerImpl;
<a class="jxr_linenumber" name="164" href="#164">164</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyStringDefinitionImpl;
<a class="jxr_linenumber" name="165" href="#165">165</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyStringImpl;
<a class="jxr_linenumber" name="166" href="#166">166</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyUriDefinitionImpl;
<a class="jxr_linenumber" name="167" href="#167">167</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyUriImpl;
<a class="jxr_linenumber" name="168" href="#168">168</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.RelationshipTypeDefinitionImpl;
<a class="jxr_linenumber" name="169" href="#169">169</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.RenditionDataImpl;
<a class="jxr_linenumber" name="170" href="#170">170</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.RepositoryCapabilitiesImpl;
<a class="jxr_linenumber" name="171" href="#171">171</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.RepositoryInfoImpl;
<a class="jxr_linenumber" name="172" href="#172">172</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.SecondaryTypeDefinitionImpl;
<a class="jxr_linenumber" name="173" href="#173">173</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.TypeDefinitionContainerImpl;
<a class="jxr_linenumber" name="174" href="#174">174</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.TypeDefinitionListImpl;
<a class="jxr_linenumber" name="175" href="#175">175</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.TypeMutabilityImpl;
<a class="jxr_linenumber" name="176" href="#176">176</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisACLCapabilityType;
<a class="jxr_linenumber" name="177" href="#177">177</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisACLType;
<a class="jxr_linenumber" name="178" href="#178">178</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisAccessControlEntryType;
<a class="jxr_linenumber" name="179" href="#179">179</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisAccessControlListType;
<a class="jxr_linenumber" name="180" href="#180">180</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisAccessControlPrincipalType;
<a class="jxr_linenumber" name="181" href="#181">181</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisAllowableActionsType;
<a class="jxr_linenumber" name="182" href="#182">182</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisBulkUpdateType;
<a class="jxr_linenumber" name="183" href="#183">183</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisChangeEventType;
<a class="jxr_linenumber" name="184" href="#184">184</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisChoiceBoolean;
<a class="jxr_linenumber" name="185" href="#185">185</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisChoiceDateTime;
<a class="jxr_linenumber" name="186" href="#186">186</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisChoiceDecimal;
<a class="jxr_linenumber" name="187" href="#187">187</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisChoiceHtml;
<a class="jxr_linenumber" name="188" href="#188">188</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisChoiceId;
<a class="jxr_linenumber" name="189" href="#189">189</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisChoiceInteger;
<a class="jxr_linenumber" name="190" href="#190">190</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisChoiceString;
<a class="jxr_linenumber" name="191" href="#191">191</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisChoiceUri;
<a class="jxr_linenumber" name="192" href="#192">192</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisContentStreamType;
<a class="jxr_linenumber" name="193" href="#193">193</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisCreatablePropertyTypesType;
<a class="jxr_linenumber" name="194" href="#194">194</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisExtensionFeatureKeyValuePair;
<a class="jxr_linenumber" name="195" href="#195">195</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisExtensionFeatureType;
<a class="jxr_linenumber" name="196" href="#196">196</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisExtensionType;
<a class="jxr_linenumber" name="197" href="#197">197</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisListOfIdsType;
<a class="jxr_linenumber" name="198" href="#198">198</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisNewTypeSettableAttributes;
<a class="jxr_linenumber" name="199" href="#199">199</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisObjectIdAndChangeTokenType;
<a class="jxr_linenumber" name="200" href="#200">200</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisObjectInFolderContainerType;
<a class="jxr_linenumber" name="201" href="#201">201</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisObjectInFolderListType;
<a class="jxr_linenumber" name="202" href="#202">202</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisObjectInFolderType;
<a class="jxr_linenumber" name="203" href="#203">203</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisObjectListType;
<a class="jxr_linenumber" name="204" href="#204">204</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisObjectParentsType;
<a class="jxr_linenumber" name="205" href="#205">205</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisObjectType;
<a class="jxr_linenumber" name="206" href="#206">206</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisPermissionDefinition;
<a class="jxr_linenumber" name="207" href="#207">207</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisPermissionMapping;
<a class="jxr_linenumber" name="208" href="#208">208</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisPropertiesType;
<a class="jxr_linenumber" name="209" href="#209">209</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisProperty;
<a class="jxr_linenumber" name="210" href="#210">210</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisPropertyBoolean;
<a class="jxr_linenumber" name="211" href="#211">211</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisPropertyBooleanDefinitionType;
<a class="jxr_linenumber" name="212" href="#212">212</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisPropertyDateTime;
<a class="jxr_linenumber" name="213" href="#213">213</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisPropertyDateTimeDefinitionType;
<a class="jxr_linenumber" name="214" href="#214">214</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisPropertyDecimal;
<a class="jxr_linenumber" name="215" href="#215">215</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisPropertyDecimalDefinitionType;
<a class="jxr_linenumber" name="216" href="#216">216</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisPropertyDefinitionType;
<a class="jxr_linenumber" name="217" href="#217">217</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisPropertyHtml;
<a class="jxr_linenumber" name="218" href="#218">218</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisPropertyHtmlDefinitionType;
<a class="jxr_linenumber" name="219" href="#219">219</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisPropertyId;
<a class="jxr_linenumber" name="220" href="#220">220</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisPropertyIdDefinitionType;
<a class="jxr_linenumber" name="221" href="#221">221</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisPropertyInteger;
<a class="jxr_linenumber" name="222" href="#222">222</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisPropertyIntegerDefinitionType;
<a class="jxr_linenumber" name="223" href="#223">223</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisPropertyString;
<a class="jxr_linenumber" name="224" href="#224">224</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisPropertyStringDefinitionType;
<a class="jxr_linenumber" name="225" href="#225">225</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisPropertyUri;
<a class="jxr_linenumber" name="226" href="#226">226</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisPropertyUriDefinitionType;
<a class="jxr_linenumber" name="227" href="#227">227</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisRenditionType;
<a class="jxr_linenumber" name="228" href="#228">228</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisRepositoryCapabilitiesType;
<a class="jxr_linenumber" name="229" href="#229">229</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisRepositoryInfoType;
<a class="jxr_linenumber" name="230" href="#230">230</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisTypeContainer;
<a class="jxr_linenumber" name="231" href="#231">231</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisTypeDefinitionListType;
<a class="jxr_linenumber" name="232" href="#232">232</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisTypeDefinitionType;
<a class="jxr_linenumber" name="233" href="#233">233</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisTypeDocumentDefinitionType;
<a class="jxr_linenumber" name="234" href="#234">234</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisTypeFolderDefinitionType;
<a class="jxr_linenumber" name="235" href="#235">235</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisTypeItemDefinitionType;
<a class="jxr_linenumber" name="236" href="#236">236</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisTypeMutabilityCapabilitiesType;
<a class="jxr_linenumber" name="237" href="#237">237</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisTypePolicyDefinitionType;
<a class="jxr_linenumber" name="238" href="#238">238</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisTypeRelationshipDefinitionType;
<a class="jxr_linenumber" name="239" href="#239">239</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.CmisTypeSecondaryDefinitionType;
<a class="jxr_linenumber" name="240" href="#240">240</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.DeleteTreeResponse;
<a class="jxr_linenumber" name="241" href="#241">241</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.EnumACLPropagation;
<a class="jxr_linenumber" name="242" href="#242">242</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.EnumAllowableActionsKey;
<a class="jxr_linenumber" name="243" href="#243">243</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.EnumBaseObjectTypeIds;
<a class="jxr_linenumber" name="244" href="#244">244</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.EnumCapabilityACL;
<a class="jxr_linenumber" name="245" href="#245">245</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.EnumCapabilityChanges;
<a class="jxr_linenumber" name="246" href="#246">246</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.EnumCapabilityContentStreamUpdates;
<a class="jxr_linenumber" name="247" href="#247">247</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.EnumCapabilityJoin;
<a class="jxr_linenumber" name="248" href="#248">248</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.EnumCapabilityOrderBy;
<a class="jxr_linenumber" name="249" href="#249">249</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.EnumCapabilityQuery;
<a class="jxr_linenumber" name="250" href="#250">250</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.EnumCapabilityRendition;
<a class="jxr_linenumber" name="251" href="#251">251</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.EnumCardinality;
<a class="jxr_linenumber" name="252" href="#252">252</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.EnumContentStreamAllowed;
<a class="jxr_linenumber" name="253" href="#253">253</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.EnumDateTimeResolution;
<a class="jxr_linenumber" name="254" href="#254">254</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.EnumPropertyType;
<a class="jxr_linenumber" name="255" href="#255">255</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.EnumSupportedPermissions;
<a class="jxr_linenumber" name="256" href="#256">256</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.EnumTypeOfChanges;
<a class="jxr_linenumber" name="257" href="#257">257</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.jaxb.EnumUpdatability;
<a class="jxr_linenumber" name="258" href="#258">258</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.spi.Holder;
<a class="jxr_linenumber" name="259" href="#259">259</a> <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
<a class="jxr_linenumber" name="260" href="#260">260</a> <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
<a class="jxr_linenumber" name="261" href="#261">261</a> <strong class="jxr_keyword">import</strong> org.w3c.dom.Document;
<a class="jxr_linenumber" name="262" href="#262">262</a> <strong class="jxr_keyword">import</strong> org.w3c.dom.Element;
<a class="jxr_linenumber" name="263" href="#263">263</a> <strong class="jxr_keyword">import</strong> org.w3c.dom.Node;
<a class="jxr_linenumber" name="264" href="#264">264</a> <strong class="jxr_keyword">import</strong> org.w3c.dom.NodeList;
<a class="jxr_linenumber" name="265" href="#265">265</a> 
<a class="jxr_linenumber" name="266" href="#266">266</a> <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="267" href="#267">267</a> <em class="jxr_javadoccomment"> * Contains converter methods.</em>
<a class="jxr_linenumber" name="268" href="#268">268</a> <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="269" href="#269">269</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/commons/impl/WSConverter.html">WSConverter</a> {
<a class="jxr_linenumber" name="270" href="#270">270</a> 
<a class="jxr_linenumber" name="271" href="#271">271</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String DEFAULT_EXTENSION_NS = <span class="jxr_string">"http://chemistry.apache.org/opencmis/extension"</span>;
<a class="jxr_linenumber" name="272" href="#272">272</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> BUFFER_SIZE = 64 * 1024;
<a class="jxr_linenumber" name="273" href="#273">273</a> 
<a class="jxr_linenumber" name="274" href="#274">274</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(WSConverter.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="275" href="#275">275</a> 
<a class="jxr_linenumber" name="276" href="#276">276</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Class&lt;?&gt; STREAM_DATA_HANDLER_CLASS_1;
<a class="jxr_linenumber" name="277" href="#277">277</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Method STREAM_DATA_HANDLER_READ_METHOD_1;
<a class="jxr_linenumber" name="278" href="#278">278</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Class&lt;?&gt; STREAM_DATA_HANDLER_CLASS_2;
<a class="jxr_linenumber" name="279" href="#279">279</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Method STREAM_DATA_HANDLER_READ_METHOD_2;
<a class="jxr_linenumber" name="280" href="#280">280</a> 
<a class="jxr_linenumber" name="281" href="#281">281</a>     <strong class="jxr_keyword">static</strong> {
<a class="jxr_linenumber" name="282" href="#282">282</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="283" href="#283">283</a>             STREAM_DATA_HANDLER_CLASS_1 = Class.forName(<span class="jxr_string">"org.jvnet.staxex.StreamingDataHandler"</span>);
<a class="jxr_linenumber" name="284" href="#284">284</a>             STREAM_DATA_HANDLER_READ_METHOD_1 = STREAM_DATA_HANDLER_CLASS_1.getMethod(<span class="jxr_string">"readOnce"</span>, <strong class="jxr_keyword">new</strong> Class&lt;?&gt;[0]);
<a class="jxr_linenumber" name="285" href="#285">285</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="286" href="#286">286</a>             STREAM_DATA_HANDLER_CLASS_1 = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="287" href="#287">287</a>             STREAM_DATA_HANDLER_READ_METHOD_1 = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="288" href="#288">288</a>         }
<a class="jxr_linenumber" name="289" href="#289">289</a> 
<a class="jxr_linenumber" name="290" href="#290">290</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="291" href="#291">291</a>             STREAM_DATA_HANDLER_CLASS_2 = Class.forName(<span class="jxr_string">"com.sun.xml.internal.org.jvnet.staxex.StreamingDataHandler"</span>);
<a class="jxr_linenumber" name="292" href="#292">292</a>             STREAM_DATA_HANDLER_READ_METHOD_2 = STREAM_DATA_HANDLER_CLASS_2.getMethod(<span class="jxr_string">"readOnce"</span>, <strong class="jxr_keyword">new</strong> Class&lt;?&gt;[0]);
<a class="jxr_linenumber" name="293" href="#293">293</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="294" href="#294">294</a>             STREAM_DATA_HANDLER_CLASS_2 = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="295" href="#295">295</a>             STREAM_DATA_HANDLER_READ_METHOD_2 = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="296" href="#296">296</a>         }
<a class="jxr_linenumber" name="297" href="#297">297</a>     }
<a class="jxr_linenumber" name="298" href="#298">298</a> 
<a class="jxr_linenumber" name="299" href="#299">299</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="300" href="#300">300</a> <em class="jxr_javadoccomment">     * Private constructor.</em>
<a class="jxr_linenumber" name="301" href="#301">301</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="302" href="#302">302</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/WSConverter.html">WSConverter</a>() {
<a class="jxr_linenumber" name="303" href="#303">303</a>     }
<a class="jxr_linenumber" name="304" href="#304">304</a> 
<a class="jxr_linenumber" name="305" href="#305">305</a>     <em class="jxr_comment">// -------------------------------------------------------------------------</em>
<a class="jxr_linenumber" name="306" href="#306">306</a>     <em class="jxr_comment">// --- Repository Info ---</em>
<a class="jxr_linenumber" name="307" href="#307">307</a>     <em class="jxr_comment">// -------------------------------------------------------------------------</em>
<a class="jxr_linenumber" name="308" href="#308">308</a> 
<a class="jxr_linenumber" name="309" href="#309">309</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="310" href="#310">310</a> <em class="jxr_javadoccomment">     * Converts a repository info object.</em>
<a class="jxr_linenumber" name="311" href="#311">311</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="312" href="#312">312</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> RepositoryInfo convert(CmisRepositoryInfoType repositoryInfo) {
<a class="jxr_linenumber" name="313" href="#313">313</a>         <strong class="jxr_keyword">if</strong> (repositoryInfo == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="314" href="#314">314</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="315" href="#315">315</a>         }
<a class="jxr_linenumber" name="316" href="#316">316</a> 
<a class="jxr_linenumber" name="317" href="#317">317</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryInfoImpl.html">RepositoryInfoImpl</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryInfoImpl.html">RepositoryInfoImpl</a>();
<a class="jxr_linenumber" name="318" href="#318">318</a> 
<a class="jxr_linenumber" name="319" href="#319">319</a>         result.setAclCapabilities(convert(repositoryInfo.getAclCapability()));
<a class="jxr_linenumber" name="320" href="#320">320</a>         result.setChangesIncomplete(repositoryInfo.isChangesIncomplete());
<a class="jxr_linenumber" name="321" href="#321">321</a>         List&lt;BaseTypeId&gt; baseObjectTypeIds = <strong class="jxr_keyword">new</strong> ArrayList&lt;BaseTypeId&gt;();
<a class="jxr_linenumber" name="322" href="#322">322</a>         <strong class="jxr_keyword">for</strong> (EnumBaseObjectTypeIds bot : repositoryInfo.getChangesOnType()) {
<a class="jxr_linenumber" name="323" href="#323">323</a>             baseObjectTypeIds.add(convert(BaseTypeId.<strong class="jxr_keyword">class</strong>, bot));
<a class="jxr_linenumber" name="324" href="#324">324</a>         }
<a class="jxr_linenumber" name="325" href="#325">325</a>         result.setChangesOnType(baseObjectTypeIds);
<a class="jxr_linenumber" name="326" href="#326">326</a>         result.setCmisVersionSupported(repositoryInfo.getCmisVersionSupported());
<a class="jxr_linenumber" name="327" href="#327">327</a>         result.setLatestChangeLogToken(repositoryInfo.getLatestChangeLogToken());
<a class="jxr_linenumber" name="328" href="#328">328</a>         result.setPrincipalAnonymous(repositoryInfo.getPrincipalAnonymous());
<a class="jxr_linenumber" name="329" href="#329">329</a>         result.setPrincipalAnyone(repositoryInfo.getPrincipalAnyone());
<a class="jxr_linenumber" name="330" href="#330">330</a>         result.setProductName(repositoryInfo.getProductName());
<a class="jxr_linenumber" name="331" href="#331">331</a>         result.setProductVersion(repositoryInfo.getProductVersion());
<a class="jxr_linenumber" name="332" href="#332">332</a>         result.setCapabilities(convert(repositoryInfo.getCapabilities()));
<a class="jxr_linenumber" name="333" href="#333">333</a>         result.setDescription(repositoryInfo.getRepositoryDescription());
<a class="jxr_linenumber" name="334" href="#334">334</a>         result.setId(repositoryInfo.getRepositoryId());
<a class="jxr_linenumber" name="335" href="#335">335</a>         result.setName(repositoryInfo.getRepositoryName());
<a class="jxr_linenumber" name="336" href="#336">336</a>         result.setRootFolder(repositoryInfo.getRootFolderId());
<a class="jxr_linenumber" name="337" href="#337">337</a>         result.setThinClientUri(repositoryInfo.getThinClientURI());
<a class="jxr_linenumber" name="338" href="#338">338</a>         result.setVendorName(repositoryInfo.getVendorName());
<a class="jxr_linenumber" name="339" href="#339">339</a>         <strong class="jxr_keyword">if</strong> (repositoryInfo.getExtendedFeatures().size() &gt; 0) {
<a class="jxr_linenumber" name="340" href="#340">340</a>             List&lt;ExtensionFeature&gt; extensionFeatures = <strong class="jxr_keyword">new</strong> ArrayList&lt;ExtensionFeature&gt;();
<a class="jxr_linenumber" name="341" href="#341">341</a>             result.setExtensionFeature(extensionFeatures);
<a class="jxr_linenumber" name="342" href="#342">342</a> 
<a class="jxr_linenumber" name="343" href="#343">343</a>             <strong class="jxr_keyword">for</strong> (CmisExtensionFeatureType feature : repositoryInfo.getExtendedFeatures()) {
<a class="jxr_linenumber" name="344" href="#344">344</a>                 <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/ExtensionFeatureImpl.html">ExtensionFeatureImpl</a> target = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/ExtensionFeatureImpl.html">ExtensionFeatureImpl</a>();
<a class="jxr_linenumber" name="345" href="#345">345</a> 
<a class="jxr_linenumber" name="346" href="#346">346</a>                 target.setId(feature.getId());
<a class="jxr_linenumber" name="347" href="#347">347</a>                 target.setUrl(feature.getUrl());
<a class="jxr_linenumber" name="348" href="#348">348</a>                 target.setCommonName(feature.getCommonName());
<a class="jxr_linenumber" name="349" href="#349">349</a>                 target.setVersionLabel(feature.getVersionLabel());
<a class="jxr_linenumber" name="350" href="#350">350</a>                 target.setDescription(feature.getDescription());
<a class="jxr_linenumber" name="351" href="#351">351</a> 
<a class="jxr_linenumber" name="352" href="#352">352</a>                 <strong class="jxr_keyword">if</strong> (feature.getFeatureData().size() &gt; 0) {
<a class="jxr_linenumber" name="353" href="#353">353</a>                     Map&lt;String, String&gt; featureData = <strong class="jxr_keyword">new</strong> HashMap&lt;String, String&gt;();
<a class="jxr_linenumber" name="354" href="#354">354</a> 
<a class="jxr_linenumber" name="355" href="#355">355</a>                     <strong class="jxr_keyword">for</strong> (CmisExtensionFeatureKeyValuePair keyValue : feature.getFeatureData()) {
<a class="jxr_linenumber" name="356" href="#356">356</a>                         featureData.put(keyValue.getKey(), keyValue.getValue());
<a class="jxr_linenumber" name="357" href="#357">357</a>                     }
<a class="jxr_linenumber" name="358" href="#358">358</a> 
<a class="jxr_linenumber" name="359" href="#359">359</a>                     target.setFeatureData(featureData);
<a class="jxr_linenumber" name="360" href="#360">360</a>                 }
<a class="jxr_linenumber" name="361" href="#361">361</a> 
<a class="jxr_linenumber" name="362" href="#362">362</a>                 convertExtension(feature, target);
<a class="jxr_linenumber" name="363" href="#363">363</a> 
<a class="jxr_linenumber" name="364" href="#364">364</a>                 extensionFeatures.add(target);
<a class="jxr_linenumber" name="365" href="#365">365</a>             }
<a class="jxr_linenumber" name="366" href="#366">366</a>         }
<a class="jxr_linenumber" name="367" href="#367">367</a> 
<a class="jxr_linenumber" name="368" href="#368">368</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="369" href="#369">369</a>         convertExtension(repositoryInfo, result);
<a class="jxr_linenumber" name="370" href="#370">370</a> 
<a class="jxr_linenumber" name="371" href="#371">371</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="372" href="#372">372</a>     }
<a class="jxr_linenumber" name="373" href="#373">373</a> 
<a class="jxr_linenumber" name="374" href="#374">374</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="375" href="#375">375</a> <em class="jxr_javadoccomment">     * Converts a repository capability object.</em>
<a class="jxr_linenumber" name="376" href="#376">376</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="377" href="#377">377</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> RepositoryCapabilities convert(CmisRepositoryCapabilitiesType capabilities) {
<a class="jxr_linenumber" name="378" href="#378">378</a>         <strong class="jxr_keyword">if</strong> (capabilities == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="379" href="#379">379</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="380" href="#380">380</a>         }
<a class="jxr_linenumber" name="381" href="#381">381</a> 
<a class="jxr_linenumber" name="382" href="#382">382</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryCapabilitiesImpl.html">RepositoryCapabilitiesImpl</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryCapabilitiesImpl.html">RepositoryCapabilitiesImpl</a>();
<a class="jxr_linenumber" name="383" href="#383">383</a> 
<a class="jxr_linenumber" name="384" href="#384">384</a>         result.setAllVersionsSearchable(capabilities.isCapabilityAllVersionsSearchable());
<a class="jxr_linenumber" name="385" href="#385">385</a>         result.setCapabilityAcl(convert(CapabilityAcl.<strong class="jxr_keyword">class</strong>, capabilities.getCapabilityACL()));
<a class="jxr_linenumber" name="386" href="#386">386</a>         result.setCapabilityChanges(convert(CapabilityChanges.<strong class="jxr_keyword">class</strong>, capabilities.getCapabilityChanges()));
<a class="jxr_linenumber" name="387" href="#387">387</a>         result.setCapabilityContentStreamUpdates(convert(CapabilityContentStreamUpdates.<strong class="jxr_keyword">class</strong>,
<a class="jxr_linenumber" name="388" href="#388">388</a>                 capabilities.getCapabilityContentStreamUpdatability()));
<a class="jxr_linenumber" name="389" href="#389">389</a>         result.setCapabilityJoin(convert(CapabilityJoin.<strong class="jxr_keyword">class</strong>, capabilities.getCapabilityJoin()));
<a class="jxr_linenumber" name="390" href="#390">390</a>         result.setCapabilityQuery(convert(CapabilityQuery.<strong class="jxr_keyword">class</strong>, capabilities.getCapabilityQuery()));
<a class="jxr_linenumber" name="391" href="#391">391</a>         result.setCapabilityRendition(convert(CapabilityRenditions.<strong class="jxr_keyword">class</strong>, capabilities.getCapabilityRenditions()));
<a class="jxr_linenumber" name="392" href="#392">392</a>         result.setIsPwcSearchable(capabilities.isCapabilityPWCSearchable());
<a class="jxr_linenumber" name="393" href="#393">393</a>         result.setIsPwcUpdatable(capabilities.isCapabilityPWCUpdatable());
<a class="jxr_linenumber" name="394" href="#394">394</a>         result.setSupportsGetDescendants(capabilities.isCapabilityGetDescendants());
<a class="jxr_linenumber" name="395" href="#395">395</a>         result.setSupportsGetFolderTree(capabilities.isCapabilityGetFolderTree());
<a class="jxr_linenumber" name="396" href="#396">396</a>         result.setOrderByCapability(convert(CapabilityOrderBy.<strong class="jxr_keyword">class</strong>, capabilities.getCapabilityOrderBy()));
<a class="jxr_linenumber" name="397" href="#397">397</a>         result.setSupportsMultifiling(capabilities.isCapabilityMultifiling());
<a class="jxr_linenumber" name="398" href="#398">398</a>         result.setSupportsUnfiling(capabilities.isCapabilityUnfiling());
<a class="jxr_linenumber" name="399" href="#399">399</a>         result.setSupportsVersionSpecificFiling(capabilities.isCapabilityVersionSpecificFiling());
<a class="jxr_linenumber" name="400" href="#400">400</a>         <strong class="jxr_keyword">if</strong> (capabilities.getCapabilityCreatablePropertyTypes() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="401" href="#401">401</a>             CmisCreatablePropertyTypesType creatablePropertyTypes = capabilities.getCapabilityCreatablePropertyTypes();
<a class="jxr_linenumber" name="402" href="#402">402</a> 
<a class="jxr_linenumber" name="403" href="#403">403</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/CreatablePropertyTypesImpl.html">CreatablePropertyTypesImpl</a> target = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/CreatablePropertyTypesImpl.html">CreatablePropertyTypesImpl</a>();
<a class="jxr_linenumber" name="404" href="#404">404</a>             result.setCreatablePropertyTypes(target);
<a class="jxr_linenumber" name="405" href="#405">405</a> 
<a class="jxr_linenumber" name="406" href="#406">406</a>             <strong class="jxr_keyword">if</strong> (creatablePropertyTypes.getCanCreate().size() &gt; 0) {
<a class="jxr_linenumber" name="407" href="#407">407</a>                 Set&lt;PropertyType&gt; propertyTypeSet = EnumSet.noneOf(PropertyType.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="408" href="#408">408</a>                 target.setCanCreate(propertyTypeSet);
<a class="jxr_linenumber" name="409" href="#409">409</a>                 <strong class="jxr_keyword">for</strong> (EnumPropertyType propType : creatablePropertyTypes.getCanCreate()) {
<a class="jxr_linenumber" name="410" href="#410">410</a>                     PropertyType propertyType = convert(PropertyType.<strong class="jxr_keyword">class</strong>, propType);
<a class="jxr_linenumber" name="411" href="#411">411</a>                     <strong class="jxr_keyword">if</strong> (propertyType != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="412" href="#412">412</a>                         propertyTypeSet.add(propertyType);
<a class="jxr_linenumber" name="413" href="#413">413</a>                     }
<a class="jxr_linenumber" name="414" href="#414">414</a>                 }
<a class="jxr_linenumber" name="415" href="#415">415</a>             }
<a class="jxr_linenumber" name="416" href="#416">416</a> 
<a class="jxr_linenumber" name="417" href="#417">417</a>             convertExtension(creatablePropertyTypes, target);
<a class="jxr_linenumber" name="418" href="#418">418</a>         }
<a class="jxr_linenumber" name="419" href="#419">419</a>         <strong class="jxr_keyword">if</strong> (capabilities.getCapabilityNewTypeSettableAttributes() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="420" href="#420">420</a>             CmisNewTypeSettableAttributes newTypeSettableAttributes = capabilities
<a class="jxr_linenumber" name="421" href="#421">421</a>                     .getCapabilityNewTypeSettableAttributes();
<a class="jxr_linenumber" name="422" href="#422">422</a> 
<a class="jxr_linenumber" name="423" href="#423">423</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/NewTypeSettableAttributesImpl.html">NewTypeSettableAttributesImpl</a> target = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/NewTypeSettableAttributesImpl.html">NewTypeSettableAttributesImpl</a>();
<a class="jxr_linenumber" name="424" href="#424">424</a>             result.setNewTypeSettableAttributes(target);
<a class="jxr_linenumber" name="425" href="#425">425</a> 
<a class="jxr_linenumber" name="426" href="#426">426</a>             target.setCanSetId(newTypeSettableAttributes.isId());
<a class="jxr_linenumber" name="427" href="#427">427</a>             target.setCanSetLocalName(newTypeSettableAttributes.isLocalName());
<a class="jxr_linenumber" name="428" href="#428">428</a>             target.setCanSetLocalNamespace(newTypeSettableAttributes.isLocalNamespace());
<a class="jxr_linenumber" name="429" href="#429">429</a>             target.setCanSetDisplayName(newTypeSettableAttributes.isDisplayName());
<a class="jxr_linenumber" name="430" href="#430">430</a>             target.setCanSetQueryName(newTypeSettableAttributes.isQueryName());
<a class="jxr_linenumber" name="431" href="#431">431</a>             target.setCanSetDescription(newTypeSettableAttributes.isDescription());
<a class="jxr_linenumber" name="432" href="#432">432</a>             target.setCanSetCreatable(newTypeSettableAttributes.isCreatable());
<a class="jxr_linenumber" name="433" href="#433">433</a>             target.setCanSetFileable(newTypeSettableAttributes.isFileable());
<a class="jxr_linenumber" name="434" href="#434">434</a>             target.setCanSetQueryable(newTypeSettableAttributes.isQueryable());
<a class="jxr_linenumber" name="435" href="#435">435</a>             target.setCanSetFulltextIndexed(newTypeSettableAttributes.isFulltextIndexed());
<a class="jxr_linenumber" name="436" href="#436">436</a>             target.setCanSetIncludedInSupertypeQuery(newTypeSettableAttributes.isIncludedInSupertypeQuery());
<a class="jxr_linenumber" name="437" href="#437">437</a>             target.setCanSetControllablePolicy(newTypeSettableAttributes.isControllablePolicy());
<a class="jxr_linenumber" name="438" href="#438">438</a>             target.setCanSetControllableAcl(newTypeSettableAttributes.isControllableACL());
<a class="jxr_linenumber" name="439" href="#439">439</a> 
<a class="jxr_linenumber" name="440" href="#440">440</a>             convertExtension(newTypeSettableAttributes, target);
<a class="jxr_linenumber" name="441" href="#441">441</a>         }
<a class="jxr_linenumber" name="442" href="#442">442</a> 
<a class="jxr_linenumber" name="443" href="#443">443</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="444" href="#444">444</a>         convertExtension(capabilities, result);
<a class="jxr_linenumber" name="445" href="#445">445</a> 
<a class="jxr_linenumber" name="446" href="#446">446</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="447" href="#447">447</a>     }
<a class="jxr_linenumber" name="448" href="#448">448</a> 
<a class="jxr_linenumber" name="449" href="#449">449</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="450" href="#450">450</a> <em class="jxr_javadoccomment">     * Converts a ACL capability object.</em>
<a class="jxr_linenumber" name="451" href="#451">451</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="452" href="#452">452</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> AclCapabilities convert(CmisACLCapabilityType aclCapabilities) {
<a class="jxr_linenumber" name="453" href="#453">453</a>         <strong class="jxr_keyword">if</strong> (aclCapabilities == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="454" href="#454">454</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="455" href="#455">455</a>         }
<a class="jxr_linenumber" name="456" href="#456">456</a> 
<a class="jxr_linenumber" name="457" href="#457">457</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/AclCapabilitiesDataImpl.html">AclCapabilitiesDataImpl</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/AclCapabilitiesDataImpl.html">AclCapabilitiesDataImpl</a>();
<a class="jxr_linenumber" name="458" href="#458">458</a> 
<a class="jxr_linenumber" name="459" href="#459">459</a>         result.setSupportedPermissions(convert(SupportedPermissions.<strong class="jxr_keyword">class</strong>, aclCapabilities.getSupportedPermissions()));
<a class="jxr_linenumber" name="460" href="#460">460</a> 
<a class="jxr_linenumber" name="461" href="#461">461</a>         result.setAclPropagation(convert(AclPropagation.<strong class="jxr_keyword">class</strong>, aclCapabilities.getPropagation()));
<a class="jxr_linenumber" name="462" href="#462">462</a> 
<a class="jxr_linenumber" name="463" href="#463">463</a>         List&lt;PermissionDefinition&gt; permissionDefinitionList = <strong class="jxr_keyword">new</strong> ArrayList&lt;PermissionDefinition&gt;();
<a class="jxr_linenumber" name="464" href="#464">464</a>         <strong class="jxr_keyword">for</strong> (CmisPermissionDefinition permDef : aclCapabilities.getPermissions()) {
<a class="jxr_linenumber" name="465" href="#465">465</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PermissionDefinitionDataImpl.html">PermissionDefinitionDataImpl</a> permDefData = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PermissionDefinitionDataImpl.html">PermissionDefinitionDataImpl</a>();
<a class="jxr_linenumber" name="466" href="#466">466</a>             permDefData.setId(permDef.getPermission());
<a class="jxr_linenumber" name="467" href="#467">467</a>             permDefData.setDescription(permDef.getDescription());
<a class="jxr_linenumber" name="468" href="#468">468</a>             convertExtension(permDef, permDefData);
<a class="jxr_linenumber" name="469" href="#469">469</a> 
<a class="jxr_linenumber" name="470" href="#470">470</a>             permissionDefinitionList.add(permDefData);
<a class="jxr_linenumber" name="471" href="#471">471</a>         }
<a class="jxr_linenumber" name="472" href="#472">472</a>         result.setPermissionDefinitionData(permissionDefinitionList);
<a class="jxr_linenumber" name="473" href="#473">473</a> 
<a class="jxr_linenumber" name="474" href="#474">474</a>         Map&lt;String, PermissionMapping&gt; permissionMapping = <strong class="jxr_keyword">new</strong> LinkedHashMap&lt;String, PermissionMapping&gt;();
<a class="jxr_linenumber" name="475" href="#475">475</a>         <strong class="jxr_keyword">for</strong> (CmisPermissionMapping permMapping : aclCapabilities.getMapping()) {
<a class="jxr_linenumber" name="476" href="#476">476</a>             <strong class="jxr_keyword">if</strong> (permMapping.getKey() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="477" href="#477">477</a>                 <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PermissionMappingDataImpl.html">PermissionMappingDataImpl</a> permMappingData = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PermissionMappingDataImpl.html">PermissionMappingDataImpl</a>();
<a class="jxr_linenumber" name="478" href="#478">478</a>                 String key = permMapping.getKey().value();
<a class="jxr_linenumber" name="479" href="#479">479</a>                 permMappingData.setKey(key);
<a class="jxr_linenumber" name="480" href="#480">480</a>                 permMappingData.setPermissions(permMapping.getPermission());
<a class="jxr_linenumber" name="481" href="#481">481</a>                 convertExtension(permMapping, permMappingData);
<a class="jxr_linenumber" name="482" href="#482">482</a>                 permissionMapping.put(key, permMappingData);
<a class="jxr_linenumber" name="483" href="#483">483</a>             }
<a class="jxr_linenumber" name="484" href="#484">484</a>         }
<a class="jxr_linenumber" name="485" href="#485">485</a>         result.setPermissionMappingData(permissionMapping);
<a class="jxr_linenumber" name="486" href="#486">486</a> 
<a class="jxr_linenumber" name="487" href="#487">487</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="488" href="#488">488</a>         convertExtension(aclCapabilities, result);
<a class="jxr_linenumber" name="489" href="#489">489</a> 
<a class="jxr_linenumber" name="490" href="#490">490</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="491" href="#491">491</a>     }
<a class="jxr_linenumber" name="492" href="#492">492</a> 
<a class="jxr_linenumber" name="493" href="#493">493</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="494" href="#494">494</a> <em class="jxr_javadoccomment">     * Converts a repository info object.</em>
<a class="jxr_linenumber" name="495" href="#495">495</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="496" href="#496">496</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CmisRepositoryInfoType convert(RepositoryInfo repositoryInfo, CmisVersion cmisVersion) {
<a class="jxr_linenumber" name="497" href="#497">497</a>         <strong class="jxr_keyword">if</strong> (repositoryInfo == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="498" href="#498">498</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="499" href="#499">499</a>         }
<a class="jxr_linenumber" name="500" href="#500">500</a> 
<a class="jxr_linenumber" name="501" href="#501">501</a>         CmisRepositoryInfoType result = <strong class="jxr_keyword">new</strong> CmisRepositoryInfoType();
<a class="jxr_linenumber" name="502" href="#502">502</a> 
<a class="jxr_linenumber" name="503" href="#503">503</a>         result.setAclCapability(convert(repositoryInfo.getAclCapabilities()));
<a class="jxr_linenumber" name="504" href="#504">504</a>         result.setCapabilities(convert(repositoryInfo.getCapabilities(), cmisVersion));
<a class="jxr_linenumber" name="505" href="#505">505</a>         result.setChangesIncomplete(repositoryInfo.getChangesIncomplete());
<a class="jxr_linenumber" name="506" href="#506">506</a>         result.setCmisVersionSupported(repositoryInfo.getCmisVersionSupported());
<a class="jxr_linenumber" name="507" href="#507">507</a>         result.setLatestChangeLogToken(repositoryInfo.getLatestChangeLogToken());
<a class="jxr_linenumber" name="508" href="#508">508</a>         result.setPrincipalAnonymous(repositoryInfo.getPrincipalIdAnonymous());
<a class="jxr_linenumber" name="509" href="#509">509</a>         result.setPrincipalAnyone(repositoryInfo.getPrincipalIdAnyone());
<a class="jxr_linenumber" name="510" href="#510">510</a>         result.setProductName(repositoryInfo.getProductName());
<a class="jxr_linenumber" name="511" href="#511">511</a>         result.setProductVersion(repositoryInfo.getProductVersion());
<a class="jxr_linenumber" name="512" href="#512">512</a>         result.setRepositoryDescription(repositoryInfo.getDescription());
<a class="jxr_linenumber" name="513" href="#513">513</a>         result.setRepositoryId(repositoryInfo.getId());
<a class="jxr_linenumber" name="514" href="#514">514</a>         result.setRepositoryName(repositoryInfo.getName());
<a class="jxr_linenumber" name="515" href="#515">515</a>         result.setRootFolderId(repositoryInfo.getRootFolderId());
<a class="jxr_linenumber" name="516" href="#516">516</a>         result.setThinClientURI(repositoryInfo.getThinClientUri());
<a class="jxr_linenumber" name="517" href="#517">517</a>         result.setVendorName(repositoryInfo.getVendorName());
<a class="jxr_linenumber" name="518" href="#518">518</a>         <strong class="jxr_keyword">if</strong> (repositoryInfo.getChangesOnType() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="519" href="#519">519</a>             <strong class="jxr_keyword">for</strong> (BaseTypeId baseType : repositoryInfo.getChangesOnType()) {
<a class="jxr_linenumber" name="520" href="#520">520</a>                 <strong class="jxr_keyword">if</strong> (cmisVersion == CmisVersion.CMIS_1_0 &amp;&amp; baseType == BaseTypeId.CMIS_ITEM) {
<a class="jxr_linenumber" name="521" href="#521">521</a>                     LOG.warn(<span class="jxr_string">"Receiver only understands CMIS 1.0 but the Changes On Type list in the Repository info contains the base type Item. "</span>
<a class="jxr_linenumber" name="522" href="#522">522</a>                             + <span class="jxr_string">"The Item base type has been removed from the list."</span>);
<a class="jxr_linenumber" name="523" href="#523">523</a>                     <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="524" href="#524">524</a>                 }
<a class="jxr_linenumber" name="525" href="#525">525</a>                 result.getChangesOnType().add(convert(EnumBaseObjectTypeIds.<strong class="jxr_keyword">class</strong>, baseType));
<a class="jxr_linenumber" name="526" href="#526">526</a>             }
<a class="jxr_linenumber" name="527" href="#527">527</a>         }
<a class="jxr_linenumber" name="528" href="#528">528</a>         <strong class="jxr_keyword">if</strong> (cmisVersion != CmisVersion.CMIS_1_0 &amp;&amp; repositoryInfo.getExtensionFeatures() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="529" href="#529">529</a>             List&lt;ExtensionFeature&gt; extensionFeatures = repositoryInfo.getExtensionFeatures();
<a class="jxr_linenumber" name="530" href="#530">530</a> 
<a class="jxr_linenumber" name="531" href="#531">531</a>             <strong class="jxr_keyword">for</strong> (ExtensionFeature feature : extensionFeatures) {
<a class="jxr_linenumber" name="532" href="#532">532</a>                 CmisExtensionFeatureType target = <strong class="jxr_keyword">new</strong> CmisExtensionFeatureType();
<a class="jxr_linenumber" name="533" href="#533">533</a> 
<a class="jxr_linenumber" name="534" href="#534">534</a>                 target.setId(feature.getId());
<a class="jxr_linenumber" name="535" href="#535">535</a>                 target.setUrl(feature.getUrl());
<a class="jxr_linenumber" name="536" href="#536">536</a>                 target.setCommonName(feature.getCommonName());
<a class="jxr_linenumber" name="537" href="#537">537</a>                 target.setVersionLabel(feature.getVersionLabel());
<a class="jxr_linenumber" name="538" href="#538">538</a>                 target.setDescription(feature.getDescription());
<a class="jxr_linenumber" name="539" href="#539">539</a> 
<a class="jxr_linenumber" name="540" href="#540">540</a>                 <strong class="jxr_keyword">if</strong> (feature.getFeatureData() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="541" href="#541">541</a>                     <strong class="jxr_keyword">for</strong> (Map.Entry&lt;String, String&gt; entry : feature.getFeatureData().entrySet()) {
<a class="jxr_linenumber" name="542" href="#542">542</a>                         CmisExtensionFeatureKeyValuePair keyValue = <strong class="jxr_keyword">new</strong> CmisExtensionFeatureKeyValuePair();
<a class="jxr_linenumber" name="543" href="#543">543</a>                         keyValue.setKey(entry.getKey());
<a class="jxr_linenumber" name="544" href="#544">544</a>                         keyValue.setValue(entry.getValue());
<a class="jxr_linenumber" name="545" href="#545">545</a>                         target.getFeatureData().add(keyValue);
<a class="jxr_linenumber" name="546" href="#546">546</a>                     }
<a class="jxr_linenumber" name="547" href="#547">547</a>                 }
<a class="jxr_linenumber" name="548" href="#548">548</a> 
<a class="jxr_linenumber" name="549" href="#549">549</a>                 convertExtension(feature, target);
<a class="jxr_linenumber" name="550" href="#550">550</a> 
<a class="jxr_linenumber" name="551" href="#551">551</a>                 result.getExtendedFeatures().add(target);
<a class="jxr_linenumber" name="552" href="#552">552</a>             }
<a class="jxr_linenumber" name="553" href="#553">553</a>         }
<a class="jxr_linenumber" name="554" href="#554">554</a> 
<a class="jxr_linenumber" name="555" href="#555">555</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="556" href="#556">556</a>         convertExtension(repositoryInfo, result);
<a class="jxr_linenumber" name="557" href="#557">557</a> 
<a class="jxr_linenumber" name="558" href="#558">558</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="559" href="#559">559</a>     }
<a class="jxr_linenumber" name="560" href="#560">560</a> 
<a class="jxr_linenumber" name="561" href="#561">561</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="562" href="#562">562</a> <em class="jxr_javadoccomment">     * Converts a repository capability object.</em>
<a class="jxr_linenumber" name="563" href="#563">563</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="564" href="#564">564</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CmisRepositoryCapabilitiesType convert(RepositoryCapabilities capabilities, CmisVersion cmisVersion) {
<a class="jxr_linenumber" name="565" href="#565">565</a>         <strong class="jxr_keyword">if</strong> (capabilities == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="566" href="#566">566</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="567" href="#567">567</a>         }
<a class="jxr_linenumber" name="568" href="#568">568</a> 
<a class="jxr_linenumber" name="569" href="#569">569</a>         CmisRepositoryCapabilitiesType result = <strong class="jxr_keyword">new</strong> CmisRepositoryCapabilitiesType();
<a class="jxr_linenumber" name="570" href="#570">570</a> 
<a class="jxr_linenumber" name="571" href="#571">571</a>         result.setCapabilityACL(convert(EnumCapabilityACL.<strong class="jxr_keyword">class</strong>, capabilities.getAclCapability()));
<a class="jxr_linenumber" name="572" href="#572">572</a>         result.setCapabilityAllVersionsSearchable(capabilities.isAllVersionsSearchableSupported());
<a class="jxr_linenumber" name="573" href="#573">573</a>         result.setCapabilityChanges(convert(EnumCapabilityChanges.<strong class="jxr_keyword">class</strong>, capabilities.getChangesCapability()));
<a class="jxr_linenumber" name="574" href="#574">574</a>         result.setCapabilityContentStreamUpdatability(convert(EnumCapabilityContentStreamUpdates.<strong class="jxr_keyword">class</strong>,
<a class="jxr_linenumber" name="575" href="#575">575</a>                 capabilities.getContentStreamUpdatesCapability()));
<a class="jxr_linenumber" name="576" href="#576">576</a>         result.setCapabilityGetDescendants(capabilities.isGetDescendantsSupported());
<a class="jxr_linenumber" name="577" href="#577">577</a>         result.setCapabilityGetFolderTree(capabilities.isGetFolderTreeSupported());
<a class="jxr_linenumber" name="578" href="#578">578</a>         <strong class="jxr_keyword">if</strong> (cmisVersion != CmisVersion.CMIS_1_0) {
<a class="jxr_linenumber" name="579" href="#579">579</a>             result.setCapabilityOrderBy(convert(EnumCapabilityOrderBy.<strong class="jxr_keyword">class</strong>, capabilities.getOrderByCapability()));
<a class="jxr_linenumber" name="580" href="#580">580</a>         }
<a class="jxr_linenumber" name="581" href="#581">581</a>         result.setCapabilityJoin(convert(EnumCapabilityJoin.<strong class="jxr_keyword">class</strong>, capabilities.getJoinCapability()));
<a class="jxr_linenumber" name="582" href="#582">582</a>         result.setCapabilityMultifiling(capabilities.isMultifilingSupported());
<a class="jxr_linenumber" name="583" href="#583">583</a>         result.setCapabilityPWCSearchable(capabilities.isPwcSearchableSupported());
<a class="jxr_linenumber" name="584" href="#584">584</a>         result.setCapabilityPWCUpdatable(capabilities.isPwcUpdatableSupported());
<a class="jxr_linenumber" name="585" href="#585">585</a>         result.setCapabilityQuery(convert(EnumCapabilityQuery.<strong class="jxr_keyword">class</strong>, capabilities.getQueryCapability()));
<a class="jxr_linenumber" name="586" href="#586">586</a>         result.setCapabilityRenditions(convert(EnumCapabilityRendition.<strong class="jxr_keyword">class</strong>, capabilities.getRenditionsCapability()));
<a class="jxr_linenumber" name="587" href="#587">587</a>         result.setCapabilityUnfiling(capabilities.isUnfilingSupported());
<a class="jxr_linenumber" name="588" href="#588">588</a>         result.setCapabilityVersionSpecificFiling(capabilities.isVersionSpecificFilingSupported());
<a class="jxr_linenumber" name="589" href="#589">589</a> 
<a class="jxr_linenumber" name="590" href="#590">590</a>         <strong class="jxr_keyword">if</strong> (cmisVersion != CmisVersion.CMIS_1_0) {
<a class="jxr_linenumber" name="591" href="#591">591</a>             <strong class="jxr_keyword">if</strong> (capabilities.getCreatablePropertyTypes() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="592" href="#592">592</a>                 CreatablePropertyTypes creatablePropertyTypes = capabilities.getCreatablePropertyTypes();
<a class="jxr_linenumber" name="593" href="#593">593</a> 
<a class="jxr_linenumber" name="594" href="#594">594</a>                 CmisCreatablePropertyTypesType target = <strong class="jxr_keyword">new</strong> CmisCreatablePropertyTypesType();
<a class="jxr_linenumber" name="595" href="#595">595</a>                 result.setCapabilityCreatablePropertyTypes(target);
<a class="jxr_linenumber" name="596" href="#596">596</a> 
<a class="jxr_linenumber" name="597" href="#597">597</a>                 <strong class="jxr_keyword">if</strong> (creatablePropertyTypes.canCreate() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="598" href="#598">598</a>                     <strong class="jxr_keyword">for</strong> (PropertyType pt : creatablePropertyTypes.canCreate()) {
<a class="jxr_linenumber" name="599" href="#599">599</a>                         target.getCanCreate().add(convert(EnumPropertyType.<strong class="jxr_keyword">class</strong>, pt));
<a class="jxr_linenumber" name="600" href="#600">600</a>                     }
<a class="jxr_linenumber" name="601" href="#601">601</a>                 }
<a class="jxr_linenumber" name="602" href="#602">602</a> 
<a class="jxr_linenumber" name="603" href="#603">603</a>                 convertExtension(creatablePropertyTypes, target);
<a class="jxr_linenumber" name="604" href="#604">604</a>             }
<a class="jxr_linenumber" name="605" href="#605">605</a>             <strong class="jxr_keyword">if</strong> (capabilities.getNewTypeSettableAttributes() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="606" href="#606">606</a>                 NewTypeSettableAttributes newTypeSettableAttributes = capabilities.getNewTypeSettableAttributes();
<a class="jxr_linenumber" name="607" href="#607">607</a> 
<a class="jxr_linenumber" name="608" href="#608">608</a>                 CmisNewTypeSettableAttributes target = <strong class="jxr_keyword">new</strong> CmisNewTypeSettableAttributes();
<a class="jxr_linenumber" name="609" href="#609">609</a>                 result.setCapabilityNewTypeSettableAttributes(target);
<a class="jxr_linenumber" name="610" href="#610">610</a> 
<a class="jxr_linenumber" name="611" href="#611">611</a>                 target.setId(newTypeSettableAttributes.canSetId() == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">true</strong> : newTypeSettableAttributes.canSetId());
<a class="jxr_linenumber" name="612" href="#612">612</a>                 target.setLocalName(newTypeSettableAttributes.canSetLocalName() == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">true</strong>
<a class="jxr_linenumber" name="613" href="#613">613</a>                         : newTypeSettableAttributes.canSetLocalName());
<a class="jxr_linenumber" name="614" href="#614">614</a>                 target.setLocalNamespace(newTypeSettableAttributes.canSetLocalNamespace() == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">true</strong>
<a class="jxr_linenumber" name="615" href="#615">615</a>                         : newTypeSettableAttributes.canSetLocalNamespace());
<a class="jxr_linenumber" name="616" href="#616">616</a>                 target.setDisplayName(newTypeSettableAttributes.canSetDisplayName() == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">true</strong>
<a class="jxr_linenumber" name="617" href="#617">617</a>                         : newTypeSettableAttributes.canSetDisplayName());
<a class="jxr_linenumber" name="618" href="#618">618</a>                 target.setQueryName(newTypeSettableAttributes.canSetQueryName() == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">true</strong>
<a class="jxr_linenumber" name="619" href="#619">619</a>                         : newTypeSettableAttributes.canSetQueryName());
<a class="jxr_linenumber" name="620" href="#620">620</a>                 target.setDescription(newTypeSettableAttributes.canSetDescription() == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">true</strong>
<a class="jxr_linenumber" name="621" href="#621">621</a>                         : newTypeSettableAttributes.canSetDescription());
<a class="jxr_linenumber" name="622" href="#622">622</a>                 target.setCreatable(newTypeSettableAttributes.canSetCreatable() == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">true</strong>
<a class="jxr_linenumber" name="623" href="#623">623</a>                         : newTypeSettableAttributes.canSetCreatable());
<a class="jxr_linenumber" name="624" href="#624">624</a>                 target.setFileable(newTypeSettableAttributes.canSetFileable() == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">true</strong>
<a class="jxr_linenumber" name="625" href="#625">625</a>                         : newTypeSettableAttributes.canSetFileable());
<a class="jxr_linenumber" name="626" href="#626">626</a>                 target.setQueryable(newTypeSettableAttributes.canSetQueryable() == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">true</strong>
<a class="jxr_linenumber" name="627" href="#627">627</a>                         : newTypeSettableAttributes.canSetQueryable());
<a class="jxr_linenumber" name="628" href="#628">628</a>                 target.setFulltextIndexed(newTypeSettableAttributes.canSetFulltextIndexed() == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">true</strong>
<a class="jxr_linenumber" name="629" href="#629">629</a>                         : newTypeSettableAttributes.canSetFulltextIndexed());
<a class="jxr_linenumber" name="630" href="#630">630</a>                 target.setIncludedInSupertypeQuery(newTypeSettableAttributes.canSetIncludedInSupertypeQuery() == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">true</strong>
<a class="jxr_linenumber" name="631" href="#631">631</a>                         : newTypeSettableAttributes.canSetIncludedInSupertypeQuery());
<a class="jxr_linenumber" name="632" href="#632">632</a>                 target.setControllablePolicy(newTypeSettableAttributes.canSetControllablePolicy() == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">true</strong>
<a class="jxr_linenumber" name="633" href="#633">633</a>                         : newTypeSettableAttributes.canSetControllablePolicy());
<a class="jxr_linenumber" name="634" href="#634">634</a>                 target.setControllableACL(newTypeSettableAttributes.canSetControllableAcl() == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">true</strong>
<a class="jxr_linenumber" name="635" href="#635">635</a>                         : newTypeSettableAttributes.canSetControllableAcl());
<a class="jxr_linenumber" name="636" href="#636">636</a> 
<a class="jxr_linenumber" name="637" href="#637">637</a>                 convertExtension(newTypeSettableAttributes, target);
<a class="jxr_linenumber" name="638" href="#638">638</a>             }
<a class="jxr_linenumber" name="639" href="#639">639</a>         }
<a class="jxr_linenumber" name="640" href="#640">640</a> 
<a class="jxr_linenumber" name="641" href="#641">641</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="642" href="#642">642</a>         convertExtension(capabilities, result);
<a class="jxr_linenumber" name="643" href="#643">643</a> 
<a class="jxr_linenumber" name="644" href="#644">644</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="645" href="#645">645</a>     }
<a class="jxr_linenumber" name="646" href="#646">646</a> 
<a class="jxr_linenumber" name="647" href="#647">647</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="648" href="#648">648</a> <em class="jxr_javadoccomment">     * Converts a ACL capability object.</em>
<a class="jxr_linenumber" name="649" href="#649">649</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="650" href="#650">650</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CmisACLCapabilityType convert(AclCapabilities aclCapabilities) {
<a class="jxr_linenumber" name="651" href="#651">651</a>         <strong class="jxr_keyword">if</strong> (aclCapabilities == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="652" href="#652">652</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="653" href="#653">653</a>         }
<a class="jxr_linenumber" name="654" href="#654">654</a> 
<a class="jxr_linenumber" name="655" href="#655">655</a>         CmisACLCapabilityType result = <strong class="jxr_keyword">new</strong> CmisACLCapabilityType();
<a class="jxr_linenumber" name="656" href="#656">656</a> 
<a class="jxr_linenumber" name="657" href="#657">657</a>         result.setSupportedPermissions(convert(EnumSupportedPermissions.<strong class="jxr_keyword">class</strong>,
<a class="jxr_linenumber" name="658" href="#658">658</a>                 aclCapabilities.getSupportedPermissions()));
<a class="jxr_linenumber" name="659" href="#659">659</a> 
<a class="jxr_linenumber" name="660" href="#660">660</a>         result.setPropagation(convert(EnumACLPropagation.<strong class="jxr_keyword">class</strong>, aclCapabilities.getAclPropagation()));
<a class="jxr_linenumber" name="661" href="#661">661</a> 
<a class="jxr_linenumber" name="662" href="#662">662</a>         <strong class="jxr_keyword">if</strong> (aclCapabilities.getPermissions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="663" href="#663">663</a>             <strong class="jxr_keyword">for</strong> (PermissionDefinition pdd : aclCapabilities.getPermissions()) {
<a class="jxr_linenumber" name="664" href="#664">664</a>                 CmisPermissionDefinition permDef = <strong class="jxr_keyword">new</strong> CmisPermissionDefinition();
<a class="jxr_linenumber" name="665" href="#665">665</a>                 permDef.setDescription(pdd.getDescription());
<a class="jxr_linenumber" name="666" href="#666">666</a>                 permDef.setPermission(pdd.getId());
<a class="jxr_linenumber" name="667" href="#667">667</a>                 convertExtension(pdd, permDef);
<a class="jxr_linenumber" name="668" href="#668">668</a> 
<a class="jxr_linenumber" name="669" href="#669">669</a>                 result.getPermissions().add(permDef);
<a class="jxr_linenumber" name="670" href="#670">670</a>             }
<a class="jxr_linenumber" name="671" href="#671">671</a>         }
<a class="jxr_linenumber" name="672" href="#672">672</a> 
<a class="jxr_linenumber" name="673" href="#673">673</a>         <strong class="jxr_keyword">if</strong> (aclCapabilities.getPermissionMapping() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="674" href="#674">674</a>             <strong class="jxr_keyword">for</strong> (PermissionMapping pmd : aclCapabilities.getPermissionMapping().values()) {
<a class="jxr_linenumber" name="675" href="#675">675</a>                 CmisPermissionMapping permMap = <strong class="jxr_keyword">new</strong> CmisPermissionMapping();
<a class="jxr_linenumber" name="676" href="#676">676</a>                 permMap.setKey(EnumAllowableActionsKey.fromValue(pmd.getKey()));
<a class="jxr_linenumber" name="677" href="#677">677</a> 
<a class="jxr_linenumber" name="678" href="#678">678</a>                 <strong class="jxr_keyword">if</strong> (pmd.getPermissions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="679" href="#679">679</a>                     <strong class="jxr_keyword">for</strong> (String permission : pmd.getPermissions()) {
<a class="jxr_linenumber" name="680" href="#680">680</a>                         permMap.getPermission().add(permission);
<a class="jxr_linenumber" name="681" href="#681">681</a>                     }
<a class="jxr_linenumber" name="682" href="#682">682</a>                 }
<a class="jxr_linenumber" name="683" href="#683">683</a> 
<a class="jxr_linenumber" name="684" href="#684">684</a>                 convertExtension(pmd, permMap);
<a class="jxr_linenumber" name="685" href="#685">685</a> 
<a class="jxr_linenumber" name="686" href="#686">686</a>                 result.getMapping().add(permMap);
<a class="jxr_linenumber" name="687" href="#687">687</a>             }
<a class="jxr_linenumber" name="688" href="#688">688</a>         }
<a class="jxr_linenumber" name="689" href="#689">689</a> 
<a class="jxr_linenumber" name="690" href="#690">690</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="691" href="#691">691</a>         convertExtension(aclCapabilities, result);
<a class="jxr_linenumber" name="692" href="#692">692</a> 
<a class="jxr_linenumber" name="693" href="#693">693</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="694" href="#694">694</a>     }
<a class="jxr_linenumber" name="695" href="#695">695</a> 
<a class="jxr_linenumber" name="696" href="#696">696</a>     <em class="jxr_comment">// -------------------------------------------------------------------------</em>
<a class="jxr_linenumber" name="697" href="#697">697</a>     <em class="jxr_comment">// --- Types ---</em>
<a class="jxr_linenumber" name="698" href="#698">698</a>     <em class="jxr_comment">// -------------------------------------------------------------------------</em>
<a class="jxr_linenumber" name="699" href="#699">699</a> 
<a class="jxr_linenumber" name="700" href="#700">700</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="701" href="#701">701</a> <em class="jxr_javadoccomment">     * Converts a type definition object.</em>
<a class="jxr_linenumber" name="702" href="#702">702</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="703" href="#703">703</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> TypeDefinition convert(CmisTypeDefinitionType typeDefinition) {
<a class="jxr_linenumber" name="704" href="#704">704</a>         <strong class="jxr_keyword">if</strong> (typeDefinition == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="705" href="#705">705</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="706" href="#706">706</a>         }
<a class="jxr_linenumber" name="707" href="#707">707</a> 
<a class="jxr_linenumber" name="708" href="#708">708</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/AbstractTypeDefinition.html">AbstractTypeDefinition</a> result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="709" href="#709">709</a> 
<a class="jxr_linenumber" name="710" href="#710">710</a>         <strong class="jxr_keyword">if</strong> (typeDefinition instanceof CmisTypeFolderDefinitionType) {
<a class="jxr_linenumber" name="711" href="#711">711</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/FolderTypeDefinitionImpl.html">FolderTypeDefinitionImpl</a>();
<a class="jxr_linenumber" name="712" href="#712">712</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (typeDefinition instanceof CmisTypeDocumentDefinitionType) {
<a class="jxr_linenumber" name="713" href="#713">713</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/DocumentTypeDefinitionImpl.html">DocumentTypeDefinitionImpl</a>();
<a class="jxr_linenumber" name="714" href="#714">714</a> 
<a class="jxr_linenumber" name="715" href="#715">715</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/DocumentTypeDefinitionImpl.html">DocumentTypeDefinitionImpl</a>) result).setContentStreamAllowed(convert(ContentStreamAllowed.<strong class="jxr_keyword">class</strong>,
<a class="jxr_linenumber" name="716" href="#716">716</a>                     ((CmisTypeDocumentDefinitionType) typeDefinition).getContentStreamAllowed()));
<a class="jxr_linenumber" name="717" href="#717">717</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/DocumentTypeDefinitionImpl.html">DocumentTypeDefinitionImpl</a>) result).setIsVersionable(((CmisTypeDocumentDefinitionType) typeDefinition)
<a class="jxr_linenumber" name="718" href="#718">718</a>                     .isVersionable());
<a class="jxr_linenumber" name="719" href="#719">719</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (typeDefinition instanceof CmisTypeRelationshipDefinitionType) {
<a class="jxr_linenumber" name="720" href="#720">720</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/RelationshipTypeDefinitionImpl.html">RelationshipTypeDefinitionImpl</a>();
<a class="jxr_linenumber" name="721" href="#721">721</a> 
<a class="jxr_linenumber" name="722" href="#722">722</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/RelationshipTypeDefinitionImpl.html">RelationshipTypeDefinitionImpl</a>) result)
<a class="jxr_linenumber" name="723" href="#723">723</a>                     .setAllowedSourceTypes(((CmisTypeRelationshipDefinitionType) typeDefinition)
<a class="jxr_linenumber" name="724" href="#724">724</a>                             .getAllowedSourceTypes());
<a class="jxr_linenumber" name="725" href="#725">725</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/RelationshipTypeDefinitionImpl.html">RelationshipTypeDefinitionImpl</a>) result)
<a class="jxr_linenumber" name="726" href="#726">726</a>                     .setAllowedTargetTypes(((CmisTypeRelationshipDefinitionType) typeDefinition)
<a class="jxr_linenumber" name="727" href="#727">727</a>                             .getAllowedTargetTypes());
<a class="jxr_linenumber" name="728" href="#728">728</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (typeDefinition instanceof CmisTypePolicyDefinitionType) {
<a class="jxr_linenumber" name="729" href="#729">729</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PolicyTypeDefinitionImpl.html">PolicyTypeDefinitionImpl</a>();
<a class="jxr_linenumber" name="730" href="#730">730</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (typeDefinition instanceof CmisTypeItemDefinitionType) {
<a class="jxr_linenumber" name="731" href="#731">731</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/ItemTypeDefinitionImpl.html">ItemTypeDefinitionImpl</a>();
<a class="jxr_linenumber" name="732" href="#732">732</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (typeDefinition instanceof CmisTypeSecondaryDefinitionType) {
<a class="jxr_linenumber" name="733" href="#733">733</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/SecondaryTypeDefinitionImpl.html">SecondaryTypeDefinitionImpl</a>();
<a class="jxr_linenumber" name="734" href="#734">734</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="735" href="#735">735</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Type '"</span> + typeDefinition.getId() + <span class="jxr_string">"' does not match a base type!"</span>);
<a class="jxr_linenumber" name="736" href="#736">736</a>         }
<a class="jxr_linenumber" name="737" href="#737">737</a> 
<a class="jxr_linenumber" name="738" href="#738">738</a>         result.setBaseTypeId(convert(BaseTypeId.<strong class="jxr_keyword">class</strong>, typeDefinition.getBaseId()));
<a class="jxr_linenumber" name="739" href="#739">739</a>         result.setDescription(typeDefinition.getDescription());
<a class="jxr_linenumber" name="740" href="#740">740</a>         result.setDisplayName(typeDefinition.getDisplayName());
<a class="jxr_linenumber" name="741" href="#741">741</a>         result.setId(typeDefinition.getId());
<a class="jxr_linenumber" name="742" href="#742">742</a>         result.setIsControllableAcl(typeDefinition.isControllableACL());
<a class="jxr_linenumber" name="743" href="#743">743</a>         result.setIsControllablePolicy(typeDefinition.isControllablePolicy());
<a class="jxr_linenumber" name="744" href="#744">744</a>         result.setIsCreatable(typeDefinition.isCreatable());
<a class="jxr_linenumber" name="745" href="#745">745</a>         result.setIsFileable(typeDefinition.isFileable());
<a class="jxr_linenumber" name="746" href="#746">746</a>         result.setIsFulltextIndexed(typeDefinition.isFulltextIndexed());
<a class="jxr_linenumber" name="747" href="#747">747</a>         result.setIsIncludedInSupertypeQuery(typeDefinition.isIncludedInSupertypeQuery());
<a class="jxr_linenumber" name="748" href="#748">748</a>         result.setIsQueryable(typeDefinition.isQueryable());
<a class="jxr_linenumber" name="749" href="#749">749</a>         result.setLocalName(typeDefinition.getLocalName());
<a class="jxr_linenumber" name="750" href="#750">750</a>         result.setLocalNamespace(typeDefinition.getLocalNamespace());
<a class="jxr_linenumber" name="751" href="#751">751</a>         result.setParentTypeId(typeDefinition.getParentId());
<a class="jxr_linenumber" name="752" href="#752">752</a>         result.setQueryName(typeDefinition.getQueryName());
<a class="jxr_linenumber" name="753" href="#753">753</a> 
<a class="jxr_linenumber" name="754" href="#754">754</a>         <strong class="jxr_keyword">if</strong> (typeDefinition.getTypeMutability() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="755" href="#755">755</a>             CmisTypeMutabilityCapabilitiesType typeMutability = typeDefinition.getTypeMutability();
<a class="jxr_linenumber" name="756" href="#756">756</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/TypeMutabilityImpl.html">TypeMutabilityImpl</a> target = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/TypeMutabilityImpl.html">TypeMutabilityImpl</a>();
<a class="jxr_linenumber" name="757" href="#757">757</a> 
<a class="jxr_linenumber" name="758" href="#758">758</a>             target.setCanCreate(typeMutability.isCreate());
<a class="jxr_linenumber" name="759" href="#759">759</a>             target.setCanUpdate(typeMutability.isUpdate());
<a class="jxr_linenumber" name="760" href="#760">760</a>             target.setCanDelete(typeMutability.isDelete());
<a class="jxr_linenumber" name="761" href="#761">761</a> 
<a class="jxr_linenumber" name="762" href="#762">762</a>             convertExtension(typeMutability, target);
<a class="jxr_linenumber" name="763" href="#763">763</a> 
<a class="jxr_linenumber" name="764" href="#764">764</a>             result.setTypeMutability(target);
<a class="jxr_linenumber" name="765" href="#765">765</a>         }
<a class="jxr_linenumber" name="766" href="#766">766</a> 
<a class="jxr_linenumber" name="767" href="#767">767</a>         <strong class="jxr_keyword">for</strong> (CmisPropertyDefinitionType propertyDefinition : typeDefinition.getPropertyDefinition()) {
<a class="jxr_linenumber" name="768" href="#768">768</a>             result.addPropertyDefinition(convert(propertyDefinition));
<a class="jxr_linenumber" name="769" href="#769">769</a>         }
<a class="jxr_linenumber" name="770" href="#770">770</a> 
<a class="jxr_linenumber" name="771" href="#771">771</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="772" href="#772">772</a>         convertExtension(typeDefinition, result);
<a class="jxr_linenumber" name="773" href="#773">773</a> 
<a class="jxr_linenumber" name="774" href="#774">774</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="775" href="#775">775</a>     }
<a class="jxr_linenumber" name="776" href="#776">776</a> 
<a class="jxr_linenumber" name="777" href="#777">777</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="778" href="#778">778</a> <em class="jxr_javadoccomment">     * Converts a property definition object.</em>
<a class="jxr_linenumber" name="779" href="#779">779</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="780" href="#780">780</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> PropertyDefinition&lt;?&gt; convert(CmisPropertyDefinitionType propertyDefinition) {
<a class="jxr_linenumber" name="781" href="#781">781</a>         <strong class="jxr_keyword">if</strong> (propertyDefinition == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="782" href="#782">782</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="783" href="#783">783</a>         }
<a class="jxr_linenumber" name="784" href="#784">784</a> 
<a class="jxr_linenumber" name="785" href="#785">785</a>         AbstractPropertyDefinition&lt;?&gt; result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="786" href="#786">786</a> 
<a class="jxr_linenumber" name="787" href="#787">787</a>         <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof CmisPropertyStringDefinitionType) {
<a class="jxr_linenumber" name="788" href="#788">788</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyStringDefinitionImpl.html">PropertyStringDefinitionImpl</a>();
<a class="jxr_linenumber" name="789" href="#789">789</a> 
<a class="jxr_linenumber" name="790" href="#790">790</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyStringDefinitionImpl.html">PropertyStringDefinitionImpl</a>) result)
<a class="jxr_linenumber" name="791" href="#791">791</a>                     .setChoices(convertChoiceStringList(((CmisPropertyStringDefinitionType) propertyDefinition)
<a class="jxr_linenumber" name="792" href="#792">792</a>                             .getChoice()));
<a class="jxr_linenumber" name="793" href="#793">793</a> 
<a class="jxr_linenumber" name="794" href="#794">794</a>             CmisPropertyString prop = ((CmisPropertyStringDefinitionType) propertyDefinition).getDefaultValue();
<a class="jxr_linenumber" name="795" href="#795">795</a>             <strong class="jxr_keyword">if</strong> (prop != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="796" href="#796">796</a>                 ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyStringDefinitionImpl.html">PropertyStringDefinitionImpl</a>) result).setDefaultValue(prop.getValue());
<a class="jxr_linenumber" name="797" href="#797">797</a>             }
<a class="jxr_linenumber" name="798" href="#798">798</a> 
<a class="jxr_linenumber" name="799" href="#799">799</a>             <em class="jxr_comment">// specific</em>
<a class="jxr_linenumber" name="800" href="#800">800</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyStringDefinitionImpl.html">PropertyStringDefinitionImpl</a>) result)
<a class="jxr_linenumber" name="801" href="#801">801</a>                     .setMaxLength(((CmisPropertyStringDefinitionType) propertyDefinition).getMaxLength());
<a class="jxr_linenumber" name="802" href="#802">802</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof CmisPropertyIdDefinitionType) {
<a class="jxr_linenumber" name="803" href="#803">803</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIdDefinitionImpl.html">PropertyIdDefinitionImpl</a>();
<a class="jxr_linenumber" name="804" href="#804">804</a> 
<a class="jxr_linenumber" name="805" href="#805">805</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIdDefinitionImpl.html">PropertyIdDefinitionImpl</a>) result)
<a class="jxr_linenumber" name="806" href="#806">806</a>                     .setChoices(convertChoiceIdList(((CmisPropertyIdDefinitionType) propertyDefinition).getChoice()));
<a class="jxr_linenumber" name="807" href="#807">807</a> 
<a class="jxr_linenumber" name="808" href="#808">808</a>             CmisPropertyId prop = ((CmisPropertyIdDefinitionType) propertyDefinition).getDefaultValue();
<a class="jxr_linenumber" name="809" href="#809">809</a>             <strong class="jxr_keyword">if</strong> (prop != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="810" href="#810">810</a>                 ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIdDefinitionImpl.html">PropertyIdDefinitionImpl</a>) result).setDefaultValue(prop.getValue());
<a class="jxr_linenumber" name="811" href="#811">811</a>             }
<a class="jxr_linenumber" name="812" href="#812">812</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof CmisPropertyIntegerDefinitionType) {
<a class="jxr_linenumber" name="813" href="#813">813</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIntegerDefinitionImpl.html">PropertyIntegerDefinitionImpl</a>();
<a class="jxr_linenumber" name="814" href="#814">814</a> 
<a class="jxr_linenumber" name="815" href="#815">815</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIntegerDefinitionImpl.html">PropertyIntegerDefinitionImpl</a>) result)
<a class="jxr_linenumber" name="816" href="#816">816</a>                     .setChoices(convertChoiceIntegerList(((CmisPropertyIntegerDefinitionType) propertyDefinition)
<a class="jxr_linenumber" name="817" href="#817">817</a>                             .getChoice()));
<a class="jxr_linenumber" name="818" href="#818">818</a> 
<a class="jxr_linenumber" name="819" href="#819">819</a>             CmisPropertyInteger prop = ((CmisPropertyIntegerDefinitionType) propertyDefinition).getDefaultValue();
<a class="jxr_linenumber" name="820" href="#820">820</a>             <strong class="jxr_keyword">if</strong> (prop != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="821" href="#821">821</a>                 ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIntegerDefinitionImpl.html">PropertyIntegerDefinitionImpl</a>) result).setDefaultValue(prop.getValue());
<a class="jxr_linenumber" name="822" href="#822">822</a>             }
<a class="jxr_linenumber" name="823" href="#823">823</a> 
<a class="jxr_linenumber" name="824" href="#824">824</a>             <em class="jxr_comment">// specific</em>
<a class="jxr_linenumber" name="825" href="#825">825</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIntegerDefinitionImpl.html">PropertyIntegerDefinitionImpl</a>) result)
<a class="jxr_linenumber" name="826" href="#826">826</a>                     .setMinValue(((CmisPropertyIntegerDefinitionType) propertyDefinition).getMinValue());
<a class="jxr_linenumber" name="827" href="#827">827</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIntegerDefinitionImpl.html">PropertyIntegerDefinitionImpl</a>) result)
<a class="jxr_linenumber" name="828" href="#828">828</a>                     .setMaxValue(((CmisPropertyIntegerDefinitionType) propertyDefinition).getMaxValue());
<a class="jxr_linenumber" name="829" href="#829">829</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof CmisPropertyDecimalDefinitionType) {
<a class="jxr_linenumber" name="830" href="#830">830</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDecimalDefinitionImpl.html">PropertyDecimalDefinitionImpl</a>();
<a class="jxr_linenumber" name="831" href="#831">831</a> 
<a class="jxr_linenumber" name="832" href="#832">832</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDecimalDefinitionImpl.html">PropertyDecimalDefinitionImpl</a>) result)
<a class="jxr_linenumber" name="833" href="#833">833</a>                     .setChoices(convertChoiceDecimalList(((CmisPropertyDecimalDefinitionType) propertyDefinition)
<a class="jxr_linenumber" name="834" href="#834">834</a>                             .getChoice()));
<a class="jxr_linenumber" name="835" href="#835">835</a> 
<a class="jxr_linenumber" name="836" href="#836">836</a>             CmisPropertyDecimal prop = ((CmisPropertyDecimalDefinitionType) propertyDefinition).getDefaultValue();
<a class="jxr_linenumber" name="837" href="#837">837</a>             <strong class="jxr_keyword">if</strong> (prop != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="838" href="#838">838</a>                 ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDecimalDefinitionImpl.html">PropertyDecimalDefinitionImpl</a>) result).setDefaultValue(prop.getValue());
<a class="jxr_linenumber" name="839" href="#839">839</a>             }
<a class="jxr_linenumber" name="840" href="#840">840</a> 
<a class="jxr_linenumber" name="841" href="#841">841</a>             <em class="jxr_comment">// specific</em>
<a class="jxr_linenumber" name="842" href="#842">842</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDecimalDefinitionImpl.html">PropertyDecimalDefinitionImpl</a>) result)
<a class="jxr_linenumber" name="843" href="#843">843</a>                     .setMinValue(((CmisPropertyDecimalDefinitionType) propertyDefinition).getMinValue());
<a class="jxr_linenumber" name="844" href="#844">844</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDecimalDefinitionImpl.html">PropertyDecimalDefinitionImpl</a>) result)
<a class="jxr_linenumber" name="845" href="#845">845</a>                     .setMaxValue(((CmisPropertyDecimalDefinitionType) propertyDefinition).getMaxValue());
<a class="jxr_linenumber" name="846" href="#846">846</a> 
<a class="jxr_linenumber" name="847" href="#847">847</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof CmisPropertyBooleanDefinitionType) {
<a class="jxr_linenumber" name="848" href="#848">848</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyBooleanDefinitionImpl.html">PropertyBooleanDefinitionImpl</a>();
<a class="jxr_linenumber" name="849" href="#849">849</a> 
<a class="jxr_linenumber" name="850" href="#850">850</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyBooleanDefinitionImpl.html">PropertyBooleanDefinitionImpl</a>) result)
<a class="jxr_linenumber" name="851" href="#851">851</a>                     .setChoices(convertChoiceBooleanList(((CmisPropertyBooleanDefinitionType) propertyDefinition)
<a class="jxr_linenumber" name="852" href="#852">852</a>                             .getChoice()));
<a class="jxr_linenumber" name="853" href="#853">853</a> 
<a class="jxr_linenumber" name="854" href="#854">854</a>             CmisPropertyBoolean prop = ((CmisPropertyBooleanDefinitionType) propertyDefinition).getDefaultValue();
<a class="jxr_linenumber" name="855" href="#855">855</a>             <strong class="jxr_keyword">if</strong> (prop != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="856" href="#856">856</a>                 ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyBooleanDefinitionImpl.html">PropertyBooleanDefinitionImpl</a>) result).setDefaultValue(prop.getValue());
<a class="jxr_linenumber" name="857" href="#857">857</a>             }
<a class="jxr_linenumber" name="858" href="#858">858</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof CmisPropertyDateTimeDefinitionType) {
<a class="jxr_linenumber" name="859" href="#859">859</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDateTimeDefinitionImpl.html">PropertyDateTimeDefinitionImpl</a>();
<a class="jxr_linenumber" name="860" href="#860">860</a> 
<a class="jxr_linenumber" name="861" href="#861">861</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDateTimeDefinitionImpl.html">PropertyDateTimeDefinitionImpl</a>) result)
<a class="jxr_linenumber" name="862" href="#862">862</a>                     .setChoices(convertChoiceDateTimeList(((CmisPropertyDateTimeDefinitionType) propertyDefinition)
<a class="jxr_linenumber" name="863" href="#863">863</a>                             .getChoice()));
<a class="jxr_linenumber" name="864" href="#864">864</a> 
<a class="jxr_linenumber" name="865" href="#865">865</a>             CmisPropertyDateTime prop = ((CmisPropertyDateTimeDefinitionType) propertyDefinition).getDefaultValue();
<a class="jxr_linenumber" name="866" href="#866">866</a>             <strong class="jxr_keyword">if</strong> (prop != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="867" href="#867">867</a>                 ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDateTimeDefinitionImpl.html">PropertyDateTimeDefinitionImpl</a>) result).setDefaultValue(convertXMLCalendar(prop.getValue()));
<a class="jxr_linenumber" name="868" href="#868">868</a>             }
<a class="jxr_linenumber" name="869" href="#869">869</a> 
<a class="jxr_linenumber" name="870" href="#870">870</a>             <em class="jxr_comment">// specific</em>
<a class="jxr_linenumber" name="871" href="#871">871</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDateTimeDefinitionImpl.html">PropertyDateTimeDefinitionImpl</a>) result).setDateTimeResolution(convert(DateTimeResolution.<strong class="jxr_keyword">class</strong>,
<a class="jxr_linenumber" name="872" href="#872">872</a>                     ((CmisPropertyDateTimeDefinitionType) propertyDefinition).getResolution()));
<a class="jxr_linenumber" name="873" href="#873">873</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof CmisPropertyHtmlDefinitionType) {
<a class="jxr_linenumber" name="874" href="#874">874</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyHtmlDefinitionImpl.html">PropertyHtmlDefinitionImpl</a>();
<a class="jxr_linenumber" name="875" href="#875">875</a> 
<a class="jxr_linenumber" name="876" href="#876">876</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyHtmlDefinitionImpl.html">PropertyHtmlDefinitionImpl</a>) result)
<a class="jxr_linenumber" name="877" href="#877">877</a>                     .setChoices(convertChoiceHtmlList(((CmisPropertyHtmlDefinitionType) propertyDefinition).getChoice()));
<a class="jxr_linenumber" name="878" href="#878">878</a> 
<a class="jxr_linenumber" name="879" href="#879">879</a>             CmisPropertyHtml prop = ((CmisPropertyHtmlDefinitionType) propertyDefinition).getDefaultValue();
<a class="jxr_linenumber" name="880" href="#880">880</a>             <strong class="jxr_keyword">if</strong> (prop != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="881" href="#881">881</a>                 ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyHtmlDefinitionImpl.html">PropertyHtmlDefinitionImpl</a>) result).setDefaultValue(prop.getValue());
<a class="jxr_linenumber" name="882" href="#882">882</a>             }
<a class="jxr_linenumber" name="883" href="#883">883</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof CmisPropertyUriDefinitionType) {
<a class="jxr_linenumber" name="884" href="#884">884</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyUriDefinitionImpl.html">PropertyUriDefinitionImpl</a>();
<a class="jxr_linenumber" name="885" href="#885">885</a> 
<a class="jxr_linenumber" name="886" href="#886">886</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyUriDefinitionImpl.html">PropertyUriDefinitionImpl</a>) result)
<a class="jxr_linenumber" name="887" href="#887">887</a>                     .setChoices(convertChoiceUriList(((CmisPropertyUriDefinitionType) propertyDefinition).getChoice()));
<a class="jxr_linenumber" name="888" href="#888">888</a> 
<a class="jxr_linenumber" name="889" href="#889">889</a>             CmisPropertyUri prop = ((CmisPropertyUriDefinitionType) propertyDefinition).getDefaultValue();
<a class="jxr_linenumber" name="890" href="#890">890</a>             <strong class="jxr_keyword">if</strong> (prop != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="891" href="#891">891</a>                 ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyUriDefinitionImpl.html">PropertyUriDefinitionImpl</a>) result).setDefaultValue(prop.getValue());
<a class="jxr_linenumber" name="892" href="#892">892</a>             }
<a class="jxr_linenumber" name="893" href="#893">893</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="894" href="#894">894</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="895" href="#895">895</a>         }
<a class="jxr_linenumber" name="896" href="#896">896</a> 
<a class="jxr_linenumber" name="897" href="#897">897</a>         result.setCardinality(convert(Cardinality.<strong class="jxr_keyword">class</strong>, propertyDefinition.getCardinality()));
<a class="jxr_linenumber" name="898" href="#898">898</a>         result.setDescription(propertyDefinition.getDescription());
<a class="jxr_linenumber" name="899" href="#899">899</a>         result.setDisplayName(propertyDefinition.getDisplayName());
<a class="jxr_linenumber" name="900" href="#900">900</a>         result.setId(propertyDefinition.getId());
<a class="jxr_linenumber" name="901" href="#901">901</a>         result.setIsInherited(propertyDefinition.isInherited());
<a class="jxr_linenumber" name="902" href="#902">902</a>         result.setIsOpenChoice(propertyDefinition.isOpenChoice());
<a class="jxr_linenumber" name="903" href="#903">903</a>         result.setIsQueryable(propertyDefinition.isQueryable());
<a class="jxr_linenumber" name="904" href="#904">904</a>         result.setIsOrderable(propertyDefinition.isOrderable());
<a class="jxr_linenumber" name="905" href="#905">905</a>         result.setIsRequired(propertyDefinition.isRequired());
<a class="jxr_linenumber" name="906" href="#906">906</a>         result.setLocalName(propertyDefinition.getLocalName());
<a class="jxr_linenumber" name="907" href="#907">907</a>         result.setLocalNamespace(propertyDefinition.getLocalNamespace());
<a class="jxr_linenumber" name="908" href="#908">908</a>         result.setPropertyType(convert(PropertyType.<strong class="jxr_keyword">class</strong>, propertyDefinition.getPropertyType()));
<a class="jxr_linenumber" name="909" href="#909">909</a>         result.setQueryName(propertyDefinition.getQueryName());
<a class="jxr_linenumber" name="910" href="#910">910</a>         result.setUpdatability(convert(Updatability.<strong class="jxr_keyword">class</strong>, propertyDefinition.getUpdatability()));
<a class="jxr_linenumber" name="911" href="#911">911</a> 
<a class="jxr_linenumber" name="912" href="#912">912</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="913" href="#913">913</a>         convertExtension(propertyDefinition, result);
<a class="jxr_linenumber" name="914" href="#914">914</a> 
<a class="jxr_linenumber" name="915" href="#915">915</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="916" href="#916">916</a>     }
<a class="jxr_linenumber" name="917" href="#917">917</a> 
<a class="jxr_linenumber" name="918" href="#918">918</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="919" href="#919">919</a> <em class="jxr_javadoccomment">     * Converts a type definition object.</em>
<a class="jxr_linenumber" name="920" href="#920">920</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="921" href="#921">921</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CmisTypeDefinitionType convert(TypeDefinition typeDefinition) {
<a class="jxr_linenumber" name="922" href="#922">922</a>         <strong class="jxr_keyword">if</strong> (typeDefinition == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="923" href="#923">923</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="924" href="#924">924</a>         }
<a class="jxr_linenumber" name="925" href="#925">925</a> 
<a class="jxr_linenumber" name="926" href="#926">926</a>         CmisTypeDefinitionType result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="927" href="#927">927</a> 
<a class="jxr_linenumber" name="928" href="#928">928</a>         <strong class="jxr_keyword">if</strong> (typeDefinition instanceof DocumentTypeDefinition) {
<a class="jxr_linenumber" name="929" href="#929">929</a>             result = <strong class="jxr_keyword">new</strong> CmisTypeDocumentDefinitionType();
<a class="jxr_linenumber" name="930" href="#930">930</a> 
<a class="jxr_linenumber" name="931" href="#931">931</a>             DocumentTypeDefinition docTypeDefintion = (DocumentTypeDefinition) typeDefinition;
<a class="jxr_linenumber" name="932" href="#932">932</a>             ((CmisTypeDocumentDefinitionType) result).setVersionable(convertBoolean(docTypeDefintion.isVersionable(),
<a class="jxr_linenumber" name="933" href="#933">933</a>                     false));
<a class="jxr_linenumber" name="934" href="#934">934</a>             ((CmisTypeDocumentDefinitionType) result).setContentStreamAllowed(convert(EnumContentStreamAllowed.<strong class="jxr_keyword">class</strong>,
<a class="jxr_linenumber" name="935" href="#935">935</a>                     docTypeDefintion.getContentStreamAllowed()));
<a class="jxr_linenumber" name="936" href="#936">936</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (typeDefinition instanceof FolderTypeDefinition) {
<a class="jxr_linenumber" name="937" href="#937">937</a>             result = <strong class="jxr_keyword">new</strong> CmisTypeFolderDefinitionType();
<a class="jxr_linenumber" name="938" href="#938">938</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (typeDefinition instanceof RelationshipTypeDefinition) {
<a class="jxr_linenumber" name="939" href="#939">939</a>             result = <strong class="jxr_keyword">new</strong> CmisTypeRelationshipDefinitionType();
<a class="jxr_linenumber" name="940" href="#940">940</a> 
<a class="jxr_linenumber" name="941" href="#941">941</a>             RelationshipTypeDefinition relationshipTypeDefinition = (RelationshipTypeDefinition) typeDefinition;
<a class="jxr_linenumber" name="942" href="#942">942</a> 
<a class="jxr_linenumber" name="943" href="#943">943</a>             <strong class="jxr_keyword">if</strong> (relationshipTypeDefinition.getAllowedSourceTypeIds() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="944" href="#944">944</a>                 <strong class="jxr_keyword">for</strong> (String type : relationshipTypeDefinition.getAllowedSourceTypeIds()) {
<a class="jxr_linenumber" name="945" href="#945">945</a>                     ((CmisTypeRelationshipDefinitionType) result).getAllowedSourceTypes().add(type);
<a class="jxr_linenumber" name="946" href="#946">946</a>                 }
<a class="jxr_linenumber" name="947" href="#947">947</a>             }
<a class="jxr_linenumber" name="948" href="#948">948</a> 
<a class="jxr_linenumber" name="949" href="#949">949</a>             <strong class="jxr_keyword">if</strong> (relationshipTypeDefinition.getAllowedTargetTypeIds() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="950" href="#950">950</a>                 <strong class="jxr_keyword">for</strong> (String type : relationshipTypeDefinition.getAllowedTargetTypeIds()) {
<a class="jxr_linenumber" name="951" href="#951">951</a>                     ((CmisTypeRelationshipDefinitionType) result).getAllowedTargetTypes().add(type);
<a class="jxr_linenumber" name="952" href="#952">952</a>                 }
<a class="jxr_linenumber" name="953" href="#953">953</a>             }
<a class="jxr_linenumber" name="954" href="#954">954</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (typeDefinition instanceof PolicyTypeDefinition) {
<a class="jxr_linenumber" name="955" href="#955">955</a>             result = <strong class="jxr_keyword">new</strong> CmisTypePolicyDefinitionType();
<a class="jxr_linenumber" name="956" href="#956">956</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (typeDefinition instanceof ItemTypeDefinition) {
<a class="jxr_linenumber" name="957" href="#957">957</a>             result = <strong class="jxr_keyword">new</strong> CmisTypeItemDefinitionType();
<a class="jxr_linenumber" name="958" href="#958">958</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (typeDefinition instanceof SecondaryTypeDefinition) {
<a class="jxr_linenumber" name="959" href="#959">959</a>             result = <strong class="jxr_keyword">new</strong> CmisTypeSecondaryDefinitionType();
<a class="jxr_linenumber" name="960" href="#960">960</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="961" href="#961">961</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="962" href="#962">962</a>         }
<a class="jxr_linenumber" name="963" href="#963">963</a> 
<a class="jxr_linenumber" name="964" href="#964">964</a>         result.setBaseId(convert(EnumBaseObjectTypeIds.<strong class="jxr_keyword">class</strong>, typeDefinition.getBaseTypeId()));
<a class="jxr_linenumber" name="965" href="#965">965</a>         result.setControllableACL(convertBoolean(typeDefinition.isControllableAcl(), false));
<a class="jxr_linenumber" name="966" href="#966">966</a>         result.setControllablePolicy(convertBoolean(typeDefinition.isControllablePolicy(), false));
<a class="jxr_linenumber" name="967" href="#967">967</a>         result.setCreatable(convertBoolean(typeDefinition.isCreatable(), false));
<a class="jxr_linenumber" name="968" href="#968">968</a>         result.setDescription(typeDefinition.getDescription());
<a class="jxr_linenumber" name="969" href="#969">969</a>         result.setDisplayName(typeDefinition.getDisplayName());
<a class="jxr_linenumber" name="970" href="#970">970</a>         result.setFileable(convertBoolean(typeDefinition.isFileable(), false));
<a class="jxr_linenumber" name="971" href="#971">971</a>         result.setFulltextIndexed(convertBoolean(typeDefinition.isFulltextIndexed(), false));
<a class="jxr_linenumber" name="972" href="#972">972</a>         result.setId(typeDefinition.getId());
<a class="jxr_linenumber" name="973" href="#973">973</a>         result.setIncludedInSupertypeQuery(convertBoolean(typeDefinition.isIncludedInSupertypeQuery(), false));
<a class="jxr_linenumber" name="974" href="#974">974</a>         result.setLocalName(typeDefinition.getLocalName());
<a class="jxr_linenumber" name="975" href="#975">975</a>         result.setLocalNamespace(typeDefinition.getLocalNamespace());
<a class="jxr_linenumber" name="976" href="#976">976</a>         result.setParentId(typeDefinition.getParentTypeId());
<a class="jxr_linenumber" name="977" href="#977">977</a>         result.setQueryable(convertBoolean(typeDefinition.isQueryable(), false));
<a class="jxr_linenumber" name="978" href="#978">978</a>         result.setQueryName(typeDefinition.getQueryName());
<a class="jxr_linenumber" name="979" href="#979">979</a> 
<a class="jxr_linenumber" name="980" href="#980">980</a>         <strong class="jxr_keyword">if</strong> (typeDefinition.getTypeMutability() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="981" href="#981">981</a>             TypeMutability typeMutability = typeDefinition.getTypeMutability();
<a class="jxr_linenumber" name="982" href="#982">982</a>             CmisTypeMutabilityCapabilitiesType target = <strong class="jxr_keyword">new</strong> CmisTypeMutabilityCapabilitiesType();
<a class="jxr_linenumber" name="983" href="#983">983</a> 
<a class="jxr_linenumber" name="984" href="#984">984</a>             target.setCreate(typeMutability.canCreate() == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">true</strong> : typeMutability.canCreate());
<a class="jxr_linenumber" name="985" href="#985">985</a>             target.setUpdate(typeMutability.canUpdate() == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">true</strong> : typeMutability.canUpdate());
<a class="jxr_linenumber" name="986" href="#986">986</a>             target.setDelete(typeMutability.canDelete() == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">true</strong> : typeMutability.canDelete());
<a class="jxr_linenumber" name="987" href="#987">987</a> 
<a class="jxr_linenumber" name="988" href="#988">988</a>             convertExtension(typeMutability, target);
<a class="jxr_linenumber" name="989" href="#989">989</a> 
<a class="jxr_linenumber" name="990" href="#990">990</a>             result.setTypeMutability(target);
<a class="jxr_linenumber" name="991" href="#991">991</a>         }
<a class="jxr_linenumber" name="992" href="#992">992</a> 
<a class="jxr_linenumber" name="993" href="#993">993</a>         <strong class="jxr_keyword">if</strong> (typeDefinition.getPropertyDefinitions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="994" href="#994">994</a>             <strong class="jxr_keyword">for</strong> (PropertyDefinition&lt;?&gt; propDef : typeDefinition.getPropertyDefinitions().values()) {
<a class="jxr_linenumber" name="995" href="#995">995</a>                 result.getPropertyDefinition().add(convert(propDef));
<a class="jxr_linenumber" name="996" href="#996">996</a>             }
<a class="jxr_linenumber" name="997" href="#997">997</a>         }
<a class="jxr_linenumber" name="998" href="#998">998</a> 
<a class="jxr_linenumber" name="999" href="#999">999</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="1000" href="#1000">1000</a>         convertExtension(typeDefinition, result);
<a class="jxr_linenumber" name="1001" href="#1001">1001</a> 
<a class="jxr_linenumber" name="1002" href="#1002">1002</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1003" href="#1003">1003</a>     }
<a class="jxr_linenumber" name="1004" href="#1004">1004</a> 
<a class="jxr_linenumber" name="1005" href="#1005">1005</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1006" href="#1006">1006</a> <em class="jxr_javadoccomment">     * Converts a property definition object.</em>
<a class="jxr_linenumber" name="1007" href="#1007">1007</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1008" href="#1008">1008</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CmisPropertyDefinitionType convert(PropertyDefinition&lt;?&gt; propertyDefinition) {
<a class="jxr_linenumber" name="1009" href="#1009">1009</a>         <strong class="jxr_keyword">if</strong> (propertyDefinition == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1010" href="#1010">1010</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1011" href="#1011">1011</a>         }
<a class="jxr_linenumber" name="1012" href="#1012">1012</a> 
<a class="jxr_linenumber" name="1013" href="#1013">1013</a>         CmisPropertyDefinitionType result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1014" href="#1014">1014</a> 
<a class="jxr_linenumber" name="1015" href="#1015">1015</a>         <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof PropertyStringDefinition) {
<a class="jxr_linenumber" name="1016" href="#1016">1016</a>             result = <strong class="jxr_keyword">new</strong> CmisPropertyStringDefinitionType();
<a class="jxr_linenumber" name="1017" href="#1017">1017</a> 
<a class="jxr_linenumber" name="1018" href="#1018">1018</a>             PropertyStringDefinition source = (PropertyStringDefinition) propertyDefinition;
<a class="jxr_linenumber" name="1019" href="#1019">1019</a>             CmisPropertyStringDefinitionType target = (CmisPropertyStringDefinitionType) result;
<a class="jxr_linenumber" name="1020" href="#1020">1020</a> 
<a class="jxr_linenumber" name="1021" href="#1021">1021</a>             convertChoiceStringList(source.getChoices(), target.getChoice());
<a class="jxr_linenumber" name="1022" href="#1022">1022</a> 
<a class="jxr_linenumber" name="1023" href="#1023">1023</a>             <strong class="jxr_keyword">if</strong> (source.getDefaultValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1024" href="#1024">1024</a>                 CmisPropertyString defaultValue = <strong class="jxr_keyword">new</strong> CmisPropertyString();
<a class="jxr_linenumber" name="1025" href="#1025">1025</a>                 defaultValue.setPropertyDefinitionId(propertyDefinition.getId());
<a class="jxr_linenumber" name="1026" href="#1026">1026</a>                 <strong class="jxr_keyword">for</strong> (String value : source.getDefaultValue()) {
<a class="jxr_linenumber" name="1027" href="#1027">1027</a>                     defaultValue.getValue().add(value);
<a class="jxr_linenumber" name="1028" href="#1028">1028</a>                 }
<a class="jxr_linenumber" name="1029" href="#1029">1029</a>                 target.setDefaultValue(defaultValue);
<a class="jxr_linenumber" name="1030" href="#1030">1030</a>             }
<a class="jxr_linenumber" name="1031" href="#1031">1031</a> 
<a class="jxr_linenumber" name="1032" href="#1032">1032</a>             <em class="jxr_comment">// specific</em>
<a class="jxr_linenumber" name="1033" href="#1033">1033</a>             target.setMaxLength(source.getMaxLength());
<a class="jxr_linenumber" name="1034" href="#1034">1034</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof PropertyIdDefinition) {
<a class="jxr_linenumber" name="1035" href="#1035">1035</a>             result = <strong class="jxr_keyword">new</strong> CmisPropertyIdDefinitionType();
<a class="jxr_linenumber" name="1036" href="#1036">1036</a> 
<a class="jxr_linenumber" name="1037" href="#1037">1037</a>             PropertyIdDefinition source = (PropertyIdDefinition) propertyDefinition;
<a class="jxr_linenumber" name="1038" href="#1038">1038</a>             CmisPropertyIdDefinitionType target = (CmisPropertyIdDefinitionType) result;
<a class="jxr_linenumber" name="1039" href="#1039">1039</a> 
<a class="jxr_linenumber" name="1040" href="#1040">1040</a>             convertChoiceIdList(source.getChoices(), target.getChoice());
<a class="jxr_linenumber" name="1041" href="#1041">1041</a> 
<a class="jxr_linenumber" name="1042" href="#1042">1042</a>             <strong class="jxr_keyword">if</strong> (source.getDefaultValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1043" href="#1043">1043</a>                 CmisPropertyId defaultValue = <strong class="jxr_keyword">new</strong> CmisPropertyId();
<a class="jxr_linenumber" name="1044" href="#1044">1044</a>                 defaultValue.setPropertyDefinitionId(propertyDefinition.getId());
<a class="jxr_linenumber" name="1045" href="#1045">1045</a>                 <strong class="jxr_keyword">for</strong> (String value : source.getDefaultValue()) {
<a class="jxr_linenumber" name="1046" href="#1046">1046</a>                     defaultValue.getValue().add(value);
<a class="jxr_linenumber" name="1047" href="#1047">1047</a>                 }
<a class="jxr_linenumber" name="1048" href="#1048">1048</a>                 target.setDefaultValue(defaultValue);
<a class="jxr_linenumber" name="1049" href="#1049">1049</a>             }
<a class="jxr_linenumber" name="1050" href="#1050">1050</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof PropertyIntegerDefinition) {
<a class="jxr_linenumber" name="1051" href="#1051">1051</a>             result = <strong class="jxr_keyword">new</strong> CmisPropertyIntegerDefinitionType();
<a class="jxr_linenumber" name="1052" href="#1052">1052</a> 
<a class="jxr_linenumber" name="1053" href="#1053">1053</a>             PropertyIntegerDefinition source = (PropertyIntegerDefinition) propertyDefinition;
<a class="jxr_linenumber" name="1054" href="#1054">1054</a>             CmisPropertyIntegerDefinitionType target = (CmisPropertyIntegerDefinitionType) result;
<a class="jxr_linenumber" name="1055" href="#1055">1055</a> 
<a class="jxr_linenumber" name="1056" href="#1056">1056</a>             convertChoiceIntegerList(source.getChoices(), target.getChoice());
<a class="jxr_linenumber" name="1057" href="#1057">1057</a> 
<a class="jxr_linenumber" name="1058" href="#1058">1058</a>             <strong class="jxr_keyword">if</strong> (source.getDefaultValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1059" href="#1059">1059</a>                 CmisPropertyInteger defaultValue = <strong class="jxr_keyword">new</strong> CmisPropertyInteger();
<a class="jxr_linenumber" name="1060" href="#1060">1060</a>                 defaultValue.setPropertyDefinitionId(propertyDefinition.getId());
<a class="jxr_linenumber" name="1061" href="#1061">1061</a>                 <strong class="jxr_keyword">for</strong> (BigInteger value : source.getDefaultValue()) {
<a class="jxr_linenumber" name="1062" href="#1062">1062</a>                     defaultValue.getValue().add(value);
<a class="jxr_linenumber" name="1063" href="#1063">1063</a>                 }
<a class="jxr_linenumber" name="1064" href="#1064">1064</a>                 target.setDefaultValue(defaultValue);
<a class="jxr_linenumber" name="1065" href="#1065">1065</a>             }
<a class="jxr_linenumber" name="1066" href="#1066">1066</a> 
<a class="jxr_linenumber" name="1067" href="#1067">1067</a>             <em class="jxr_comment">// specific</em>
<a class="jxr_linenumber" name="1068" href="#1068">1068</a>             target.setMinValue(source.getMinValue());
<a class="jxr_linenumber" name="1069" href="#1069">1069</a>             target.setMaxValue(source.getMaxValue());
<a class="jxr_linenumber" name="1070" href="#1070">1070</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof PropertyDecimalDefinition) {
<a class="jxr_linenumber" name="1071" href="#1071">1071</a>             result = <strong class="jxr_keyword">new</strong> CmisPropertyDecimalDefinitionType();
<a class="jxr_linenumber" name="1072" href="#1072">1072</a> 
<a class="jxr_linenumber" name="1073" href="#1073">1073</a>             PropertyDecimalDefinition source = (PropertyDecimalDefinition) propertyDefinition;
<a class="jxr_linenumber" name="1074" href="#1074">1074</a>             CmisPropertyDecimalDefinitionType target = (CmisPropertyDecimalDefinitionType) result;
<a class="jxr_linenumber" name="1075" href="#1075">1075</a> 
<a class="jxr_linenumber" name="1076" href="#1076">1076</a>             convertChoiceDecimalList(source.getChoices(), target.getChoice());
<a class="jxr_linenumber" name="1077" href="#1077">1077</a> 
<a class="jxr_linenumber" name="1078" href="#1078">1078</a>             <strong class="jxr_keyword">if</strong> (source.getDefaultValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1079" href="#1079">1079</a>                 CmisPropertyDecimal defaultValue = <strong class="jxr_keyword">new</strong> CmisPropertyDecimal();
<a class="jxr_linenumber" name="1080" href="#1080">1080</a>                 defaultValue.setPropertyDefinitionId(propertyDefinition.getId());
<a class="jxr_linenumber" name="1081" href="#1081">1081</a>                 <strong class="jxr_keyword">for</strong> (BigDecimal value : source.getDefaultValue()) {
<a class="jxr_linenumber" name="1082" href="#1082">1082</a>                     defaultValue.getValue().add(value);
<a class="jxr_linenumber" name="1083" href="#1083">1083</a>                 }
<a class="jxr_linenumber" name="1084" href="#1084">1084</a>                 target.setDefaultValue(defaultValue);
<a class="jxr_linenumber" name="1085" href="#1085">1085</a>             }
<a class="jxr_linenumber" name="1086" href="#1086">1086</a> 
<a class="jxr_linenumber" name="1087" href="#1087">1087</a>             <em class="jxr_comment">// specific</em>
<a class="jxr_linenumber" name="1088" href="#1088">1088</a>             target.setMinValue(source.getMinValue());
<a class="jxr_linenumber" name="1089" href="#1089">1089</a>             target.setMaxValue(source.getMaxValue());
<a class="jxr_linenumber" name="1090" href="#1090">1090</a>             <strong class="jxr_keyword">if</strong> (source.getPrecision() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1091" href="#1091">1091</a>                 target.setPrecision(source.getPrecision().value());
<a class="jxr_linenumber" name="1092" href="#1092">1092</a>             }
<a class="jxr_linenumber" name="1093" href="#1093">1093</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof PropertyBooleanDefinition) {
<a class="jxr_linenumber" name="1094" href="#1094">1094</a>             result = <strong class="jxr_keyword">new</strong> CmisPropertyBooleanDefinitionType();
<a class="jxr_linenumber" name="1095" href="#1095">1095</a> 
<a class="jxr_linenumber" name="1096" href="#1096">1096</a>             PropertyBooleanDefinition source = (PropertyBooleanDefinition) propertyDefinition;
<a class="jxr_linenumber" name="1097" href="#1097">1097</a>             CmisPropertyBooleanDefinitionType target = (CmisPropertyBooleanDefinitionType) result;
<a class="jxr_linenumber" name="1098" href="#1098">1098</a> 
<a class="jxr_linenumber" name="1099" href="#1099">1099</a>             convertChoiceBooleanList(source.getChoices(), target.getChoice());
<a class="jxr_linenumber" name="1100" href="#1100">1100</a> 
<a class="jxr_linenumber" name="1101" href="#1101">1101</a>             <strong class="jxr_keyword">if</strong> (source.getDefaultValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1102" href="#1102">1102</a>                 CmisPropertyBoolean defaultValue = <strong class="jxr_keyword">new</strong> CmisPropertyBoolean();
<a class="jxr_linenumber" name="1103" href="#1103">1103</a>                 defaultValue.setPropertyDefinitionId(propertyDefinition.getId());
<a class="jxr_linenumber" name="1104" href="#1104">1104</a>                 <strong class="jxr_keyword">for</strong> (Boolean value : source.getDefaultValue()) {
<a class="jxr_linenumber" name="1105" href="#1105">1105</a>                     defaultValue.getValue().add(value);
<a class="jxr_linenumber" name="1106" href="#1106">1106</a>                 }
<a class="jxr_linenumber" name="1107" href="#1107">1107</a>                 target.setDefaultValue(defaultValue);
<a class="jxr_linenumber" name="1108" href="#1108">1108</a>             }
<a class="jxr_linenumber" name="1109" href="#1109">1109</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof PropertyDateTimeDefinition) {
<a class="jxr_linenumber" name="1110" href="#1110">1110</a>             result = <strong class="jxr_keyword">new</strong> CmisPropertyDateTimeDefinitionType();
<a class="jxr_linenumber" name="1111" href="#1111">1111</a> 
<a class="jxr_linenumber" name="1112" href="#1112">1112</a>             PropertyDateTimeDefinition source = (PropertyDateTimeDefinition) propertyDefinition;
<a class="jxr_linenumber" name="1113" href="#1113">1113</a>             CmisPropertyDateTimeDefinitionType target = (CmisPropertyDateTimeDefinitionType) result;
<a class="jxr_linenumber" name="1114" href="#1114">1114</a> 
<a class="jxr_linenumber" name="1115" href="#1115">1115</a>             convertChoiceDateTimeList(source.getChoices(), target.getChoice());
<a class="jxr_linenumber" name="1116" href="#1116">1116</a> 
<a class="jxr_linenumber" name="1117" href="#1117">1117</a>             <strong class="jxr_keyword">if</strong> (source.getDefaultValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1118" href="#1118">1118</a>                 CmisPropertyDateTime defaultValue = <strong class="jxr_keyword">new</strong> CmisPropertyDateTime();
<a class="jxr_linenumber" name="1119" href="#1119">1119</a>                 defaultValue.setPropertyDefinitionId(propertyDefinition.getId());
<a class="jxr_linenumber" name="1120" href="#1120">1120</a>                 <strong class="jxr_keyword">for</strong> (XMLGregorianCalendar value : convertCalendar(source.getDefaultValue())) {
<a class="jxr_linenumber" name="1121" href="#1121">1121</a>                     defaultValue.getValue().add(value);
<a class="jxr_linenumber" name="1122" href="#1122">1122</a>                 }
<a class="jxr_linenumber" name="1123" href="#1123">1123</a>                 target.setDefaultValue(defaultValue);
<a class="jxr_linenumber" name="1124" href="#1124">1124</a>             }
<a class="jxr_linenumber" name="1125" href="#1125">1125</a> 
<a class="jxr_linenumber" name="1126" href="#1126">1126</a>             <em class="jxr_comment">// specific</em>
<a class="jxr_linenumber" name="1127" href="#1127">1127</a>             target.setResolution(convert(EnumDateTimeResolution.<strong class="jxr_keyword">class</strong>, source.getDateTimeResolution()));
<a class="jxr_linenumber" name="1128" href="#1128">1128</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof PropertyHtmlDefinition) {
<a class="jxr_linenumber" name="1129" href="#1129">1129</a>             result = <strong class="jxr_keyword">new</strong> CmisPropertyHtmlDefinitionType();
<a class="jxr_linenumber" name="1130" href="#1130">1130</a> 
<a class="jxr_linenumber" name="1131" href="#1131">1131</a>             PropertyHtmlDefinition source = (PropertyHtmlDefinition) propertyDefinition;
<a class="jxr_linenumber" name="1132" href="#1132">1132</a>             CmisPropertyHtmlDefinitionType target = (CmisPropertyHtmlDefinitionType) result;
<a class="jxr_linenumber" name="1133" href="#1133">1133</a> 
<a class="jxr_linenumber" name="1134" href="#1134">1134</a>             convertChoiceHtmlList(source.getChoices(), target.getChoice());
<a class="jxr_linenumber" name="1135" href="#1135">1135</a> 
<a class="jxr_linenumber" name="1136" href="#1136">1136</a>             <strong class="jxr_keyword">if</strong> (source.getDefaultValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1137" href="#1137">1137</a>                 CmisPropertyHtml defaultValue = <strong class="jxr_keyword">new</strong> CmisPropertyHtml();
<a class="jxr_linenumber" name="1138" href="#1138">1138</a>                 defaultValue.setPropertyDefinitionId(propertyDefinition.getId());
<a class="jxr_linenumber" name="1139" href="#1139">1139</a>                 <strong class="jxr_keyword">for</strong> (String value : source.getDefaultValue()) {
<a class="jxr_linenumber" name="1140" href="#1140">1140</a>                     defaultValue.getValue().add(value);
<a class="jxr_linenumber" name="1141" href="#1141">1141</a>                 }
<a class="jxr_linenumber" name="1142" href="#1142">1142</a>                 target.setDefaultValue(defaultValue);
<a class="jxr_linenumber" name="1143" href="#1143">1143</a>             }
<a class="jxr_linenumber" name="1144" href="#1144">1144</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof PropertyUriDefinition) {
<a class="jxr_linenumber" name="1145" href="#1145">1145</a>             result = <strong class="jxr_keyword">new</strong> CmisPropertyUriDefinitionType();
<a class="jxr_linenumber" name="1146" href="#1146">1146</a> 
<a class="jxr_linenumber" name="1147" href="#1147">1147</a>             PropertyUriDefinition source = (PropertyUriDefinition) propertyDefinition;
<a class="jxr_linenumber" name="1148" href="#1148">1148</a>             CmisPropertyUriDefinitionType target = (CmisPropertyUriDefinitionType) result;
<a class="jxr_linenumber" name="1149" href="#1149">1149</a> 
<a class="jxr_linenumber" name="1150" href="#1150">1150</a>             convertChoiceUriList(source.getChoices(), target.getChoice());
<a class="jxr_linenumber" name="1151" href="#1151">1151</a> 
<a class="jxr_linenumber" name="1152" href="#1152">1152</a>             <strong class="jxr_keyword">if</strong> (source.getDefaultValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1153" href="#1153">1153</a>                 CmisPropertyUri defaultValue = <strong class="jxr_keyword">new</strong> CmisPropertyUri();
<a class="jxr_linenumber" name="1154" href="#1154">1154</a>                 defaultValue.setPropertyDefinitionId(propertyDefinition.getId());
<a class="jxr_linenumber" name="1155" href="#1155">1155</a>                 <strong class="jxr_keyword">for</strong> (String value : source.getDefaultValue()) {
<a class="jxr_linenumber" name="1156" href="#1156">1156</a>                     defaultValue.getValue().add(value);
<a class="jxr_linenumber" name="1157" href="#1157">1157</a>                 }
<a class="jxr_linenumber" name="1158" href="#1158">1158</a>                 target.setDefaultValue(defaultValue);
<a class="jxr_linenumber" name="1159" href="#1159">1159</a>             }
<a class="jxr_linenumber" name="1160" href="#1160">1160</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1161" href="#1161">1161</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1162" href="#1162">1162</a>         }
<a class="jxr_linenumber" name="1163" href="#1163">1163</a> 
<a class="jxr_linenumber" name="1164" href="#1164">1164</a>         result.setCardinality(convert(EnumCardinality.<strong class="jxr_keyword">class</strong>, propertyDefinition.getCardinality()));
<a class="jxr_linenumber" name="1165" href="#1165">1165</a>         result.setDescription(propertyDefinition.getDescription());
<a class="jxr_linenumber" name="1166" href="#1166">1166</a>         result.setDisplayName(propertyDefinition.getDisplayName());
<a class="jxr_linenumber" name="1167" href="#1167">1167</a>         result.setId(propertyDefinition.getId());
<a class="jxr_linenumber" name="1168" href="#1168">1168</a>         result.setInherited(propertyDefinition.isInherited());
<a class="jxr_linenumber" name="1169" href="#1169">1169</a>         result.setLocalName(propertyDefinition.getLocalName());
<a class="jxr_linenumber" name="1170" href="#1170">1170</a>         result.setLocalNamespace(propertyDefinition.getLocalNamespace());
<a class="jxr_linenumber" name="1171" href="#1171">1171</a>         result.setOpenChoice(propertyDefinition.isOpenChoice());
<a class="jxr_linenumber" name="1172" href="#1172">1172</a>         result.setOrderable(convertBoolean(propertyDefinition.isOrderable(), false));
<a class="jxr_linenumber" name="1173" href="#1173">1173</a>         result.setPropertyType(convert(EnumPropertyType.<strong class="jxr_keyword">class</strong>, propertyDefinition.getPropertyType()));
<a class="jxr_linenumber" name="1174" href="#1174">1174</a>         result.setQueryable(convertBoolean(propertyDefinition.isQueryable(), false));
<a class="jxr_linenumber" name="1175" href="#1175">1175</a>         result.setQueryName(propertyDefinition.getQueryName());
<a class="jxr_linenumber" name="1176" href="#1176">1176</a>         result.setRequired(convertBoolean(propertyDefinition.isRequired(), false));
<a class="jxr_linenumber" name="1177" href="#1177">1177</a>         result.setUpdatability(convert(EnumUpdatability.<strong class="jxr_keyword">class</strong>, propertyDefinition.getUpdatability()));
<a class="jxr_linenumber" name="1178" href="#1178">1178</a> 
<a class="jxr_linenumber" name="1179" href="#1179">1179</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="1180" href="#1180">1180</a>         convertExtension(propertyDefinition, result);
<a class="jxr_linenumber" name="1181" href="#1181">1181</a> 
<a class="jxr_linenumber" name="1182" href="#1182">1182</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1183" href="#1183">1183</a>     }
<a class="jxr_linenumber" name="1184" href="#1184">1184</a> 
<a class="jxr_linenumber" name="1185" href="#1185">1185</a>     <em class="jxr_comment">// -------------------------------------------------------------------------</em>
<a class="jxr_linenumber" name="1186" href="#1186">1186</a>     <em class="jxr_comment">// --- Choices ---</em>
<a class="jxr_linenumber" name="1187" href="#1187">1187</a>     <em class="jxr_comment">// -------------------------------------------------------------------------</em>
<a class="jxr_linenumber" name="1188" href="#1188">1188</a> 
<a class="jxr_linenumber" name="1189" href="#1189">1189</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1190" href="#1190">1190</a> <em class="jxr_javadoccomment">     * Converts a choices list.</em>
<a class="jxr_linenumber" name="1191" href="#1191">1191</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1192" href="#1192">1192</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;Choice&lt;String&gt;&gt; convertChoiceStringList(List&lt;CmisChoiceString&gt; choices) {
<a class="jxr_linenumber" name="1193" href="#1193">1193</a>         <strong class="jxr_keyword">if</strong> (choices == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1194" href="#1194">1194</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1195" href="#1195">1195</a>         }
<a class="jxr_linenumber" name="1196" href="#1196">1196</a> 
<a class="jxr_linenumber" name="1197" href="#1197">1197</a>         List&lt;Choice&lt;String&gt;&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;Choice&lt;String&gt;&gt;();
<a class="jxr_linenumber" name="1198" href="#1198">1198</a> 
<a class="jxr_linenumber" name="1199" href="#1199">1199</a>         <strong class="jxr_keyword">for</strong> (CmisChoiceString choice : choices) {
<a class="jxr_linenumber" name="1200" href="#1200">1200</a>             ChoiceImpl&lt;String&gt; newChoice = <strong class="jxr_keyword">new</strong> ChoiceImpl&lt;String&gt;();
<a class="jxr_linenumber" name="1201" href="#1201">1201</a> 
<a class="jxr_linenumber" name="1202" href="#1202">1202</a>             newChoice.setChoice(convertChoiceStringList(choice.getChoice()));
<a class="jxr_linenumber" name="1203" href="#1203">1203</a>             newChoice.setDisplayName(choice.getDisplayName());
<a class="jxr_linenumber" name="1204" href="#1204">1204</a>             newChoice.setValue(choice.getValue());
<a class="jxr_linenumber" name="1205" href="#1205">1205</a> 
<a class="jxr_linenumber" name="1206" href="#1206">1206</a>             result.add(newChoice);
<a class="jxr_linenumber" name="1207" href="#1207">1207</a>         }
<a class="jxr_linenumber" name="1208" href="#1208">1208</a> 
<a class="jxr_linenumber" name="1209" href="#1209">1209</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1210" href="#1210">1210</a>     }
<a class="jxr_linenumber" name="1211" href="#1211">1211</a> 
<a class="jxr_linenumber" name="1212" href="#1212">1212</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1213" href="#1213">1213</a> <em class="jxr_javadoccomment">     * Converts a choices list.</em>
<a class="jxr_linenumber" name="1214" href="#1214">1214</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1215" href="#1215">1215</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> convertChoiceStringList(List&lt;Choice&lt;String&gt;&gt; choices, List&lt;CmisChoiceString&gt; target) {
<a class="jxr_linenumber" name="1216" href="#1216">1216</a>         <strong class="jxr_keyword">if</strong> (choices == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1217" href="#1217">1217</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="1218" href="#1218">1218</a>         }
<a class="jxr_linenumber" name="1219" href="#1219">1219</a> 
<a class="jxr_linenumber" name="1220" href="#1220">1220</a>         <strong class="jxr_keyword">for</strong> (Choice&lt;String&gt; choice : choices) {
<a class="jxr_linenumber" name="1221" href="#1221">1221</a>             CmisChoiceString newChoice = <strong class="jxr_keyword">new</strong> CmisChoiceString();
<a class="jxr_linenumber" name="1222" href="#1222">1222</a> 
<a class="jxr_linenumber" name="1223" href="#1223">1223</a>             convertChoiceStringList(choice.getChoice(), newChoice.getChoice());
<a class="jxr_linenumber" name="1224" href="#1224">1224</a>             newChoice.setDisplayName(choice.getDisplayName());
<a class="jxr_linenumber" name="1225" href="#1225">1225</a> 
<a class="jxr_linenumber" name="1226" href="#1226">1226</a>             <strong class="jxr_keyword">if</strong> (choice.getValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1227" href="#1227">1227</a>                 <strong class="jxr_keyword">for</strong> (String value : choice.getValue()) {
<a class="jxr_linenumber" name="1228" href="#1228">1228</a>                     newChoice.getValue().add(value);
<a class="jxr_linenumber" name="1229" href="#1229">1229</a>                 }
<a class="jxr_linenumber" name="1230" href="#1230">1230</a>             }
<a class="jxr_linenumber" name="1231" href="#1231">1231</a> 
<a class="jxr_linenumber" name="1232" href="#1232">1232</a>             target.add(newChoice);
<a class="jxr_linenumber" name="1233" href="#1233">1233</a>         }
<a class="jxr_linenumber" name="1234" href="#1234">1234</a>     }
<a class="jxr_linenumber" name="1235" href="#1235">1235</a> 
<a class="jxr_linenumber" name="1236" href="#1236">1236</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1237" href="#1237">1237</a> <em class="jxr_javadoccomment">     * Converts a choices list.</em>
<a class="jxr_linenumber" name="1238" href="#1238">1238</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1239" href="#1239">1239</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;Choice&lt;String&gt;&gt; convertChoiceIdList(List&lt;CmisChoiceId&gt; choices) {
<a class="jxr_linenumber" name="1240" href="#1240">1240</a>         <strong class="jxr_keyword">if</strong> (choices == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1241" href="#1241">1241</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1242" href="#1242">1242</a>         }
<a class="jxr_linenumber" name="1243" href="#1243">1243</a> 
<a class="jxr_linenumber" name="1244" href="#1244">1244</a>         List&lt;Choice&lt;String&gt;&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;Choice&lt;String&gt;&gt;();
<a class="jxr_linenumber" name="1245" href="#1245">1245</a> 
<a class="jxr_linenumber" name="1246" href="#1246">1246</a>         <strong class="jxr_keyword">for</strong> (CmisChoiceId choice : choices) {
<a class="jxr_linenumber" name="1247" href="#1247">1247</a>             ChoiceImpl&lt;String&gt; newChoice = <strong class="jxr_keyword">new</strong> ChoiceImpl&lt;String&gt;();
<a class="jxr_linenumber" name="1248" href="#1248">1248</a> 
<a class="jxr_linenumber" name="1249" href="#1249">1249</a>             newChoice.setChoice(convertChoiceIdList(choice.getChoice()));
<a class="jxr_linenumber" name="1250" href="#1250">1250</a>             newChoice.setDisplayName(choice.getDisplayName());
<a class="jxr_linenumber" name="1251" href="#1251">1251</a>             newChoice.setValue(choice.getValue());
<a class="jxr_linenumber" name="1252" href="#1252">1252</a> 
<a class="jxr_linenumber" name="1253" href="#1253">1253</a>             result.add(newChoice);
<a class="jxr_linenumber" name="1254" href="#1254">1254</a>         }
<a class="jxr_linenumber" name="1255" href="#1255">1255</a> 
<a class="jxr_linenumber" name="1256" href="#1256">1256</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1257" href="#1257">1257</a>     }
<a class="jxr_linenumber" name="1258" href="#1258">1258</a> 
<a class="jxr_linenumber" name="1259" href="#1259">1259</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1260" href="#1260">1260</a> <em class="jxr_javadoccomment">     * Converts a choices list.</em>
<a class="jxr_linenumber" name="1261" href="#1261">1261</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1262" href="#1262">1262</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> convertChoiceIdList(List&lt;Choice&lt;String&gt;&gt; choices, List&lt;CmisChoiceId&gt; target) {
<a class="jxr_linenumber" name="1263" href="#1263">1263</a>         <strong class="jxr_keyword">if</strong> (choices == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1264" href="#1264">1264</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="1265" href="#1265">1265</a>         }
<a class="jxr_linenumber" name="1266" href="#1266">1266</a> 
<a class="jxr_linenumber" name="1267" href="#1267">1267</a>         <strong class="jxr_keyword">for</strong> (Choice&lt;String&gt; choice : choices) {
<a class="jxr_linenumber" name="1268" href="#1268">1268</a>             CmisChoiceId newChoice = <strong class="jxr_keyword">new</strong> CmisChoiceId();
<a class="jxr_linenumber" name="1269" href="#1269">1269</a> 
<a class="jxr_linenumber" name="1270" href="#1270">1270</a>             convertChoiceIdList(choice.getChoice(), newChoice.getChoice());
<a class="jxr_linenumber" name="1271" href="#1271">1271</a>             newChoice.setDisplayName(choice.getDisplayName());
<a class="jxr_linenumber" name="1272" href="#1272">1272</a> 
<a class="jxr_linenumber" name="1273" href="#1273">1273</a>             <strong class="jxr_keyword">if</strong> (choice.getValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1274" href="#1274">1274</a>                 <strong class="jxr_keyword">for</strong> (String value : choice.getValue()) {
<a class="jxr_linenumber" name="1275" href="#1275">1275</a>                     newChoice.getValue().add(value);
<a class="jxr_linenumber" name="1276" href="#1276">1276</a>                 }
<a class="jxr_linenumber" name="1277" href="#1277">1277</a>             }
<a class="jxr_linenumber" name="1278" href="#1278">1278</a> 
<a class="jxr_linenumber" name="1279" href="#1279">1279</a>             target.add(newChoice);
<a class="jxr_linenumber" name="1280" href="#1280">1280</a>         }
<a class="jxr_linenumber" name="1281" href="#1281">1281</a>     }
<a class="jxr_linenumber" name="1282" href="#1282">1282</a> 
<a class="jxr_linenumber" name="1283" href="#1283">1283</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1284" href="#1284">1284</a> <em class="jxr_javadoccomment">     * Converts a choices list.</em>
<a class="jxr_linenumber" name="1285" href="#1285">1285</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1286" href="#1286">1286</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;Choice&lt;BigInteger&gt;&gt; convertChoiceIntegerList(List&lt;CmisChoiceInteger&gt; choices) {
<a class="jxr_linenumber" name="1287" href="#1287">1287</a>         <strong class="jxr_keyword">if</strong> (choices == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1288" href="#1288">1288</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1289" href="#1289">1289</a>         }
<a class="jxr_linenumber" name="1290" href="#1290">1290</a> 
<a class="jxr_linenumber" name="1291" href="#1291">1291</a>         List&lt;Choice&lt;BigInteger&gt;&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;Choice&lt;BigInteger&gt;&gt;();
<a class="jxr_linenumber" name="1292" href="#1292">1292</a> 
<a class="jxr_linenumber" name="1293" href="#1293">1293</a>         <strong class="jxr_keyword">for</strong> (CmisChoiceInteger choice : choices) {
<a class="jxr_linenumber" name="1294" href="#1294">1294</a>             ChoiceImpl&lt;BigInteger&gt; newChoice = <strong class="jxr_keyword">new</strong> ChoiceImpl&lt;BigInteger&gt;();
<a class="jxr_linenumber" name="1295" href="#1295">1295</a> 
<a class="jxr_linenumber" name="1296" href="#1296">1296</a>             newChoice.setChoice(convertChoiceIntegerList(choice.getChoice()));
<a class="jxr_linenumber" name="1297" href="#1297">1297</a>             newChoice.setDisplayName(choice.getDisplayName());
<a class="jxr_linenumber" name="1298" href="#1298">1298</a>             newChoice.setValue(choice.getValue());
<a class="jxr_linenumber" name="1299" href="#1299">1299</a> 
<a class="jxr_linenumber" name="1300" href="#1300">1300</a>             result.add(newChoice);
<a class="jxr_linenumber" name="1301" href="#1301">1301</a>         }
<a class="jxr_linenumber" name="1302" href="#1302">1302</a> 
<a class="jxr_linenumber" name="1303" href="#1303">1303</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1304" href="#1304">1304</a>     }
<a class="jxr_linenumber" name="1305" href="#1305">1305</a> 
<a class="jxr_linenumber" name="1306" href="#1306">1306</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1307" href="#1307">1307</a> <em class="jxr_javadoccomment">     * Converts a choices list.</em>
<a class="jxr_linenumber" name="1308" href="#1308">1308</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1309" href="#1309">1309</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> convertChoiceIntegerList(List&lt;Choice&lt;BigInteger&gt;&gt; choices, List&lt;CmisChoiceInteger&gt; target) {
<a class="jxr_linenumber" name="1310" href="#1310">1310</a>         <strong class="jxr_keyword">if</strong> (choices == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1311" href="#1311">1311</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="1312" href="#1312">1312</a>         }
<a class="jxr_linenumber" name="1313" href="#1313">1313</a> 
<a class="jxr_linenumber" name="1314" href="#1314">1314</a>         <strong class="jxr_keyword">for</strong> (Choice&lt;BigInteger&gt; choice : choices) {
<a class="jxr_linenumber" name="1315" href="#1315">1315</a>             CmisChoiceInteger newChoice = <strong class="jxr_keyword">new</strong> CmisChoiceInteger();
<a class="jxr_linenumber" name="1316" href="#1316">1316</a> 
<a class="jxr_linenumber" name="1317" href="#1317">1317</a>             convertChoiceIntegerList(choice.getChoice(), newChoice.getChoice());
<a class="jxr_linenumber" name="1318" href="#1318">1318</a>             newChoice.setDisplayName(choice.getDisplayName());
<a class="jxr_linenumber" name="1319" href="#1319">1319</a> 
<a class="jxr_linenumber" name="1320" href="#1320">1320</a>             <strong class="jxr_keyword">if</strong> (choice.getValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1321" href="#1321">1321</a>                 <strong class="jxr_keyword">for</strong> (BigInteger value : choice.getValue()) {
<a class="jxr_linenumber" name="1322" href="#1322">1322</a>                     newChoice.getValue().add(value);
<a class="jxr_linenumber" name="1323" href="#1323">1323</a>                 }
<a class="jxr_linenumber" name="1324" href="#1324">1324</a>             }
<a class="jxr_linenumber" name="1325" href="#1325">1325</a> 
<a class="jxr_linenumber" name="1326" href="#1326">1326</a>             target.add(newChoice);
<a class="jxr_linenumber" name="1327" href="#1327">1327</a>         }
<a class="jxr_linenumber" name="1328" href="#1328">1328</a>     }
<a class="jxr_linenumber" name="1329" href="#1329">1329</a> 
<a class="jxr_linenumber" name="1330" href="#1330">1330</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1331" href="#1331">1331</a> <em class="jxr_javadoccomment">     * Converts a choices list.</em>
<a class="jxr_linenumber" name="1332" href="#1332">1332</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1333" href="#1333">1333</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;Choice&lt;BigDecimal&gt;&gt; convertChoiceDecimalList(List&lt;CmisChoiceDecimal&gt; choices) {
<a class="jxr_linenumber" name="1334" href="#1334">1334</a>         <strong class="jxr_keyword">if</strong> (choices == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1335" href="#1335">1335</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1336" href="#1336">1336</a>         }
<a class="jxr_linenumber" name="1337" href="#1337">1337</a> 
<a class="jxr_linenumber" name="1338" href="#1338">1338</a>         List&lt;Choice&lt;BigDecimal&gt;&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;Choice&lt;BigDecimal&gt;&gt;();
<a class="jxr_linenumber" name="1339" href="#1339">1339</a> 
<a class="jxr_linenumber" name="1340" href="#1340">1340</a>         <strong class="jxr_keyword">for</strong> (CmisChoiceDecimal choice : choices) {
<a class="jxr_linenumber" name="1341" href="#1341">1341</a>             ChoiceImpl&lt;BigDecimal&gt; newChoice = <strong class="jxr_keyword">new</strong> ChoiceImpl&lt;BigDecimal&gt;();
<a class="jxr_linenumber" name="1342" href="#1342">1342</a> 
<a class="jxr_linenumber" name="1343" href="#1343">1343</a>             newChoice.setChoice(convertChoiceDecimalList(choice.getChoice()));
<a class="jxr_linenumber" name="1344" href="#1344">1344</a>             newChoice.setDisplayName(choice.getDisplayName());
<a class="jxr_linenumber" name="1345" href="#1345">1345</a>             newChoice.setValue(choice.getValue());
<a class="jxr_linenumber" name="1346" href="#1346">1346</a> 
<a class="jxr_linenumber" name="1347" href="#1347">1347</a>             result.add(newChoice);
<a class="jxr_linenumber" name="1348" href="#1348">1348</a>         }
<a class="jxr_linenumber" name="1349" href="#1349">1349</a> 
<a class="jxr_linenumber" name="1350" href="#1350">1350</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1351" href="#1351">1351</a>     }
<a class="jxr_linenumber" name="1352" href="#1352">1352</a> 
<a class="jxr_linenumber" name="1353" href="#1353">1353</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1354" href="#1354">1354</a> <em class="jxr_javadoccomment">     * Converts a choices list.</em>
<a class="jxr_linenumber" name="1355" href="#1355">1355</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1356" href="#1356">1356</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> convertChoiceDecimalList(List&lt;Choice&lt;BigDecimal&gt;&gt; choices, List&lt;CmisChoiceDecimal&gt; target) {
<a class="jxr_linenumber" name="1357" href="#1357">1357</a>         <strong class="jxr_keyword">if</strong> (choices == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1358" href="#1358">1358</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="1359" href="#1359">1359</a>         }
<a class="jxr_linenumber" name="1360" href="#1360">1360</a> 
<a class="jxr_linenumber" name="1361" href="#1361">1361</a>         <strong class="jxr_keyword">for</strong> (Choice&lt;BigDecimal&gt; choice : choices) {
<a class="jxr_linenumber" name="1362" href="#1362">1362</a>             CmisChoiceDecimal newChoice = <strong class="jxr_keyword">new</strong> CmisChoiceDecimal();
<a class="jxr_linenumber" name="1363" href="#1363">1363</a> 
<a class="jxr_linenumber" name="1364" href="#1364">1364</a>             convertChoiceDecimalList(choice.getChoice(), newChoice.getChoice());
<a class="jxr_linenumber" name="1365" href="#1365">1365</a>             newChoice.setDisplayName(choice.getDisplayName());
<a class="jxr_linenumber" name="1366" href="#1366">1366</a> 
<a class="jxr_linenumber" name="1367" href="#1367">1367</a>             <strong class="jxr_keyword">if</strong> (choice.getValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1368" href="#1368">1368</a>                 <strong class="jxr_keyword">for</strong> (BigDecimal value : choice.getValue()) {
<a class="jxr_linenumber" name="1369" href="#1369">1369</a>                     newChoice.getValue().add(value);
<a class="jxr_linenumber" name="1370" href="#1370">1370</a>                 }
<a class="jxr_linenumber" name="1371" href="#1371">1371</a>             }
<a class="jxr_linenumber" name="1372" href="#1372">1372</a> 
<a class="jxr_linenumber" name="1373" href="#1373">1373</a>             target.add(newChoice);
<a class="jxr_linenumber" name="1374" href="#1374">1374</a>         }
<a class="jxr_linenumber" name="1375" href="#1375">1375</a>     }
<a class="jxr_linenumber" name="1376" href="#1376">1376</a> 
<a class="jxr_linenumber" name="1377" href="#1377">1377</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1378" href="#1378">1378</a> <em class="jxr_javadoccomment">     * Converts a choices list.</em>
<a class="jxr_linenumber" name="1379" href="#1379">1379</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1380" href="#1380">1380</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;Choice&lt;Boolean&gt;&gt; convertChoiceBooleanList(List&lt;CmisChoiceBoolean&gt; choices) {
<a class="jxr_linenumber" name="1381" href="#1381">1381</a>         <strong class="jxr_keyword">if</strong> (choices == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1382" href="#1382">1382</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1383" href="#1383">1383</a>         }
<a class="jxr_linenumber" name="1384" href="#1384">1384</a> 
<a class="jxr_linenumber" name="1385" href="#1385">1385</a>         List&lt;Choice&lt;Boolean&gt;&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;Choice&lt;Boolean&gt;&gt;();
<a class="jxr_linenumber" name="1386" href="#1386">1386</a> 
<a class="jxr_linenumber" name="1387" href="#1387">1387</a>         <strong class="jxr_keyword">for</strong> (CmisChoiceBoolean choice : choices) {
<a class="jxr_linenumber" name="1388" href="#1388">1388</a>             ChoiceImpl&lt;Boolean&gt; newChoice = <strong class="jxr_keyword">new</strong> ChoiceImpl&lt;Boolean&gt;();
<a class="jxr_linenumber" name="1389" href="#1389">1389</a> 
<a class="jxr_linenumber" name="1390" href="#1390">1390</a>             newChoice.setChoice(convertChoiceBooleanList(choice.getChoice()));
<a class="jxr_linenumber" name="1391" href="#1391">1391</a>             newChoice.setDisplayName(choice.getDisplayName());
<a class="jxr_linenumber" name="1392" href="#1392">1392</a>             newChoice.setValue(choice.getValue());
<a class="jxr_linenumber" name="1393" href="#1393">1393</a> 
<a class="jxr_linenumber" name="1394" href="#1394">1394</a>             result.add(newChoice);
<a class="jxr_linenumber" name="1395" href="#1395">1395</a>         }
<a class="jxr_linenumber" name="1396" href="#1396">1396</a> 
<a class="jxr_linenumber" name="1397" href="#1397">1397</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1398" href="#1398">1398</a>     }
<a class="jxr_linenumber" name="1399" href="#1399">1399</a> 
<a class="jxr_linenumber" name="1400" href="#1400">1400</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1401" href="#1401">1401</a> <em class="jxr_javadoccomment">     * Converts a choices list.</em>
<a class="jxr_linenumber" name="1402" href="#1402">1402</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1403" href="#1403">1403</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> convertChoiceBooleanList(List&lt;Choice&lt;Boolean&gt;&gt; choices, List&lt;CmisChoiceBoolean&gt; target) {
<a class="jxr_linenumber" name="1404" href="#1404">1404</a>         <strong class="jxr_keyword">if</strong> (choices == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1405" href="#1405">1405</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="1406" href="#1406">1406</a>         }
<a class="jxr_linenumber" name="1407" href="#1407">1407</a> 
<a class="jxr_linenumber" name="1408" href="#1408">1408</a>         <strong class="jxr_keyword">for</strong> (Choice&lt;Boolean&gt; choice : choices) {
<a class="jxr_linenumber" name="1409" href="#1409">1409</a>             CmisChoiceBoolean newChoice = <strong class="jxr_keyword">new</strong> CmisChoiceBoolean();
<a class="jxr_linenumber" name="1410" href="#1410">1410</a> 
<a class="jxr_linenumber" name="1411" href="#1411">1411</a>             convertChoiceBooleanList(choice.getChoice(), newChoice.getChoice());
<a class="jxr_linenumber" name="1412" href="#1412">1412</a>             newChoice.setDisplayName(choice.getDisplayName());
<a class="jxr_linenumber" name="1413" href="#1413">1413</a> 
<a class="jxr_linenumber" name="1414" href="#1414">1414</a>             <strong class="jxr_keyword">if</strong> (choice.getValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1415" href="#1415">1415</a>                 <strong class="jxr_keyword">for</strong> (Boolean value : choice.getValue()) {
<a class="jxr_linenumber" name="1416" href="#1416">1416</a>                     newChoice.getValue().add(value);
<a class="jxr_linenumber" name="1417" href="#1417">1417</a>                 }
<a class="jxr_linenumber" name="1418" href="#1418">1418</a>             }
<a class="jxr_linenumber" name="1419" href="#1419">1419</a> 
<a class="jxr_linenumber" name="1420" href="#1420">1420</a>             target.add(newChoice);
<a class="jxr_linenumber" name="1421" href="#1421">1421</a>         }
<a class="jxr_linenumber" name="1422" href="#1422">1422</a>     }
<a class="jxr_linenumber" name="1423" href="#1423">1423</a> 
<a class="jxr_linenumber" name="1424" href="#1424">1424</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1425" href="#1425">1425</a> <em class="jxr_javadoccomment">     * Converts a choices list.</em>
<a class="jxr_linenumber" name="1426" href="#1426">1426</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1427" href="#1427">1427</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;Choice&lt;GregorianCalendar&gt;&gt; convertChoiceDateTimeList(List&lt;CmisChoiceDateTime&gt; choices) {
<a class="jxr_linenumber" name="1428" href="#1428">1428</a>         <strong class="jxr_keyword">if</strong> (choices == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1429" href="#1429">1429</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1430" href="#1430">1430</a>         }
<a class="jxr_linenumber" name="1431" href="#1431">1431</a> 
<a class="jxr_linenumber" name="1432" href="#1432">1432</a>         List&lt;Choice&lt;GregorianCalendar&gt;&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;Choice&lt;GregorianCalendar&gt;&gt;();
<a class="jxr_linenumber" name="1433" href="#1433">1433</a> 
<a class="jxr_linenumber" name="1434" href="#1434">1434</a>         <strong class="jxr_keyword">for</strong> (CmisChoiceDateTime choice : choices) {
<a class="jxr_linenumber" name="1435" href="#1435">1435</a>             ChoiceImpl&lt;GregorianCalendar&gt; newChoice = <strong class="jxr_keyword">new</strong> ChoiceImpl&lt;GregorianCalendar&gt;();
<a class="jxr_linenumber" name="1436" href="#1436">1436</a> 
<a class="jxr_linenumber" name="1437" href="#1437">1437</a>             newChoice.setChoice(convertChoiceDateTimeList(choice.getChoice()));
<a class="jxr_linenumber" name="1438" href="#1438">1438</a>             newChoice.setDisplayName(choice.getDisplayName());
<a class="jxr_linenumber" name="1439" href="#1439">1439</a>             newChoice.setValue(convertXMLCalendar(choice.getValue()));
<a class="jxr_linenumber" name="1440" href="#1440">1440</a> 
<a class="jxr_linenumber" name="1441" href="#1441">1441</a>             result.add(newChoice);
<a class="jxr_linenumber" name="1442" href="#1442">1442</a>         }
<a class="jxr_linenumber" name="1443" href="#1443">1443</a> 
<a class="jxr_linenumber" name="1444" href="#1444">1444</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1445" href="#1445">1445</a>     }
<a class="jxr_linenumber" name="1446" href="#1446">1446</a> 
<a class="jxr_linenumber" name="1447" href="#1447">1447</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1448" href="#1448">1448</a> <em class="jxr_javadoccomment">     * Converts a choices list.</em>
<a class="jxr_linenumber" name="1449" href="#1449">1449</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1450" href="#1450">1450</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> convertChoiceDateTimeList(List&lt;Choice&lt;GregorianCalendar&gt;&gt; choices,
<a class="jxr_linenumber" name="1451" href="#1451">1451</a>             List&lt;CmisChoiceDateTime&gt; target) {
<a class="jxr_linenumber" name="1452" href="#1452">1452</a>         <strong class="jxr_keyword">if</strong> (choices == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1453" href="#1453">1453</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="1454" href="#1454">1454</a>         }
<a class="jxr_linenumber" name="1455" href="#1455">1455</a> 
<a class="jxr_linenumber" name="1456" href="#1456">1456</a>         <strong class="jxr_keyword">for</strong> (Choice&lt;GregorianCalendar&gt; choice : choices) {
<a class="jxr_linenumber" name="1457" href="#1457">1457</a>             CmisChoiceDateTime newChoice = <strong class="jxr_keyword">new</strong> CmisChoiceDateTime();
<a class="jxr_linenumber" name="1458" href="#1458">1458</a> 
<a class="jxr_linenumber" name="1459" href="#1459">1459</a>             convertChoiceDateTimeList(choice.getChoice(), newChoice.getChoice());
<a class="jxr_linenumber" name="1460" href="#1460">1460</a>             newChoice.setDisplayName(choice.getDisplayName());
<a class="jxr_linenumber" name="1461" href="#1461">1461</a> 
<a class="jxr_linenumber" name="1462" href="#1462">1462</a>             <strong class="jxr_keyword">if</strong> (choice.getValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1463" href="#1463">1463</a>                 <strong class="jxr_keyword">for</strong> (XMLGregorianCalendar value : convertCalendar(choice.getValue())) {
<a class="jxr_linenumber" name="1464" href="#1464">1464</a>                     newChoice.getValue().add(value);
<a class="jxr_linenumber" name="1465" href="#1465">1465</a>                 }
<a class="jxr_linenumber" name="1466" href="#1466">1466</a>             }
<a class="jxr_linenumber" name="1467" href="#1467">1467</a> 
<a class="jxr_linenumber" name="1468" href="#1468">1468</a>             target.add(newChoice);
<a class="jxr_linenumber" name="1469" href="#1469">1469</a>         }
<a class="jxr_linenumber" name="1470" href="#1470">1470</a>     }
<a class="jxr_linenumber" name="1471" href="#1471">1471</a> 
<a class="jxr_linenumber" name="1472" href="#1472">1472</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1473" href="#1473">1473</a> <em class="jxr_javadoccomment">     * Converts a choices list.</em>
<a class="jxr_linenumber" name="1474" href="#1474">1474</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1475" href="#1475">1475</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;Choice&lt;String&gt;&gt; convertChoiceHtmlList(List&lt;CmisChoiceHtml&gt; choices) {
<a class="jxr_linenumber" name="1476" href="#1476">1476</a>         <strong class="jxr_keyword">if</strong> (choices == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1477" href="#1477">1477</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1478" href="#1478">1478</a>         }
<a class="jxr_linenumber" name="1479" href="#1479">1479</a> 
<a class="jxr_linenumber" name="1480" href="#1480">1480</a>         List&lt;Choice&lt;String&gt;&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;Choice&lt;String&gt;&gt;();
<a class="jxr_linenumber" name="1481" href="#1481">1481</a> 
<a class="jxr_linenumber" name="1482" href="#1482">1482</a>         <strong class="jxr_keyword">for</strong> (CmisChoiceHtml choice : choices) {
<a class="jxr_linenumber" name="1483" href="#1483">1483</a>             ChoiceImpl&lt;String&gt; newChoice = <strong class="jxr_keyword">new</strong> ChoiceImpl&lt;String&gt;();
<a class="jxr_linenumber" name="1484" href="#1484">1484</a> 
<a class="jxr_linenumber" name="1485" href="#1485">1485</a>             newChoice.setChoice(convertChoiceHtmlList(choice.getChoice()));
<a class="jxr_linenumber" name="1486" href="#1486">1486</a>             newChoice.setDisplayName(choice.getDisplayName());
<a class="jxr_linenumber" name="1487" href="#1487">1487</a>             newChoice.setValue(choice.getValue());
<a class="jxr_linenumber" name="1488" href="#1488">1488</a> 
<a class="jxr_linenumber" name="1489" href="#1489">1489</a>             result.add(newChoice);
<a class="jxr_linenumber" name="1490" href="#1490">1490</a>         }
<a class="jxr_linenumber" name="1491" href="#1491">1491</a> 
<a class="jxr_linenumber" name="1492" href="#1492">1492</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1493" href="#1493">1493</a>     }
<a class="jxr_linenumber" name="1494" href="#1494">1494</a> 
<a class="jxr_linenumber" name="1495" href="#1495">1495</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1496" href="#1496">1496</a> <em class="jxr_javadoccomment">     * Converts a choices list.</em>
<a class="jxr_linenumber" name="1497" href="#1497">1497</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1498" href="#1498">1498</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> convertChoiceHtmlList(List&lt;Choice&lt;String&gt;&gt; choices, List&lt;CmisChoiceHtml&gt; target) {
<a class="jxr_linenumber" name="1499" href="#1499">1499</a>         <strong class="jxr_keyword">if</strong> (choices == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1500" href="#1500">1500</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="1501" href="#1501">1501</a>         }
<a class="jxr_linenumber" name="1502" href="#1502">1502</a> 
<a class="jxr_linenumber" name="1503" href="#1503">1503</a>         <strong class="jxr_keyword">for</strong> (Choice&lt;String&gt; choice : choices) {
<a class="jxr_linenumber" name="1504" href="#1504">1504</a>             CmisChoiceHtml newChoice = <strong class="jxr_keyword">new</strong> CmisChoiceHtml();
<a class="jxr_linenumber" name="1505" href="#1505">1505</a> 
<a class="jxr_linenumber" name="1506" href="#1506">1506</a>             convertChoiceHtmlList(choice.getChoice(), newChoice.getChoice());
<a class="jxr_linenumber" name="1507" href="#1507">1507</a>             newChoice.setDisplayName(choice.getDisplayName());
<a class="jxr_linenumber" name="1508" href="#1508">1508</a> 
<a class="jxr_linenumber" name="1509" href="#1509">1509</a>             <strong class="jxr_keyword">if</strong> (choice.getValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1510" href="#1510">1510</a>                 <strong class="jxr_keyword">for</strong> (String value : choice.getValue()) {
<a class="jxr_linenumber" name="1511" href="#1511">1511</a>                     newChoice.getValue().add(value);
<a class="jxr_linenumber" name="1512" href="#1512">1512</a>                 }
<a class="jxr_linenumber" name="1513" href="#1513">1513</a>             }
<a class="jxr_linenumber" name="1514" href="#1514">1514</a> 
<a class="jxr_linenumber" name="1515" href="#1515">1515</a>             target.add(newChoice);
<a class="jxr_linenumber" name="1516" href="#1516">1516</a>         }
<a class="jxr_linenumber" name="1517" href="#1517">1517</a>     }
<a class="jxr_linenumber" name="1518" href="#1518">1518</a> 
<a class="jxr_linenumber" name="1519" href="#1519">1519</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1520" href="#1520">1520</a> <em class="jxr_javadoccomment">     * Converts a choices list.</em>
<a class="jxr_linenumber" name="1521" href="#1521">1521</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1522" href="#1522">1522</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;Choice&lt;String&gt;&gt; convertChoiceUriList(List&lt;CmisChoiceUri&gt; choices) {
<a class="jxr_linenumber" name="1523" href="#1523">1523</a>         <strong class="jxr_keyword">if</strong> (choices == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1524" href="#1524">1524</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1525" href="#1525">1525</a>         }
<a class="jxr_linenumber" name="1526" href="#1526">1526</a> 
<a class="jxr_linenumber" name="1527" href="#1527">1527</a>         List&lt;Choice&lt;String&gt;&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;Choice&lt;String&gt;&gt;();
<a class="jxr_linenumber" name="1528" href="#1528">1528</a> 
<a class="jxr_linenumber" name="1529" href="#1529">1529</a>         <strong class="jxr_keyword">for</strong> (CmisChoiceUri choice : choices) {
<a class="jxr_linenumber" name="1530" href="#1530">1530</a>             ChoiceImpl&lt;String&gt; newChoice = <strong class="jxr_keyword">new</strong> ChoiceImpl&lt;String&gt;();
<a class="jxr_linenumber" name="1531" href="#1531">1531</a> 
<a class="jxr_linenumber" name="1532" href="#1532">1532</a>             newChoice.setChoice(convertChoiceUriList(choice.getChoice()));
<a class="jxr_linenumber" name="1533" href="#1533">1533</a>             newChoice.setDisplayName(choice.getDisplayName());
<a class="jxr_linenumber" name="1534" href="#1534">1534</a>             newChoice.setValue(choice.getValue());
<a class="jxr_linenumber" name="1535" href="#1535">1535</a> 
<a class="jxr_linenumber" name="1536" href="#1536">1536</a>             result.add(newChoice);
<a class="jxr_linenumber" name="1537" href="#1537">1537</a>         }
<a class="jxr_linenumber" name="1538" href="#1538">1538</a> 
<a class="jxr_linenumber" name="1539" href="#1539">1539</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1540" href="#1540">1540</a>     }
<a class="jxr_linenumber" name="1541" href="#1541">1541</a> 
<a class="jxr_linenumber" name="1542" href="#1542">1542</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1543" href="#1543">1543</a> <em class="jxr_javadoccomment">     * Converts a choices list.</em>
<a class="jxr_linenumber" name="1544" href="#1544">1544</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1545" href="#1545">1545</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> convertChoiceUriList(List&lt;Choice&lt;String&gt;&gt; choices, List&lt;CmisChoiceUri&gt; target) {
<a class="jxr_linenumber" name="1546" href="#1546">1546</a>         <strong class="jxr_keyword">if</strong> (choices == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1547" href="#1547">1547</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="1548" href="#1548">1548</a>         }
<a class="jxr_linenumber" name="1549" href="#1549">1549</a> 
<a class="jxr_linenumber" name="1550" href="#1550">1550</a>         <strong class="jxr_keyword">for</strong> (Choice&lt;String&gt; choice : choices) {
<a class="jxr_linenumber" name="1551" href="#1551">1551</a>             CmisChoiceUri newChoice = <strong class="jxr_keyword">new</strong> CmisChoiceUri();
<a class="jxr_linenumber" name="1552" href="#1552">1552</a> 
<a class="jxr_linenumber" name="1553" href="#1553">1553</a>             convertChoiceUriList(choice.getChoice(), newChoice.getChoice());
<a class="jxr_linenumber" name="1554" href="#1554">1554</a>             newChoice.setDisplayName(choice.getDisplayName());
<a class="jxr_linenumber" name="1555" href="#1555">1555</a> 
<a class="jxr_linenumber" name="1556" href="#1556">1556</a>             <strong class="jxr_keyword">if</strong> (choice.getValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1557" href="#1557">1557</a>                 <strong class="jxr_keyword">for</strong> (String value : choice.getValue()) {
<a class="jxr_linenumber" name="1558" href="#1558">1558</a>                     newChoice.getValue().add(value);
<a class="jxr_linenumber" name="1559" href="#1559">1559</a>                 }
<a class="jxr_linenumber" name="1560" href="#1560">1560</a>             }
<a class="jxr_linenumber" name="1561" href="#1561">1561</a> 
<a class="jxr_linenumber" name="1562" href="#1562">1562</a>             target.add(newChoice);
<a class="jxr_linenumber" name="1563" href="#1563">1563</a>         }
<a class="jxr_linenumber" name="1564" href="#1564">1564</a>     }
<a class="jxr_linenumber" name="1565" href="#1565">1565</a> 
<a class="jxr_linenumber" name="1566" href="#1566">1566</a>     <em class="jxr_comment">// -------------------------------------------------------------------------</em>
<a class="jxr_linenumber" name="1567" href="#1567">1567</a>     <em class="jxr_comment">// --- Objects ---</em>
<a class="jxr_linenumber" name="1568" href="#1568">1568</a>     <em class="jxr_comment">// -------------------------------------------------------------------------</em>
<a class="jxr_linenumber" name="1569" href="#1569">1569</a> 
<a class="jxr_linenumber" name="1570" href="#1570">1570</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1571" href="#1571">1571</a> <em class="jxr_javadoccomment">     * Converts a CMIS object.</em>
<a class="jxr_linenumber" name="1572" href="#1572">1572</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1573" href="#1573">1573</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ObjectData convert(CmisObjectType object) {
<a class="jxr_linenumber" name="1574" href="#1574">1574</a>         <strong class="jxr_keyword">if</strong> (object == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1575" href="#1575">1575</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1576" href="#1576">1576</a>         }
<a class="jxr_linenumber" name="1577" href="#1577">1577</a> 
<a class="jxr_linenumber" name="1578" href="#1578">1578</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/ObjectDataImpl.html">ObjectDataImpl</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/ObjectDataImpl.html">ObjectDataImpl</a>();
<a class="jxr_linenumber" name="1579" href="#1579">1579</a> 
<a class="jxr_linenumber" name="1580" href="#1580">1580</a>         result.setAcl(convert(object.getAcl(), object.isExactACL()));
<a class="jxr_linenumber" name="1581" href="#1581">1581</a>         result.setAllowableActions(convert(object.getAllowableActions()));
<a class="jxr_linenumber" name="1582" href="#1582">1582</a>         <strong class="jxr_keyword">if</strong> (object.getChangeEventInfo() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1583" href="#1583">1583</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/ChangeEventInfoDataImpl.html">ChangeEventInfoDataImpl</a> changeEventInfo = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/ChangeEventInfoDataImpl.html">ChangeEventInfoDataImpl</a>();
<a class="jxr_linenumber" name="1584" href="#1584">1584</a>             <strong class="jxr_keyword">if</strong> (object.getChangeEventInfo().getChangeTime() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1585" href="#1585">1585</a>                 changeEventInfo.setChangeTime(object.getChangeEventInfo().getChangeTime().toGregorianCalendar());
<a class="jxr_linenumber" name="1586" href="#1586">1586</a>             }
<a class="jxr_linenumber" name="1587" href="#1587">1587</a>             changeEventInfo.setChangeType(convert(ChangeType.<strong class="jxr_keyword">class</strong>, object.getChangeEventInfo().getChangeType()));
<a class="jxr_linenumber" name="1588" href="#1588">1588</a>             convertExtension(object.getChangeEventInfo(), changeEventInfo);
<a class="jxr_linenumber" name="1589" href="#1589">1589</a> 
<a class="jxr_linenumber" name="1590" href="#1590">1590</a>             result.setChangeEventInfo(changeEventInfo);
<a class="jxr_linenumber" name="1591" href="#1591">1591</a>         }
<a class="jxr_linenumber" name="1592" href="#1592">1592</a>         result.setIsExactAcl(object.isExactACL());
<a class="jxr_linenumber" name="1593" href="#1593">1593</a>         result.setPolicyIds(convert(object.getPolicyIds()));
<a class="jxr_linenumber" name="1594" href="#1594">1594</a>         result.setProperties(convert(object.getProperties()));
<a class="jxr_linenumber" name="1595" href="#1595">1595</a>         List&lt;ObjectData&gt; relationships = <strong class="jxr_keyword">new</strong> ArrayList&lt;ObjectData&gt;();
<a class="jxr_linenumber" name="1596" href="#1596">1596</a>         <strong class="jxr_keyword">for</strong> (CmisObjectType cmisObject : object.getRelationship()) {
<a class="jxr_linenumber" name="1597" href="#1597">1597</a>             relationships.add(convert(cmisObject));
<a class="jxr_linenumber" name="1598" href="#1598">1598</a>         }
<a class="jxr_linenumber" name="1599" href="#1599">1599</a>         result.setRelationships(relationships);
<a class="jxr_linenumber" name="1600" href="#1600">1600</a>         List&lt;RenditionData&gt; renditions = <strong class="jxr_keyword">new</strong> ArrayList&lt;RenditionData&gt;();
<a class="jxr_linenumber" name="1601" href="#1601">1601</a>         <strong class="jxr_keyword">for</strong> (CmisRenditionType rendition : object.getRendition()) {
<a class="jxr_linenumber" name="1602" href="#1602">1602</a>             renditions.add(convert(rendition));
<a class="jxr_linenumber" name="1603" href="#1603">1603</a>         }
<a class="jxr_linenumber" name="1604" href="#1604">1604</a>         result.setRenditions(renditions);
<a class="jxr_linenumber" name="1605" href="#1605">1605</a> 
<a class="jxr_linenumber" name="1606" href="#1606">1606</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="1607" href="#1607">1607</a>         convertExtension(object, result);
<a class="jxr_linenumber" name="1608" href="#1608">1608</a> 
<a class="jxr_linenumber" name="1609" href="#1609">1609</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1610" href="#1610">1610</a>     }
<a class="jxr_linenumber" name="1611" href="#1611">1611</a> 
<a class="jxr_linenumber" name="1612" href="#1612">1612</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1613" href="#1613">1613</a> <em class="jxr_javadoccomment">     * Converts a properties object.</em>
<a class="jxr_linenumber" name="1614" href="#1614">1614</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1615" href="#1615">1615</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Properties convert(CmisPropertiesType properties) {
<a class="jxr_linenumber" name="1616" href="#1616">1616</a>         <strong class="jxr_keyword">if</strong> (properties == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1617" href="#1617">1617</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1618" href="#1618">1618</a>         }
<a class="jxr_linenumber" name="1619" href="#1619">1619</a> 
<a class="jxr_linenumber" name="1620" href="#1620">1620</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertiesImpl.html">PropertiesImpl</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertiesImpl.html">PropertiesImpl</a>();
<a class="jxr_linenumber" name="1621" href="#1621">1621</a> 
<a class="jxr_linenumber" name="1622" href="#1622">1622</a>         <strong class="jxr_keyword">for</strong> (CmisProperty property : properties.getProperty()) {
<a class="jxr_linenumber" name="1623" href="#1623">1623</a>             result.addProperty(convert(property));
<a class="jxr_linenumber" name="1624" href="#1624">1624</a>         }
<a class="jxr_linenumber" name="1625" href="#1625">1625</a> 
<a class="jxr_linenumber" name="1626" href="#1626">1626</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="1627" href="#1627">1627</a>         convertExtension(properties, result);
<a class="jxr_linenumber" name="1628" href="#1628">1628</a> 
<a class="jxr_linenumber" name="1629" href="#1629">1629</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1630" href="#1630">1630</a>     }
<a class="jxr_linenumber" name="1631" href="#1631">1631</a> 
<a class="jxr_linenumber" name="1632" href="#1632">1632</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1633" href="#1633">1633</a> <em class="jxr_javadoccomment">     * Converts a property object.</em>
<a class="jxr_linenumber" name="1634" href="#1634">1634</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1635" href="#1635">1635</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> PropertyData&lt;?&gt; convert(CmisProperty property) {
<a class="jxr_linenumber" name="1636" href="#1636">1636</a>         <strong class="jxr_keyword">if</strong> (property == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1637" href="#1637">1637</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1638" href="#1638">1638</a>         }
<a class="jxr_linenumber" name="1639" href="#1639">1639</a> 
<a class="jxr_linenumber" name="1640" href="#1640">1640</a>         PropertyData&lt;?&gt; result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1641" href="#1641">1641</a> 
<a class="jxr_linenumber" name="1642" href="#1642">1642</a>         <strong class="jxr_keyword">if</strong> (property instanceof CmisPropertyString) {
<a class="jxr_linenumber" name="1643" href="#1643">1643</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyStringImpl.html">PropertyStringImpl</a>(property.getPropertyDefinitionId(),
<a class="jxr_linenumber" name="1644" href="#1644">1644</a>                     ((CmisPropertyString) property).getValue());
<a class="jxr_linenumber" name="1645" href="#1645">1645</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof CmisPropertyId) {
<a class="jxr_linenumber" name="1646" href="#1646">1646</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIdImpl.html">PropertyIdImpl</a>(property.getPropertyDefinitionId(), ((CmisPropertyId) property).getValue());
<a class="jxr_linenumber" name="1647" href="#1647">1647</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof CmisPropertyInteger) {
<a class="jxr_linenumber" name="1648" href="#1648">1648</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIntegerImpl.html">PropertyIntegerImpl</a>(property.getPropertyDefinitionId(),
<a class="jxr_linenumber" name="1649" href="#1649">1649</a>                     ((CmisPropertyInteger) property).getValue());
<a class="jxr_linenumber" name="1650" href="#1650">1650</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof CmisPropertyDecimal) {
<a class="jxr_linenumber" name="1651" href="#1651">1651</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDecimalImpl.html">PropertyDecimalImpl</a>(property.getPropertyDefinitionId(),
<a class="jxr_linenumber" name="1652" href="#1652">1652</a>                     ((CmisPropertyDecimal) property).getValue());
<a class="jxr_linenumber" name="1653" href="#1653">1653</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof CmisPropertyBoolean) {
<a class="jxr_linenumber" name="1654" href="#1654">1654</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyBooleanImpl.html">PropertyBooleanImpl</a>(property.getPropertyDefinitionId(),
<a class="jxr_linenumber" name="1655" href="#1655">1655</a>                     ((CmisPropertyBoolean) property).getValue());
<a class="jxr_linenumber" name="1656" href="#1656">1656</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof CmisPropertyDateTime) {
<a class="jxr_linenumber" name="1657" href="#1657">1657</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDateTimeImpl.html">PropertyDateTimeImpl</a>(property.getPropertyDefinitionId(),
<a class="jxr_linenumber" name="1658" href="#1658">1658</a>                     convertXMLCalendar(((CmisPropertyDateTime) property).getValue()));
<a class="jxr_linenumber" name="1659" href="#1659">1659</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof CmisPropertyHtml) {
<a class="jxr_linenumber" name="1660" href="#1660">1660</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyHtmlImpl.html">PropertyHtmlImpl</a>(property.getPropertyDefinitionId(), ((CmisPropertyHtml) property).getValue());
<a class="jxr_linenumber" name="1661" href="#1661">1661</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof CmisPropertyUri) {
<a class="jxr_linenumber" name="1662" href="#1662">1662</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyUriImpl.html">PropertyUriImpl</a>(property.getPropertyDefinitionId(), ((CmisPropertyUri) property).getValue());
<a class="jxr_linenumber" name="1663" href="#1663">1663</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1664" href="#1664">1664</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1665" href="#1665">1665</a>         }
<a class="jxr_linenumber" name="1666" href="#1666">1666</a> 
<a class="jxr_linenumber" name="1667" href="#1667">1667</a>         ((AbstractPropertyData&lt;?&gt;) result).setLocalName(property.getLocalName());
<a class="jxr_linenumber" name="1668" href="#1668">1668</a>         ((AbstractPropertyData&lt;?&gt;) result).setQueryName(property.getQueryName());
<a class="jxr_linenumber" name="1669" href="#1669">1669</a>         ((AbstractPropertyData&lt;?&gt;) result).setDisplayName(property.getDisplayName());
<a class="jxr_linenumber" name="1670" href="#1670">1670</a> 
<a class="jxr_linenumber" name="1671" href="#1671">1671</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="1672" href="#1672">1672</a>         convertExtension(property, result);
<a class="jxr_linenumber" name="1673" href="#1673">1673</a> 
<a class="jxr_linenumber" name="1674" href="#1674">1674</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1675" href="#1675">1675</a>     }
<a class="jxr_linenumber" name="1676" href="#1676">1676</a> 
<a class="jxr_linenumber" name="1677" href="#1677">1677</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1678" href="#1678">1678</a> <em class="jxr_javadoccomment">     * Converts a properties object.</em>
<a class="jxr_linenumber" name="1679" href="#1679">1679</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1680" href="#1680">1680</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CmisPropertiesType convert(Properties properties) {
<a class="jxr_linenumber" name="1681" href="#1681">1681</a>         <strong class="jxr_keyword">if</strong> (properties == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1682" href="#1682">1682</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1683" href="#1683">1683</a>         }
<a class="jxr_linenumber" name="1684" href="#1684">1684</a> 
<a class="jxr_linenumber" name="1685" href="#1685">1685</a>         CmisPropertiesType result = <strong class="jxr_keyword">new</strong> CmisPropertiesType();
<a class="jxr_linenumber" name="1686" href="#1686">1686</a> 
<a class="jxr_linenumber" name="1687" href="#1687">1687</a>         <strong class="jxr_keyword">if</strong> (properties.getProperties() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1688" href="#1688">1688</a>             <strong class="jxr_keyword">for</strong> (PropertyData&lt;?&gt; property : properties.getPropertyList()) {
<a class="jxr_linenumber" name="1689" href="#1689">1689</a>                 result.getProperty().add(convert(property));
<a class="jxr_linenumber" name="1690" href="#1690">1690</a>             }
<a class="jxr_linenumber" name="1691" href="#1691">1691</a>         }
<a class="jxr_linenumber" name="1692" href="#1692">1692</a> 
<a class="jxr_linenumber" name="1693" href="#1693">1693</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="1694" href="#1694">1694</a>         convertExtension(properties, result);
<a class="jxr_linenumber" name="1695" href="#1695">1695</a> 
<a class="jxr_linenumber" name="1696" href="#1696">1696</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1697" href="#1697">1697</a>     }
<a class="jxr_linenumber" name="1698" href="#1698">1698</a> 
<a class="jxr_linenumber" name="1699" href="#1699">1699</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1700" href="#1700">1700</a> <em class="jxr_javadoccomment">     * Converts a property object.</em>
<a class="jxr_linenumber" name="1701" href="#1701">1701</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1702" href="#1702">1702</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CmisProperty convert(PropertyData&lt;?&gt; property) {
<a class="jxr_linenumber" name="1703" href="#1703">1703</a>         <strong class="jxr_keyword">if</strong> (property == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1704" href="#1704">1704</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1705" href="#1705">1705</a>         }
<a class="jxr_linenumber" name="1706" href="#1706">1706</a> 
<a class="jxr_linenumber" name="1707" href="#1707">1707</a>         CmisProperty result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1708" href="#1708">1708</a> 
<a class="jxr_linenumber" name="1709" href="#1709">1709</a>         <strong class="jxr_keyword">if</strong> (property instanceof PropertyString) {
<a class="jxr_linenumber" name="1710" href="#1710">1710</a>             result = <strong class="jxr_keyword">new</strong> CmisPropertyString();
<a class="jxr_linenumber" name="1711" href="#1711">1711</a>             ((CmisPropertyString) result).getValue().addAll(((PropertyString) property).getValues());
<a class="jxr_linenumber" name="1712" href="#1712">1712</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof PropertyId) {
<a class="jxr_linenumber" name="1713" href="#1713">1713</a>             result = <strong class="jxr_keyword">new</strong> CmisPropertyId();
<a class="jxr_linenumber" name="1714" href="#1714">1714</a>             ((CmisPropertyId) result).getValue().addAll(((PropertyId) property).getValues());
<a class="jxr_linenumber" name="1715" href="#1715">1715</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof PropertyInteger) {
<a class="jxr_linenumber" name="1716" href="#1716">1716</a>             result = <strong class="jxr_keyword">new</strong> CmisPropertyInteger();
<a class="jxr_linenumber" name="1717" href="#1717">1717</a>             ((CmisPropertyInteger) result).getValue().addAll(((PropertyInteger) property).getValues());
<a class="jxr_linenumber" name="1718" href="#1718">1718</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof PropertyDecimal) {
<a class="jxr_linenumber" name="1719" href="#1719">1719</a>             result = <strong class="jxr_keyword">new</strong> CmisPropertyDecimal();
<a class="jxr_linenumber" name="1720" href="#1720">1720</a>             ((CmisPropertyDecimal) result).getValue().addAll(((PropertyDecimal) property).getValues());
<a class="jxr_linenumber" name="1721" href="#1721">1721</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof PropertyBoolean) {
<a class="jxr_linenumber" name="1722" href="#1722">1722</a>             result = <strong class="jxr_keyword">new</strong> CmisPropertyBoolean();
<a class="jxr_linenumber" name="1723" href="#1723">1723</a>             ((CmisPropertyBoolean) result).getValue().addAll(((PropertyBoolean) property).getValues());
<a class="jxr_linenumber" name="1724" href="#1724">1724</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof PropertyDateTime) {
<a class="jxr_linenumber" name="1725" href="#1725">1725</a>             result = <strong class="jxr_keyword">new</strong> CmisPropertyDateTime();
<a class="jxr_linenumber" name="1726" href="#1726">1726</a>             ((CmisPropertyDateTime) result).getValue().addAll(
<a class="jxr_linenumber" name="1727" href="#1727">1727</a>                     convertCalendar(((PropertyDateTime) property).getValues()));
<a class="jxr_linenumber" name="1728" href="#1728">1728</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof PropertyHtml) {
<a class="jxr_linenumber" name="1729" href="#1729">1729</a>             result = <strong class="jxr_keyword">new</strong> CmisPropertyHtml();
<a class="jxr_linenumber" name="1730" href="#1730">1730</a>             ((CmisPropertyHtml) result).getValue().addAll(((PropertyHtml) property).getValues());
<a class="jxr_linenumber" name="1731" href="#1731">1731</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof PropertyUri) {
<a class="jxr_linenumber" name="1732" href="#1732">1732</a>             result = <strong class="jxr_keyword">new</strong> CmisPropertyUri();
<a class="jxr_linenumber" name="1733" href="#1733">1733</a>             ((CmisPropertyUri) result).getValue().addAll(((PropertyUri) property).getValues());
<a class="jxr_linenumber" name="1734" href="#1734">1734</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1735" href="#1735">1735</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1736" href="#1736">1736</a>         }
<a class="jxr_linenumber" name="1737" href="#1737">1737</a> 
<a class="jxr_linenumber" name="1738" href="#1738">1738</a>         result.setPropertyDefinitionId(property.getId());
<a class="jxr_linenumber" name="1739" href="#1739">1739</a>         result.setLocalName(property.getLocalName());
<a class="jxr_linenumber" name="1740" href="#1740">1740</a>         result.setQueryName(property.getQueryName());
<a class="jxr_linenumber" name="1741" href="#1741">1741</a>         result.setDisplayName(property.getDisplayName());
<a class="jxr_linenumber" name="1742" href="#1742">1742</a> 
<a class="jxr_linenumber" name="1743" href="#1743">1743</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1744" href="#1744">1744</a>     }
<a class="jxr_linenumber" name="1745" href="#1745">1745</a> 
<a class="jxr_linenumber" name="1746" href="#1746">1746</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1747" href="#1747">1747</a> <em class="jxr_javadoccomment">     * Converts a rendition object.</em>
<a class="jxr_linenumber" name="1748" href="#1748">1748</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1749" href="#1749">1749</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> RenditionData convert(CmisRenditionType rendition) {
<a class="jxr_linenumber" name="1750" href="#1750">1750</a>         <strong class="jxr_keyword">if</strong> (rendition == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1751" href="#1751">1751</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1752" href="#1752">1752</a>         }
<a class="jxr_linenumber" name="1753" href="#1753">1753</a> 
<a class="jxr_linenumber" name="1754" href="#1754">1754</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/RenditionDataImpl.html">RenditionDataImpl</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/RenditionDataImpl.html">RenditionDataImpl</a>();
<a class="jxr_linenumber" name="1755" href="#1755">1755</a> 
<a class="jxr_linenumber" name="1756" href="#1756">1756</a>         result.setBigHeight(rendition.getHeight());
<a class="jxr_linenumber" name="1757" href="#1757">1757</a>         result.setKind(rendition.getKind());
<a class="jxr_linenumber" name="1758" href="#1758">1758</a>         result.setBigLength(rendition.getLength());
<a class="jxr_linenumber" name="1759" href="#1759">1759</a>         result.setMimeType(rendition.getMimetype());
<a class="jxr_linenumber" name="1760" href="#1760">1760</a>         result.setRenditionDocumentId(rendition.getRenditionDocumentId());
<a class="jxr_linenumber" name="1761" href="#1761">1761</a>         result.setStreamId(rendition.getStreamId());
<a class="jxr_linenumber" name="1762" href="#1762">1762</a>         result.setTitle(rendition.getTitle());
<a class="jxr_linenumber" name="1763" href="#1763">1763</a>         result.setBigWidth(rendition.getWidth());
<a class="jxr_linenumber" name="1764" href="#1764">1764</a> 
<a class="jxr_linenumber" name="1765" href="#1765">1765</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="1766" href="#1766">1766</a>         convertExtension(rendition, result);
<a class="jxr_linenumber" name="1767" href="#1767">1767</a> 
<a class="jxr_linenumber" name="1768" href="#1768">1768</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1769" href="#1769">1769</a>     }
<a class="jxr_linenumber" name="1770" href="#1770">1770</a> 
<a class="jxr_linenumber" name="1771" href="#1771">1771</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1772" href="#1772">1772</a> <em class="jxr_javadoccomment">     * Converts a rendition object.</em>
<a class="jxr_linenumber" name="1773" href="#1773">1773</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1774" href="#1774">1774</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CmisRenditionType convert(RenditionData rendition) {
<a class="jxr_linenumber" name="1775" href="#1775">1775</a>         <strong class="jxr_keyword">if</strong> (rendition == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1776" href="#1776">1776</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1777" href="#1777">1777</a>         }
<a class="jxr_linenumber" name="1778" href="#1778">1778</a> 
<a class="jxr_linenumber" name="1779" href="#1779">1779</a>         CmisRenditionType result = <strong class="jxr_keyword">new</strong> CmisRenditionType();
<a class="jxr_linenumber" name="1780" href="#1780">1780</a> 
<a class="jxr_linenumber" name="1781" href="#1781">1781</a>         result.setHeight(rendition.getBigHeight());
<a class="jxr_linenumber" name="1782" href="#1782">1782</a>         result.setKind(rendition.getKind());
<a class="jxr_linenumber" name="1783" href="#1783">1783</a>         result.setLength(rendition.getBigLength());
<a class="jxr_linenumber" name="1784" href="#1784">1784</a>         result.setMimetype(rendition.getMimeType());
<a class="jxr_linenumber" name="1785" href="#1785">1785</a>         result.setRenditionDocumentId(rendition.getRenditionDocumentId());
<a class="jxr_linenumber" name="1786" href="#1786">1786</a>         result.setStreamId(rendition.getStreamId());
<a class="jxr_linenumber" name="1787" href="#1787">1787</a>         result.setTitle(rendition.getTitle());
<a class="jxr_linenumber" name="1788" href="#1788">1788</a>         result.setWidth(rendition.getBigWidth());
<a class="jxr_linenumber" name="1789" href="#1789">1789</a> 
<a class="jxr_linenumber" name="1790" href="#1790">1790</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="1791" href="#1791">1791</a>         convertExtension(rendition, result);
<a class="jxr_linenumber" name="1792" href="#1792">1792</a> 
<a class="jxr_linenumber" name="1793" href="#1793">1793</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1794" href="#1794">1794</a>     }
<a class="jxr_linenumber" name="1795" href="#1795">1795</a> 
<a class="jxr_linenumber" name="1796" href="#1796">1796</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1797" href="#1797">1797</a> <em class="jxr_javadoccomment">     * Converts a CMIS object.</em>
<a class="jxr_linenumber" name="1798" href="#1798">1798</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1799" href="#1799">1799</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CmisObjectType convert(ObjectData object, CmisVersion cmisVersion) {
<a class="jxr_linenumber" name="1800" href="#1800">1800</a>         <strong class="jxr_keyword">if</strong> (object == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1801" href="#1801">1801</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1802" href="#1802">1802</a>         }
<a class="jxr_linenumber" name="1803" href="#1803">1803</a> 
<a class="jxr_linenumber" name="1804" href="#1804">1804</a>         CmisObjectType result = <strong class="jxr_keyword">new</strong> CmisObjectType();
<a class="jxr_linenumber" name="1805" href="#1805">1805</a> 
<a class="jxr_linenumber" name="1806" href="#1806">1806</a>         result.setAcl(convert(object.getAcl()));
<a class="jxr_linenumber" name="1807" href="#1807">1807</a>         result.setAllowableActions(convert(object.getAllowableActions(), cmisVersion));
<a class="jxr_linenumber" name="1808" href="#1808">1808</a>         <strong class="jxr_keyword">if</strong> (object.getChangeEventInfo() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1809" href="#1809">1809</a>             CmisChangeEventType changeEventInfo = <strong class="jxr_keyword">new</strong> CmisChangeEventType();
<a class="jxr_linenumber" name="1810" href="#1810">1810</a> 
<a class="jxr_linenumber" name="1811" href="#1811">1811</a>             changeEventInfo
<a class="jxr_linenumber" name="1812" href="#1812">1812</a>                     .setChangeType(convert(EnumTypeOfChanges.<strong class="jxr_keyword">class</strong>, object.getChangeEventInfo().getChangeType()));
<a class="jxr_linenumber" name="1813" href="#1813">1813</a>             changeEventInfo.setChangeTime(convertCalendar(object.getChangeEventInfo().getChangeTime()));
<a class="jxr_linenumber" name="1814" href="#1814">1814</a> 
<a class="jxr_linenumber" name="1815" href="#1815">1815</a>             convertExtension(object.getChangeEventInfo(), changeEventInfo);
<a class="jxr_linenumber" name="1816" href="#1816">1816</a> 
<a class="jxr_linenumber" name="1817" href="#1817">1817</a>             result.setChangeEventInfo(changeEventInfo);
<a class="jxr_linenumber" name="1818" href="#1818">1818</a>         }
<a class="jxr_linenumber" name="1819" href="#1819">1819</a>         result.setExactACL(object.getAcl() == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">null</strong> : object.getAcl().isExact());
<a class="jxr_linenumber" name="1820" href="#1820">1820</a>         result.setPolicyIds(convert(object.getPolicyIds()));
<a class="jxr_linenumber" name="1821" href="#1821">1821</a>         result.setProperties(convert(object.getProperties()));
<a class="jxr_linenumber" name="1822" href="#1822">1822</a>         <strong class="jxr_keyword">if</strong> (object.getRelationships() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1823" href="#1823">1823</a>             <strong class="jxr_keyword">for</strong> (ObjectData relationship : object.getRelationships()) {
<a class="jxr_linenumber" name="1824" href="#1824">1824</a>                 result.getRelationship().add(convert(relationship, cmisVersion));
<a class="jxr_linenumber" name="1825" href="#1825">1825</a>             }
<a class="jxr_linenumber" name="1826" href="#1826">1826</a>         }
<a class="jxr_linenumber" name="1827" href="#1827">1827</a>         <strong class="jxr_keyword">if</strong> (object.getRenditions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1828" href="#1828">1828</a>             <strong class="jxr_keyword">for</strong> (RenditionData rendition : object.getRenditions()) {
<a class="jxr_linenumber" name="1829" href="#1829">1829</a>                 result.getRendition().add(convert(rendition));
<a class="jxr_linenumber" name="1830" href="#1830">1830</a>             }
<a class="jxr_linenumber" name="1831" href="#1831">1831</a>         }
<a class="jxr_linenumber" name="1832" href="#1832">1832</a> 
<a class="jxr_linenumber" name="1833" href="#1833">1833</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="1834" href="#1834">1834</a>         convertExtension(object, result);
<a class="jxr_linenumber" name="1835" href="#1835">1835</a> 
<a class="jxr_linenumber" name="1836" href="#1836">1836</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1837" href="#1837">1837</a>     }
<a class="jxr_linenumber" name="1838" href="#1838">1838</a> 
<a class="jxr_linenumber" name="1839" href="#1839">1839</a>     <em class="jxr_comment">// -------------------------------------------------------------------------</em>
<a class="jxr_linenumber" name="1840" href="#1840">1840</a>     <em class="jxr_comment">// --- ACLs and Policies ---</em>
<a class="jxr_linenumber" name="1841" href="#1841">1841</a>     <em class="jxr_comment">// -------------------------------------------------------------------------</em>
<a class="jxr_linenumber" name="1842" href="#1842">1842</a> 
<a class="jxr_linenumber" name="1843" href="#1843">1843</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1844" href="#1844">1844</a> <em class="jxr_javadoccomment">     * Converts an ACL object with its ACEs.</em>
<a class="jxr_linenumber" name="1845" href="#1845">1845</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1846" href="#1846">1846</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Acl convert(CmisAccessControlListType acl, Boolean isExact) {
<a class="jxr_linenumber" name="1847" href="#1847">1847</a>         <strong class="jxr_keyword">if</strong> (acl == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1848" href="#1848">1848</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1849" href="#1849">1849</a>         }
<a class="jxr_linenumber" name="1850" href="#1850">1850</a> 
<a class="jxr_linenumber" name="1851" href="#1851">1851</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/AccessControlListImpl.html">AccessControlListImpl</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/AccessControlListImpl.html">AccessControlListImpl</a>();
<a class="jxr_linenumber" name="1852" href="#1852">1852</a> 
<a class="jxr_linenumber" name="1853" href="#1853">1853</a>         List&lt;Ace&gt; aces = <strong class="jxr_keyword">new</strong> ArrayList&lt;Ace&gt;();
<a class="jxr_linenumber" name="1854" href="#1854">1854</a>         <strong class="jxr_keyword">for</strong> (CmisAccessControlEntryType entry : acl.getPermission()) {
<a class="jxr_linenumber" name="1855" href="#1855">1855</a>             <strong class="jxr_keyword">if</strong> (entry == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1856" href="#1856">1856</a>                 <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="1857" href="#1857">1857</a>             }
<a class="jxr_linenumber" name="1858" href="#1858">1858</a> 
<a class="jxr_linenumber" name="1859" href="#1859">1859</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/AccessControlEntryImpl.html">AccessControlEntryImpl</a> ace = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/AccessControlEntryImpl.html">AccessControlEntryImpl</a>();
<a class="jxr_linenumber" name="1860" href="#1860">1860</a>             ace.setDirect(entry.isDirect());
<a class="jxr_linenumber" name="1861" href="#1861">1861</a>             ace.setPermissions(entry.getPermission());
<a class="jxr_linenumber" name="1862" href="#1862">1862</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/AccessControlPrincipalDataImpl.html">AccessControlPrincipalDataImpl</a> principal = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/AccessControlPrincipalDataImpl.html">AccessControlPrincipalDataImpl</a>(
<a class="jxr_linenumber" name="1863" href="#1863">1863</a>                     entry.getPrincipal() == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">null</strong> : entry.getPrincipal().getPrincipalId());
<a class="jxr_linenumber" name="1864" href="#1864">1864</a>             convertExtension(entry.getPrincipal(), principal);
<a class="jxr_linenumber" name="1865" href="#1865">1865</a>             ace.setPrincipal(principal);
<a class="jxr_linenumber" name="1866" href="#1866">1866</a> 
<a class="jxr_linenumber" name="1867" href="#1867">1867</a>             <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="1868" href="#1868">1868</a>             convertExtension(entry, ace);
<a class="jxr_linenumber" name="1869" href="#1869">1869</a> 
<a class="jxr_linenumber" name="1870" href="#1870">1870</a>             aces.add(ace);
<a class="jxr_linenumber" name="1871" href="#1871">1871</a>         }
<a class="jxr_linenumber" name="1872" href="#1872">1872</a> 
<a class="jxr_linenumber" name="1873" href="#1873">1873</a>         result.setAces(aces);
<a class="jxr_linenumber" name="1874" href="#1874">1874</a> 
<a class="jxr_linenumber" name="1875" href="#1875">1875</a>         result.setExact(isExact);
<a class="jxr_linenumber" name="1876" href="#1876">1876</a> 
<a class="jxr_linenumber" name="1877" href="#1877">1877</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="1878" href="#1878">1878</a>         convertExtension(acl, result);
<a class="jxr_linenumber" name="1879" href="#1879">1879</a> 
<a class="jxr_linenumber" name="1880" href="#1880">1880</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1881" href="#1881">1881</a>     }
<a class="jxr_linenumber" name="1882" href="#1882">1882</a> 
<a class="jxr_linenumber" name="1883" href="#1883">1883</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1884" href="#1884">1884</a> <em class="jxr_javadoccomment">     * Converts an ACL object with its ACEs.</em>
<a class="jxr_linenumber" name="1885" href="#1885">1885</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1886" href="#1886">1886</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CmisAccessControlListType convert(Acl acl) {
<a class="jxr_linenumber" name="1887" href="#1887">1887</a>         <strong class="jxr_keyword">if</strong> (acl == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1888" href="#1888">1888</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1889" href="#1889">1889</a>         }
<a class="jxr_linenumber" name="1890" href="#1890">1890</a> 
<a class="jxr_linenumber" name="1891" href="#1891">1891</a>         CmisAccessControlListType result = <strong class="jxr_keyword">new</strong> CmisAccessControlListType();
<a class="jxr_linenumber" name="1892" href="#1892">1892</a> 
<a class="jxr_linenumber" name="1893" href="#1893">1893</a>         <strong class="jxr_keyword">if</strong> (acl.getAces() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1894" href="#1894">1894</a>             <strong class="jxr_keyword">for</strong> (Ace ace : acl.getAces()) {
<a class="jxr_linenumber" name="1895" href="#1895">1895</a>                 <strong class="jxr_keyword">if</strong> (ace == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1896" href="#1896">1896</a>                     <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="1897" href="#1897">1897</a>                 }
<a class="jxr_linenumber" name="1898" href="#1898">1898</a> 
<a class="jxr_linenumber" name="1899" href="#1899">1899</a>                 CmisAccessControlEntryType entry = <strong class="jxr_keyword">new</strong> CmisAccessControlEntryType();
<a class="jxr_linenumber" name="1900" href="#1900">1900</a> 
<a class="jxr_linenumber" name="1901" href="#1901">1901</a>                 <strong class="jxr_keyword">if</strong> (ace.getPrincipal() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1902" href="#1902">1902</a>                     CmisAccessControlPrincipalType pincipal = <strong class="jxr_keyword">new</strong> CmisAccessControlPrincipalType();
<a class="jxr_linenumber" name="1903" href="#1903">1903</a> 
<a class="jxr_linenumber" name="1904" href="#1904">1904</a>                     pincipal.setPrincipalId(ace.getPrincipal().getId());
<a class="jxr_linenumber" name="1905" href="#1905">1905</a>                     convertExtension(pincipal, ace.getPrincipal());
<a class="jxr_linenumber" name="1906" href="#1906">1906</a> 
<a class="jxr_linenumber" name="1907" href="#1907">1907</a>                     entry.setPrincipal(pincipal);
<a class="jxr_linenumber" name="1908" href="#1908">1908</a>                 }
<a class="jxr_linenumber" name="1909" href="#1909">1909</a> 
<a class="jxr_linenumber" name="1910" href="#1910">1910</a>                 entry.setDirect(ace.isDirect());
<a class="jxr_linenumber" name="1911" href="#1911">1911</a>                 entry.getPermission().addAll(ace.getPermissions());
<a class="jxr_linenumber" name="1912" href="#1912">1912</a> 
<a class="jxr_linenumber" name="1913" href="#1913">1913</a>                 convertExtension(ace, entry);
<a class="jxr_linenumber" name="1914" href="#1914">1914</a> 
<a class="jxr_linenumber" name="1915" href="#1915">1915</a>                 result.getPermission().add(entry);
<a class="jxr_linenumber" name="1916" href="#1916">1916</a>             }
<a class="jxr_linenumber" name="1917" href="#1917">1917</a>         }
<a class="jxr_linenumber" name="1918" href="#1918">1918</a> 
<a class="jxr_linenumber" name="1919" href="#1919">1919</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="1920" href="#1920">1920</a>         convertExtension(acl, result);
<a class="jxr_linenumber" name="1921" href="#1921">1921</a> 
<a class="jxr_linenumber" name="1922" href="#1922">1922</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1923" href="#1923">1923</a>     }
<a class="jxr_linenumber" name="1924" href="#1924">1924</a> 
<a class="jxr_linenumber" name="1925" href="#1925">1925</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1926" href="#1926">1926</a> <em class="jxr_javadoccomment">     * Converts an AllowableActions object.</em>
<a class="jxr_linenumber" name="1927" href="#1927">1927</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1928" href="#1928">1928</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> AllowableActions convert(CmisAllowableActionsType allowableActions) {
<a class="jxr_linenumber" name="1929" href="#1929">1929</a>         <strong class="jxr_keyword">if</strong> (allowableActions == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1930" href="#1930">1930</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1931" href="#1931">1931</a>         }
<a class="jxr_linenumber" name="1932" href="#1932">1932</a> 
<a class="jxr_linenumber" name="1933" href="#1933">1933</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/AllowableActionsImpl.html">AllowableActionsImpl</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/AllowableActionsImpl.html">AllowableActionsImpl</a>();
<a class="jxr_linenumber" name="1934" href="#1934">1934</a> 
<a class="jxr_linenumber" name="1935" href="#1935">1935</a>         Set&lt;Action&gt; set = EnumSet.noneOf(Action.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="1936" href="#1936">1936</a> 
<a class="jxr_linenumber" name="1937" href="#1937">1937</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanAddObjectToFolder())) {
<a class="jxr_linenumber" name="1938" href="#1938">1938</a>             set.add(Action.CAN_ADD_OBJECT_TO_FOLDER);
<a class="jxr_linenumber" name="1939" href="#1939">1939</a>         }
<a class="jxr_linenumber" name="1940" href="#1940">1940</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanApplyACL())) {
<a class="jxr_linenumber" name="1941" href="#1941">1941</a>             set.add(Action.CAN_APPLY_ACL);
<a class="jxr_linenumber" name="1942" href="#1942">1942</a>         }
<a class="jxr_linenumber" name="1943" href="#1943">1943</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanApplyPolicy())) {
<a class="jxr_linenumber" name="1944" href="#1944">1944</a>             set.add(Action.CAN_APPLY_POLICY);
<a class="jxr_linenumber" name="1945" href="#1945">1945</a>         }
<a class="jxr_linenumber" name="1946" href="#1946">1946</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanCancelCheckOut())) {
<a class="jxr_linenumber" name="1947" href="#1947">1947</a>             set.add(Action.CAN_CANCEL_CHECK_OUT);
<a class="jxr_linenumber" name="1948" href="#1948">1948</a>         }
<a class="jxr_linenumber" name="1949" href="#1949">1949</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanCheckIn())) {
<a class="jxr_linenumber" name="1950" href="#1950">1950</a>             set.add(Action.CAN_CHECK_IN);
<a class="jxr_linenumber" name="1951" href="#1951">1951</a>         }
<a class="jxr_linenumber" name="1952" href="#1952">1952</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanCheckOut())) {
<a class="jxr_linenumber" name="1953" href="#1953">1953</a>             set.add(Action.CAN_CHECK_OUT);
<a class="jxr_linenumber" name="1954" href="#1954">1954</a>         }
<a class="jxr_linenumber" name="1955" href="#1955">1955</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanCreateDocument())) {
<a class="jxr_linenumber" name="1956" href="#1956">1956</a>             set.add(Action.CAN_CREATE_DOCUMENT);
<a class="jxr_linenumber" name="1957" href="#1957">1957</a>         }
<a class="jxr_linenumber" name="1958" href="#1958">1958</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanCreateFolder())) {
<a class="jxr_linenumber" name="1959" href="#1959">1959</a>             set.add(Action.CAN_CREATE_FOLDER);
<a class="jxr_linenumber" name="1960" href="#1960">1960</a>         }
<a class="jxr_linenumber" name="1961" href="#1961">1961</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanCreateRelationship())) {
<a class="jxr_linenumber" name="1962" href="#1962">1962</a>             set.add(Action.CAN_CREATE_RELATIONSHIP);
<a class="jxr_linenumber" name="1963" href="#1963">1963</a>         }
<a class="jxr_linenumber" name="1964" href="#1964">1964</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanCreateItem())) {
<a class="jxr_linenumber" name="1965" href="#1965">1965</a>             set.add(Action.CAN_CREATE_ITEM);
<a class="jxr_linenumber" name="1966" href="#1966">1966</a>         }
<a class="jxr_linenumber" name="1967" href="#1967">1967</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanDeleteContentStream())) {
<a class="jxr_linenumber" name="1968" href="#1968">1968</a>             set.add(Action.CAN_DELETE_CONTENT_STREAM);
<a class="jxr_linenumber" name="1969" href="#1969">1969</a>         }
<a class="jxr_linenumber" name="1970" href="#1970">1970</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanDeleteObject())) {
<a class="jxr_linenumber" name="1971" href="#1971">1971</a>             set.add(Action.CAN_DELETE_OBJECT);
<a class="jxr_linenumber" name="1972" href="#1972">1972</a>         }
<a class="jxr_linenumber" name="1973" href="#1973">1973</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanDeleteTree())) {
<a class="jxr_linenumber" name="1974" href="#1974">1974</a>             set.add(Action.CAN_DELETE_TREE);
<a class="jxr_linenumber" name="1975" href="#1975">1975</a>         }
<a class="jxr_linenumber" name="1976" href="#1976">1976</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanGetACL())) {
<a class="jxr_linenumber" name="1977" href="#1977">1977</a>             set.add(Action.CAN_GET_ACL);
<a class="jxr_linenumber" name="1978" href="#1978">1978</a>         }
<a class="jxr_linenumber" name="1979" href="#1979">1979</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanGetAllVersions())) {
<a class="jxr_linenumber" name="1980" href="#1980">1980</a>             set.add(Action.CAN_GET_ALL_VERSIONS);
<a class="jxr_linenumber" name="1981" href="#1981">1981</a>         }
<a class="jxr_linenumber" name="1982" href="#1982">1982</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanGetAppliedPolicies())) {
<a class="jxr_linenumber" name="1983" href="#1983">1983</a>             set.add(Action.CAN_GET_APPLIED_POLICIES);
<a class="jxr_linenumber" name="1984" href="#1984">1984</a>         }
<a class="jxr_linenumber" name="1985" href="#1985">1985</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanGetChildren())) {
<a class="jxr_linenumber" name="1986" href="#1986">1986</a>             set.add(Action.CAN_GET_CHILDREN);
<a class="jxr_linenumber" name="1987" href="#1987">1987</a>         }
<a class="jxr_linenumber" name="1988" href="#1988">1988</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanGetContentStream())) {
<a class="jxr_linenumber" name="1989" href="#1989">1989</a>             set.add(Action.CAN_GET_CONTENT_STREAM);
<a class="jxr_linenumber" name="1990" href="#1990">1990</a>         }
<a class="jxr_linenumber" name="1991" href="#1991">1991</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanGetDescendants())) {
<a class="jxr_linenumber" name="1992" href="#1992">1992</a>             set.add(Action.CAN_GET_DESCENDANTS);
<a class="jxr_linenumber" name="1993" href="#1993">1993</a>         }
<a class="jxr_linenumber" name="1994" href="#1994">1994</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanGetFolderParent())) {
<a class="jxr_linenumber" name="1995" href="#1995">1995</a>             set.add(Action.CAN_GET_FOLDER_PARENT);
<a class="jxr_linenumber" name="1996" href="#1996">1996</a>         }
<a class="jxr_linenumber" name="1997" href="#1997">1997</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanGetFolderTree())) {
<a class="jxr_linenumber" name="1998" href="#1998">1998</a>             set.add(Action.CAN_GET_FOLDER_TREE);
<a class="jxr_linenumber" name="1999" href="#1999">1999</a>         }
<a class="jxr_linenumber" name="2000" href="#2000">2000</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanGetObjectParents())) {
<a class="jxr_linenumber" name="2001" href="#2001">2001</a>             set.add(Action.CAN_GET_OBJECT_PARENTS);
<a class="jxr_linenumber" name="2002" href="#2002">2002</a>         }
<a class="jxr_linenumber" name="2003" href="#2003">2003</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanGetObjectRelationships())) {
<a class="jxr_linenumber" name="2004" href="#2004">2004</a>             set.add(Action.CAN_GET_OBJECT_RELATIONSHIPS);
<a class="jxr_linenumber" name="2005" href="#2005">2005</a>         }
<a class="jxr_linenumber" name="2006" href="#2006">2006</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanGetProperties())) {
<a class="jxr_linenumber" name="2007" href="#2007">2007</a>             set.add(Action.CAN_GET_PROPERTIES);
<a class="jxr_linenumber" name="2008" href="#2008">2008</a>         }
<a class="jxr_linenumber" name="2009" href="#2009">2009</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanGetRenditions())) {
<a class="jxr_linenumber" name="2010" href="#2010">2010</a>             set.add(Action.CAN_GET_RENDITIONS);
<a class="jxr_linenumber" name="2011" href="#2011">2011</a>         }
<a class="jxr_linenumber" name="2012" href="#2012">2012</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanMoveObject())) {
<a class="jxr_linenumber" name="2013" href="#2013">2013</a>             set.add(Action.CAN_MOVE_OBJECT);
<a class="jxr_linenumber" name="2014" href="#2014">2014</a>         }
<a class="jxr_linenumber" name="2015" href="#2015">2015</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanRemoveObjectFromFolder())) {
<a class="jxr_linenumber" name="2016" href="#2016">2016</a>             set.add(Action.CAN_REMOVE_OBJECT_FROM_FOLDER);
<a class="jxr_linenumber" name="2017" href="#2017">2017</a>         }
<a class="jxr_linenumber" name="2018" href="#2018">2018</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanRemovePolicy())) {
<a class="jxr_linenumber" name="2019" href="#2019">2019</a>             set.add(Action.CAN_REMOVE_POLICY);
<a class="jxr_linenumber" name="2020" href="#2020">2020</a>         }
<a class="jxr_linenumber" name="2021" href="#2021">2021</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanSetContentStream())) {
<a class="jxr_linenumber" name="2022" href="#2022">2022</a>             set.add(Action.CAN_SET_CONTENT_STREAM);
<a class="jxr_linenumber" name="2023" href="#2023">2023</a>         }
<a class="jxr_linenumber" name="2024" href="#2024">2024</a>         <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(allowableActions.isCanUpdateProperties())) {
<a class="jxr_linenumber" name="2025" href="#2025">2025</a>             set.add(Action.CAN_UPDATE_PROPERTIES);
<a class="jxr_linenumber" name="2026" href="#2026">2026</a>         }
<a class="jxr_linenumber" name="2027" href="#2027">2027</a> 
<a class="jxr_linenumber" name="2028" href="#2028">2028</a>         result.setAllowableActions(set);
<a class="jxr_linenumber" name="2029" href="#2029">2029</a> 
<a class="jxr_linenumber" name="2030" href="#2030">2030</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="2031" href="#2031">2031</a>         convertExtension(allowableActions, result);
<a class="jxr_linenumber" name="2032" href="#2032">2032</a> 
<a class="jxr_linenumber" name="2033" href="#2033">2033</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2034" href="#2034">2034</a>     }
<a class="jxr_linenumber" name="2035" href="#2035">2035</a> 
<a class="jxr_linenumber" name="2036" href="#2036">2036</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2037" href="#2037">2037</a> <em class="jxr_javadoccomment">     * Converts an AllowableActions object.</em>
<a class="jxr_linenumber" name="2038" href="#2038">2038</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2039" href="#2039">2039</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CmisAllowableActionsType convert(AllowableActions allowableActions, CmisVersion cmisVersion) {
<a class="jxr_linenumber" name="2040" href="#2040">2040</a>         <strong class="jxr_keyword">if</strong> (allowableActions == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2041" href="#2041">2041</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2042" href="#2042">2042</a>         }
<a class="jxr_linenumber" name="2043" href="#2043">2043</a> 
<a class="jxr_linenumber" name="2044" href="#2044">2044</a>         CmisAllowableActionsType result = <strong class="jxr_keyword">new</strong> CmisAllowableActionsType();
<a class="jxr_linenumber" name="2045" href="#2045">2045</a> 
<a class="jxr_linenumber" name="2046" href="#2046">2046</a>         <strong class="jxr_keyword">if</strong> (allowableActions.getAllowableActions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2047" href="#2047">2047</a>             Set&lt;Action&gt; set = allowableActions.getAllowableActions();
<a class="jxr_linenumber" name="2048" href="#2048">2048</a> 
<a class="jxr_linenumber" name="2049" href="#2049">2049</a>             result.setCanAddObjectToFolder(set.contains(Action.CAN_ADD_OBJECT_TO_FOLDER));
<a class="jxr_linenumber" name="2050" href="#2050">2050</a>             result.setCanApplyACL(set.contains(Action.CAN_APPLY_ACL));
<a class="jxr_linenumber" name="2051" href="#2051">2051</a>             result.setCanApplyPolicy(set.contains(Action.CAN_APPLY_POLICY));
<a class="jxr_linenumber" name="2052" href="#2052">2052</a>             result.setCanCancelCheckOut(set.contains(Action.CAN_CANCEL_CHECK_OUT));
<a class="jxr_linenumber" name="2053" href="#2053">2053</a>             result.setCanCheckIn(set.contains(Action.CAN_CHECK_IN));
<a class="jxr_linenumber" name="2054" href="#2054">2054</a>             result.setCanCheckOut(set.contains(Action.CAN_CHECK_OUT));
<a class="jxr_linenumber" name="2055" href="#2055">2055</a>             result.setCanCreateDocument(set.contains(Action.CAN_CREATE_DOCUMENT));
<a class="jxr_linenumber" name="2056" href="#2056">2056</a>             result.setCanCreateFolder(set.contains(Action.CAN_CREATE_FOLDER));
<a class="jxr_linenumber" name="2057" href="#2057">2057</a>             result.setCanCreateRelationship(set.contains(Action.CAN_CREATE_RELATIONSHIP));
<a class="jxr_linenumber" name="2058" href="#2058">2058</a>             <strong class="jxr_keyword">if</strong> (set.contains(Action.CAN_CREATE_ITEM) &amp;&amp; cmisVersion == CmisVersion.CMIS_1_0) {
<a class="jxr_linenumber" name="2059" href="#2059">2059</a>                 LOG.warn(<span class="jxr_string">"Receiver only understands CMIS 1.0 but the Allowable Actions contain the canCreateItem action. "</span>
<a class="jxr_linenumber" name="2060" href="#2060">2060</a>                         + <span class="jxr_string">"The canCreateItem action has been removed from the Allowable Actions."</span>);
<a class="jxr_linenumber" name="2061" href="#2061">2061</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2062" href="#2062">2062</a>                 result.setCanCreateItem(set.contains(Action.CAN_CREATE_ITEM));
<a class="jxr_linenumber" name="2063" href="#2063">2063</a>             }
<a class="jxr_linenumber" name="2064" href="#2064">2064</a>             result.setCanDeleteContentStream(set.contains(Action.CAN_DELETE_CONTENT_STREAM));
<a class="jxr_linenumber" name="2065" href="#2065">2065</a>             result.setCanDeleteObject(set.contains(Action.CAN_DELETE_OBJECT));
<a class="jxr_linenumber" name="2066" href="#2066">2066</a>             result.setCanDeleteTree(set.contains(Action.CAN_DELETE_TREE));
<a class="jxr_linenumber" name="2067" href="#2067">2067</a>             result.setCanGetACL(set.contains(Action.CAN_GET_ACL));
<a class="jxr_linenumber" name="2068" href="#2068">2068</a>             result.setCanGetAllVersions(set.contains(Action.CAN_GET_ALL_VERSIONS));
<a class="jxr_linenumber" name="2069" href="#2069">2069</a>             result.setCanGetAppliedPolicies(set.contains(Action.CAN_GET_APPLIED_POLICIES));
<a class="jxr_linenumber" name="2070" href="#2070">2070</a>             result.setCanGetChildren(set.contains(Action.CAN_GET_CHILDREN));
<a class="jxr_linenumber" name="2071" href="#2071">2071</a>             result.setCanGetContentStream(set.contains(Action.CAN_GET_CONTENT_STREAM));
<a class="jxr_linenumber" name="2072" href="#2072">2072</a>             result.setCanGetDescendants(set.contains(Action.CAN_GET_DESCENDANTS));
<a class="jxr_linenumber" name="2073" href="#2073">2073</a>             result.setCanGetFolderParent(set.contains(Action.CAN_GET_FOLDER_PARENT));
<a class="jxr_linenumber" name="2074" href="#2074">2074</a>             result.setCanGetFolderTree(set.contains(Action.CAN_GET_FOLDER_TREE));
<a class="jxr_linenumber" name="2075" href="#2075">2075</a>             result.setCanGetObjectParents(set.contains(Action.CAN_GET_OBJECT_PARENTS));
<a class="jxr_linenumber" name="2076" href="#2076">2076</a>             result.setCanGetObjectRelationships(set.contains(Action.CAN_GET_OBJECT_RELATIONSHIPS));
<a class="jxr_linenumber" name="2077" href="#2077">2077</a>             result.setCanGetProperties(set.contains(Action.CAN_GET_PROPERTIES));
<a class="jxr_linenumber" name="2078" href="#2078">2078</a>             result.setCanGetRenditions(set.contains(Action.CAN_GET_RENDITIONS));
<a class="jxr_linenumber" name="2079" href="#2079">2079</a>             result.setCanMoveObject(set.contains(Action.CAN_MOVE_OBJECT));
<a class="jxr_linenumber" name="2080" href="#2080">2080</a>             result.setCanRemoveObjectFromFolder(set.contains(Action.CAN_REMOVE_OBJECT_FROM_FOLDER));
<a class="jxr_linenumber" name="2081" href="#2081">2081</a>             result.setCanRemovePolicy(set.contains(Action.CAN_REMOVE_POLICY));
<a class="jxr_linenumber" name="2082" href="#2082">2082</a>             result.setCanSetContentStream(set.contains(Action.CAN_SET_CONTENT_STREAM));
<a class="jxr_linenumber" name="2083" href="#2083">2083</a>             result.setCanUpdateProperties(set.contains(Action.CAN_UPDATE_PROPERTIES));
<a class="jxr_linenumber" name="2084" href="#2084">2084</a> 
<a class="jxr_linenumber" name="2085" href="#2085">2085</a>         }
<a class="jxr_linenumber" name="2086" href="#2086">2086</a> 
<a class="jxr_linenumber" name="2087" href="#2087">2087</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="2088" href="#2088">2088</a>         convertExtension(allowableActions, result);
<a class="jxr_linenumber" name="2089" href="#2089">2089</a> 
<a class="jxr_linenumber" name="2090" href="#2090">2090</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2091" href="#2091">2091</a>     }
<a class="jxr_linenumber" name="2092" href="#2092">2092</a> 
<a class="jxr_linenumber" name="2093" href="#2093">2093</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2094" href="#2094">2094</a> <em class="jxr_javadoccomment">     * Converts a list of policy ids.</em>
<a class="jxr_linenumber" name="2095" href="#2095">2095</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2096" href="#2096">2096</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> PolicyIdList convert(CmisListOfIdsType policyIds) {
<a class="jxr_linenumber" name="2097" href="#2097">2097</a>         <strong class="jxr_keyword">if</strong> (policyIds == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2098" href="#2098">2098</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2099" href="#2099">2099</a>         }
<a class="jxr_linenumber" name="2100" href="#2100">2100</a> 
<a class="jxr_linenumber" name="2101" href="#2101">2101</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PolicyIdListImpl.html">PolicyIdListImpl</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PolicyIdListImpl.html">PolicyIdListImpl</a>();
<a class="jxr_linenumber" name="2102" href="#2102">2102</a>         result.setPolicyIds(policyIds.getId());
<a class="jxr_linenumber" name="2103" href="#2103">2103</a> 
<a class="jxr_linenumber" name="2104" href="#2104">2104</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="2105" href="#2105">2105</a>         convertExtension(policyIds, result);
<a class="jxr_linenumber" name="2106" href="#2106">2106</a> 
<a class="jxr_linenumber" name="2107" href="#2107">2107</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2108" href="#2108">2108</a>     }
<a class="jxr_linenumber" name="2109" href="#2109">2109</a> 
<a class="jxr_linenumber" name="2110" href="#2110">2110</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2111" href="#2111">2111</a> <em class="jxr_javadoccomment">     * Converts a list of policy ids.</em>
<a class="jxr_linenumber" name="2112" href="#2112">2112</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2113" href="#2113">2113</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CmisListOfIdsType convert(PolicyIdList policyIds) {
<a class="jxr_linenumber" name="2114" href="#2114">2114</a>         <strong class="jxr_keyword">if</strong> (policyIds == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2115" href="#2115">2115</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2116" href="#2116">2116</a>         }
<a class="jxr_linenumber" name="2117" href="#2117">2117</a> 
<a class="jxr_linenumber" name="2118" href="#2118">2118</a>         CmisListOfIdsType result = <strong class="jxr_keyword">new</strong> CmisListOfIdsType();
<a class="jxr_linenumber" name="2119" href="#2119">2119</a>         <strong class="jxr_keyword">if</strong> (policyIds.getPolicyIds() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2120" href="#2120">2120</a>             <strong class="jxr_keyword">for</strong> (String id : policyIds.getPolicyIds()) {
<a class="jxr_linenumber" name="2121" href="#2121">2121</a>                 result.getId().add(id);
<a class="jxr_linenumber" name="2122" href="#2122">2122</a>             }
<a class="jxr_linenumber" name="2123" href="#2123">2123</a>         }
<a class="jxr_linenumber" name="2124" href="#2124">2124</a> 
<a class="jxr_linenumber" name="2125" href="#2125">2125</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="2126" href="#2126">2126</a>         convertExtension(policyIds, result);
<a class="jxr_linenumber" name="2127" href="#2127">2127</a> 
<a class="jxr_linenumber" name="2128" href="#2128">2128</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2129" href="#2129">2129</a>     }
<a class="jxr_linenumber" name="2130" href="#2130">2130</a> 
<a class="jxr_linenumber" name="2131" href="#2131">2131</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2132" href="#2132">2132</a> <em class="jxr_javadoccomment">     * Converts a list of policy ids.</em>
<a class="jxr_linenumber" name="2133" href="#2133">2133</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2134" href="#2134">2134</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CmisListOfIdsType convertPolicyIds(List&lt;String&gt; policyIds) {
<a class="jxr_linenumber" name="2135" href="#2135">2135</a>         <strong class="jxr_keyword">if</strong> (policyIds == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2136" href="#2136">2136</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2137" href="#2137">2137</a>         }
<a class="jxr_linenumber" name="2138" href="#2138">2138</a> 
<a class="jxr_linenumber" name="2139" href="#2139">2139</a>         CmisListOfIdsType result = <strong class="jxr_keyword">new</strong> CmisListOfIdsType();
<a class="jxr_linenumber" name="2140" href="#2140">2140</a>         result.getId().addAll(policyIds);
<a class="jxr_linenumber" name="2141" href="#2141">2141</a> 
<a class="jxr_linenumber" name="2142" href="#2142">2142</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2143" href="#2143">2143</a>     }
<a class="jxr_linenumber" name="2144" href="#2144">2144</a> 
<a class="jxr_linenumber" name="2145" href="#2145">2145</a>     <em class="jxr_comment">// -------------------------------------------------------------------------</em>
<a class="jxr_linenumber" name="2146" href="#2146">2146</a>     <em class="jxr_comment">// --- Lists, containers and similar ---</em>
<a class="jxr_linenumber" name="2147" href="#2147">2147</a>     <em class="jxr_comment">// -------------------------------------------------------------------------</em>
<a class="jxr_linenumber" name="2148" href="#2148">2148</a> 
<a class="jxr_linenumber" name="2149" href="#2149">2149</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2150" href="#2150">2150</a> <em class="jxr_javadoccomment">     * Converts a list of calendar objects.</em>
<a class="jxr_linenumber" name="2151" href="#2151">2151</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2152" href="#2152">2152</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> List&lt;GregorianCalendar&gt; convertXMLCalendar(List&lt;XMLGregorianCalendar&gt; calendar) {
<a class="jxr_linenumber" name="2153" href="#2153">2153</a>         <strong class="jxr_keyword">if</strong> (calendar == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2154" href="#2154">2154</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2155" href="#2155">2155</a>         }
<a class="jxr_linenumber" name="2156" href="#2156">2156</a> 
<a class="jxr_linenumber" name="2157" href="#2157">2157</a>         List&lt;GregorianCalendar&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;GregorianCalendar&gt;();
<a class="jxr_linenumber" name="2158" href="#2158">2158</a>         <strong class="jxr_keyword">for</strong> (XMLGregorianCalendar cal : calendar) {
<a class="jxr_linenumber" name="2159" href="#2159">2159</a>             <strong class="jxr_keyword">if</strong> (cal != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2160" href="#2160">2160</a>                 result.add(cal.toGregorianCalendar());
<a class="jxr_linenumber" name="2161" href="#2161">2161</a>             }
<a class="jxr_linenumber" name="2162" href="#2162">2162</a>         }
<a class="jxr_linenumber" name="2163" href="#2163">2163</a> 
<a class="jxr_linenumber" name="2164" href="#2164">2164</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2165" href="#2165">2165</a>     }
<a class="jxr_linenumber" name="2166" href="#2166">2166</a> 
<a class="jxr_linenumber" name="2167" href="#2167">2167</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2168" href="#2168">2168</a> <em class="jxr_javadoccomment">     * Converts a list of calendar objects.</em>
<a class="jxr_linenumber" name="2169" href="#2169">2169</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2170" href="#2170">2170</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> List&lt;XMLGregorianCalendar&gt; convertCalendar(List&lt;GregorianCalendar&gt; calendar) {
<a class="jxr_linenumber" name="2171" href="#2171">2171</a>         <strong class="jxr_keyword">if</strong> (calendar == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2172" href="#2172">2172</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2173" href="#2173">2173</a>         }
<a class="jxr_linenumber" name="2174" href="#2174">2174</a> 
<a class="jxr_linenumber" name="2175" href="#2175">2175</a>         DatatypeFactory df;
<a class="jxr_linenumber" name="2176" href="#2176">2176</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="2177" href="#2177">2177</a>             df = DatatypeFactory.newInstance();
<a class="jxr_linenumber" name="2178" href="#2178">2178</a>         } <strong class="jxr_keyword">catch</strong> (DatatypeConfigurationException e) {
<a class="jxr_linenumber" name="2179" href="#2179">2179</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Convert exception: "</span> + e.getMessage(), e);
<a class="jxr_linenumber" name="2180" href="#2180">2180</a>         }
<a class="jxr_linenumber" name="2181" href="#2181">2181</a> 
<a class="jxr_linenumber" name="2182" href="#2182">2182</a>         List&lt;XMLGregorianCalendar&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;XMLGregorianCalendar&gt;();
<a class="jxr_linenumber" name="2183" href="#2183">2183</a>         <strong class="jxr_keyword">for</strong> (GregorianCalendar cal : calendar) {
<a class="jxr_linenumber" name="2184" href="#2184">2184</a>             result.add(df.newXMLGregorianCalendar(cal));
<a class="jxr_linenumber" name="2185" href="#2185">2185</a>         }
<a class="jxr_linenumber" name="2186" href="#2186">2186</a> 
<a class="jxr_linenumber" name="2187" href="#2187">2187</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2188" href="#2188">2188</a>     }
<a class="jxr_linenumber" name="2189" href="#2189">2189</a> 
<a class="jxr_linenumber" name="2190" href="#2190">2190</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2191" href="#2191">2191</a> <em class="jxr_javadoccomment">     * Converts a calendar object.</em>
<a class="jxr_linenumber" name="2192" href="#2192">2192</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2193" href="#2193">2193</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> XMLGregorianCalendar convertCalendar(GregorianCalendar calendar) {
<a class="jxr_linenumber" name="2194" href="#2194">2194</a>         <strong class="jxr_keyword">if</strong> (calendar == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2195" href="#2195">2195</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2196" href="#2196">2196</a>         }
<a class="jxr_linenumber" name="2197" href="#2197">2197</a> 
<a class="jxr_linenumber" name="2198" href="#2198">2198</a>         DatatypeFactory df;
<a class="jxr_linenumber" name="2199" href="#2199">2199</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="2200" href="#2200">2200</a>             df = DatatypeFactory.newInstance();
<a class="jxr_linenumber" name="2201" href="#2201">2201</a>         } <strong class="jxr_keyword">catch</strong> (DatatypeConfigurationException e) {
<a class="jxr_linenumber" name="2202" href="#2202">2202</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Convert exception: "</span> + e.getMessage(), e);
<a class="jxr_linenumber" name="2203" href="#2203">2203</a>         }
<a class="jxr_linenumber" name="2204" href="#2204">2204</a> 
<a class="jxr_linenumber" name="2205" href="#2205">2205</a>         <strong class="jxr_keyword">return</strong> df.newXMLGregorianCalendar(calendar);
<a class="jxr_linenumber" name="2206" href="#2206">2206</a>     }
<a class="jxr_linenumber" name="2207" href="#2207">2207</a> 
<a class="jxr_linenumber" name="2208" href="#2208">2208</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2209" href="#2209">2209</a> <em class="jxr_javadoccomment">     * Converts a type list.</em>
<a class="jxr_linenumber" name="2210" href="#2210">2210</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2211" href="#2211">2211</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> TypeDefinitionList convert(CmisTypeDefinitionListType typeList) {
<a class="jxr_linenumber" name="2212" href="#2212">2212</a>         <strong class="jxr_keyword">if</strong> (typeList == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2213" href="#2213">2213</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2214" href="#2214">2214</a>         }
<a class="jxr_linenumber" name="2215" href="#2215">2215</a> 
<a class="jxr_linenumber" name="2216" href="#2216">2216</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/TypeDefinitionListImpl.html">TypeDefinitionListImpl</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/TypeDefinitionListImpl.html">TypeDefinitionListImpl</a>();
<a class="jxr_linenumber" name="2217" href="#2217">2217</a>         List&lt;TypeDefinition&gt; types = <strong class="jxr_keyword">new</strong> ArrayList&lt;TypeDefinition&gt;();
<a class="jxr_linenumber" name="2218" href="#2218">2218</a>         <strong class="jxr_keyword">for</strong> (CmisTypeDefinitionType typeDefinition : typeList.getTypes()) {
<a class="jxr_linenumber" name="2219" href="#2219">2219</a>             types.add(convert(typeDefinition));
<a class="jxr_linenumber" name="2220" href="#2220">2220</a>         }
<a class="jxr_linenumber" name="2221" href="#2221">2221</a> 
<a class="jxr_linenumber" name="2222" href="#2222">2222</a>         result.setList(types);
<a class="jxr_linenumber" name="2223" href="#2223">2223</a>         result.setHasMoreItems(typeList.isHasMoreItems());
<a class="jxr_linenumber" name="2224" href="#2224">2224</a>         result.setNumItems(typeList.getNumItems());
<a class="jxr_linenumber" name="2225" href="#2225">2225</a> 
<a class="jxr_linenumber" name="2226" href="#2226">2226</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="2227" href="#2227">2227</a>         convertExtension(typeList, result);
<a class="jxr_linenumber" name="2228" href="#2228">2228</a> 
<a class="jxr_linenumber" name="2229" href="#2229">2229</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2230" href="#2230">2230</a>     }
<a class="jxr_linenumber" name="2231" href="#2231">2231</a> 
<a class="jxr_linenumber" name="2232" href="#2232">2232</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2233" href="#2233">2233</a> <em class="jxr_javadoccomment">     * Converts a type list.</em>
<a class="jxr_linenumber" name="2234" href="#2234">2234</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2235" href="#2235">2235</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CmisTypeDefinitionListType convert(TypeDefinitionList typeList) {
<a class="jxr_linenumber" name="2236" href="#2236">2236</a>         <strong class="jxr_keyword">if</strong> (typeList == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2237" href="#2237">2237</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2238" href="#2238">2238</a>         }
<a class="jxr_linenumber" name="2239" href="#2239">2239</a> 
<a class="jxr_linenumber" name="2240" href="#2240">2240</a>         CmisTypeDefinitionListType result = <strong class="jxr_keyword">new</strong> CmisTypeDefinitionListType();
<a class="jxr_linenumber" name="2241" href="#2241">2241</a> 
<a class="jxr_linenumber" name="2242" href="#2242">2242</a>         <strong class="jxr_keyword">if</strong> (typeList.getList() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2243" href="#2243">2243</a>             <strong class="jxr_keyword">for</strong> (TypeDefinition tdd : typeList.getList()) {
<a class="jxr_linenumber" name="2244" href="#2244">2244</a>                 result.getTypes().add(convert(tdd));
<a class="jxr_linenumber" name="2245" href="#2245">2245</a>             }
<a class="jxr_linenumber" name="2246" href="#2246">2246</a>         }
<a class="jxr_linenumber" name="2247" href="#2247">2247</a> 
<a class="jxr_linenumber" name="2248" href="#2248">2248</a>         result.setHasMoreItems(convertBoolean(typeList.hasMoreItems(), false));
<a class="jxr_linenumber" name="2249" href="#2249">2249</a>         result.setNumItems(typeList.getNumItems());
<a class="jxr_linenumber" name="2250" href="#2250">2250</a> 
<a class="jxr_linenumber" name="2251" href="#2251">2251</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="2252" href="#2252">2252</a>         convertExtension(typeList, result);
<a class="jxr_linenumber" name="2253" href="#2253">2253</a> 
<a class="jxr_linenumber" name="2254" href="#2254">2254</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2255" href="#2255">2255</a>     }
<a class="jxr_linenumber" name="2256" href="#2256">2256</a> 
<a class="jxr_linenumber" name="2257" href="#2257">2257</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2258" href="#2258">2258</a> <em class="jxr_javadoccomment">     * Converts a type container list.</em>
<a class="jxr_linenumber" name="2259" href="#2259">2259</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2260" href="#2260">2260</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> List&lt;TypeDefinitionContainer&gt; convertTypeContainerList(List&lt;CmisTypeContainer&gt; typeContainers) {
<a class="jxr_linenumber" name="2261" href="#2261">2261</a>         <strong class="jxr_keyword">if</strong> (typeContainers == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2262" href="#2262">2262</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2263" href="#2263">2263</a>         }
<a class="jxr_linenumber" name="2264" href="#2264">2264</a> 
<a class="jxr_linenumber" name="2265" href="#2265">2265</a>         List&lt;TypeDefinitionContainer&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;TypeDefinitionContainer&gt;();
<a class="jxr_linenumber" name="2266" href="#2266">2266</a>         <strong class="jxr_keyword">for</strong> (CmisTypeContainer container : typeContainers) {
<a class="jxr_linenumber" name="2267" href="#2267">2267</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/TypeDefinitionContainerImpl.html">TypeDefinitionContainerImpl</a> newConatiner = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/TypeDefinitionContainerImpl.html">TypeDefinitionContainerImpl</a>();
<a class="jxr_linenumber" name="2268" href="#2268">2268</a>             newConatiner.setTypeDefinition(convert(container.getType()));
<a class="jxr_linenumber" name="2269" href="#2269">2269</a>             newConatiner.setChildren(convertTypeContainerList(container.getChildren()));
<a class="jxr_linenumber" name="2270" href="#2270">2270</a>             convertExtension(container, newConatiner);
<a class="jxr_linenumber" name="2271" href="#2271">2271</a> 
<a class="jxr_linenumber" name="2272" href="#2272">2272</a>             result.add(newConatiner);
<a class="jxr_linenumber" name="2273" href="#2273">2273</a>         }
<a class="jxr_linenumber" name="2274" href="#2274">2274</a> 
<a class="jxr_linenumber" name="2275" href="#2275">2275</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2276" href="#2276">2276</a>     }
<a class="jxr_linenumber" name="2277" href="#2277">2277</a> 
<a class="jxr_linenumber" name="2278" href="#2278">2278</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2279" href="#2279">2279</a> <em class="jxr_javadoccomment">     * Converts a type container list.</em>
<a class="jxr_linenumber" name="2280" href="#2280">2280</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2281" href="#2281">2281</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> convertTypeContainerList(List&lt;TypeDefinitionContainer&gt; typeContainers,
<a class="jxr_linenumber" name="2282" href="#2282">2282</a>             List&lt;CmisTypeContainer&gt; target) {
<a class="jxr_linenumber" name="2283" href="#2283">2283</a>         <strong class="jxr_keyword">if</strong> (typeContainers == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2284" href="#2284">2284</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="2285" href="#2285">2285</a>         }
<a class="jxr_linenumber" name="2286" href="#2286">2286</a> 
<a class="jxr_linenumber" name="2287" href="#2287">2287</a>         <strong class="jxr_keyword">for</strong> (TypeDefinitionContainer container : typeContainers) {
<a class="jxr_linenumber" name="2288" href="#2288">2288</a>             CmisTypeContainer newConatiner = <strong class="jxr_keyword">new</strong> CmisTypeContainer();
<a class="jxr_linenumber" name="2289" href="#2289">2289</a>             newConatiner.setType(convert(container.getTypeDefinition()));
<a class="jxr_linenumber" name="2290" href="#2290">2290</a>             convertTypeContainerList(container.getChildren(), newConatiner.getChildren());
<a class="jxr_linenumber" name="2291" href="#2291">2291</a>             convertExtension(container, newConatiner);
<a class="jxr_linenumber" name="2292" href="#2292">2292</a> 
<a class="jxr_linenumber" name="2293" href="#2293">2293</a>             target.add(newConatiner);
<a class="jxr_linenumber" name="2294" href="#2294">2294</a>         }
<a class="jxr_linenumber" name="2295" href="#2295">2295</a>     }
<a class="jxr_linenumber" name="2296" href="#2296">2296</a> 
<a class="jxr_linenumber" name="2297" href="#2297">2297</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2298" href="#2298">2298</a> <em class="jxr_javadoccomment">     * Converts an ObjectInFolder object.</em>
<a class="jxr_linenumber" name="2299" href="#2299">2299</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2300" href="#2300">2300</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ObjectInFolderData convert(CmisObjectInFolderType objectInFolder) {
<a class="jxr_linenumber" name="2301" href="#2301">2301</a>         <strong class="jxr_keyword">if</strong> (objectInFolder == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2302" href="#2302">2302</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2303" href="#2303">2303</a>         }
<a class="jxr_linenumber" name="2304" href="#2304">2304</a> 
<a class="jxr_linenumber" name="2305" href="#2305">2305</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/ObjectInFolderDataImpl.html">ObjectInFolderDataImpl</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/ObjectInFolderDataImpl.html">ObjectInFolderDataImpl</a>();
<a class="jxr_linenumber" name="2306" href="#2306">2306</a> 
<a class="jxr_linenumber" name="2307" href="#2307">2307</a>         result.setObject(convert(objectInFolder.getObject()));
<a class="jxr_linenumber" name="2308" href="#2308">2308</a>         result.setPathSegment(objectInFolder.getPathSegment());
<a class="jxr_linenumber" name="2309" href="#2309">2309</a> 
<a class="jxr_linenumber" name="2310" href="#2310">2310</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="2311" href="#2311">2311</a>         convertExtension(objectInFolder, result);
<a class="jxr_linenumber" name="2312" href="#2312">2312</a> 
<a class="jxr_linenumber" name="2313" href="#2313">2313</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2314" href="#2314">2314</a>     }
<a class="jxr_linenumber" name="2315" href="#2315">2315</a> 
<a class="jxr_linenumber" name="2316" href="#2316">2316</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2317" href="#2317">2317</a> <em class="jxr_javadoccomment">     * Converts an ObjectInFolder object.</em>
<a class="jxr_linenumber" name="2318" href="#2318">2318</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2319" href="#2319">2319</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CmisObjectInFolderType convert(ObjectInFolderData objectInFolder, CmisVersion cmisVersion) {
<a class="jxr_linenumber" name="2320" href="#2320">2320</a>         <strong class="jxr_keyword">if</strong> (objectInFolder == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2321" href="#2321">2321</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2322" href="#2322">2322</a>         }
<a class="jxr_linenumber" name="2323" href="#2323">2323</a> 
<a class="jxr_linenumber" name="2324" href="#2324">2324</a>         CmisObjectInFolderType result = <strong class="jxr_keyword">new</strong> CmisObjectInFolderType();
<a class="jxr_linenumber" name="2325" href="#2325">2325</a> 
<a class="jxr_linenumber" name="2326" href="#2326">2326</a>         result.setObject(convert(objectInFolder.getObject(), cmisVersion));
<a class="jxr_linenumber" name="2327" href="#2327">2327</a>         result.setPathSegment(objectInFolder.getPathSegment());
<a class="jxr_linenumber" name="2328" href="#2328">2328</a> 
<a class="jxr_linenumber" name="2329" href="#2329">2329</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="2330" href="#2330">2330</a>         convertExtension(objectInFolder, result);
<a class="jxr_linenumber" name="2331" href="#2331">2331</a> 
<a class="jxr_linenumber" name="2332" href="#2332">2332</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2333" href="#2333">2333</a>     }
<a class="jxr_linenumber" name="2334" href="#2334">2334</a> 
<a class="jxr_linenumber" name="2335" href="#2335">2335</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2336" href="#2336">2336</a> <em class="jxr_javadoccomment">     * Converts an ObjectParent object.</em>
<a class="jxr_linenumber" name="2337" href="#2337">2337</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2338" href="#2338">2338</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ObjectParentData convert(CmisObjectParentsType objectParent) {
<a class="jxr_linenumber" name="2339" href="#2339">2339</a>         <strong class="jxr_keyword">if</strong> (objectParent == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2340" href="#2340">2340</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2341" href="#2341">2341</a>         }
<a class="jxr_linenumber" name="2342" href="#2342">2342</a> 
<a class="jxr_linenumber" name="2343" href="#2343">2343</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/ObjectParentDataImpl.html">ObjectParentDataImpl</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/ObjectParentDataImpl.html">ObjectParentDataImpl</a>();
<a class="jxr_linenumber" name="2344" href="#2344">2344</a> 
<a class="jxr_linenumber" name="2345" href="#2345">2345</a>         result.setObject(convert(objectParent.getObject()));
<a class="jxr_linenumber" name="2346" href="#2346">2346</a>         result.setRelativePathSegment(objectParent.getRelativePathSegment());
<a class="jxr_linenumber" name="2347" href="#2347">2347</a> 
<a class="jxr_linenumber" name="2348" href="#2348">2348</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="2349" href="#2349">2349</a>         convertExtension(objectParent, result);
<a class="jxr_linenumber" name="2350" href="#2350">2350</a> 
<a class="jxr_linenumber" name="2351" href="#2351">2351</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2352" href="#2352">2352</a>     }
<a class="jxr_linenumber" name="2353" href="#2353">2353</a> 
<a class="jxr_linenumber" name="2354" href="#2354">2354</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2355" href="#2355">2355</a> <em class="jxr_javadoccomment">     * Converts an ObjectParent object.</em>
<a class="jxr_linenumber" name="2356" href="#2356">2356</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2357" href="#2357">2357</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CmisObjectParentsType convert(ObjectParentData objectParent, CmisVersion cmisVersion) {
<a class="jxr_linenumber" name="2358" href="#2358">2358</a>         <strong class="jxr_keyword">if</strong> (objectParent == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2359" href="#2359">2359</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2360" href="#2360">2360</a>         }
<a class="jxr_linenumber" name="2361" href="#2361">2361</a> 
<a class="jxr_linenumber" name="2362" href="#2362">2362</a>         CmisObjectParentsType result = <strong class="jxr_keyword">new</strong> CmisObjectParentsType();
<a class="jxr_linenumber" name="2363" href="#2363">2363</a> 
<a class="jxr_linenumber" name="2364" href="#2364">2364</a>         result.setObject(convert(objectParent.getObject(), cmisVersion));
<a class="jxr_linenumber" name="2365" href="#2365">2365</a>         result.setRelativePathSegment(objectParent.getRelativePathSegment());
<a class="jxr_linenumber" name="2366" href="#2366">2366</a> 
<a class="jxr_linenumber" name="2367" href="#2367">2367</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="2368" href="#2368">2368</a>         convertExtension(objectParent, result);
<a class="jxr_linenumber" name="2369" href="#2369">2369</a> 
<a class="jxr_linenumber" name="2370" href="#2370">2370</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2371" href="#2371">2371</a>     }
<a class="jxr_linenumber" name="2372" href="#2372">2372</a> 
<a class="jxr_linenumber" name="2373" href="#2373">2373</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2374" href="#2374">2374</a> <em class="jxr_javadoccomment">     * Converts an ObjectInFolder list object.</em>
<a class="jxr_linenumber" name="2375" href="#2375">2375</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2376" href="#2376">2376</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ObjectInFolderList convert(CmisObjectInFolderListType objectInFolderList) {
<a class="jxr_linenumber" name="2377" href="#2377">2377</a>         <strong class="jxr_keyword">if</strong> (objectInFolderList == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2378" href="#2378">2378</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2379" href="#2379">2379</a>         }
<a class="jxr_linenumber" name="2380" href="#2380">2380</a> 
<a class="jxr_linenumber" name="2381" href="#2381">2381</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/ObjectInFolderListImpl.html">ObjectInFolderListImpl</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/ObjectInFolderListImpl.html">ObjectInFolderListImpl</a>();
<a class="jxr_linenumber" name="2382" href="#2382">2382</a>         List&lt;ObjectInFolderData&gt; objects = <strong class="jxr_keyword">new</strong> ArrayList&lt;ObjectInFolderData&gt;();
<a class="jxr_linenumber" name="2383" href="#2383">2383</a>         <strong class="jxr_keyword">for</strong> (CmisObjectInFolderType object : objectInFolderList.getObjects()) {
<a class="jxr_linenumber" name="2384" href="#2384">2384</a>             objects.add(convert(object));
<a class="jxr_linenumber" name="2385" href="#2385">2385</a>         }
<a class="jxr_linenumber" name="2386" href="#2386">2386</a> 
<a class="jxr_linenumber" name="2387" href="#2387">2387</a>         result.setObjects(objects);
<a class="jxr_linenumber" name="2388" href="#2388">2388</a> 
<a class="jxr_linenumber" name="2389" href="#2389">2389</a>         result.setHasMoreItems(objectInFolderList.isHasMoreItems());
<a class="jxr_linenumber" name="2390" href="#2390">2390</a>         result.setNumItems(objectInFolderList.getNumItems());
<a class="jxr_linenumber" name="2391" href="#2391">2391</a> 
<a class="jxr_linenumber" name="2392" href="#2392">2392</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="2393" href="#2393">2393</a>         convertExtension(objectInFolderList, result);
<a class="jxr_linenumber" name="2394" href="#2394">2394</a> 
<a class="jxr_linenumber" name="2395" href="#2395">2395</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2396" href="#2396">2396</a>     }
<a class="jxr_linenumber" name="2397" href="#2397">2397</a> 
<a class="jxr_linenumber" name="2398" href="#2398">2398</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2399" href="#2399">2399</a> <em class="jxr_javadoccomment">     * Converts an ObjectInFolder list object.</em>
<a class="jxr_linenumber" name="2400" href="#2400">2400</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2401" href="#2401">2401</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CmisObjectInFolderListType convert(ObjectInFolderList objectInFolderList, CmisVersion cmisVersion) {
<a class="jxr_linenumber" name="2402" href="#2402">2402</a>         <strong class="jxr_keyword">if</strong> (objectInFolderList == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2403" href="#2403">2403</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2404" href="#2404">2404</a>         }
<a class="jxr_linenumber" name="2405" href="#2405">2405</a> 
<a class="jxr_linenumber" name="2406" href="#2406">2406</a>         CmisObjectInFolderListType result = <strong class="jxr_keyword">new</strong> CmisObjectInFolderListType();
<a class="jxr_linenumber" name="2407" href="#2407">2407</a> 
<a class="jxr_linenumber" name="2408" href="#2408">2408</a>         <strong class="jxr_keyword">if</strong> (objectInFolderList.getObjects() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2409" href="#2409">2409</a>             <strong class="jxr_keyword">for</strong> (ObjectInFolderData object : objectInFolderList.getObjects()) {
<a class="jxr_linenumber" name="2410" href="#2410">2410</a>                 result.getObjects().add(convert(object, cmisVersion));
<a class="jxr_linenumber" name="2411" href="#2411">2411</a>             }
<a class="jxr_linenumber" name="2412" href="#2412">2412</a>         }
<a class="jxr_linenumber" name="2413" href="#2413">2413</a> 
<a class="jxr_linenumber" name="2414" href="#2414">2414</a>         result.setHasMoreItems(objectInFolderList.hasMoreItems());
<a class="jxr_linenumber" name="2415" href="#2415">2415</a>         result.setNumItems(objectInFolderList.getNumItems());
<a class="jxr_linenumber" name="2416" href="#2416">2416</a> 
<a class="jxr_linenumber" name="2417" href="#2417">2417</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="2418" href="#2418">2418</a>         convertExtension(objectInFolderList, result);
<a class="jxr_linenumber" name="2419" href="#2419">2419</a> 
<a class="jxr_linenumber" name="2420" href="#2420">2420</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2421" href="#2421">2421</a>     }
<a class="jxr_linenumber" name="2422" href="#2422">2422</a> 
<a class="jxr_linenumber" name="2423" href="#2423">2423</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2424" href="#2424">2424</a> <em class="jxr_javadoccomment">     * Converts an Object list object.</em>
<a class="jxr_linenumber" name="2425" href="#2425">2425</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2426" href="#2426">2426</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ObjectList convert(CmisObjectListType objectList) {
<a class="jxr_linenumber" name="2427" href="#2427">2427</a>         <strong class="jxr_keyword">if</strong> (objectList == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2428" href="#2428">2428</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2429" href="#2429">2429</a>         }
<a class="jxr_linenumber" name="2430" href="#2430">2430</a> 
<a class="jxr_linenumber" name="2431" href="#2431">2431</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/ObjectListImpl.html">ObjectListImpl</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/ObjectListImpl.html">ObjectListImpl</a>();
<a class="jxr_linenumber" name="2432" href="#2432">2432</a> 
<a class="jxr_linenumber" name="2433" href="#2433">2433</a>         List&lt;ObjectData&gt; objects = <strong class="jxr_keyword">new</strong> ArrayList&lt;ObjectData&gt;();
<a class="jxr_linenumber" name="2434" href="#2434">2434</a>         <strong class="jxr_keyword">for</strong> (CmisObjectType object : objectList.getObjects()) {
<a class="jxr_linenumber" name="2435" href="#2435">2435</a>             objects.add(convert(object));
<a class="jxr_linenumber" name="2436" href="#2436">2436</a>         }
<a class="jxr_linenumber" name="2437" href="#2437">2437</a> 
<a class="jxr_linenumber" name="2438" href="#2438">2438</a>         result.setObjects(objects);
<a class="jxr_linenumber" name="2439" href="#2439">2439</a>         result.setHasMoreItems(objectList.isHasMoreItems());
<a class="jxr_linenumber" name="2440" href="#2440">2440</a>         result.setNumItems(objectList.getNumItems());
<a class="jxr_linenumber" name="2441" href="#2441">2441</a> 
<a class="jxr_linenumber" name="2442" href="#2442">2442</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="2443" href="#2443">2443</a>         convertExtension(objectList, result);
<a class="jxr_linenumber" name="2444" href="#2444">2444</a> 
<a class="jxr_linenumber" name="2445" href="#2445">2445</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2446" href="#2446">2446</a>     }
<a class="jxr_linenumber" name="2447" href="#2447">2447</a> 
<a class="jxr_linenumber" name="2448" href="#2448">2448</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2449" href="#2449">2449</a> <em class="jxr_javadoccomment">     * Converts an Object list object.</em>
<a class="jxr_linenumber" name="2450" href="#2450">2450</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2451" href="#2451">2451</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CmisObjectListType convert(ObjectList objectList, CmisVersion cmisVersion) {
<a class="jxr_linenumber" name="2452" href="#2452">2452</a>         <strong class="jxr_keyword">if</strong> (objectList == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2453" href="#2453">2453</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2454" href="#2454">2454</a>         }
<a class="jxr_linenumber" name="2455" href="#2455">2455</a> 
<a class="jxr_linenumber" name="2456" href="#2456">2456</a>         CmisObjectListType result = <strong class="jxr_keyword">new</strong> CmisObjectListType();
<a class="jxr_linenumber" name="2457" href="#2457">2457</a> 
<a class="jxr_linenumber" name="2458" href="#2458">2458</a>         <strong class="jxr_keyword">if</strong> (objectList.getObjects() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2459" href="#2459">2459</a>             <strong class="jxr_keyword">for</strong> (ObjectData object : objectList.getObjects()) {
<a class="jxr_linenumber" name="2460" href="#2460">2460</a>                 result.getObjects().add(convert(object, cmisVersion));
<a class="jxr_linenumber" name="2461" href="#2461">2461</a>             }
<a class="jxr_linenumber" name="2462" href="#2462">2462</a>         }
<a class="jxr_linenumber" name="2463" href="#2463">2463</a> 
<a class="jxr_linenumber" name="2464" href="#2464">2464</a>         result.setHasMoreItems(objectList.hasMoreItems());
<a class="jxr_linenumber" name="2465" href="#2465">2465</a>         result.setNumItems(objectList.getNumItems());
<a class="jxr_linenumber" name="2466" href="#2466">2466</a> 
<a class="jxr_linenumber" name="2467" href="#2467">2467</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="2468" href="#2468">2468</a>         convertExtension(objectList, result);
<a class="jxr_linenumber" name="2469" href="#2469">2469</a> 
<a class="jxr_linenumber" name="2470" href="#2470">2470</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2471" href="#2471">2471</a>     }
<a class="jxr_linenumber" name="2472" href="#2472">2472</a> 
<a class="jxr_linenumber" name="2473" href="#2473">2473</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2474" href="#2474">2474</a> <em class="jxr_javadoccomment">     * Converts an ObjectInFolder container object.</em>
<a class="jxr_linenumber" name="2475" href="#2475">2475</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2476" href="#2476">2476</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ObjectInFolderContainer convert(CmisObjectInFolderContainerType container) {
<a class="jxr_linenumber" name="2477" href="#2477">2477</a>         <strong class="jxr_keyword">if</strong> (container == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2478" href="#2478">2478</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2479" href="#2479">2479</a>         }
<a class="jxr_linenumber" name="2480" href="#2480">2480</a> 
<a class="jxr_linenumber" name="2481" href="#2481">2481</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/ObjectInFolderContainerImpl.html">ObjectInFolderContainerImpl</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/ObjectInFolderContainerImpl.html">ObjectInFolderContainerImpl</a>();
<a class="jxr_linenumber" name="2482" href="#2482">2482</a> 
<a class="jxr_linenumber" name="2483" href="#2483">2483</a>         result.setObject(convert(container.getObjectInFolder()));
<a class="jxr_linenumber" name="2484" href="#2484">2484</a> 
<a class="jxr_linenumber" name="2485" href="#2485">2485</a>         List&lt;ObjectInFolderContainer&gt; containerList = <strong class="jxr_keyword">new</strong> ArrayList&lt;ObjectInFolderContainer&gt;();
<a class="jxr_linenumber" name="2486" href="#2486">2486</a>         <strong class="jxr_keyword">for</strong> (CmisObjectInFolderContainerType containerChild : container.getChildren()) {
<a class="jxr_linenumber" name="2487" href="#2487">2487</a>             containerList.add(convert(containerChild));
<a class="jxr_linenumber" name="2488" href="#2488">2488</a>         }
<a class="jxr_linenumber" name="2489" href="#2489">2489</a> 
<a class="jxr_linenumber" name="2490" href="#2490">2490</a>         result.setChildren(containerList);
<a class="jxr_linenumber" name="2491" href="#2491">2491</a> 
<a class="jxr_linenumber" name="2492" href="#2492">2492</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="2493" href="#2493">2493</a>         convertExtension(container, result);
<a class="jxr_linenumber" name="2494" href="#2494">2494</a> 
<a class="jxr_linenumber" name="2495" href="#2495">2495</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2496" href="#2496">2496</a>     }
<a class="jxr_linenumber" name="2497" href="#2497">2497</a> 
<a class="jxr_linenumber" name="2498" href="#2498">2498</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2499" href="#2499">2499</a> <em class="jxr_javadoccomment">     * Converts an ObjectInFolder container object.</em>
<a class="jxr_linenumber" name="2500" href="#2500">2500</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2501" href="#2501">2501</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CmisObjectInFolderContainerType convert(ObjectInFolderContainer container, CmisVersion cmisVersion) {
<a class="jxr_linenumber" name="2502" href="#2502">2502</a>         <strong class="jxr_keyword">if</strong> (container == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2503" href="#2503">2503</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2504" href="#2504">2504</a>         }
<a class="jxr_linenumber" name="2505" href="#2505">2505</a> 
<a class="jxr_linenumber" name="2506" href="#2506">2506</a>         CmisObjectInFolderContainerType result = <strong class="jxr_keyword">new</strong> CmisObjectInFolderContainerType();
<a class="jxr_linenumber" name="2507" href="#2507">2507</a> 
<a class="jxr_linenumber" name="2508" href="#2508">2508</a>         result.setObjectInFolder(convert(container.getObject(), cmisVersion));
<a class="jxr_linenumber" name="2509" href="#2509">2509</a> 
<a class="jxr_linenumber" name="2510" href="#2510">2510</a>         <strong class="jxr_keyword">if</strong> (container.getChildren() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2511" href="#2511">2511</a>             <strong class="jxr_keyword">for</strong> (ObjectInFolderContainer child : container.getChildren()) {
<a class="jxr_linenumber" name="2512" href="#2512">2512</a>                 result.getChildren().add(convert(child, cmisVersion));
<a class="jxr_linenumber" name="2513" href="#2513">2513</a>             }
<a class="jxr_linenumber" name="2514" href="#2514">2514</a>         }
<a class="jxr_linenumber" name="2515" href="#2515">2515</a> 
<a class="jxr_linenumber" name="2516" href="#2516">2516</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="2517" href="#2517">2517</a>         convertExtension(container, result);
<a class="jxr_linenumber" name="2518" href="#2518">2518</a> 
<a class="jxr_linenumber" name="2519" href="#2519">2519</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2520" href="#2520">2520</a>     }
<a class="jxr_linenumber" name="2521" href="#2521">2521</a> 
<a class="jxr_linenumber" name="2522" href="#2522">2522</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2523" href="#2523">2523</a> <em class="jxr_javadoccomment">     * Converts an access control list object.</em>
<a class="jxr_linenumber" name="2524" href="#2524">2524</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2525" href="#2525">2525</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Acl convert(CmisACLType acl) {
<a class="jxr_linenumber" name="2526" href="#2526">2526</a>         <strong class="jxr_keyword">if</strong> (acl == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2527" href="#2527">2527</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2528" href="#2528">2528</a>         }
<a class="jxr_linenumber" name="2529" href="#2529">2529</a> 
<a class="jxr_linenumber" name="2530" href="#2530">2530</a>         Acl result = convert(acl.getACL(), acl.isExact());
<a class="jxr_linenumber" name="2531" href="#2531">2531</a> 
<a class="jxr_linenumber" name="2532" href="#2532">2532</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="2533" href="#2533">2533</a>         convertExtension(acl, result);
<a class="jxr_linenumber" name="2534" href="#2534">2534</a> 
<a class="jxr_linenumber" name="2535" href="#2535">2535</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2536" href="#2536">2536</a>     }
<a class="jxr_linenumber" name="2537" href="#2537">2537</a> 
<a class="jxr_linenumber" name="2538" href="#2538">2538</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2539" href="#2539">2539</a> <em class="jxr_javadoccomment">     * Converts a FailedToDelete object.</em>
<a class="jxr_linenumber" name="2540" href="#2540">2540</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2541" href="#2541">2541</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> FailedToDeleteData convert(DeleteTreeResponse.FailedToDelete failedToDelete) {
<a class="jxr_linenumber" name="2542" href="#2542">2542</a>         <strong class="jxr_keyword">if</strong> (failedToDelete == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2543" href="#2543">2543</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2544" href="#2544">2544</a>         }
<a class="jxr_linenumber" name="2545" href="#2545">2545</a> 
<a class="jxr_linenumber" name="2546" href="#2546">2546</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/FailedToDeleteDataImpl.html">FailedToDeleteDataImpl</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/FailedToDeleteDataImpl.html">FailedToDeleteDataImpl</a>();
<a class="jxr_linenumber" name="2547" href="#2547">2547</a> 
<a class="jxr_linenumber" name="2548" href="#2548">2548</a>         result.setIds(failedToDelete.getObjectIds());
<a class="jxr_linenumber" name="2549" href="#2549">2549</a> 
<a class="jxr_linenumber" name="2550" href="#2550">2550</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="2551" href="#2551">2551</a>         convertExtension(failedToDelete, result);
<a class="jxr_linenumber" name="2552" href="#2552">2552</a> 
<a class="jxr_linenumber" name="2553" href="#2553">2553</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2554" href="#2554">2554</a>     }
<a class="jxr_linenumber" name="2555" href="#2555">2555</a> 
<a class="jxr_linenumber" name="2556" href="#2556">2556</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2557" href="#2557">2557</a> <em class="jxr_javadoccomment">     * Converts a FailedToDelete object.</em>
<a class="jxr_linenumber" name="2558" href="#2558">2558</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2559" href="#2559">2559</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> DeleteTreeResponse.FailedToDelete convert(FailedToDeleteData failedToDelete) {
<a class="jxr_linenumber" name="2560" href="#2560">2560</a>         <strong class="jxr_keyword">if</strong> (failedToDelete == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2561" href="#2561">2561</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2562" href="#2562">2562</a>         }
<a class="jxr_linenumber" name="2563" href="#2563">2563</a> 
<a class="jxr_linenumber" name="2564" href="#2564">2564</a>         DeleteTreeResponse.FailedToDelete result = <strong class="jxr_keyword">new</strong> DeleteTreeResponse.FailedToDelete();
<a class="jxr_linenumber" name="2565" href="#2565">2565</a> 
<a class="jxr_linenumber" name="2566" href="#2566">2566</a>         <strong class="jxr_keyword">if</strong> (failedToDelete.getIds() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2567" href="#2567">2567</a>             <strong class="jxr_keyword">for</strong> (String id : failedToDelete.getIds()) {
<a class="jxr_linenumber" name="2568" href="#2568">2568</a>                 result.getObjectIds().add(id);
<a class="jxr_linenumber" name="2569" href="#2569">2569</a>             }
<a class="jxr_linenumber" name="2570" href="#2570">2570</a>         }
<a class="jxr_linenumber" name="2571" href="#2571">2571</a> 
<a class="jxr_linenumber" name="2572" href="#2572">2572</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="2573" href="#2573">2573</a>         convertExtension(failedToDelete, result);
<a class="jxr_linenumber" name="2574" href="#2574">2574</a> 
<a class="jxr_linenumber" name="2575" href="#2575">2575</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2576" href="#2576">2576</a>     }
<a class="jxr_linenumber" name="2577" href="#2577">2577</a> 
<a class="jxr_linenumber" name="2578" href="#2578">2578</a>     <em class="jxr_comment">// -------------------------------------------------------------------------</em>
<a class="jxr_linenumber" name="2579" href="#2579">2579</a>     <em class="jxr_comment">// --- Stream ---</em>
<a class="jxr_linenumber" name="2580" href="#2580">2580</a>     <em class="jxr_comment">// -------------------------------------------------------------------------</em>
<a class="jxr_linenumber" name="2581" href="#2581">2581</a> 
<a class="jxr_linenumber" name="2582" href="#2582">2582</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2583" href="#2583">2583</a> <em class="jxr_javadoccomment">     * Converts a content stream object.</em>
<a class="jxr_linenumber" name="2584" href="#2584">2584</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2585" href="#2585">2585</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ContentStream convert(CmisContentStreamType contentStream, <strong class="jxr_keyword">boolean</strong> partial) {
<a class="jxr_linenumber" name="2586" href="#2586">2586</a>         <strong class="jxr_keyword">if</strong> (contentStream == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2587" href="#2587">2587</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2588" href="#2588">2588</a>         }
<a class="jxr_linenumber" name="2589" href="#2589">2589</a> 
<a class="jxr_linenumber" name="2590" href="#2590">2590</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/ContentStreamImpl.html">ContentStreamImpl</a> result;
<a class="jxr_linenumber" name="2591" href="#2591">2591</a>         <strong class="jxr_keyword">if</strong> (partial) {
<a class="jxr_linenumber" name="2592" href="#2592">2592</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PartialContentStreamImpl.html">PartialContentStreamImpl</a>();
<a class="jxr_linenumber" name="2593" href="#2593">2593</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2594" href="#2594">2594</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/ContentStreamImpl.html">ContentStreamImpl</a>();
<a class="jxr_linenumber" name="2595" href="#2595">2595</a>         }
<a class="jxr_linenumber" name="2596" href="#2596">2596</a> 
<a class="jxr_linenumber" name="2597" href="#2597">2597</a>         result.setFileName(contentStream.getFilename());
<a class="jxr_linenumber" name="2598" href="#2598">2598</a>         result.setLength(contentStream.getLength());
<a class="jxr_linenumber" name="2599" href="#2599">2599</a>         result.setMimeType(contentStream.getMimeType());
<a class="jxr_linenumber" name="2600" href="#2600">2600</a> 
<a class="jxr_linenumber" name="2601" href="#2601">2601</a>         DataHandler streamDataHandler = contentStream.getStream();
<a class="jxr_linenumber" name="2602" href="#2602">2602</a>         <strong class="jxr_keyword">if</strong> (streamDataHandler != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2603" href="#2603">2603</a>             <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="2604" href="#2604">2604</a>                 <strong class="jxr_keyword">if</strong> (STREAM_DATA_HANDLER_CLASS_1 != <strong class="jxr_keyword">null</strong> &amp;&amp; STREAM_DATA_HANDLER_CLASS_1.isInstance(streamDataHandler)) {
<a class="jxr_linenumber" name="2605" href="#2605">2605</a>                     result.setStream((InputStream) STREAM_DATA_HANDLER_READ_METHOD_1.invoke(streamDataHandler,
<a class="jxr_linenumber" name="2606" href="#2606">2606</a>                             (Object[]) <strong class="jxr_keyword">null</strong>));
<a class="jxr_linenumber" name="2607" href="#2607">2607</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (STREAM_DATA_HANDLER_CLASS_2 != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="2608" href="#2608">2608</a>                         &amp;&amp; STREAM_DATA_HANDLER_CLASS_2.isInstance(streamDataHandler)) {
<a class="jxr_linenumber" name="2609" href="#2609">2609</a>                     result.setStream((InputStream) STREAM_DATA_HANDLER_READ_METHOD_2.invoke(streamDataHandler,
<a class="jxr_linenumber" name="2610" href="#2610">2610</a>                             (Object[]) <strong class="jxr_keyword">null</strong>));
<a class="jxr_linenumber" name="2611" href="#2611">2611</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2612" href="#2612">2612</a>                     result.setStream(contentStream.getStream().getInputStream());
<a class="jxr_linenumber" name="2613" href="#2613">2613</a>                 }
<a class="jxr_linenumber" name="2614" href="#2614">2614</a>             } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="2615" href="#2615">2615</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Could not get the stream: "</span> + e.getMessage(), e);
<a class="jxr_linenumber" name="2616" href="#2616">2616</a>             }
<a class="jxr_linenumber" name="2617" href="#2617">2617</a>         }
<a class="jxr_linenumber" name="2618" href="#2618">2618</a> 
<a class="jxr_linenumber" name="2619" href="#2619">2619</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="2620" href="#2620">2620</a>         convertExtension(contentStream, result);
<a class="jxr_linenumber" name="2621" href="#2621">2621</a> 
<a class="jxr_linenumber" name="2622" href="#2622">2622</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2623" href="#2623">2623</a>     }
<a class="jxr_linenumber" name="2624" href="#2624">2624</a> 
<a class="jxr_linenumber" name="2625" href="#2625">2625</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2626" href="#2626">2626</a> <em class="jxr_javadoccomment">     * Converts a content stream object.</em>
<a class="jxr_linenumber" name="2627" href="#2627">2627</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2628" href="#2628">2628</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CmisContentStreamType convert(<strong class="jxr_keyword">final</strong> ContentStream contentStream, <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> allowClose) {
<a class="jxr_linenumber" name="2629" href="#2629">2629</a>         <strong class="jxr_keyword">if</strong> (contentStream == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2630" href="#2630">2630</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2631" href="#2631">2631</a>         }
<a class="jxr_linenumber" name="2632" href="#2632">2632</a> 
<a class="jxr_linenumber" name="2633" href="#2633">2633</a>         CmisContentStreamType result = <strong class="jxr_keyword">new</strong> CmisContentStreamType();
<a class="jxr_linenumber" name="2634" href="#2634">2634</a> 
<a class="jxr_linenumber" name="2635" href="#2635">2635</a>         result.setFilename(contentStream.getFileName());
<a class="jxr_linenumber" name="2636" href="#2636">2636</a>         result.setLength(contentStream.getBigLength());
<a class="jxr_linenumber" name="2637" href="#2637">2637</a>         result.setMimeType(contentStream.getMimeType());
<a class="jxr_linenumber" name="2638" href="#2638">2638</a> 
<a class="jxr_linenumber" name="2639" href="#2639">2639</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/Base64.html">InputStream</a> in = contentStream.getStream();
<a class="jxr_linenumber" name="2640" href="#2640">2640</a>         <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/Base64.html">InputStream</a> stream;
<a class="jxr_linenumber" name="2641" href="#2641">2641</a> 
<a class="jxr_linenumber" name="2642" href="#2642">2642</a>         <em class="jxr_comment">// avoid double buffering</em>
<a class="jxr_linenumber" name="2643" href="#2643">2643</a>         <strong class="jxr_keyword">if</strong> (!(in instanceof BufferedInputStream) &amp;&amp; !(in instanceof ByteArrayInputStream)) {
<a class="jxr_linenumber" name="2644" href="#2644">2644</a>             stream = <strong class="jxr_keyword">new</strong> BufferedInputStream(in, BUFFER_SIZE);
<a class="jxr_linenumber" name="2645" href="#2645">2645</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2646" href="#2646">2646</a>             stream = contentStream.getStream();
<a class="jxr_linenumber" name="2647" href="#2647">2647</a>         }
<a class="jxr_linenumber" name="2648" href="#2648">2648</a> 
<a class="jxr_linenumber" name="2649" href="#2649">2649</a>         result.setStream(<strong class="jxr_keyword">new</strong> DataHandler(<strong class="jxr_keyword">new</strong> DataSource() {
<a class="jxr_linenumber" name="2650" href="#2650">2650</a> 
<a class="jxr_linenumber" name="2651" href="#2651">2651</a>             <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/Base64.html">OutputStream</a> getOutputStream() <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="2652" href="#2652">2652</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2653" href="#2653">2653</a>             }
<a class="jxr_linenumber" name="2654" href="#2654">2654</a> 
<a class="jxr_linenumber" name="2655" href="#2655">2655</a>             <strong class="jxr_keyword">public</strong> String getName() {
<a class="jxr_linenumber" name="2656" href="#2656">2656</a>                 <strong class="jxr_keyword">return</strong> contentStream.getFileName();
<a class="jxr_linenumber" name="2657" href="#2657">2657</a>             }
<a class="jxr_linenumber" name="2658" href="#2658">2658</a> 
<a class="jxr_linenumber" name="2659" href="#2659">2659</a>             <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/Base64.html">InputStream</a> getInputStream() <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="2660" href="#2660">2660</a>                 <strong class="jxr_keyword">if</strong> (allowClose) {
<a class="jxr_linenumber" name="2661" href="#2661">2661</a>                     <strong class="jxr_keyword">return</strong> stream;
<a class="jxr_linenumber" name="2662" href="#2662">2662</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2663" href="#2663">2663</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> FilterInputStream(stream) {
<a class="jxr_linenumber" name="2664" href="#2664">2664</a>                         @Override
<a class="jxr_linenumber" name="2665" href="#2665">2665</a>                         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> close() <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="2666" href="#2666">2666</a>                             <em class="jxr_comment">// prevent closing</em>
<a class="jxr_linenumber" name="2667" href="#2667">2667</a>                         }
<a class="jxr_linenumber" name="2668" href="#2668">2668</a>                     };
<a class="jxr_linenumber" name="2669" href="#2669">2669</a>                 }
<a class="jxr_linenumber" name="2670" href="#2670">2670</a>             }
<a class="jxr_linenumber" name="2671" href="#2671">2671</a> 
<a class="jxr_linenumber" name="2672" href="#2672">2672</a>             <strong class="jxr_keyword">public</strong> String getContentType() {
<a class="jxr_linenumber" name="2673" href="#2673">2673</a>                 <strong class="jxr_keyword">return</strong> contentStream.getMimeType();
<a class="jxr_linenumber" name="2674" href="#2674">2674</a>             }
<a class="jxr_linenumber" name="2675" href="#2675">2675</a>         }));
<a class="jxr_linenumber" name="2676" href="#2676">2676</a> 
<a class="jxr_linenumber" name="2677" href="#2677">2677</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2678" href="#2678">2678</a>     }
<a class="jxr_linenumber" name="2679" href="#2679">2679</a> 
<a class="jxr_linenumber" name="2680" href="#2680">2680</a>     <em class="jxr_comment">// -------------------------------------------------------------------------</em>
<a class="jxr_linenumber" name="2681" href="#2681">2681</a>     <em class="jxr_comment">// --- Bulk update ---</em>
<a class="jxr_linenumber" name="2682" href="#2682">2682</a>     <em class="jxr_comment">// -------------------------------------------------------------------------</em>
<a class="jxr_linenumber" name="2683" href="#2683">2683</a> 
<a class="jxr_linenumber" name="2684" href="#2684">2684</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2685" href="#2685">2685</a> <em class="jxr_javadoccomment">     * Converts bulk update data.</em>
<a class="jxr_linenumber" name="2686" href="#2686">2686</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2687" href="#2687">2687</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CmisBulkUpdateType convert(List&lt;BulkUpdateObjectIdAndChangeToken&gt; objectIdAndChangeTokens,
<a class="jxr_linenumber" name="2688" href="#2688">2688</a>             Properties properties, List&lt;String&gt; addSecondaryTypeIds, List&lt;String&gt; removeSecondaryTypeIds) {
<a class="jxr_linenumber" name="2689" href="#2689">2689</a>         <strong class="jxr_keyword">if</strong> (objectIdAndChangeTokens == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2690" href="#2690">2690</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2691" href="#2691">2691</a>         }
<a class="jxr_linenumber" name="2692" href="#2692">2692</a> 
<a class="jxr_linenumber" name="2693" href="#2693">2693</a>         CmisBulkUpdateType result = <strong class="jxr_keyword">new</strong> CmisBulkUpdateType();
<a class="jxr_linenumber" name="2694" href="#2694">2694</a> 
<a class="jxr_linenumber" name="2695" href="#2695">2695</a>         <strong class="jxr_keyword">for</strong> (BulkUpdateObjectIdAndChangeToken idAndToken : objectIdAndChangeTokens) {
<a class="jxr_linenumber" name="2696" href="#2696">2696</a>             result.getObjectIdAndChangeToken().add(convert(idAndToken));
<a class="jxr_linenumber" name="2697" href="#2697">2697</a>         }
<a class="jxr_linenumber" name="2698" href="#2698">2698</a>         result.setProperties(convert(properties));
<a class="jxr_linenumber" name="2699" href="#2699">2699</a>         <strong class="jxr_keyword">if</strong> (addSecondaryTypeIds != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2700" href="#2700">2700</a>             result.getAddSecondaryTypeIds().addAll(addSecondaryTypeIds);
<a class="jxr_linenumber" name="2701" href="#2701">2701</a>         }
<a class="jxr_linenumber" name="2702" href="#2702">2702</a>         <strong class="jxr_keyword">if</strong> (removeSecondaryTypeIds != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2703" href="#2703">2703</a>             result.getRemoveSecondaryTypeIds().addAll(removeSecondaryTypeIds);
<a class="jxr_linenumber" name="2704" href="#2704">2704</a>         }
<a class="jxr_linenumber" name="2705" href="#2705">2705</a> 
<a class="jxr_linenumber" name="2706" href="#2706">2706</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2707" href="#2707">2707</a>     }
<a class="jxr_linenumber" name="2708" href="#2708">2708</a> 
<a class="jxr_linenumber" name="2709" href="#2709">2709</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2710" href="#2710">2710</a> <em class="jxr_javadoccomment">     * Converts bulk update object id and change token.</em>
<a class="jxr_linenumber" name="2711" href="#2711">2711</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2712" href="#2712">2712</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CmisObjectIdAndChangeTokenType convert(BulkUpdateObjectIdAndChangeToken objectIdAndChangeToken) {
<a class="jxr_linenumber" name="2713" href="#2713">2713</a>         <strong class="jxr_keyword">if</strong> (objectIdAndChangeToken == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2714" href="#2714">2714</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2715" href="#2715">2715</a>         }
<a class="jxr_linenumber" name="2716" href="#2716">2716</a> 
<a class="jxr_linenumber" name="2717" href="#2717">2717</a>         CmisObjectIdAndChangeTokenType result = <strong class="jxr_keyword">new</strong> CmisObjectIdAndChangeTokenType();
<a class="jxr_linenumber" name="2718" href="#2718">2718</a> 
<a class="jxr_linenumber" name="2719" href="#2719">2719</a>         result.setId(objectIdAndChangeToken.getId());
<a class="jxr_linenumber" name="2720" href="#2720">2720</a>         result.setNewId(objectIdAndChangeToken.getNewId());
<a class="jxr_linenumber" name="2721" href="#2721">2721</a>         result.setChangeToken(objectIdAndChangeToken.getChangeToken());
<a class="jxr_linenumber" name="2722" href="#2722">2722</a> 
<a class="jxr_linenumber" name="2723" href="#2723">2723</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="2724" href="#2724">2724</a>         convertExtension(objectIdAndChangeToken, result);
<a class="jxr_linenumber" name="2725" href="#2725">2725</a> 
<a class="jxr_linenumber" name="2726" href="#2726">2726</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2727" href="#2727">2727</a>     }
<a class="jxr_linenumber" name="2728" href="#2728">2728</a> 
<a class="jxr_linenumber" name="2729" href="#2729">2729</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2730" href="#2730">2730</a> <em class="jxr_javadoccomment">     * Converts bulk update object id and change token.</em>
<a class="jxr_linenumber" name="2731" href="#2731">2731</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2732" href="#2732">2732</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> BulkUpdateObjectIdAndChangeToken convert(CmisObjectIdAndChangeTokenType objectIdAndChangeToken) {
<a class="jxr_linenumber" name="2733" href="#2733">2733</a>         <strong class="jxr_keyword">if</strong> (objectIdAndChangeToken == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2734" href="#2734">2734</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2735" href="#2735">2735</a>         }
<a class="jxr_linenumber" name="2736" href="#2736">2736</a> 
<a class="jxr_linenumber" name="2737" href="#2737">2737</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/BulkUpdateObjectIdAndChangeTokenImpl.html">BulkUpdateObjectIdAndChangeTokenImpl</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/BulkUpdateObjectIdAndChangeTokenImpl.html">BulkUpdateObjectIdAndChangeTokenImpl</a>();
<a class="jxr_linenumber" name="2738" href="#2738">2738</a> 
<a class="jxr_linenumber" name="2739" href="#2739">2739</a>         result.setId(objectIdAndChangeToken.getId());
<a class="jxr_linenumber" name="2740" href="#2740">2740</a>         result.setNewId(objectIdAndChangeToken.getNewId());
<a class="jxr_linenumber" name="2741" href="#2741">2741</a>         result.setChangeToken(objectIdAndChangeToken.getChangeToken());
<a class="jxr_linenumber" name="2742" href="#2742">2742</a> 
<a class="jxr_linenumber" name="2743" href="#2743">2743</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="2744" href="#2744">2744</a>         convertExtension(objectIdAndChangeToken, result);
<a class="jxr_linenumber" name="2745" href="#2745">2745</a> 
<a class="jxr_linenumber" name="2746" href="#2746">2746</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2747" href="#2747">2747</a>     }
<a class="jxr_linenumber" name="2748" href="#2748">2748</a> 
<a class="jxr_linenumber" name="2749" href="#2749">2749</a>     <em class="jxr_comment">// -------------------------------------------------------------------------</em>
<a class="jxr_linenumber" name="2750" href="#2750">2750</a>     <em class="jxr_comment">// --- Extensions and holders ---</em>
<a class="jxr_linenumber" name="2751" href="#2751">2751</a>     <em class="jxr_comment">// -------------------------------------------------------------------------</em>
<a class="jxr_linenumber" name="2752" href="#2752">2752</a> 
<a class="jxr_linenumber" name="2753" href="#2753">2753</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2754" href="#2754">2754</a> <em class="jxr_javadoccomment">     * Converts a binding extension into a Web Services extension.</em>
<a class="jxr_linenumber" name="2755" href="#2755">2755</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2756" href="#2756">2756</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CmisExtensionType convert(ExtensionsData extension) {
<a class="jxr_linenumber" name="2757" href="#2757">2757</a>         <strong class="jxr_keyword">if</strong> (extension == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2758" href="#2758">2758</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2759" href="#2759">2759</a>         }
<a class="jxr_linenumber" name="2760" href="#2760">2760</a> 
<a class="jxr_linenumber" name="2761" href="#2761">2761</a>         CmisExtensionType result = <strong class="jxr_keyword">new</strong> CmisExtensionType();
<a class="jxr_linenumber" name="2762" href="#2762">2762</a> 
<a class="jxr_linenumber" name="2763" href="#2763">2763</a>         <strong class="jxr_keyword">if</strong> (extension.getExtensions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2764" href="#2764">2764</a>             <strong class="jxr_keyword">for</strong> (CmisExtensionElement ext : extension.getExtensions()) {
<a class="jxr_linenumber" name="2765" href="#2765">2765</a>                 result.getAny().add(convertCmisExtensionElementToNode(ext));
<a class="jxr_linenumber" name="2766" href="#2766">2766</a>             }
<a class="jxr_linenumber" name="2767" href="#2767">2767</a>         }
<a class="jxr_linenumber" name="2768" href="#2768">2768</a> 
<a class="jxr_linenumber" name="2769" href="#2769">2769</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2770" href="#2770">2770</a>     }
<a class="jxr_linenumber" name="2771" href="#2771">2771</a> 
<a class="jxr_linenumber" name="2772" href="#2772">2772</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2773" href="#2773">2773</a> <em class="jxr_javadoccomment">     * Converts a binding extension into a Web Services extension holder.</em>
<a class="jxr_linenumber" name="2774" href="#2774">2774</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2775" href="#2775">2775</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> javax.xml.ws.Holder&lt;CmisExtensionType&gt; convertExtensionHolder(ExtensionsData extension) {
<a class="jxr_linenumber" name="2776" href="#2776">2776</a>         <strong class="jxr_keyword">if</strong> (extension == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2777" href="#2777">2777</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2778" href="#2778">2778</a>         }
<a class="jxr_linenumber" name="2779" href="#2779">2779</a> 
<a class="jxr_linenumber" name="2780" href="#2780">2780</a>         javax.xml.ws.Holder&lt;CmisExtensionType&gt; result = <strong class="jxr_keyword">new</strong> javax.xml.ws.Holder&lt;CmisExtensionType&gt;();
<a class="jxr_linenumber" name="2781" href="#2781">2781</a>         result.value = convert(extension);
<a class="jxr_linenumber" name="2782" href="#2782">2782</a> 
<a class="jxr_linenumber" name="2783" href="#2783">2783</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2784" href="#2784">2784</a>     }
<a class="jxr_linenumber" name="2785" href="#2785">2785</a> 
<a class="jxr_linenumber" name="2786" href="#2786">2786</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2787" href="#2787">2787</a> <em class="jxr_javadoccomment">     * Copies a holder value.</em>
<a class="jxr_linenumber" name="2788" href="#2788">2788</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2789" href="#2789">2789</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> setExtensionValues(javax.xml.ws.Holder&lt;CmisExtensionType&gt; source, ExtensionsData target) {
<a class="jxr_linenumber" name="2790" href="#2790">2790</a>         <strong class="jxr_keyword">if</strong> (target == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2791" href="#2791">2791</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="2792" href="#2792">2792</a>         }
<a class="jxr_linenumber" name="2793" href="#2793">2793</a>         target.setExtensions(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2794" href="#2794">2794</a> 
<a class="jxr_linenumber" name="2795" href="#2795">2795</a>         <strong class="jxr_keyword">if</strong> ((source == <strong class="jxr_keyword">null</strong>) || (source.value == <strong class="jxr_keyword">null</strong>)) {
<a class="jxr_linenumber" name="2796" href="#2796">2796</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="2797" href="#2797">2797</a>         }
<a class="jxr_linenumber" name="2798" href="#2798">2798</a> 
<a class="jxr_linenumber" name="2799" href="#2799">2799</a>         List&lt;CmisExtensionElement&gt; list = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisExtensionElement&gt;();
<a class="jxr_linenumber" name="2800" href="#2800">2800</a>         target.setExtensions(list);
<a class="jxr_linenumber" name="2801" href="#2801">2801</a> 
<a class="jxr_linenumber" name="2802" href="#2802">2802</a>         <strong class="jxr_keyword">if</strong> (!source.value.getAny().isEmpty()) {
<a class="jxr_linenumber" name="2803" href="#2803">2803</a>             <strong class="jxr_keyword">for</strong> (Object obj : source.value.getAny()) {
<a class="jxr_linenumber" name="2804" href="#2804">2804</a>                 list.add(convertDomToCmisExtensionElement(obj));
<a class="jxr_linenumber" name="2805" href="#2805">2805</a>             }
<a class="jxr_linenumber" name="2806" href="#2806">2806</a>         }
<a class="jxr_linenumber" name="2807" href="#2807">2807</a>     }
<a class="jxr_linenumber" name="2808" href="#2808">2808</a> 
<a class="jxr_linenumber" name="2809" href="#2809">2809</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2810" href="#2810">2810</a> <em class="jxr_javadoccomment">     * Converts a Web Services extension extension into a binding holder.</em>
<a class="jxr_linenumber" name="2811" href="#2811">2811</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2812" href="#2812">2812</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ExtensionsData convertExtensionHolder(javax.xml.ws.Holder&lt;CmisExtensionType&gt; extension) {
<a class="jxr_linenumber" name="2813" href="#2813">2813</a>         <strong class="jxr_keyword">if</strong> (extension == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2814" href="#2814">2814</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2815" href="#2815">2815</a>         }
<a class="jxr_linenumber" name="2816" href="#2816">2816</a> 
<a class="jxr_linenumber" name="2817" href="#2817">2817</a>         <strong class="jxr_keyword">return</strong> convert(extension.value);
<a class="jxr_linenumber" name="2818" href="#2818">2818</a>     }
<a class="jxr_linenumber" name="2819" href="#2819">2819</a> 
<a class="jxr_linenumber" name="2820" href="#2820">2820</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2821" href="#2821">2821</a> <em class="jxr_javadoccomment">     * Copies a holder value.</em>
<a class="jxr_linenumber" name="2822" href="#2822">2822</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2823" href="#2823">2823</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> setExtensionValues(ExtensionsData source, javax.xml.ws.Holder&lt;CmisExtensionType&gt; target) {
<a class="jxr_linenumber" name="2824" href="#2824">2824</a>         <strong class="jxr_keyword">if</strong> ((target == <strong class="jxr_keyword">null</strong>) || (target.value == <strong class="jxr_keyword">null</strong>)) {
<a class="jxr_linenumber" name="2825" href="#2825">2825</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="2826" href="#2826">2826</a>         }
<a class="jxr_linenumber" name="2827" href="#2827">2827</a>         target.value.getAny().clear();
<a class="jxr_linenumber" name="2828" href="#2828">2828</a> 
<a class="jxr_linenumber" name="2829" href="#2829">2829</a>         <strong class="jxr_keyword">if</strong> ((source == <strong class="jxr_keyword">null</strong>) || (source.getExtensions() == <strong class="jxr_keyword">null</strong>)) {
<a class="jxr_linenumber" name="2830" href="#2830">2830</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="2831" href="#2831">2831</a>         }
<a class="jxr_linenumber" name="2832" href="#2832">2832</a> 
<a class="jxr_linenumber" name="2833" href="#2833">2833</a>         <strong class="jxr_keyword">if</strong> (source.getExtensions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2834" href="#2834">2834</a>             <strong class="jxr_keyword">for</strong> (CmisExtensionElement ext : source.getExtensions()) {
<a class="jxr_linenumber" name="2835" href="#2835">2835</a>                 target.value.getAny().add(convertCmisExtensionElementToNode(ext));
<a class="jxr_linenumber" name="2836" href="#2836">2836</a>             }
<a class="jxr_linenumber" name="2837" href="#2837">2837</a>         }
<a class="jxr_linenumber" name="2838" href="#2838">2838</a>     }
<a class="jxr_linenumber" name="2839" href="#2839">2839</a> 
<a class="jxr_linenumber" name="2840" href="#2840">2840</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2841" href="#2841">2841</a> <em class="jxr_javadoccomment">     * Converts a holder into a WS holder.</em>
<a class="jxr_linenumber" name="2842" href="#2842">2842</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2843" href="#2843">2843</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> &lt;T&gt; javax.xml.ws.Holder&lt;T&gt; convertHolder(Holder&lt;T&gt; orgHolder) {
<a class="jxr_linenumber" name="2844" href="#2844">2844</a>         <strong class="jxr_keyword">if</strong> (orgHolder == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2845" href="#2845">2845</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2846" href="#2846">2846</a>         }
<a class="jxr_linenumber" name="2847" href="#2847">2847</a> 
<a class="jxr_linenumber" name="2848" href="#2848">2848</a>         javax.xml.ws.Holder&lt;T&gt; result = <strong class="jxr_keyword">new</strong> javax.xml.ws.Holder&lt;T&gt;();
<a class="jxr_linenumber" name="2849" href="#2849">2849</a>         result.value = orgHolder.getValue();
<a class="jxr_linenumber" name="2850" href="#2850">2850</a> 
<a class="jxr_linenumber" name="2851" href="#2851">2851</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2852" href="#2852">2852</a>     }
<a class="jxr_linenumber" name="2853" href="#2853">2853</a> 
<a class="jxr_linenumber" name="2854" href="#2854">2854</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2855" href="#2855">2855</a> <em class="jxr_javadoccomment">     * Converts a WS holder into a holder.</em>
<a class="jxr_linenumber" name="2856" href="#2856">2856</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2857" href="#2857">2857</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> &lt;T&gt; Holder&lt;T&gt; convertHolder(javax.xml.ws.Holder&lt;T&gt; orgHolder) {
<a class="jxr_linenumber" name="2858" href="#2858">2858</a>         <strong class="jxr_keyword">if</strong> (orgHolder == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2859" href="#2859">2859</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2860" href="#2860">2860</a>         }
<a class="jxr_linenumber" name="2861" href="#2861">2861</a> 
<a class="jxr_linenumber" name="2862" href="#2862">2862</a>         Holder&lt;T&gt; result = <strong class="jxr_keyword">new</strong> Holder&lt;T&gt;();
<a class="jxr_linenumber" name="2863" href="#2863">2863</a>         result.setValue(orgHolder.value);
<a class="jxr_linenumber" name="2864" href="#2864">2864</a> 
<a class="jxr_linenumber" name="2865" href="#2865">2865</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2866" href="#2866">2866</a>     }
<a class="jxr_linenumber" name="2867" href="#2867">2867</a> 
<a class="jxr_linenumber" name="2868" href="#2868">2868</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2869" href="#2869">2869</a> <em class="jxr_javadoccomment">     * Copies a holder value for a WS holder to a holder.</em>
<a class="jxr_linenumber" name="2870" href="#2870">2870</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2871" href="#2871">2871</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> &lt;T&gt; <strong class="jxr_keyword">void</strong> setHolderValue(javax.xml.ws.Holder&lt;T&gt; source, Holder&lt;T&gt; target) {
<a class="jxr_linenumber" name="2872" href="#2872">2872</a>         <strong class="jxr_keyword">if</strong> ((source == <strong class="jxr_keyword">null</strong>) || (target == <strong class="jxr_keyword">null</strong>)) {
<a class="jxr_linenumber" name="2873" href="#2873">2873</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="2874" href="#2874">2874</a>         }
<a class="jxr_linenumber" name="2875" href="#2875">2875</a> 
<a class="jxr_linenumber" name="2876" href="#2876">2876</a>         target.setValue(source.value);
<a class="jxr_linenumber" name="2877" href="#2877">2877</a>     }
<a class="jxr_linenumber" name="2878" href="#2878">2878</a> 
<a class="jxr_linenumber" name="2879" href="#2879">2879</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2880" href="#2880">2880</a> <em class="jxr_javadoccomment">     * Copies a holder value for a holder to a WS holder.</em>
<a class="jxr_linenumber" name="2881" href="#2881">2881</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2882" href="#2882">2882</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> &lt;T&gt; <strong class="jxr_keyword">void</strong> setHolderValue(Holder&lt;T&gt; source, javax.xml.ws.Holder&lt;T&gt; target) {
<a class="jxr_linenumber" name="2883" href="#2883">2883</a>         <strong class="jxr_keyword">if</strong> ((source == <strong class="jxr_keyword">null</strong>) || (target == <strong class="jxr_keyword">null</strong>)) {
<a class="jxr_linenumber" name="2884" href="#2884">2884</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="2885" href="#2885">2885</a>         }
<a class="jxr_linenumber" name="2886" href="#2886">2886</a> 
<a class="jxr_linenumber" name="2887" href="#2887">2887</a>         target.value = source.getValue();
<a class="jxr_linenumber" name="2888" href="#2888">2888</a>     }
<a class="jxr_linenumber" name="2889" href="#2889">2889</a> 
<a class="jxr_linenumber" name="2890" href="#2890">2890</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="2891" href="#2891">2891</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> convertExtension(Object source, ExtensionsData target) {
<a class="jxr_linenumber" name="2892" href="#2892">2892</a>         <strong class="jxr_keyword">if</strong> (source == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2893" href="#2893">2893</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="2894" href="#2894">2894</a>         }
<a class="jxr_linenumber" name="2895" href="#2895">2895</a> 
<a class="jxr_linenumber" name="2896" href="#2896">2896</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="2897" href="#2897">2897</a>             Method m = source.getClass().getMethod(<span class="jxr_string">"getAny"</span>, <strong class="jxr_keyword">new</strong> Class&lt;?&gt;[0]);
<a class="jxr_linenumber" name="2898" href="#2898">2898</a>             List&lt;Object&gt; list = (List&lt;Object&gt;) m.invoke(source, <strong class="jxr_keyword">new</strong> Object[0]);
<a class="jxr_linenumber" name="2899" href="#2899">2899</a> 
<a class="jxr_linenumber" name="2900" href="#2900">2900</a>             <strong class="jxr_keyword">if</strong> (!list.isEmpty()) {
<a class="jxr_linenumber" name="2901" href="#2901">2901</a>                 List&lt;CmisExtensionElement&gt; extensions = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisExtensionElement&gt;();
<a class="jxr_linenumber" name="2902" href="#2902">2902</a>                 <strong class="jxr_keyword">for</strong> (Object obj : list) {
<a class="jxr_linenumber" name="2903" href="#2903">2903</a>                     extensions.add(convertDomToCmisExtensionElement(obj));
<a class="jxr_linenumber" name="2904" href="#2904">2904</a>                 }
<a class="jxr_linenumber" name="2905" href="#2905">2905</a> 
<a class="jxr_linenumber" name="2906" href="#2906">2906</a>                 target.setExtensions(extensions);
<a class="jxr_linenumber" name="2907" href="#2907">2907</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2908" href="#2908">2908</a>                 target.setExtensions(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2909" href="#2909">2909</a>             }
<a class="jxr_linenumber" name="2910" href="#2910">2910</a>         } <strong class="jxr_keyword">catch</strong> (NoSuchMethodException e) {
<a class="jxr_linenumber" name="2911" href="#2911">2911</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="2912" href="#2912">2912</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Exception: "</span> + e.getMessage(), e);
<a class="jxr_linenumber" name="2913" href="#2913">2913</a>         }
<a class="jxr_linenumber" name="2914" href="#2914">2914</a>     }
<a class="jxr_linenumber" name="2915" href="#2915">2915</a> 
<a class="jxr_linenumber" name="2916" href="#2916">2916</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="2917" href="#2917">2917</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> convertExtension(ExtensionsData source, Object target) {
<a class="jxr_linenumber" name="2918" href="#2918">2918</a>         <strong class="jxr_keyword">if</strong> (source == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2919" href="#2919">2919</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="2920" href="#2920">2920</a>         }
<a class="jxr_linenumber" name="2921" href="#2921">2921</a> 
<a class="jxr_linenumber" name="2922" href="#2922">2922</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="2923" href="#2923">2923</a>             Method m = target.getClass().getMethod(<span class="jxr_string">"getAny"</span>, <strong class="jxr_keyword">new</strong> Class&lt;?&gt;[0]);
<a class="jxr_linenumber" name="2924" href="#2924">2924</a>             List&lt;Object&gt; list = (List&lt;Object&gt;) m.invoke(target, <strong class="jxr_keyword">new</strong> Object[0]);
<a class="jxr_linenumber" name="2925" href="#2925">2925</a> 
<a class="jxr_linenumber" name="2926" href="#2926">2926</a>             list.clear();
<a class="jxr_linenumber" name="2927" href="#2927">2927</a>             <strong class="jxr_keyword">if</strong> (source.getExtensions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2928" href="#2928">2928</a>                 <strong class="jxr_keyword">for</strong> (CmisExtensionElement ext : source.getExtensions()) {
<a class="jxr_linenumber" name="2929" href="#2929">2929</a>                     list.add(convertCmisExtensionElementToNode(ext));
<a class="jxr_linenumber" name="2930" href="#2930">2930</a>                 }
<a class="jxr_linenumber" name="2931" href="#2931">2931</a>             }
<a class="jxr_linenumber" name="2932" href="#2932">2932</a>         } <strong class="jxr_keyword">catch</strong> (NoSuchMethodException e) {
<a class="jxr_linenumber" name="2933" href="#2933">2933</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="2934" href="#2934">2934</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Exception: "</span> + e.getMessage(), e);
<a class="jxr_linenumber" name="2935" href="#2935">2935</a>         }
<a class="jxr_linenumber" name="2936" href="#2936">2936</a>     }
<a class="jxr_linenumber" name="2937" href="#2937">2937</a> 
<a class="jxr_linenumber" name="2938" href="#2938">2938</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2939" href="#2939">2939</a> <em class="jxr_javadoccomment">     * Converts an extension object.</em>
<a class="jxr_linenumber" name="2940" href="#2940">2940</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2941" href="#2941">2941</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ExtensionsData convert(CmisExtensionType extension) {
<a class="jxr_linenumber" name="2942" href="#2942">2942</a>         <strong class="jxr_keyword">if</strong> (extension == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2943" href="#2943">2943</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2944" href="#2944">2944</a>         }
<a class="jxr_linenumber" name="2945" href="#2945">2945</a> 
<a class="jxr_linenumber" name="2946" href="#2946">2946</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/ExtensionDataImpl.html">ExtensionDataImpl</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/ExtensionDataImpl.html">ExtensionDataImpl</a>();
<a class="jxr_linenumber" name="2947" href="#2947">2947</a>         List&lt;CmisExtensionElement&gt; extensions = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisExtensionElement&gt;();
<a class="jxr_linenumber" name="2948" href="#2948">2948</a>         result.setExtensions(extensions);
<a class="jxr_linenumber" name="2949" href="#2949">2949</a> 
<a class="jxr_linenumber" name="2950" href="#2950">2950</a>         <strong class="jxr_keyword">for</strong> (Object obj : extension.getAny()) {
<a class="jxr_linenumber" name="2951" href="#2951">2951</a>             extensions.add(convertDomToCmisExtensionElement(obj));
<a class="jxr_linenumber" name="2952" href="#2952">2952</a>         }
<a class="jxr_linenumber" name="2953" href="#2953">2953</a> 
<a class="jxr_linenumber" name="2954" href="#2954">2954</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2955" href="#2955">2955</a>     }
<a class="jxr_linenumber" name="2956" href="#2956">2956</a> 
<a class="jxr_linenumber" name="2957" href="#2957">2957</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2958" href="#2958">2958</a> <em class="jxr_javadoccomment">     * Converts a DOM node to a CMIS extension element</em>
<a class="jxr_linenumber" name="2959" href="#2959">2959</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2960" href="#2960">2960</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> CmisExtensionElement convertDomToCmisExtensionElement(Object source) {
<a class="jxr_linenumber" name="2961" href="#2961">2961</a>         <em class="jxr_comment">// if it's not a Node, skip it</em>
<a class="jxr_linenumber" name="2962" href="#2962">2962</a>         <strong class="jxr_keyword">if</strong> (!(source instanceof Node)) {
<a class="jxr_linenumber" name="2963" href="#2963">2963</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2964" href="#2964">2964</a>         }
<a class="jxr_linenumber" name="2965" href="#2965">2965</a> 
<a class="jxr_linenumber" name="2966" href="#2966">2966</a>         Node node = (Node) source;
<a class="jxr_linenumber" name="2967" href="#2967">2967</a>         <strong class="jxr_keyword">if</strong> (node.getNodeType() != Node.ELEMENT_NODE) {
<a class="jxr_linenumber" name="2968" href="#2968">2968</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2969" href="#2969">2969</a>         }
<a class="jxr_linenumber" name="2970" href="#2970">2970</a> 
<a class="jxr_linenumber" name="2971" href="#2971">2971</a>         String name = node.getLocalName();
<a class="jxr_linenumber" name="2972" href="#2972">2972</a>         String namespace = node.getNamespaceURI();
<a class="jxr_linenumber" name="2973" href="#2973">2973</a> 
<a class="jxr_linenumber" name="2974" href="#2974">2974</a>         CmisExtensionElement result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2975" href="#2975">2975</a>         List&lt;CmisExtensionElement&gt; cmisChildren = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisExtensionElement&gt;();
<a class="jxr_linenumber" name="2976" href="#2976">2976</a>         StringBuilder value = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="2977" href="#2977">2977</a> 
<a class="jxr_linenumber" name="2978" href="#2978">2978</a>         NodeList children = node.getChildNodes();
<a class="jxr_linenumber" name="2979" href="#2979">2979</a> 
<a class="jxr_linenumber" name="2980" href="#2980">2980</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; children.getLength(); i++) {
<a class="jxr_linenumber" name="2981" href="#2981">2981</a>             Node child = children.item(i);
<a class="jxr_linenumber" name="2982" href="#2982">2982</a> 
<a class="jxr_linenumber" name="2983" href="#2983">2983</a>             <strong class="jxr_keyword">if</strong> (child.getNodeType() == Node.ELEMENT_NODE) {
<a class="jxr_linenumber" name="2984" href="#2984">2984</a>                 CmisExtensionElement cmisChild = convertDomToCmisExtensionElement(child);
<a class="jxr_linenumber" name="2985" href="#2985">2985</a>                 <strong class="jxr_keyword">if</strong> (cmisChild != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2986" href="#2986">2986</a>                     cmisChildren.add(cmisChild);
<a class="jxr_linenumber" name="2987" href="#2987">2987</a>                 }
<a class="jxr_linenumber" name="2988" href="#2988">2988</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (child.getNodeType() == Node.TEXT_NODE) {
<a class="jxr_linenumber" name="2989" href="#2989">2989</a>                 value.append(child.getNodeValue());
<a class="jxr_linenumber" name="2990" href="#2990">2990</a>             }
<a class="jxr_linenumber" name="2991" href="#2991">2991</a>         }
<a class="jxr_linenumber" name="2992" href="#2992">2992</a> 
<a class="jxr_linenumber" name="2993" href="#2993">2993</a>         Map&lt;String, String&gt; attributes = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2994" href="#2994">2994</a>         <strong class="jxr_keyword">if</strong> (node.getAttributes() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2995" href="#2995">2995</a>             attributes = <strong class="jxr_keyword">new</strong> HashMap&lt;String, String&gt;();
<a class="jxr_linenumber" name="2996" href="#2996">2996</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; node.getAttributes().getLength(); i++) {
<a class="jxr_linenumber" name="2997" href="#2997">2997</a>                 Node attrNode = node.getAttributes().item(i);
<a class="jxr_linenumber" name="2998" href="#2998">2998</a> 
<a class="jxr_linenumber" name="2999" href="#2999">2999</a>                 String attrNamespace = attrNode.getNamespaceURI();
<a class="jxr_linenumber" name="3000" href="#3000">3000</a> 
<a class="jxr_linenumber" name="3001" href="#3001">3001</a>                 <strong class="jxr_keyword">if</strong> (attrNamespace == <strong class="jxr_keyword">null</strong> || attrNamespace.equals(namespace)) {
<a class="jxr_linenumber" name="3002" href="#3002">3002</a>                     attributes.put(attrNode.getLocalName(), attrNode.getNodeValue());
<a class="jxr_linenumber" name="3003" href="#3003">3003</a>                 }
<a class="jxr_linenumber" name="3004" href="#3004">3004</a>             }
<a class="jxr_linenumber" name="3005" href="#3005">3005</a>         }
<a class="jxr_linenumber" name="3006" href="#3006">3006</a> 
<a class="jxr_linenumber" name="3007" href="#3007">3007</a>         <strong class="jxr_keyword">if</strong> (cmisChildren.isEmpty()) {
<a class="jxr_linenumber" name="3008" href="#3008">3008</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/CmisExtensionElementImpl.html">CmisExtensionElementImpl</a>(namespace, name, attributes, value.toString());
<a class="jxr_linenumber" name="3009" href="#3009">3009</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3010" href="#3010">3010</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/CmisExtensionElementImpl.html">CmisExtensionElementImpl</a>(namespace, name, attributes, cmisChildren);
<a class="jxr_linenumber" name="3011" href="#3011">3011</a>         }
<a class="jxr_linenumber" name="3012" href="#3012">3012</a> 
<a class="jxr_linenumber" name="3013" href="#3013">3013</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="3014" href="#3014">3014</a>     }
<a class="jxr_linenumber" name="3015" href="#3015">3015</a> 
<a class="jxr_linenumber" name="3016" href="#3016">3016</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="3017" href="#3017">3017</a> <em class="jxr_javadoccomment">     * Converts a CMIS extension element to a DOM node.</em>
<a class="jxr_linenumber" name="3018" href="#3018">3018</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="3019" href="#3019">3019</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Node convertCmisExtensionElementToNode(CmisExtensionElement source) {
<a class="jxr_linenumber" name="3020" href="#3020">3020</a>         <strong class="jxr_keyword">if</strong> (source == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3021" href="#3021">3021</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="3022" href="#3022">3022</a>         }
<a class="jxr_linenumber" name="3023" href="#3023">3023</a> 
<a class="jxr_linenumber" name="3024" href="#3024">3024</a>         Document doc = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="3025" href="#3025">3025</a> 
<a class="jxr_linenumber" name="3026" href="#3026">3026</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="3027" href="#3027">3027</a>             doc = XMLUtils.newDomDocument();
<a class="jxr_linenumber" name="3028" href="#3028">3028</a>         } <strong class="jxr_keyword">catch</strong> (ParserConfigurationException e) {
<a class="jxr_linenumber" name="3029" href="#3029">3029</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Unable to convert extensions!"</span>, e);
<a class="jxr_linenumber" name="3030" href="#3030">3030</a>         }
<a class="jxr_linenumber" name="3031" href="#3031">3031</a> 
<a class="jxr_linenumber" name="3032" href="#3032">3032</a>         Element root = doc.createElementNS(
<a class="jxr_linenumber" name="3033" href="#3033">3033</a>                 (source.getNamespace() == <strong class="jxr_keyword">null</strong> ? DEFAULT_EXTENSION_NS : source.getNamespace()), source.getName());
<a class="jxr_linenumber" name="3034" href="#3034">3034</a>         doc.appendChild(root);
<a class="jxr_linenumber" name="3035" href="#3035">3035</a> 
<a class="jxr_linenumber" name="3036" href="#3036">3036</a>         <strong class="jxr_keyword">if</strong> (source.getValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3037" href="#3037">3037</a>             root.appendChild(doc.createTextNode(source.getValue()));
<a class="jxr_linenumber" name="3038" href="#3038">3038</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3039" href="#3039">3039</a>             <strong class="jxr_keyword">for</strong> (CmisExtensionElement child : source.getChildren()) {
<a class="jxr_linenumber" name="3040" href="#3040">3040</a>                 root.appendChild(convertCmisExtensionElementToNode(child, root, doc));
<a class="jxr_linenumber" name="3041" href="#3041">3041</a>             }
<a class="jxr_linenumber" name="3042" href="#3042">3042</a>         }
<a class="jxr_linenumber" name="3043" href="#3043">3043</a> 
<a class="jxr_linenumber" name="3044" href="#3044">3044</a>         <em class="jxr_comment">// set attributes</em>
<a class="jxr_linenumber" name="3045" href="#3045">3045</a>         <strong class="jxr_keyword">if</strong> (source.getAttributes() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3046" href="#3046">3046</a>             <strong class="jxr_keyword">for</strong> (Map.Entry&lt;String, String&gt; e : source.getAttributes().entrySet()) {
<a class="jxr_linenumber" name="3047" href="#3047">3047</a>                 root.setAttributeNS((source.getNamespace() == <strong class="jxr_keyword">null</strong> ? DEFAULT_EXTENSION_NS : source.getNamespace()),
<a class="jxr_linenumber" name="3048" href="#3048">3048</a>                         e.getKey(), e.getValue());
<a class="jxr_linenumber" name="3049" href="#3049">3049</a>             }
<a class="jxr_linenumber" name="3050" href="#3050">3050</a>         }
<a class="jxr_linenumber" name="3051" href="#3051">3051</a> 
<a class="jxr_linenumber" name="3052" href="#3052">3052</a>         <strong class="jxr_keyword">return</strong> root;
<a class="jxr_linenumber" name="3053" href="#3053">3053</a>     }
<a class="jxr_linenumber" name="3054" href="#3054">3054</a> 
<a class="jxr_linenumber" name="3055" href="#3055">3055</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="3056" href="#3056">3056</a> <em class="jxr_javadoccomment">     * Converts a CMIS extension element to a DOM node.</em>
<a class="jxr_linenumber" name="3057" href="#3057">3057</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="3058" href="#3058">3058</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Node convertCmisExtensionElementToNode(CmisExtensionElement source, Element parent, Document doc) {
<a class="jxr_linenumber" name="3059" href="#3059">3059</a>         <strong class="jxr_keyword">if</strong> (source == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3060" href="#3060">3060</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="3061" href="#3061">3061</a>         }
<a class="jxr_linenumber" name="3062" href="#3062">3062</a> 
<a class="jxr_linenumber" name="3063" href="#3063">3063</a>         Element element = doc.createElementNS(
<a class="jxr_linenumber" name="3064" href="#3064">3064</a>                 (source.getNamespace() == <strong class="jxr_keyword">null</strong> ? DEFAULT_EXTENSION_NS : source.getNamespace()), source.getName());
<a class="jxr_linenumber" name="3065" href="#3065">3065</a> 
<a class="jxr_linenumber" name="3066" href="#3066">3066</a>         <strong class="jxr_keyword">if</strong> (source.getValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3067" href="#3067">3067</a>             element.appendChild(doc.createTextNode(source.getValue()));
<a class="jxr_linenumber" name="3068" href="#3068">3068</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="3069" href="#3069">3069</a>             <strong class="jxr_keyword">for</strong> (CmisExtensionElement child : source.getChildren()) {
<a class="jxr_linenumber" name="3070" href="#3070">3070</a>                 element.appendChild(convertCmisExtensionElementToNode(child, element, doc));
<a class="jxr_linenumber" name="3071" href="#3071">3071</a>             }
<a class="jxr_linenumber" name="3072" href="#3072">3072</a>         }
<a class="jxr_linenumber" name="3073" href="#3073">3073</a> 
<a class="jxr_linenumber" name="3074" href="#3074">3074</a>         <em class="jxr_comment">// set attributes</em>
<a class="jxr_linenumber" name="3075" href="#3075">3075</a>         <strong class="jxr_keyword">if</strong> (source.getAttributes() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3076" href="#3076">3076</a>             <strong class="jxr_keyword">for</strong> (Map.Entry&lt;String, String&gt; e : source.getAttributes().entrySet()) {
<a class="jxr_linenumber" name="3077" href="#3077">3077</a>                 element.setAttributeNS((source.getNamespace() == <strong class="jxr_keyword">null</strong> ? DEFAULT_EXTENSION_NS : source.getNamespace()),
<a class="jxr_linenumber" name="3078" href="#3078">3078</a>                         e.getKey(), e.getValue());
<a class="jxr_linenumber" name="3079" href="#3079">3079</a>             }
<a class="jxr_linenumber" name="3080" href="#3080">3080</a>         }
<a class="jxr_linenumber" name="3081" href="#3081">3081</a> 
<a class="jxr_linenumber" name="3082" href="#3082">3082</a>         <strong class="jxr_keyword">return</strong> element;
<a class="jxr_linenumber" name="3083" href="#3083">3083</a>     }
<a class="jxr_linenumber" name="3084" href="#3084">3084</a> 
<a class="jxr_linenumber" name="3085" href="#3085">3085</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> convertBoolean(Boolean value, <strong class="jxr_keyword">boolean</strong> def) {
<a class="jxr_linenumber" name="3086" href="#3086">3086</a>         <strong class="jxr_keyword">return</strong> (value == <strong class="jxr_keyword">null</strong> ? def : value.booleanValue());
<a class="jxr_linenumber" name="3087" href="#3087">3087</a>     }
<a class="jxr_linenumber" name="3088" href="#3088">3088</a> 
<a class="jxr_linenumber" name="3089" href="#3089">3089</a>     <em class="jxr_comment">// -------------------------------------------------------------------------</em>
<a class="jxr_linenumber" name="3090" href="#3090">3090</a>     <em class="jxr_comment">// --- Enums ---</em>
<a class="jxr_linenumber" name="3091" href="#3091">3091</a>     <em class="jxr_comment">// -------------------------------------------------------------------------</em>
<a class="jxr_linenumber" name="3092" href="#3092">3092</a> 
<a class="jxr_linenumber" name="3093" href="#3093">3093</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="3094" href="#3094">3094</a> <em class="jxr_javadoccomment">     * Converts an Enum.</em>
<a class="jxr_linenumber" name="3095" href="#3095">3095</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="3096" href="#3096">3096</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> &lt;T <strong class="jxr_keyword">extends</strong> Enum&lt;T&gt;&gt; T convert(Class&lt;T&gt; destClass, Enum&lt;?&gt; source) {
<a class="jxr_linenumber" name="3097" href="#3097">3097</a>         <strong class="jxr_keyword">if</strong> (source == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="3098" href="#3098">3098</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="3099" href="#3099">3099</a>         }
<a class="jxr_linenumber" name="3100" href="#3100">3100</a> 
<a class="jxr_linenumber" name="3101" href="#3101">3101</a>         <strong class="jxr_keyword">return</strong> Enum.valueOf(destClass, source.name());
<a class="jxr_linenumber" name="3102" href="#3102">3102</a>     }
<a class="jxr_linenumber" name="3103" href="#3103">3103</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

