<!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>JSONConverter 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/JSONConverter.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> <strong class="jxr_keyword">static</strong> org.apache.chemistry.opencmis.commons.impl.JSONConstants.*;
<a class="jxr_linenumber" name="22" href="#22">22</a>  
<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.Method;
<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.math.BigDecimal;
<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.math.BigInteger;
<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.EnumSet;
<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.GregorianCalendar;
<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashMap;
<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.util.TimeZone;
<a class="jxr_linenumber" name="36" href="#36">36</a>  
<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.PropertyIds;
<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Ace;
<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Acl;
<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.AclCapabilities;
<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.AllowableActions;
<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.BulkUpdateObjectIdAndChangeToken;
<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ChangeEventInfo;
<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.CmisExtensionElement;
<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.CreatablePropertyTypes;
<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ExtensionFeature;
<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ExtensionsData;
<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.FailedToDeleteData;
<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.NewTypeSettableAttributes;
<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectData;
<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectInFolderContainer;
<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectInFolderData;
<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectInFolderList;
<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectList;
<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectParentData;
<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PermissionMapping;
<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PolicyIdList;
<a class="jxr_linenumber" name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Properties;
<a class="jxr_linenumber" name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyBoolean;
<a class="jxr_linenumber" name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyData;
<a class="jxr_linenumber" name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyDateTime;
<a class="jxr_linenumber" name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyDecimal;
<a class="jxr_linenumber" name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyHtml;
<a class="jxr_linenumber" name="64" href="#64">64</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyId;
<a class="jxr_linenumber" name="65" href="#65">65</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyInteger;
<a class="jxr_linenumber" name="66" href="#66">66</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyString;
<a class="jxr_linenumber" name="67" href="#67">67</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyUri;
<a class="jxr_linenumber" name="68" href="#68">68</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.RenditionData;
<a class="jxr_linenumber" name="69" href="#69">69</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.RepositoryCapabilities;
<a class="jxr_linenumber" name="70" href="#70">70</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
<a class="jxr_linenumber" name="71" href="#71">71</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.Choice;
<a class="jxr_linenumber" name="72" href="#72">72</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.DocumentTypeDefinition;
<a class="jxr_linenumber" name="73" href="#73">73</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PermissionDefinition;
<a class="jxr_linenumber" name="74" href="#74">74</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyBooleanDefinition;
<a class="jxr_linenumber" name="75" href="#75">75</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyDateTimeDefinition;
<a class="jxr_linenumber" name="76" href="#76">76</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyDecimalDefinition;
<a class="jxr_linenumber" name="77" href="#77">77</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition;
<a class="jxr_linenumber" name="78" href="#78">78</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyHtmlDefinition;
<a class="jxr_linenumber" name="79" href="#79">79</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyIdDefinition;
<a class="jxr_linenumber" name="80" href="#80">80</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyIntegerDefinition;
<a class="jxr_linenumber" name="81" href="#81">81</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyStringDefinition;
<a class="jxr_linenumber" name="82" href="#82">82</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyUriDefinition;
<a class="jxr_linenumber" name="83" href="#83">83</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.RelationshipTypeDefinition;
<a class="jxr_linenumber" name="84" href="#84">84</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
<a class="jxr_linenumber" name="85" href="#85">85</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer;
<a class="jxr_linenumber" name="86" href="#86">86</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionList;
<a class="jxr_linenumber" name="87" href="#87">87</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeMutability;
<a class="jxr_linenumber" name="88" href="#88">88</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.AclPropagation;
<a class="jxr_linenumber" name="89" href="#89">89</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Action;
<a class="jxr_linenumber" name="90" href="#90">90</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
<a class="jxr_linenumber" name="91" href="#91">91</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityAcl;
<a class="jxr_linenumber" name="92" href="#92">92</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityChanges;
<a class="jxr_linenumber" name="93" href="#93">93</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityContentStreamUpdates;
<a class="jxr_linenumber" name="94" href="#94">94</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityJoin;
<a class="jxr_linenumber" name="95" href="#95">95</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityOrderBy;
<a class="jxr_linenumber" name="96" href="#96">96</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityQuery;
<a class="jxr_linenumber" name="97" href="#97">97</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityRenditions;
<a class="jxr_linenumber" name="98" href="#98">98</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Cardinality;
<a class="jxr_linenumber" name="99" href="#99">99</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.ChangeType;
<a class="jxr_linenumber" name="100" href="#100">100</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.ContentStreamAllowed;
<a class="jxr_linenumber" name="101" href="#101">101</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.DateTimeResolution;
<a class="jxr_linenumber" name="102" href="#102">102</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.DecimalPrecision;
<a class="jxr_linenumber" name="103" href="#103">103</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.PropertyType;
<a class="jxr_linenumber" name="104" href="#104">104</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.SupportedPermissions;
<a class="jxr_linenumber" name="105" href="#105">105</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Updatability;
<a class="jxr_linenumber" name="106" href="#106">106</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException;
<a class="jxr_linenumber" name="107" href="#107">107</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AbstractPropertyData;
<a class="jxr_linenumber" name="108" href="#108">108</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AbstractPropertyDefinition;
<a class="jxr_linenumber" name="109" href="#109">109</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AbstractTypeDefinition;
<a class="jxr_linenumber" name="110" href="#110">110</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AccessControlEntryImpl;
<a class="jxr_linenumber" name="111" href="#111">111</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AccessControlListImpl;
<a class="jxr_linenumber" name="112" href="#112">112</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AccessControlPrincipalDataImpl;
<a class="jxr_linenumber" name="113" href="#113">113</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AclCapabilitiesDataImpl;
<a class="jxr_linenumber" name="114" href="#114">114</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AllowableActionsImpl;
<a class="jxr_linenumber" name="115" href="#115">115</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.BulkUpdateObjectIdAndChangeTokenImpl;
<a class="jxr_linenumber" name="116" href="#116">116</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ChangeEventInfoDataImpl;
<a class="jxr_linenumber" name="117" href="#117">117</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ChoiceImpl;
<a class="jxr_linenumber" name="118" href="#118">118</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.CmisExtensionElementImpl;
<a class="jxr_linenumber" name="119" href="#119">119</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.CreatablePropertyTypesImpl;
<a class="jxr_linenumber" name="120" href="#120">120</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.DocumentTypeDefinitionImpl;
<a class="jxr_linenumber" name="121" href="#121">121</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ExtensionFeatureImpl;
<a class="jxr_linenumber" name="122" href="#122">122</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.FailedToDeleteDataImpl;
<a class="jxr_linenumber" name="123" href="#123">123</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.FolderTypeDefinitionImpl;
<a class="jxr_linenumber" name="124" href="#124">124</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ItemTypeDefinitionImpl;
<a class="jxr_linenumber" name="125" href="#125">125</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.NewTypeSettableAttributesImpl;
<a class="jxr_linenumber" name="126" href="#126">126</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectDataImpl;
<a class="jxr_linenumber" name="127" href="#127">127</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectInFolderContainerImpl;
<a class="jxr_linenumber" name="128" href="#128">128</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectInFolderDataImpl;
<a class="jxr_linenumber" name="129" href="#129">129</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectInFolderListImpl;
<a class="jxr_linenumber" name="130" href="#130">130</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectListImpl;
<a class="jxr_linenumber" name="131" href="#131">131</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectParentDataImpl;
<a class="jxr_linenumber" name="132" href="#132">132</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PermissionDefinitionDataImpl;
<a class="jxr_linenumber" name="133" href="#133">133</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PermissionMappingDataImpl;
<a class="jxr_linenumber" name="134" href="#134">134</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PolicyIdListImpl;
<a class="jxr_linenumber" name="135" href="#135">135</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PolicyTypeDefinitionImpl;
<a class="jxr_linenumber" name="136" href="#136">136</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertiesImpl;
<a class="jxr_linenumber" name="137" href="#137">137</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyBooleanDefinitionImpl;
<a class="jxr_linenumber" name="138" href="#138">138</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyBooleanImpl;
<a class="jxr_linenumber" name="139" href="#139">139</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDateTimeDefinitionImpl;
<a class="jxr_linenumber" name="140" href="#140">140</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDateTimeImpl;
<a class="jxr_linenumber" name="141" href="#141">141</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDecimalDefinitionImpl;
<a class="jxr_linenumber" name="142" href="#142">142</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDecimalImpl;
<a class="jxr_linenumber" name="143" href="#143">143</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyHtmlDefinitionImpl;
<a class="jxr_linenumber" name="144" href="#144">144</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyHtmlImpl;
<a class="jxr_linenumber" name="145" href="#145">145</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIdDefinitionImpl;
<a class="jxr_linenumber" name="146" href="#146">146</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIdImpl;
<a class="jxr_linenumber" name="147" href="#147">147</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIntegerDefinitionImpl;
<a class="jxr_linenumber" name="148" href="#148">148</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIntegerImpl;
<a class="jxr_linenumber" name="149" href="#149">149</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyStringDefinitionImpl;
<a class="jxr_linenumber" name="150" href="#150">150</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyStringImpl;
<a class="jxr_linenumber" name="151" href="#151">151</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyUriDefinitionImpl;
<a class="jxr_linenumber" name="152" href="#152">152</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyUriImpl;
<a class="jxr_linenumber" name="153" href="#153">153</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.RelationshipTypeDefinitionImpl;
<a class="jxr_linenumber" name="154" href="#154">154</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.RenditionDataImpl;
<a class="jxr_linenumber" name="155" href="#155">155</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.RepositoryCapabilitiesImpl;
<a class="jxr_linenumber" name="156" href="#156">156</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.RepositoryInfoBrowserBindingImpl;
<a class="jxr_linenumber" name="157" href="#157">157</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.SecondaryTypeDefinitionImpl;
<a class="jxr_linenumber" name="158" href="#158">158</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.TypeDefinitionContainerImpl;
<a class="jxr_linenumber" name="159" href="#159">159</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.TypeDefinitionListImpl;
<a class="jxr_linenumber" name="160" href="#160">160</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.TypeMutabilityImpl;
<a class="jxr_linenumber" name="161" href="#161">161</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.json.JSONArray;
<a class="jxr_linenumber" name="162" href="#162">162</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.json.JSONObject;
<a class="jxr_linenumber" name="163" href="#163">163</a> 
<a class="jxr_linenumber" name="164" href="#164">164</a> <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="165" href="#165">165</a> <em class="jxr_javadoccomment"> * OpenCMIS objects to JSON converter.</em>
<a class="jxr_linenumber" name="166" href="#166">166</a> <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="167" href="#167">167</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/JSONConverter.html">JSONConverter</a> {
<a class="jxr_linenumber" name="168" href="#168">168</a> 
<a class="jxr_linenumber" name="169" href="#169">169</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="170" href="#170">170</a> <em class="jxr_javadoccomment">     * Private constructor.</em>
<a class="jxr_linenumber" name="171" href="#171">171</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="172" href="#172">172</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/JSONConverter.html">JSONConverter</a>() {
<a class="jxr_linenumber" name="173" href="#173">173</a>     }
<a class="jxr_linenumber" name="174" href="#174">174</a> 
<a class="jxr_linenumber" name="175" href="#175">175</a>     <strong class="jxr_keyword">public</strong> enum <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/JSONConverter.html">PropertyMode</a> {
<a class="jxr_linenumber" name="176" href="#176">176</a>         OBJECT, QUERY, CHANGE
<a class="jxr_linenumber" name="177" href="#177">177</a>     }
<a class="jxr_linenumber" name="178" href="#178">178</a> 
<a class="jxr_linenumber" name="179" href="#179">179</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="180" href="#180">180</a> <em class="jxr_javadoccomment">     * Converts a repository info object.</em>
<a class="jxr_linenumber" name="181" href="#181">181</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="182" href="#182">182</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> convert(<strong class="jxr_keyword">final</strong> RepositoryInfo repositoryInfo, <strong class="jxr_keyword">final</strong> String repositoryUrl,
<a class="jxr_linenumber" name="183" href="#183">183</a>             <strong class="jxr_keyword">final</strong> String rootUrl) {
<a class="jxr_linenumber" name="184" href="#184">184</a>         <strong class="jxr_keyword">if</strong> (repositoryInfo == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="185" href="#185">185</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="186" href="#186">186</a>         }
<a class="jxr_linenumber" name="187" href="#187">187</a> 
<a class="jxr_linenumber" name="188" href="#188">188</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="189" href="#189">189</a> 
<a class="jxr_linenumber" name="190" href="#190">190</a>         result.put(JSON_REPINFO_ID, repositoryInfo.getId());
<a class="jxr_linenumber" name="191" href="#191">191</a>         result.put(JSON_REPINFO_NAME, repositoryInfo.getName());
<a class="jxr_linenumber" name="192" href="#192">192</a>         result.put(JSON_REPINFO_DESCRIPTION, repositoryInfo.getDescription());
<a class="jxr_linenumber" name="193" href="#193">193</a>         result.put(JSON_REPINFO_VENDOR, repositoryInfo.getVendorName());
<a class="jxr_linenumber" name="194" href="#194">194</a>         result.put(JSON_REPINFO_PRODUCT, repositoryInfo.getProductName());
<a class="jxr_linenumber" name="195" href="#195">195</a>         result.put(JSON_REPINFO_PRODUCT_VERSION, repositoryInfo.getProductVersion());
<a class="jxr_linenumber" name="196" href="#196">196</a>         result.put(JSON_REPINFO_ROOT_FOLDER_ID, repositoryInfo.getRootFolderId());
<a class="jxr_linenumber" name="197" href="#197">197</a>         result.put(JSON_REPINFO_CAPABILITIES, convert(repositoryInfo.getCapabilities()));
<a class="jxr_linenumber" name="198" href="#198">198</a>         setIfNotNull(JSON_REPINFO_ACL_CAPABILITIES, convert(repositoryInfo.getAclCapabilities()), result);
<a class="jxr_linenumber" name="199" href="#199">199</a>         result.put(JSON_REPINFO_CHANGE_LOG_TOKEN, repositoryInfo.getLatestChangeLogToken());
<a class="jxr_linenumber" name="200" href="#200">200</a>         result.put(JSON_REPINFO_CMIS_VERSION_SUPPORTED, repositoryInfo.getCmisVersionSupported());
<a class="jxr_linenumber" name="201" href="#201">201</a>         setIfNotNull(JSON_REPINFO_THIN_CLIENT_URI, repositoryInfo.getThinClientUri(), result);
<a class="jxr_linenumber" name="202" href="#202">202</a>         setIfNotNull(JSON_REPINFO_CHANGES_INCOMPLETE, repositoryInfo.getChangesIncomplete(), result);
<a class="jxr_linenumber" name="203" href="#203">203</a> 
<a class="jxr_linenumber" name="204" href="#204">204</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> changesOnType = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a>();
<a class="jxr_linenumber" name="205" href="#205">205</a>         <strong class="jxr_keyword">if</strong> (repositoryInfo.getChangesOnType() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="206" href="#206">206</a>             <strong class="jxr_keyword">for</strong> (BaseTypeId type : repositoryInfo.getChangesOnType()) {
<a class="jxr_linenumber" name="207" href="#207">207</a>                 <strong class="jxr_keyword">if</strong> (type != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="208" href="#208">208</a>                     changesOnType.add(getJSONStringValue(type.value()));
<a class="jxr_linenumber" name="209" href="#209">209</a>                 }
<a class="jxr_linenumber" name="210" href="#210">210</a>             }
<a class="jxr_linenumber" name="211" href="#211">211</a>         }
<a class="jxr_linenumber" name="212" href="#212">212</a>         result.put(JSON_REPINFO_CHANGES_ON_TYPE, changesOnType);
<a class="jxr_linenumber" name="213" href="#213">213</a> 
<a class="jxr_linenumber" name="214" href="#214">214</a>         setIfNotNull(JSON_REPINFO_PRINCIPAL_ID_ANONYMOUS, repositoryInfo.getPrincipalIdAnonymous(), result);
<a class="jxr_linenumber" name="215" href="#215">215</a>         setIfNotNull(JSON_REPINFO_PRINCIPAL_ID_ANYONE, repositoryInfo.getPrincipalIdAnyone(), result);
<a class="jxr_linenumber" name="216" href="#216">216</a> 
<a class="jxr_linenumber" name="217" href="#217">217</a>         <strong class="jxr_keyword">if</strong> (repositoryInfo.getExtensionFeatures() != <strong class="jxr_keyword">null</strong> &amp;&amp; !repositoryInfo.getExtensionFeatures().isEmpty()) {
<a class="jxr_linenumber" name="218" href="#218">218</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> extendedFeatures = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a>();
<a class="jxr_linenumber" name="219" href="#219">219</a> 
<a class="jxr_linenumber" name="220" href="#220">220</a>             <strong class="jxr_keyword">for</strong> (ExtensionFeature feature : repositoryInfo.getExtensionFeatures()) {
<a class="jxr_linenumber" name="221" href="#221">221</a>                 <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> jsonFeature = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="222" href="#222">222</a> 
<a class="jxr_linenumber" name="223" href="#223">223</a>                 setIfNotNull(JSON_FEATURE_ID, feature.getId(), jsonFeature);
<a class="jxr_linenumber" name="224" href="#224">224</a>                 setIfNotNull(JSON_FEATURE_URL, feature.getUrl(), jsonFeature);
<a class="jxr_linenumber" name="225" href="#225">225</a>                 setIfNotNull(JSON_FEATURE_COMMON_NAME, feature.getCommonName(), jsonFeature);
<a class="jxr_linenumber" name="226" href="#226">226</a>                 setIfNotNull(JSON_FEATURE_VERSION_LABEL, feature.getVersionLabel(), jsonFeature);
<a class="jxr_linenumber" name="227" href="#227">227</a>                 setIfNotNull(JSON_FEATURE_DESCRIPTION, feature.getDescription(), jsonFeature);
<a class="jxr_linenumber" name="228" href="#228">228</a> 
<a class="jxr_linenumber" name="229" href="#229">229</a>                 <strong class="jxr_keyword">if</strong> (feature.getFeatureData() != <strong class="jxr_keyword">null</strong> &amp;&amp; !feature.getFeatureData().isEmpty()) {
<a class="jxr_linenumber" name="230" href="#230">230</a>                     <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> data = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="231" href="#231">231</a>                     data.putAll(feature.getFeatureData());
<a class="jxr_linenumber" name="232" href="#232">232</a>                     jsonFeature.put(JSON_FEATURE_DATA, data);
<a class="jxr_linenumber" name="233" href="#233">233</a>                 }
<a class="jxr_linenumber" name="234" href="#234">234</a> 
<a class="jxr_linenumber" name="235" href="#235">235</a>                 convertExtension(feature, jsonFeature);
<a class="jxr_linenumber" name="236" href="#236">236</a> 
<a class="jxr_linenumber" name="237" href="#237">237</a>                 extendedFeatures.add(jsonFeature);
<a class="jxr_linenumber" name="238" href="#238">238</a>             }
<a class="jxr_linenumber" name="239" href="#239">239</a> 
<a class="jxr_linenumber" name="240" href="#240">240</a>             result.put(JSON_REPINFO_EXTENDED_FEATURES, extendedFeatures);
<a class="jxr_linenumber" name="241" href="#241">241</a>         }
<a class="jxr_linenumber" name="242" href="#242">242</a> 
<a class="jxr_linenumber" name="243" href="#243">243</a>         result.put(JSON_REPINFO_REPOSITORY_URL, repositoryUrl);
<a class="jxr_linenumber" name="244" href="#244">244</a>         result.put(JSON_REPINFO_ROOT_FOLDER_URL, rootUrl);
<a class="jxr_linenumber" name="245" href="#245">245</a> 
<a class="jxr_linenumber" name="246" href="#246">246</a>         convertExtension(repositoryInfo, result);
<a class="jxr_linenumber" name="247" href="#247">247</a> 
<a class="jxr_linenumber" name="248" href="#248">248</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="249" href="#249">249</a>     }
<a class="jxr_linenumber" name="250" href="#250">250</a> 
<a class="jxr_linenumber" name="251" href="#251">251</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="252" href="#252">252</a> <em class="jxr_javadoccomment">     * Converts a capabilities object.</em>
<a class="jxr_linenumber" name="253" href="#253">253</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="254" href="#254">254</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> convert(<strong class="jxr_keyword">final</strong> RepositoryCapabilities capabilities) {
<a class="jxr_linenumber" name="255" href="#255">255</a>         <strong class="jxr_keyword">if</strong> (capabilities == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="256" href="#256">256</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="257" href="#257">257</a>         }
<a class="jxr_linenumber" name="258" href="#258">258</a> 
<a class="jxr_linenumber" name="259" href="#259">259</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="260" href="#260">260</a> 
<a class="jxr_linenumber" name="261" href="#261">261</a>         result.put(JSON_CAP_CONTENT_STREAM_UPDATABILITY,
<a class="jxr_linenumber" name="262" href="#262">262</a>                 getJSONEnumValue((capabilities.getContentStreamUpdatesCapability())));
<a class="jxr_linenumber" name="263" href="#263">263</a>         result.put(JSON_CAP_CHANGES, getJSONEnumValue(capabilities.getChangesCapability()));
<a class="jxr_linenumber" name="264" href="#264">264</a>         result.put(JSON_CAP_RENDITIONS, getJSONEnumValue(capabilities.getRenditionsCapability()));
<a class="jxr_linenumber" name="265" href="#265">265</a>         result.put(JSON_CAP_GET_DESCENDANTS, capabilities.isGetDescendantsSupported());
<a class="jxr_linenumber" name="266" href="#266">266</a>         result.put(JSON_CAP_GET_FOLDER_TREE, capabilities.isGetFolderTreeSupported());
<a class="jxr_linenumber" name="267" href="#267">267</a>         result.put(JSON_CAP_MULTIFILING, capabilities.isMultifilingSupported());
<a class="jxr_linenumber" name="268" href="#268">268</a>         result.put(JSON_CAP_UNFILING, capabilities.isUnfilingSupported());
<a class="jxr_linenumber" name="269" href="#269">269</a>         result.put(JSON_CAP_VERSION_SPECIFIC_FILING, capabilities.isVersionSpecificFilingSupported());
<a class="jxr_linenumber" name="270" href="#270">270</a>         result.put(JSON_CAP_PWC_SEARCHABLE, capabilities.isPwcSearchableSupported());
<a class="jxr_linenumber" name="271" href="#271">271</a>         result.put(JSON_CAP_PWC_UPDATABLE, capabilities.isPwcUpdatableSupported());
<a class="jxr_linenumber" name="272" href="#272">272</a>         result.put(JSON_CAP_ALL_VERSIONS_SEARCHABLE, capabilities.isAllVersionsSearchableSupported());
<a class="jxr_linenumber" name="273" href="#273">273</a>         result.put(JSON_CAP_ORDER_BY, getJSONEnumValue(capabilities.getOrderByCapability()));
<a class="jxr_linenumber" name="274" href="#274">274</a>         result.put(JSON_CAP_QUERY, getJSONEnumValue(capabilities.getQueryCapability()));
<a class="jxr_linenumber" name="275" href="#275">275</a>         result.put(JSON_CAP_JOIN, getJSONEnumValue(capabilities.getJoinCapability()));
<a class="jxr_linenumber" name="276" href="#276">276</a>         result.put(JSON_CAP_ACL, getJSONEnumValue(capabilities.getAclCapability()));
<a class="jxr_linenumber" name="277" href="#277">277</a> 
<a class="jxr_linenumber" name="278" href="#278">278</a>         <strong class="jxr_keyword">if</strong> (capabilities.getCreatablePropertyTypes() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="279" href="#279">279</a>             CreatablePropertyTypes creatablePropertyTypes = capabilities.getCreatablePropertyTypes();
<a class="jxr_linenumber" name="280" href="#280">280</a> 
<a class="jxr_linenumber" name="281" href="#281">281</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> creatablePropertyTypesJson = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="282" href="#282">282</a> 
<a class="jxr_linenumber" name="283" href="#283">283</a>             <strong class="jxr_keyword">if</strong> (creatablePropertyTypes.canCreate() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="284" href="#284">284</a>                 <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> canCreate = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a>();
<a class="jxr_linenumber" name="285" href="#285">285</a>                 <strong class="jxr_keyword">for</strong> (PropertyType propType : creatablePropertyTypes.canCreate()) {
<a class="jxr_linenumber" name="286" href="#286">286</a>                     <strong class="jxr_keyword">if</strong> (propType != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="287" href="#287">287</a>                         canCreate.add(propType.value());
<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>                 creatablePropertyTypesJson.put(JSON_CAP_CREATABLE_PROPERTY_TYPES_CANCREATE, canCreate);
<a class="jxr_linenumber" name="291" href="#291">291</a>             }
<a class="jxr_linenumber" name="292" href="#292">292</a> 
<a class="jxr_linenumber" name="293" href="#293">293</a>             convertExtension(creatablePropertyTypes, creatablePropertyTypesJson);
<a class="jxr_linenumber" name="294" href="#294">294</a> 
<a class="jxr_linenumber" name="295" href="#295">295</a>             result.put(JSON_CAP_CREATABLE_PROPERTY_TYPES, creatablePropertyTypesJson);
<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>         <strong class="jxr_keyword">if</strong> (capabilities.getNewTypeSettableAttributes() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="299" href="#299">299</a>             NewTypeSettableAttributes newTypeSettableAttributes = capabilities.getNewTypeSettableAttributes();
<a class="jxr_linenumber" name="300" href="#300">300</a> 
<a class="jxr_linenumber" name="301" href="#301">301</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> newTypeSettableAttributesJson = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="302" href="#302">302</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_ID,
<a class="jxr_linenumber" name="303" href="#303">303</a>                     newTypeSettableAttributes.canSetId());
<a class="jxr_linenumber" name="304" href="#304">304</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_LOCALNAME,
<a class="jxr_linenumber" name="305" href="#305">305</a>                     newTypeSettableAttributes.canSetLocalName());
<a class="jxr_linenumber" name="306" href="#306">306</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_LOCALNAMESPACE,
<a class="jxr_linenumber" name="307" href="#307">307</a>                     newTypeSettableAttributes.canSetLocalNamespace());
<a class="jxr_linenumber" name="308" href="#308">308</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_DISPLAYNAME,
<a class="jxr_linenumber" name="309" href="#309">309</a>                     newTypeSettableAttributes.canSetDisplayName());
<a class="jxr_linenumber" name="310" href="#310">310</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_QUERYNAME,
<a class="jxr_linenumber" name="311" href="#311">311</a>                     newTypeSettableAttributes.canSetQueryName());
<a class="jxr_linenumber" name="312" href="#312">312</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_DESCRIPTION,
<a class="jxr_linenumber" name="313" href="#313">313</a>                     newTypeSettableAttributes.canSetDescription());
<a class="jxr_linenumber" name="314" href="#314">314</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_CREATEABLE,
<a class="jxr_linenumber" name="315" href="#315">315</a>                     newTypeSettableAttributes.canSetCreatable());
<a class="jxr_linenumber" name="316" href="#316">316</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_FILEABLE,
<a class="jxr_linenumber" name="317" href="#317">317</a>                     newTypeSettableAttributes.canSetFileable());
<a class="jxr_linenumber" name="318" href="#318">318</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_QUERYABLE,
<a class="jxr_linenumber" name="319" href="#319">319</a>                     newTypeSettableAttributes.canSetQueryable());
<a class="jxr_linenumber" name="320" href="#320">320</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_FULLTEXTINDEXED,
<a class="jxr_linenumber" name="321" href="#321">321</a>                     newTypeSettableAttributes.canSetFulltextIndexed());
<a class="jxr_linenumber" name="322" href="#322">322</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_INCLUDEDINSUPERTYTPEQUERY,
<a class="jxr_linenumber" name="323" href="#323">323</a>                     newTypeSettableAttributes.canSetIncludedInSupertypeQuery());
<a class="jxr_linenumber" name="324" href="#324">324</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_CONTROLABLEPOLICY,
<a class="jxr_linenumber" name="325" href="#325">325</a>                     newTypeSettableAttributes.canSetControllablePolicy());
<a class="jxr_linenumber" name="326" href="#326">326</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_CONTROLABLEACL,
<a class="jxr_linenumber" name="327" href="#327">327</a>                     newTypeSettableAttributes.canSetControllableAcl());
<a class="jxr_linenumber" name="328" href="#328">328</a> 
<a class="jxr_linenumber" name="329" href="#329">329</a>             convertExtension(newTypeSettableAttributes, newTypeSettableAttributesJson);
<a class="jxr_linenumber" name="330" href="#330">330</a> 
<a class="jxr_linenumber" name="331" href="#331">331</a>             result.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES, newTypeSettableAttributesJson);
<a class="jxr_linenumber" name="332" href="#332">332</a>         }
<a class="jxr_linenumber" name="333" href="#333">333</a> 
<a class="jxr_linenumber" name="334" href="#334">334</a>         convertExtension(capabilities, result);
<a class="jxr_linenumber" name="335" href="#335">335</a> 
<a class="jxr_linenumber" name="336" href="#336">336</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="337" href="#337">337</a>     }
<a class="jxr_linenumber" name="338" href="#338">338</a> 
<a class="jxr_linenumber" name="339" href="#339">339</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="340" href="#340">340</a> <em class="jxr_javadoccomment">     * Converts an ACL capabilities object.</em>
<a class="jxr_linenumber" name="341" href="#341">341</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="342" href="#342">342</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> convert(<strong class="jxr_keyword">final</strong> AclCapabilities capabilities) {
<a class="jxr_linenumber" name="343" href="#343">343</a>         <strong class="jxr_keyword">if</strong> (capabilities == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="344" href="#344">344</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="345" href="#345">345</a>         }
<a class="jxr_linenumber" name="346" href="#346">346</a> 
<a class="jxr_linenumber" name="347" href="#347">347</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="348" href="#348">348</a> 
<a class="jxr_linenumber" name="349" href="#349">349</a>         result.put(JSON_ACLCAP_SUPPORTED_PERMISSIONS, getJSONEnumValue(capabilities.getSupportedPermissions()));
<a class="jxr_linenumber" name="350" href="#350">350</a>         result.put(JSON_ACLCAP_ACL_PROPAGATION, getJSONEnumValue(capabilities.getAclPropagation()));
<a class="jxr_linenumber" name="351" href="#351">351</a> 
<a class="jxr_linenumber" name="352" href="#352">352</a>         <em class="jxr_comment">// permissions</em>
<a class="jxr_linenumber" name="353" href="#353">353</a>         <strong class="jxr_keyword">if</strong> (capabilities.getPermissions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="354" href="#354">354</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> permissions = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a>();
<a class="jxr_linenumber" name="355" href="#355">355</a> 
<a class="jxr_linenumber" name="356" href="#356">356</a>             <strong class="jxr_keyword">for</strong> (PermissionDefinition permDef : capabilities.getPermissions()) {
<a class="jxr_linenumber" name="357" href="#357">357</a>                 <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> permission = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="358" href="#358">358</a>                 permission.put(JSON_ACLCAP_PERMISSION_PERMISSION, permDef.getId());
<a class="jxr_linenumber" name="359" href="#359">359</a>                 permission.put(JSON_ACLCAP_PERMISSION_DESCRIPTION, permDef.getDescription());
<a class="jxr_linenumber" name="360" href="#360">360</a> 
<a class="jxr_linenumber" name="361" href="#361">361</a>                 permissions.add(permission);
<a class="jxr_linenumber" name="362" href="#362">362</a>             }
<a class="jxr_linenumber" name="363" href="#363">363</a> 
<a class="jxr_linenumber" name="364" href="#364">364</a>             result.put(JSON_ACLCAP_PERMISSIONS, permissions);
<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>         <em class="jxr_comment">// permission mapping</em>
<a class="jxr_linenumber" name="368" href="#368">368</a>         <strong class="jxr_keyword">if</strong> (capabilities.getPermissionMapping() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="369" href="#369">369</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> permissionMapping = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a>();
<a class="jxr_linenumber" name="370" href="#370">370</a> 
<a class="jxr_linenumber" name="371" href="#371">371</a>             <strong class="jxr_keyword">for</strong> (PermissionMapping permMap : capabilities.getPermissionMapping().values()) {
<a class="jxr_linenumber" name="372" href="#372">372</a>                 <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> mappingPermissions = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a>();
<a class="jxr_linenumber" name="373" href="#373">373</a>                 <strong class="jxr_keyword">if</strong> (permMap.getPermissions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="374" href="#374">374</a>                     <strong class="jxr_keyword">for</strong> (String p : permMap.getPermissions()) {
<a class="jxr_linenumber" name="375" href="#375">375</a>                         mappingPermissions.add(p);
<a class="jxr_linenumber" name="376" href="#376">376</a>                     }
<a class="jxr_linenumber" name="377" href="#377">377</a>                 }
<a class="jxr_linenumber" name="378" href="#378">378</a> 
<a class="jxr_linenumber" name="379" href="#379">379</a>                 <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> mapping = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="380" href="#380">380</a>                 mapping.put(JSON_ACLCAP_MAPPING_KEY, permMap.getKey());
<a class="jxr_linenumber" name="381" href="#381">381</a>                 mapping.put(JSON_ACLCAP_MAPPING_PERMISSION, mappingPermissions);
<a class="jxr_linenumber" name="382" href="#382">382</a> 
<a class="jxr_linenumber" name="383" href="#383">383</a>                 permissionMapping.add(mapping);
<a class="jxr_linenumber" name="384" href="#384">384</a>             }
<a class="jxr_linenumber" name="385" href="#385">385</a> 
<a class="jxr_linenumber" name="386" href="#386">386</a>             result.put(JSON_ACLCAP_PERMISSION_MAPPING, permissionMapping);
<a class="jxr_linenumber" name="387" href="#387">387</a>         }
<a class="jxr_linenumber" name="388" href="#388">388</a> 
<a class="jxr_linenumber" name="389" href="#389">389</a>         convertExtension(capabilities, result);
<a class="jxr_linenumber" name="390" href="#390">390</a> 
<a class="jxr_linenumber" name="391" href="#391">391</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="392" href="#392">392</a>     }
<a class="jxr_linenumber" name="393" href="#393">393</a> 
<a class="jxr_linenumber" name="394" href="#394">394</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> RepositoryInfo convertRepositoryInfo(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json) {
<a class="jxr_linenumber" name="395" href="#395">395</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="396" href="#396">396</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="397" href="#397">397</a>         }
<a class="jxr_linenumber" name="398" href="#398">398</a> 
<a class="jxr_linenumber" name="399" href="#399">399</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryInfoBrowserBindingImpl.html">RepositoryInfoBrowserBindingImpl</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryInfoBrowserBindingImpl.html">RepositoryInfoBrowserBindingImpl</a>();
<a class="jxr_linenumber" name="400" href="#400">400</a> 
<a class="jxr_linenumber" name="401" href="#401">401</a>         result.setId(getString(json, JSON_REPINFO_ID));
<a class="jxr_linenumber" name="402" href="#402">402</a>         result.setName(getString(json, JSON_REPINFO_NAME));
<a class="jxr_linenumber" name="403" href="#403">403</a>         result.setDescription(getString(json, JSON_REPINFO_DESCRIPTION));
<a class="jxr_linenumber" name="404" href="#404">404</a>         result.setVendorName(getString(json, JSON_REPINFO_VENDOR));
<a class="jxr_linenumber" name="405" href="#405">405</a>         result.setProductName(getString(json, JSON_REPINFO_PRODUCT));
<a class="jxr_linenumber" name="406" href="#406">406</a>         result.setProductVersion(getString(json, JSON_REPINFO_PRODUCT_VERSION));
<a class="jxr_linenumber" name="407" href="#407">407</a>         result.setRootFolder(getString(json, JSON_REPINFO_ROOT_FOLDER_ID));
<a class="jxr_linenumber" name="408" href="#408">408</a>         result.setRepositoryUrl(getString(json, JSON_REPINFO_REPOSITORY_URL));
<a class="jxr_linenumber" name="409" href="#409">409</a>         result.setRootUrl(getString(json, JSON_REPINFO_ROOT_FOLDER_URL));
<a class="jxr_linenumber" name="410" href="#410">410</a>         result.setCapabilities(convertRepositoryCapabilities(getMap(json.get(JSON_REPINFO_CAPABILITIES))));
<a class="jxr_linenumber" name="411" href="#411">411</a>         result.setAclCapabilities(convertAclCapabilities(getMap(json.get(JSON_REPINFO_ACL_CAPABILITIES))));
<a class="jxr_linenumber" name="412" href="#412">412</a>         result.setLatestChangeLogToken(getString(json, JSON_REPINFO_CHANGE_LOG_TOKEN));
<a class="jxr_linenumber" name="413" href="#413">413</a>         result.setCmisVersionSupported(getString(json, JSON_REPINFO_CMIS_VERSION_SUPPORTED));
<a class="jxr_linenumber" name="414" href="#414">414</a>         result.setThinClientUri(getString(json, JSON_REPINFO_THIN_CLIENT_URI));
<a class="jxr_linenumber" name="415" href="#415">415</a>         result.setChangesIncomplete(getBoolean(json, JSON_REPINFO_CHANGES_INCOMPLETE));
<a class="jxr_linenumber" name="416" href="#416">416</a> 
<a class="jxr_linenumber" name="417" href="#417">417</a>         List&lt;Object&gt; changesOnType = getList(json.get(JSON_REPINFO_CHANGES_ON_TYPE));
<a class="jxr_linenumber" name="418" href="#418">418</a>         <strong class="jxr_keyword">if</strong> (changesOnType != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="419" href="#419">419</a>             List&lt;BaseTypeId&gt; types = <strong class="jxr_keyword">new</strong> ArrayList&lt;BaseTypeId&gt;();
<a class="jxr_linenumber" name="420" href="#420">420</a>             <strong class="jxr_keyword">for</strong> (Object type : changesOnType) {
<a class="jxr_linenumber" name="421" href="#421">421</a>                 <strong class="jxr_keyword">if</strong> (type != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="422" href="#422">422</a>                     types.add(BaseTypeId.fromValue(type.toString()));
<a class="jxr_linenumber" name="423" href="#423">423</a>                 }
<a class="jxr_linenumber" name="424" href="#424">424</a>             }
<a class="jxr_linenumber" name="425" href="#425">425</a>             result.setChangesOnType(types);
<a class="jxr_linenumber" name="426" href="#426">426</a>         }
<a class="jxr_linenumber" name="427" href="#427">427</a> 
<a class="jxr_linenumber" name="428" href="#428">428</a>         result.setPrincipalAnonymous(getString(json, JSON_REPINFO_PRINCIPAL_ID_ANONYMOUS));
<a class="jxr_linenumber" name="429" href="#429">429</a>         result.setPrincipalAnyone(getString(json, JSON_REPINFO_PRINCIPAL_ID_ANYONE));
<a class="jxr_linenumber" name="430" href="#430">430</a> 
<a class="jxr_linenumber" name="431" href="#431">431</a>         List&lt;Object&gt; extendedFeatures = getList(json.get(JSON_REPINFO_EXTENDED_FEATURES));
<a class="jxr_linenumber" name="432" href="#432">432</a>         <strong class="jxr_keyword">if</strong> (extendedFeatures != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="433" href="#433">433</a>             List&lt;ExtensionFeature&gt; features = <strong class="jxr_keyword">new</strong> ArrayList&lt;ExtensionFeature&gt;();
<a class="jxr_linenumber" name="434" href="#434">434</a> 
<a class="jxr_linenumber" name="435" href="#435">435</a>             <strong class="jxr_keyword">for</strong> (Object extendedFeature : extendedFeatures) {
<a class="jxr_linenumber" name="436" href="#436">436</a>                 Map&lt;String, Object&gt; jsonFeature = getMap(extendedFeature);
<a class="jxr_linenumber" name="437" href="#437">437</a> 
<a class="jxr_linenumber" name="438" href="#438">438</a>                 <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/ExtensionFeatureImpl.html">ExtensionFeatureImpl</a> feature = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/ExtensionFeatureImpl.html">ExtensionFeatureImpl</a>();
<a class="jxr_linenumber" name="439" href="#439">439</a>                 feature.setId(getString(jsonFeature, JSON_FEATURE_ID));
<a class="jxr_linenumber" name="440" href="#440">440</a>                 feature.setUrl(getString(jsonFeature, JSON_FEATURE_URL));
<a class="jxr_linenumber" name="441" href="#441">441</a>                 feature.setCommonName(getString(jsonFeature, JSON_FEATURE_COMMON_NAME));
<a class="jxr_linenumber" name="442" href="#442">442</a>                 feature.setVersionLabel(getString(jsonFeature, JSON_FEATURE_VERSION_LABEL));
<a class="jxr_linenumber" name="443" href="#443">443</a>                 feature.setDescription(getString(jsonFeature, JSON_FEATURE_DESCRIPTION));
<a class="jxr_linenumber" name="444" href="#444">444</a> 
<a class="jxr_linenumber" name="445" href="#445">445</a>                 Map&lt;String, Object&gt; data = getMap(jsonFeature.get(JSON_FEATURE_DATA));
<a class="jxr_linenumber" name="446" href="#446">446</a>                 <strong class="jxr_keyword">if</strong> (data != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="447" href="#447">447</a>                     LinkedHashMap&lt;String, String&gt; dataMap = <strong class="jxr_keyword">new</strong> LinkedHashMap&lt;String, String&gt;();
<a class="jxr_linenumber" name="448" href="#448">448</a>                     <strong class="jxr_keyword">for</strong> (Map.Entry&lt;String, Object&gt; e : data.entrySet()) {
<a class="jxr_linenumber" name="449" href="#449">449</a>                         dataMap.put(e.getKey(), (e.getValue() == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">null</strong> : e.getValue().toString()));
<a class="jxr_linenumber" name="450" href="#450">450</a>                     }
<a class="jxr_linenumber" name="451" href="#451">451</a> 
<a class="jxr_linenumber" name="452" href="#452">452</a>                     <strong class="jxr_keyword">if</strong> (!dataMap.isEmpty()) {
<a class="jxr_linenumber" name="453" href="#453">453</a>                         feature.setFeatureData(dataMap);
<a class="jxr_linenumber" name="454" href="#454">454</a>                     }
<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>                 convertExtension(jsonFeature, feature, FEATURE_KEYS);
<a class="jxr_linenumber" name="458" href="#458">458</a> 
<a class="jxr_linenumber" name="459" href="#459">459</a>                 features.add(feature);
<a class="jxr_linenumber" name="460" href="#460">460</a>             }
<a class="jxr_linenumber" name="461" href="#461">461</a> 
<a class="jxr_linenumber" name="462" href="#462">462</a>             <strong class="jxr_keyword">if</strong> (!features.isEmpty()) {
<a class="jxr_linenumber" name="463" href="#463">463</a>                 result.setExtensionFeature(features);
<a class="jxr_linenumber" name="464" href="#464">464</a>             }
<a class="jxr_linenumber" name="465" href="#465">465</a>         }
<a class="jxr_linenumber" name="466" href="#466">466</a> 
<a class="jxr_linenumber" name="467" href="#467">467</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="468" href="#468">468</a>         convertExtension(json, result, REPINFO_KEYS);
<a class="jxr_linenumber" name="469" href="#469">469</a> 
<a class="jxr_linenumber" name="470" href="#470">470</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="471" href="#471">471</a>     }
<a class="jxr_linenumber" name="472" href="#472">472</a> 
<a class="jxr_linenumber" name="473" href="#473">473</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> RepositoryCapabilities convertRepositoryCapabilities(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json) {
<a class="jxr_linenumber" name="474" href="#474">474</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="475" href="#475">475</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="476" href="#476">476</a>         }
<a class="jxr_linenumber" name="477" href="#477">477</a> 
<a class="jxr_linenumber" name="478" href="#478">478</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="479" href="#479">479</a> 
<a class="jxr_linenumber" name="480" href="#480">480</a>         result.setCapabilityContentStreamUpdates(getEnum(json, JSON_CAP_CONTENT_STREAM_UPDATABILITY,
<a class="jxr_linenumber" name="481" href="#481">481</a>                 CapabilityContentStreamUpdates.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="482" href="#482">482</a>         result.setCapabilityChanges(getEnum(json, JSON_CAP_CHANGES, CapabilityChanges.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="483" href="#483">483</a>         result.setCapabilityRendition(getEnum(json, JSON_CAP_RENDITIONS, CapabilityRenditions.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="484" href="#484">484</a>         result.setSupportsGetDescendants(getBoolean(json, JSON_CAP_GET_DESCENDANTS));
<a class="jxr_linenumber" name="485" href="#485">485</a>         result.setSupportsGetFolderTree(getBoolean(json, JSON_CAP_GET_FOLDER_TREE));
<a class="jxr_linenumber" name="486" href="#486">486</a>         result.setSupportsMultifiling(getBoolean(json, JSON_CAP_MULTIFILING));
<a class="jxr_linenumber" name="487" href="#487">487</a>         result.setSupportsUnfiling(getBoolean(json, JSON_CAP_UNFILING));
<a class="jxr_linenumber" name="488" href="#488">488</a>         result.setSupportsVersionSpecificFiling(getBoolean(json, JSON_CAP_VERSION_SPECIFIC_FILING));
<a class="jxr_linenumber" name="489" href="#489">489</a>         result.setIsPwcSearchable(getBoolean(json, JSON_CAP_PWC_SEARCHABLE));
<a class="jxr_linenumber" name="490" href="#490">490</a>         result.setIsPwcUpdatable(getBoolean(json, JSON_CAP_PWC_UPDATABLE));
<a class="jxr_linenumber" name="491" href="#491">491</a>         result.setAllVersionsSearchable(getBoolean(json, JSON_CAP_ALL_VERSIONS_SEARCHABLE));
<a class="jxr_linenumber" name="492" href="#492">492</a>         result.setOrderByCapability(getEnum(json, JSON_CAP_ORDER_BY, CapabilityOrderBy.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="493" href="#493">493</a>         result.setCapabilityQuery(getEnum(json, JSON_CAP_QUERY, CapabilityQuery.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="494" href="#494">494</a>         result.setCapabilityJoin(getEnum(json, JSON_CAP_JOIN, CapabilityJoin.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="495" href="#495">495</a>         result.setCapabilityAcl(getEnum(json, JSON_CAP_ACL, CapabilityAcl.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="496" href="#496">496</a> 
<a class="jxr_linenumber" name="497" href="#497">497</a>         Map&lt;String, Object&gt; creatablePropertyTypesJson = getMap(json.get(JSON_CAP_CREATABLE_PROPERTY_TYPES));
<a class="jxr_linenumber" name="498" href="#498">498</a>         <strong class="jxr_keyword">if</strong> (creatablePropertyTypesJson != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="499" href="#499">499</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/CreatablePropertyTypesImpl.html">CreatablePropertyTypesImpl</a> creatablePropertyTypes = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/CreatablePropertyTypesImpl.html">CreatablePropertyTypesImpl</a>();
<a class="jxr_linenumber" name="500" href="#500">500</a> 
<a class="jxr_linenumber" name="501" href="#501">501</a>             List&lt;Object&gt; canCreateJson = getList(creatablePropertyTypesJson
<a class="jxr_linenumber" name="502" href="#502">502</a>                     .get(JSON_CAP_CREATABLE_PROPERTY_TYPES_CANCREATE));
<a class="jxr_linenumber" name="503" href="#503">503</a>             <strong class="jxr_keyword">if</strong> (canCreateJson != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="504" href="#504">504</a>                 Set&lt;PropertyType&gt; canCreate = EnumSet.noneOf(PropertyType.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="505" href="#505">505</a> 
<a class="jxr_linenumber" name="506" href="#506">506</a>                 <strong class="jxr_keyword">for</strong> (Object o : canCreateJson) {
<a class="jxr_linenumber" name="507" href="#507">507</a>                     <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="508" href="#508">508</a>                         <strong class="jxr_keyword">if</strong> (o != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="509" href="#509">509</a>                             canCreate.add(PropertyType.fromValue(o.toString()));
<a class="jxr_linenumber" name="510" href="#510">510</a>                         }
<a class="jxr_linenumber" name="511" href="#511">511</a>                     } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="512" href="#512">512</a>                         <em class="jxr_comment">// ignore</em>
<a class="jxr_linenumber" name="513" href="#513">513</a>                     }
<a class="jxr_linenumber" name="514" href="#514">514</a>                 }
<a class="jxr_linenumber" name="515" href="#515">515</a> 
<a class="jxr_linenumber" name="516" href="#516">516</a>                 creatablePropertyTypes.setCanCreate(canCreate);
<a class="jxr_linenumber" name="517" href="#517">517</a>             }
<a class="jxr_linenumber" name="518" href="#518">518</a> 
<a class="jxr_linenumber" name="519" href="#519">519</a>             convertExtension(creatablePropertyTypesJson, creatablePropertyTypes, CAP_CREATABLE_PROPERTY_TYPES_KEYS);
<a class="jxr_linenumber" name="520" href="#520">520</a> 
<a class="jxr_linenumber" name="521" href="#521">521</a>             result.setCreatablePropertyTypes(creatablePropertyTypes);
<a class="jxr_linenumber" name="522" href="#522">522</a>         }
<a class="jxr_linenumber" name="523" href="#523">523</a> 
<a class="jxr_linenumber" name="524" href="#524">524</a>         Map&lt;String, Object&gt; newTypeSettableAttributesJson = getMap(json.get(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES));
<a class="jxr_linenumber" name="525" href="#525">525</a>         <strong class="jxr_keyword">if</strong> (newTypeSettableAttributesJson != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="526" href="#526">526</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/NewTypeSettableAttributesImpl.html">NewTypeSettableAttributesImpl</a> newTypeSettableAttributes = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/NewTypeSettableAttributesImpl.html">NewTypeSettableAttributesImpl</a>();
<a class="jxr_linenumber" name="527" href="#527">527</a> 
<a class="jxr_linenumber" name="528" href="#528">528</a>             newTypeSettableAttributes.setCanSetId(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="529" href="#529">529</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_ID));
<a class="jxr_linenumber" name="530" href="#530">530</a>             newTypeSettableAttributes.setCanSetLocalName(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="531" href="#531">531</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_LOCALNAME));
<a class="jxr_linenumber" name="532" href="#532">532</a>             newTypeSettableAttributes.setCanSetLocalNamespace(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="533" href="#533">533</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_LOCALNAMESPACE));
<a class="jxr_linenumber" name="534" href="#534">534</a>             newTypeSettableAttributes.setCanSetDisplayName(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="535" href="#535">535</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_DISPLAYNAME));
<a class="jxr_linenumber" name="536" href="#536">536</a>             newTypeSettableAttributes.setCanSetQueryName(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="537" href="#537">537</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_QUERYNAME));
<a class="jxr_linenumber" name="538" href="#538">538</a>             newTypeSettableAttributes.setCanSetDescription(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="539" href="#539">539</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_DESCRIPTION));
<a class="jxr_linenumber" name="540" href="#540">540</a>             newTypeSettableAttributes.setCanSetCreatable(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="541" href="#541">541</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_CREATEABLE));
<a class="jxr_linenumber" name="542" href="#542">542</a>             newTypeSettableAttributes.setCanSetFileable(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="543" href="#543">543</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_FILEABLE));
<a class="jxr_linenumber" name="544" href="#544">544</a>             newTypeSettableAttributes.setCanSetQueryable(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="545" href="#545">545</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_QUERYABLE));
<a class="jxr_linenumber" name="546" href="#546">546</a>             newTypeSettableAttributes.setCanSetFulltextIndexed(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="547" href="#547">547</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_FULLTEXTINDEXED));
<a class="jxr_linenumber" name="548" href="#548">548</a>             newTypeSettableAttributes.setCanSetIncludedInSupertypeQuery(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="549" href="#549">549</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_INCLUDEDINSUPERTYTPEQUERY));
<a class="jxr_linenumber" name="550" href="#550">550</a>             newTypeSettableAttributes.setCanSetControllablePolicy(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="551" href="#551">551</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_CONTROLABLEPOLICY));
<a class="jxr_linenumber" name="552" href="#552">552</a>             newTypeSettableAttributes.setCanSetControllableAcl(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="553" href="#553">553</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_CONTROLABLEACL));
<a class="jxr_linenumber" name="554" href="#554">554</a> 
<a class="jxr_linenumber" name="555" href="#555">555</a>             convertExtension(newTypeSettableAttributesJson, newTypeSettableAttributes,
<a class="jxr_linenumber" name="556" href="#556">556</a>                     CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_KEYS);
<a class="jxr_linenumber" name="557" href="#557">557</a> 
<a class="jxr_linenumber" name="558" href="#558">558</a>             result.setNewTypeSettableAttributes(newTypeSettableAttributes);
<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_comment">// handle extensions</em>
<a class="jxr_linenumber" name="562" href="#562">562</a>         convertExtension(json, result, CAP_KEYS);
<a class="jxr_linenumber" name="563" href="#563">563</a> 
<a class="jxr_linenumber" name="564" href="#564">564</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="565" href="#565">565</a>     }
<a class="jxr_linenumber" name="566" href="#566">566</a> 
<a class="jxr_linenumber" name="567" href="#567">567</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="568" href="#568">568</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> AclCapabilities convertAclCapabilities(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json) {
<a class="jxr_linenumber" name="569" href="#569">569</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="570" href="#570">570</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="571" href="#571">571</a>         }
<a class="jxr_linenumber" name="572" href="#572">572</a> 
<a class="jxr_linenumber" name="573" href="#573">573</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="574" href="#574">574</a> 
<a class="jxr_linenumber" name="575" href="#575">575</a>         result.setSupportedPermissions(getEnum(json, JSON_ACLCAP_SUPPORTED_PERMISSIONS, SupportedPermissions.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="576" href="#576">576</a>         result.setAclPropagation(getEnum(json, JSON_ACLCAP_ACL_PROPAGATION, AclPropagation.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="577" href="#577">577</a> 
<a class="jxr_linenumber" name="578" href="#578">578</a>         List&lt;Object&gt; permissions = getList(json.get(JSON_ACLCAP_PERMISSIONS));
<a class="jxr_linenumber" name="579" href="#579">579</a>         <strong class="jxr_keyword">if</strong> (permissions != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="580" href="#580">580</a>             List&lt;PermissionDefinition&gt; permissionDefinitionList = <strong class="jxr_keyword">new</strong> ArrayList&lt;PermissionDefinition&gt;();
<a class="jxr_linenumber" name="581" href="#581">581</a> 
<a class="jxr_linenumber" name="582" href="#582">582</a>             <strong class="jxr_keyword">for</strong> (Object permission : (List&lt;Object&gt;) permissions) {
<a class="jxr_linenumber" name="583" href="#583">583</a>                 Map&lt;String, Object&gt; permissionMap = getMap(permission);
<a class="jxr_linenumber" name="584" href="#584">584</a>                 <strong class="jxr_keyword">if</strong> (permissionMap != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="585" href="#585">585</a>                     <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PermissionDefinitionDataImpl.html">PermissionDefinitionDataImpl</a> permDef = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PermissionDefinitionDataImpl.html">PermissionDefinitionDataImpl</a>();
<a class="jxr_linenumber" name="586" href="#586">586</a> 
<a class="jxr_linenumber" name="587" href="#587">587</a>                     permDef.setId(getString(permissionMap, JSON_ACLCAP_PERMISSION_PERMISSION));
<a class="jxr_linenumber" name="588" href="#588">588</a>                     permDef.setDescription(getString(permissionMap, JSON_ACLCAP_PERMISSION_DESCRIPTION));
<a class="jxr_linenumber" name="589" href="#589">589</a> 
<a class="jxr_linenumber" name="590" href="#590">590</a>                     convertExtension(permissionMap, permDef, ACLCAP_PERMISSION_KEYS);
<a class="jxr_linenumber" name="591" href="#591">591</a> 
<a class="jxr_linenumber" name="592" href="#592">592</a>                     permissionDefinitionList.add(permDef);
<a class="jxr_linenumber" name="593" href="#593">593</a>                 }
<a class="jxr_linenumber" name="594" href="#594">594</a>             }
<a class="jxr_linenumber" name="595" href="#595">595</a> 
<a class="jxr_linenumber" name="596" href="#596">596</a>             result.setPermissionDefinitionData(permissionDefinitionList);
<a class="jxr_linenumber" name="597" href="#597">597</a>         }
<a class="jxr_linenumber" name="598" href="#598">598</a> 
<a class="jxr_linenumber" name="599" href="#599">599</a>         List&lt;Object&gt; permissionMapping = getList(json.get(JSON_ACLCAP_PERMISSION_MAPPING));
<a class="jxr_linenumber" name="600" href="#600">600</a>         <strong class="jxr_keyword">if</strong> (permissionMapping != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="601" href="#601">601</a>             Map&lt;String, PermissionMapping&gt; permMap = <strong class="jxr_keyword">new</strong> HashMap&lt;String, PermissionMapping&gt;();
<a class="jxr_linenumber" name="602" href="#602">602</a> 
<a class="jxr_linenumber" name="603" href="#603">603</a>             <strong class="jxr_keyword">for</strong> (Object permission : (List&lt;Object&gt;) permissionMapping) {
<a class="jxr_linenumber" name="604" href="#604">604</a>                 Map&lt;String, Object&gt; permissionMap = getMap(permission);
<a class="jxr_linenumber" name="605" href="#605">605</a>                 <strong class="jxr_keyword">if</strong> (permissionMap != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="606" href="#606">606</a>                     <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PermissionMappingDataImpl.html">PermissionMappingDataImpl</a> mapping = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PermissionMappingDataImpl.html">PermissionMappingDataImpl</a>();
<a class="jxr_linenumber" name="607" href="#607">607</a> 
<a class="jxr_linenumber" name="608" href="#608">608</a>                     String key = getString(permissionMap, JSON_ACLCAP_MAPPING_KEY);
<a class="jxr_linenumber" name="609" href="#609">609</a>                     mapping.setKey(key);
<a class="jxr_linenumber" name="610" href="#610">610</a> 
<a class="jxr_linenumber" name="611" href="#611">611</a>                     Object perms = permissionMap.get(JSON_ACLCAP_MAPPING_PERMISSION);
<a class="jxr_linenumber" name="612" href="#612">612</a>                     <strong class="jxr_keyword">if</strong> (perms instanceof List) {
<a class="jxr_linenumber" name="613" href="#613">613</a>                         List&lt;String&gt; permList = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a class="jxr_linenumber" name="614" href="#614">614</a> 
<a class="jxr_linenumber" name="615" href="#615">615</a>                         <strong class="jxr_keyword">for</strong> (Object perm : (List&lt;Object&gt;) perms) {
<a class="jxr_linenumber" name="616" href="#616">616</a>                             <strong class="jxr_keyword">if</strong> (perm != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="617" href="#617">617</a>                                 permList.add(perm.toString());
<a class="jxr_linenumber" name="618" href="#618">618</a>                             }
<a class="jxr_linenumber" name="619" href="#619">619</a>                         }
<a class="jxr_linenumber" name="620" href="#620">620</a> 
<a class="jxr_linenumber" name="621" href="#621">621</a>                         mapping.setPermissions(permList);
<a class="jxr_linenumber" name="622" href="#622">622</a>                     }
<a class="jxr_linenumber" name="623" href="#623">623</a> 
<a class="jxr_linenumber" name="624" href="#624">624</a>                     convertExtension(permissionMap, mapping, ACLCAP_MAPPING_KEYS);
<a class="jxr_linenumber" name="625" href="#625">625</a> 
<a class="jxr_linenumber" name="626" href="#626">626</a>                     permMap.put(key, mapping);
<a class="jxr_linenumber" name="627" href="#627">627</a>                 }
<a class="jxr_linenumber" name="628" href="#628">628</a>             }
<a class="jxr_linenumber" name="629" href="#629">629</a> 
<a class="jxr_linenumber" name="630" href="#630">630</a>             result.setPermissionMappingData(permMap);
<a class="jxr_linenumber" name="631" href="#631">631</a>         }
<a class="jxr_linenumber" name="632" href="#632">632</a> 
<a class="jxr_linenumber" name="633" href="#633">633</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="634" href="#634">634</a>         convertExtension(json, result, ACLCAP_KEYS);
<a class="jxr_linenumber" name="635" href="#635">635</a> 
<a class="jxr_linenumber" name="636" href="#636">636</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="637" href="#637">637</a>     }
<a class="jxr_linenumber" name="638" href="#638">638</a> 
<a class="jxr_linenumber" name="639" href="#639">639</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="640" href="#640">640</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> TypeDefinition convertTypeDefinition(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json) {
<a class="jxr_linenumber" name="641" href="#641">641</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="642" href="#642">642</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="643" href="#643">643</a>         }
<a class="jxr_linenumber" name="644" href="#644">644</a> 
<a class="jxr_linenumber" name="645" href="#645">645</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="646" href="#646">646</a> 
<a class="jxr_linenumber" name="647" href="#647">647</a>         String id = getString(json, JSON_TYPE_ID);
<a class="jxr_linenumber" name="648" href="#648">648</a> 
<a class="jxr_linenumber" name="649" href="#649">649</a>         <em class="jxr_comment">// find base type</em>
<a class="jxr_linenumber" name="650" href="#650">650</a>         BaseTypeId baseType = getEnum(json, JSON_TYPE_BASE_ID, BaseTypeId.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="651" href="#651">651</a>         <strong class="jxr_keyword">if</strong> (baseType == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="652" href="#652">652</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Invalid base type: "</span> + id);
<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>         <strong class="jxr_keyword">switch</strong> (baseType) {
<a class="jxr_linenumber" name="656" href="#656">656</a>         <strong class="jxr_keyword">case</strong> CMIS_FOLDER:
<a class="jxr_linenumber" name="657" href="#657">657</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="658" href="#658">658</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="659" href="#659">659</a>         <strong class="jxr_keyword">case</strong> CMIS_DOCUMENT:
<a class="jxr_linenumber" name="660" href="#660">660</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="661" href="#661">661</a> 
<a class="jxr_linenumber" name="662" href="#662">662</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/DocumentTypeDefinitionImpl.html">DocumentTypeDefinitionImpl</a>) result).setContentStreamAllowed(getEnum(json,
<a class="jxr_linenumber" name="663" href="#663">663</a>                     JSON_TYPE_CONTENTSTREAM_ALLOWED, ContentStreamAllowed.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="664" href="#664">664</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/DocumentTypeDefinitionImpl.html">DocumentTypeDefinitionImpl</a>) result).setIsVersionable(getBoolean(json, JSON_TYPE_VERSIONABLE));
<a class="jxr_linenumber" name="665" href="#665">665</a> 
<a class="jxr_linenumber" name="666" href="#666">666</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="667" href="#667">667</a>         <strong class="jxr_keyword">case</strong> CMIS_RELATIONSHIP:
<a class="jxr_linenumber" name="668" href="#668">668</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="669" href="#669">669</a> 
<a class="jxr_linenumber" name="670" href="#670">670</a>             Object allowedSourceTypes = json.get(JSON_TYPE_ALLOWED_SOURCE_TYPES);
<a class="jxr_linenumber" name="671" href="#671">671</a>             <strong class="jxr_keyword">if</strong> (allowedSourceTypes instanceof List) {
<a class="jxr_linenumber" name="672" href="#672">672</a>                 List&lt;String&gt; types = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a class="jxr_linenumber" name="673" href="#673">673</a>                 <strong class="jxr_keyword">for</strong> (Object type : ((List&lt;Object&gt;) allowedSourceTypes)) {
<a class="jxr_linenumber" name="674" href="#674">674</a>                     <strong class="jxr_keyword">if</strong> (type != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="675" href="#675">675</a>                         types.add(type.toString());
<a class="jxr_linenumber" name="676" href="#676">676</a>                     }
<a class="jxr_linenumber" name="677" href="#677">677</a>                 }
<a class="jxr_linenumber" name="678" href="#678">678</a> 
<a class="jxr_linenumber" name="679" href="#679">679</a>                 ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/RelationshipTypeDefinitionImpl.html">RelationshipTypeDefinitionImpl</a>) result).setAllowedSourceTypes(types);
<a class="jxr_linenumber" name="680" href="#680">680</a>             }
<a class="jxr_linenumber" name="681" href="#681">681</a> 
<a class="jxr_linenumber" name="682" href="#682">682</a>             Object allowedTargetTypes = json.get(JSON_TYPE_ALLOWED_TARGET_TYPES);
<a class="jxr_linenumber" name="683" href="#683">683</a>             <strong class="jxr_keyword">if</strong> (allowedTargetTypes instanceof List) {
<a class="jxr_linenumber" name="684" href="#684">684</a>                 List&lt;String&gt; types = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a class="jxr_linenumber" name="685" href="#685">685</a>                 <strong class="jxr_keyword">for</strong> (Object type : ((List&lt;Object&gt;) allowedTargetTypes)) {
<a class="jxr_linenumber" name="686" href="#686">686</a>                     <strong class="jxr_keyword">if</strong> (type != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="687" href="#687">687</a>                         types.add(type.toString());
<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> 
<a class="jxr_linenumber" name="691" href="#691">691</a>                 ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/RelationshipTypeDefinitionImpl.html">RelationshipTypeDefinitionImpl</a>) result).setAllowedTargetTypes(types);
<a class="jxr_linenumber" name="692" href="#692">692</a>             }
<a class="jxr_linenumber" name="693" href="#693">693</a> 
<a class="jxr_linenumber" name="694" href="#694">694</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="695" href="#695">695</a>         <strong class="jxr_keyword">case</strong> CMIS_POLICY:
<a class="jxr_linenumber" name="696" href="#696">696</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="697" href="#697">697</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="698" href="#698">698</a>         <strong class="jxr_keyword">case</strong> CMIS_ITEM:
<a class="jxr_linenumber" name="699" href="#699">699</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="700" href="#700">700</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="701" href="#701">701</a>         <strong class="jxr_keyword">case</strong> CMIS_SECONDARY:
<a class="jxr_linenumber" name="702" href="#702">702</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="703" href="#703">703</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="704" href="#704">704</a>         <strong class="jxr_keyword">default</strong>:
<a class="jxr_linenumber" name="705" href="#705">705</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Type '"</span> + id + <span class="jxr_string">"' does not match a base type!"</span>);
<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>         result.setBaseTypeId(baseType);
<a class="jxr_linenumber" name="709" href="#709">709</a>         result.setDescription(getString(json, JSON_TYPE_DESCRIPTION));
<a class="jxr_linenumber" name="710" href="#710">710</a>         result.setDisplayName(getString(json, JSON_TYPE_DISPLAYNAME));
<a class="jxr_linenumber" name="711" href="#711">711</a>         result.setId(id);
<a class="jxr_linenumber" name="712" href="#712">712</a>         result.setIsControllableAcl(getBoolean(json, JSON_TYPE_CONTROLABLE_ACL));
<a class="jxr_linenumber" name="713" href="#713">713</a>         result.setIsControllablePolicy(getBoolean(json, JSON_TYPE_CONTROLABLE_POLICY));
<a class="jxr_linenumber" name="714" href="#714">714</a>         result.setIsCreatable(getBoolean(json, JSON_TYPE_CREATABLE));
<a class="jxr_linenumber" name="715" href="#715">715</a>         result.setIsFileable(getBoolean(json, JSON_TYPE_FILEABLE));
<a class="jxr_linenumber" name="716" href="#716">716</a>         result.setIsFulltextIndexed(getBoolean(json, JSON_TYPE_FULLTEXT_INDEXED));
<a class="jxr_linenumber" name="717" href="#717">717</a>         result.setIsIncludedInSupertypeQuery(getBoolean(json, JSON_TYPE_INCLUDE_IN_SUPERTYPE_QUERY));
<a class="jxr_linenumber" name="718" href="#718">718</a>         result.setIsQueryable(getBoolean(json, JSON_TYPE_QUERYABLE));
<a class="jxr_linenumber" name="719" href="#719">719</a>         result.setLocalName(getString(json, JSON_TYPE_LOCALNAME));
<a class="jxr_linenumber" name="720" href="#720">720</a>         result.setLocalNamespace(getString(json, JSON_TYPE_LOCALNAMESPACE));
<a class="jxr_linenumber" name="721" href="#721">721</a>         result.setParentTypeId(getString(json, JSON_TYPE_PARENT_ID));
<a class="jxr_linenumber" name="722" href="#722">722</a>         result.setQueryName(getString(json, JSON_TYPE_QUERYNAME));
<a class="jxr_linenumber" name="723" href="#723">723</a> 
<a class="jxr_linenumber" name="724" href="#724">724</a>         Map&lt;String, Object&gt; typeMutabilityJson = getMap(json.get(JSON_TYPE_TYPE_MUTABILITY));
<a class="jxr_linenumber" name="725" href="#725">725</a>         <strong class="jxr_keyword">if</strong> (typeMutabilityJson != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="726" href="#726">726</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/TypeMutabilityImpl.html">TypeMutabilityImpl</a> typeMutability = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/TypeMutabilityImpl.html">TypeMutabilityImpl</a>();
<a class="jxr_linenumber" name="727" href="#727">727</a> 
<a class="jxr_linenumber" name="728" href="#728">728</a>             typeMutability.setCanCreate(getBoolean(typeMutabilityJson, JSON_TYPE_TYPE_MUTABILITY_CREATE));
<a class="jxr_linenumber" name="729" href="#729">729</a>             typeMutability.setCanUpdate(getBoolean(typeMutabilityJson, JSON_TYPE_TYPE_MUTABILITY_UPDATE));
<a class="jxr_linenumber" name="730" href="#730">730</a>             typeMutability.setCanDelete(getBoolean(typeMutabilityJson, JSON_TYPE_TYPE_MUTABILITY_DELETE));
<a class="jxr_linenumber" name="731" href="#731">731</a> 
<a class="jxr_linenumber" name="732" href="#732">732</a>             convertExtension(typeMutabilityJson, typeMutability, JSON_TYPE_TYPE_MUTABILITY_KEYS);
<a class="jxr_linenumber" name="733" href="#733">733</a> 
<a class="jxr_linenumber" name="734" href="#734">734</a>             result.setTypeMutability(typeMutability);
<a class="jxr_linenumber" name="735" href="#735">735</a>         }
<a class="jxr_linenumber" name="736" href="#736">736</a> 
<a class="jxr_linenumber" name="737" href="#737">737</a>         Map&lt;String, Object&gt; propertyDefinitions = getMap(json.get(JSON_TYPE_PROPERTY_DEFINITIONS));
<a class="jxr_linenumber" name="738" href="#738">738</a>         <strong class="jxr_keyword">if</strong> (propertyDefinitions != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="739" href="#739">739</a>             <strong class="jxr_keyword">for</strong> (Object propDef : propertyDefinitions.values()) {
<a class="jxr_linenumber" name="740" href="#740">740</a>                 result.addPropertyDefinition(convertPropertyDefinition(getMap(propDef)));
<a class="jxr_linenumber" name="741" href="#741">741</a>             }
<a class="jxr_linenumber" name="742" href="#742">742</a>         }
<a class="jxr_linenumber" name="743" href="#743">743</a> 
<a class="jxr_linenumber" name="744" href="#744">744</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="745" href="#745">745</a>         convertExtension(json, result, TYPE_KEYS);
<a class="jxr_linenumber" name="746" href="#746">746</a> 
<a class="jxr_linenumber" name="747" href="#747">747</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="748" href="#748">748</a>     }
<a class="jxr_linenumber" name="749" href="#749">749</a> 
<a class="jxr_linenumber" name="750" href="#750">750</a>     @SuppressWarnings({ <span class="jxr_string">"unchecked"</span>, <span class="jxr_string">"rawtypes"</span> })
<a class="jxr_linenumber" name="751" href="#751">751</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> PropertyDefinition&lt;?&gt; convertPropertyDefinition(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json) {
<a class="jxr_linenumber" name="752" href="#752">752</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="753" href="#753">753</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="754" href="#754">754</a>         }
<a class="jxr_linenumber" name="755" href="#755">755</a> 
<a class="jxr_linenumber" name="756" href="#756">756</a>         AbstractPropertyDefinition&lt;?&gt; result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="757" href="#757">757</a> 
<a class="jxr_linenumber" name="758" href="#758">758</a>         String id = getString(json, JSON_PROPERTY_ID);
<a class="jxr_linenumber" name="759" href="#759">759</a> 
<a class="jxr_linenumber" name="760" href="#760">760</a>         <em class="jxr_comment">// find property type</em>
<a class="jxr_linenumber" name="761" href="#761">761</a>         PropertyType propertyType = getEnum(json, JSON_PROPERTY_TYPE_PROPERTY_TYPE, PropertyType.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="762" href="#762">762</a>         <strong class="jxr_keyword">if</strong> (propertyType == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="763" href="#763">763</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Invalid property type '"</span> + id + <span class="jxr_string">"'! Data type not set!"</span>);
<a class="jxr_linenumber" name="764" href="#764">764</a>         }
<a class="jxr_linenumber" name="765" href="#765">765</a> 
<a class="jxr_linenumber" name="766" href="#766">766</a>         <em class="jxr_comment">// find</em>
<a class="jxr_linenumber" name="767" href="#767">767</a>         Cardinality cardinality = getEnum(json, JSON_PROPERTY_TYPE_CARDINALITY, Cardinality.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="768" href="#768">768</a>         <strong class="jxr_keyword">if</strong> (cardinality == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="769" href="#769">769</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Invalid property type '"</span> + id + <span class="jxr_string">"'! Cardinality not set!"</span>);
<a class="jxr_linenumber" name="770" href="#770">770</a>         }
<a class="jxr_linenumber" name="771" href="#771">771</a> 
<a class="jxr_linenumber" name="772" href="#772">772</a>         <strong class="jxr_keyword">switch</strong> (propertyType) {
<a class="jxr_linenumber" name="773" href="#773">773</a>         <strong class="jxr_keyword">case</strong> STRING:
<a class="jxr_linenumber" name="774" href="#774">774</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="775" href="#775">775</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyStringDefinitionImpl.html">PropertyStringDefinitionImpl</a>) result).setMaxLength(getInteger(json, JSON_PROPERTY_TYPE_MAX_LENGTH));
<a class="jxr_linenumber" name="776" href="#776">776</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyStringDefinitionImpl.html">PropertyStringDefinitionImpl</a>) result)
<a class="jxr_linenumber" name="777" href="#777">777</a>                     .setChoices(convertChoicesString(json.get(JSON_PROPERTY_TYPE_CHOICE)));
<a class="jxr_linenumber" name="778" href="#778">778</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="779" href="#779">779</a>         <strong class="jxr_keyword">case</strong> ID:
<a class="jxr_linenumber" name="780" href="#780">780</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="781" href="#781">781</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIdDefinitionImpl.html">PropertyIdDefinitionImpl</a>) result).setChoices(convertChoicesString(json.get(JSON_PROPERTY_TYPE_CHOICE)));
<a class="jxr_linenumber" name="782" href="#782">782</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="783" href="#783">783</a>         <strong class="jxr_keyword">case</strong> BOOLEAN:
<a class="jxr_linenumber" name="784" href="#784">784</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="785" href="#785">785</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyBooleanDefinitionImpl.html">PropertyBooleanDefinitionImpl</a>) result).setChoices(convertChoicesBoolean(json
<a class="jxr_linenumber" name="786" href="#786">786</a>                     .get(JSON_PROPERTY_TYPE_CHOICE)));
<a class="jxr_linenumber" name="787" href="#787">787</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="788" href="#788">788</a>         <strong class="jxr_keyword">case</strong> INTEGER:
<a class="jxr_linenumber" name="789" href="#789">789</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="790" href="#790">790</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIntegerDefinitionImpl.html">PropertyIntegerDefinitionImpl</a>) result).setMinValue(getInteger(json, JSON_PROPERTY_TYPE_MIN_VALUE));
<a class="jxr_linenumber" name="791" href="#791">791</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIntegerDefinitionImpl.html">PropertyIntegerDefinitionImpl</a>) result).setMaxValue(getInteger(json, JSON_PROPERTY_TYPE_MAX_VALUE));
<a class="jxr_linenumber" name="792" href="#792">792</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIntegerDefinitionImpl.html">PropertyIntegerDefinitionImpl</a>) result).setChoices(convertChoicesInteger(json
<a class="jxr_linenumber" name="793" href="#793">793</a>                     .get(JSON_PROPERTY_TYPE_CHOICE)));
<a class="jxr_linenumber" name="794" href="#794">794</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="795" href="#795">795</a>         <strong class="jxr_keyword">case</strong> DATETIME:
<a class="jxr_linenumber" name="796" href="#796">796</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="797" href="#797">797</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDateTimeDefinitionImpl.html">PropertyDateTimeDefinitionImpl</a>) result).setDateTimeResolution(getEnum(json,
<a class="jxr_linenumber" name="798" href="#798">798</a>                     JSON_PROPERTY_TYPE_RESOLUTION, DateTimeResolution.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="799" href="#799">799</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDateTimeDefinitionImpl.html">PropertyDateTimeDefinitionImpl</a>) result).setChoices(convertChoicesDateTime(json
<a class="jxr_linenumber" name="800" href="#800">800</a>                     .get(JSON_PROPERTY_TYPE_CHOICE)));
<a class="jxr_linenumber" name="801" href="#801">801</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="802" href="#802">802</a>         <strong class="jxr_keyword">case</strong> DECIMAL:
<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/PropertyDecimalDefinitionImpl.html">PropertyDecimalDefinitionImpl</a>();
<a class="jxr_linenumber" name="804" href="#804">804</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDecimalDefinitionImpl.html">PropertyDecimalDefinitionImpl</a>) result).setMinValue(getDecimal(json, JSON_PROPERTY_TYPE_MIN_VALUE));
<a class="jxr_linenumber" name="805" href="#805">805</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDecimalDefinitionImpl.html">PropertyDecimalDefinitionImpl</a>) result).setMaxValue(getDecimal(json, JSON_PROPERTY_TYPE_MAX_VALUE));
<a class="jxr_linenumber" name="806" href="#806">806</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDecimalDefinitionImpl.html">PropertyDecimalDefinitionImpl</a>) result).setPrecision(getIntEnum(json, JSON_PROPERTY_TYPE_PRECISION,
<a class="jxr_linenumber" name="807" href="#807">807</a>                     DecimalPrecision.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="808" href="#808">808</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDecimalDefinitionImpl.html">PropertyDecimalDefinitionImpl</a>) result).setChoices(convertChoicesDecimal(json
<a class="jxr_linenumber" name="809" href="#809">809</a>                     .get(JSON_PROPERTY_TYPE_CHOICE)));
<a class="jxr_linenumber" name="810" href="#810">810</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="811" href="#811">811</a>         <strong class="jxr_keyword">case</strong> HTML:
<a class="jxr_linenumber" name="812" href="#812">812</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="813" href="#813">813</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyHtmlDefinitionImpl.html">PropertyHtmlDefinitionImpl</a>) result).setChoices(convertChoicesString(json.get(JSON_PROPERTY_TYPE_CHOICE)));
<a class="jxr_linenumber" name="814" href="#814">814</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="815" href="#815">815</a>         <strong class="jxr_keyword">case</strong> URI:
<a class="jxr_linenumber" name="816" href="#816">816</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="817" href="#817">817</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyUriDefinitionImpl.html">PropertyUriDefinitionImpl</a>) result).setChoices(convertChoicesString(json.get(JSON_PROPERTY_TYPE_CHOICE)));
<a class="jxr_linenumber" name="818" href="#818">818</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="819" href="#819">819</a>         <strong class="jxr_keyword">default</strong>:
<a class="jxr_linenumber" name="820" href="#820">820</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Property type '"</span> + id + <span class="jxr_string">"' does not match a data type!"</span>);
<a class="jxr_linenumber" name="821" href="#821">821</a>         }
<a class="jxr_linenumber" name="822" href="#822">822</a> 
<a class="jxr_linenumber" name="823" href="#823">823</a>         <em class="jxr_comment">// default value</em>
<a class="jxr_linenumber" name="824" href="#824">824</a>         Object defaultValue = json.get(JSON_PROPERTY_TYPE_DEAULT_VALUE);
<a class="jxr_linenumber" name="825" href="#825">825</a>         <strong class="jxr_keyword">if</strong> (defaultValue != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="826" href="#826">826</a>             <strong class="jxr_keyword">if</strong> (defaultValue instanceof List) {
<a class="jxr_linenumber" name="827" href="#827">827</a>                 List values = <strong class="jxr_keyword">new</strong> ArrayList();
<a class="jxr_linenumber" name="828" href="#828">828</a>                 <strong class="jxr_keyword">for</strong> (Object value : (List) defaultValue) {
<a class="jxr_linenumber" name="829" href="#829">829</a>                     values.add(getCMISValue(value, propertyType));
<a class="jxr_linenumber" name="830" href="#830">830</a>                 }
<a class="jxr_linenumber" name="831" href="#831">831</a>                 result.setDefaultValue(values);
<a class="jxr_linenumber" name="832" href="#832">832</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="833" href="#833">833</a>                 result.setDefaultValue((List) Collections.singletonList(getCMISValue(defaultValue, propertyType)));
<a class="jxr_linenumber" name="834" href="#834">834</a>             }
<a class="jxr_linenumber" name="835" href="#835">835</a>         }
<a class="jxr_linenumber" name="836" href="#836">836</a> 
<a class="jxr_linenumber" name="837" href="#837">837</a>         <em class="jxr_comment">// generic</em>
<a class="jxr_linenumber" name="838" href="#838">838</a>         result.setId(id);
<a class="jxr_linenumber" name="839" href="#839">839</a>         result.setPropertyType(propertyType);
<a class="jxr_linenumber" name="840" href="#840">840</a>         result.setCardinality(cardinality);
<a class="jxr_linenumber" name="841" href="#841">841</a>         result.setLocalName(getString(json, JSON_PROPERTY_TYPE_LOCALNAME));
<a class="jxr_linenumber" name="842" href="#842">842</a>         result.setLocalNamespace(getString(json, JSON_PROPERTY_TYPE_LOCALNAMESPACE));
<a class="jxr_linenumber" name="843" href="#843">843</a>         result.setQueryName(getString(json, JSON_PROPERTY_TYPE_QUERYNAME));
<a class="jxr_linenumber" name="844" href="#844">844</a>         result.setDescription(getString(json, JSON_PROPERTY_TYPE_DESCRIPTION));
<a class="jxr_linenumber" name="845" href="#845">845</a>         result.setDisplayName(getString(json, JSON_PROPERTY_TYPE_DISPLAYNAME));
<a class="jxr_linenumber" name="846" href="#846">846</a>         result.setIsInherited(getBoolean(json, JSON_PROPERTY_TYPE_INHERITED));
<a class="jxr_linenumber" name="847" href="#847">847</a>         result.setIsOpenChoice(getBoolean(json, JSON_PROPERTY_TYPE_OPENCHOICE));
<a class="jxr_linenumber" name="848" href="#848">848</a>         result.setIsOrderable(getBoolean(json, JSON_PROPERTY_TYPE_ORDERABLE));
<a class="jxr_linenumber" name="849" href="#849">849</a>         result.setIsQueryable(getBoolean(json, JSON_PROPERTY_TYPE_QUERYABLE));
<a class="jxr_linenumber" name="850" href="#850">850</a>         result.setIsRequired(getBoolean(json, JSON_PROPERTY_TYPE_REQUIRED));
<a class="jxr_linenumber" name="851" href="#851">851</a>         result.setUpdatability(getEnum(json, JSON_PROPERTY_TYPE_UPDATABILITY, Updatability.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="852" href="#852">852</a> 
<a class="jxr_linenumber" name="853" href="#853">853</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="854" href="#854">854</a>         convertExtension(json, result, PROPERTY_TYPE_KEYS);
<a class="jxr_linenumber" name="855" href="#855">855</a> 
<a class="jxr_linenumber" name="856" href="#856">856</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="857" href="#857">857</a>     }
<a class="jxr_linenumber" name="858" href="#858">858</a> 
<a class="jxr_linenumber" name="859" href="#859">859</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="860" href="#860">860</a> <em class="jxr_javadoccomment">     * Converts choices.</em>
<a class="jxr_linenumber" name="861" href="#861">861</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="862" href="#862">862</a>     @SuppressWarnings({ <span class="jxr_string">"rawtypes"</span> })
<a class="jxr_linenumber" name="863" href="#863">863</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;Choice&lt;String&gt;&gt; convertChoicesString(<strong class="jxr_keyword">final</strong> Object choices) {
<a class="jxr_linenumber" name="864" href="#864">864</a>         <strong class="jxr_keyword">if</strong> (!(choices instanceof List)) {
<a class="jxr_linenumber" name="865" href="#865">865</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="866" href="#866">866</a>         }
<a class="jxr_linenumber" name="867" href="#867">867</a> 
<a class="jxr_linenumber" name="868" href="#868">868</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="869" href="#869">869</a> 
<a class="jxr_linenumber" name="870" href="#870">870</a>         <strong class="jxr_keyword">for</strong> (Object obj : (List) choices) {
<a class="jxr_linenumber" name="871" href="#871">871</a>             Map&lt;String, Object&gt; choiceMap = getMap(obj);
<a class="jxr_linenumber" name="872" href="#872">872</a>             <strong class="jxr_keyword">if</strong> (choiceMap != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="873" href="#873">873</a>                 ChoiceImpl&lt;String&gt; choice = <strong class="jxr_keyword">new</strong> ChoiceImpl&lt;String&gt;();
<a class="jxr_linenumber" name="874" href="#874">874</a>                 choice.setDisplayName(getString(choiceMap, JSON_PROPERTY_TYPE_CHOICE_DISPLAYNAME));
<a class="jxr_linenumber" name="875" href="#875">875</a> 
<a class="jxr_linenumber" name="876" href="#876">876</a>                 Object choiceValue = choiceMap.get(JSON_PROPERTY_TYPE_CHOICE_VALUE);
<a class="jxr_linenumber" name="877" href="#877">877</a>                 List&lt;String&gt; values = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a class="jxr_linenumber" name="878" href="#878">878</a>                 <strong class="jxr_keyword">if</strong> (choiceValue instanceof List) {
<a class="jxr_linenumber" name="879" href="#879">879</a>                     <strong class="jxr_keyword">for</strong> (Object value : (List) choiceValue) {
<a class="jxr_linenumber" name="880" href="#880">880</a>                         values.add((String) getCMISValue(value, PropertyType.STRING));
<a class="jxr_linenumber" name="881" href="#881">881</a>                     }
<a class="jxr_linenumber" name="882" href="#882">882</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="883" href="#883">883</a>                     values.add((String) getCMISValue(choiceValue, PropertyType.STRING));
<a class="jxr_linenumber" name="884" href="#884">884</a>                 }
<a class="jxr_linenumber" name="885" href="#885">885</a>                 choice.setValue(values);
<a class="jxr_linenumber" name="886" href="#886">886</a> 
<a class="jxr_linenumber" name="887" href="#887">887</a>                 choice.setChoice(convertChoicesString(choiceMap.get(JSON_PROPERTY_TYPE_CHOICE_CHOICE)));
<a class="jxr_linenumber" name="888" href="#888">888</a> 
<a class="jxr_linenumber" name="889" href="#889">889</a>                 result.add(choice);
<a class="jxr_linenumber" name="890" href="#890">890</a>             }
<a class="jxr_linenumber" name="891" href="#891">891</a>         }
<a class="jxr_linenumber" name="892" href="#892">892</a> 
<a class="jxr_linenumber" name="893" href="#893">893</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="894" href="#894">894</a>     }
<a class="jxr_linenumber" name="895" href="#895">895</a> 
<a class="jxr_linenumber" name="896" href="#896">896</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="897" href="#897">897</a> <em class="jxr_javadoccomment">     * Converts choices.</em>
<a class="jxr_linenumber" name="898" href="#898">898</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="899" href="#899">899</a>     @SuppressWarnings({ <span class="jxr_string">"rawtypes"</span> })
<a class="jxr_linenumber" name="900" href="#900">900</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;Choice&lt;Boolean&gt;&gt; convertChoicesBoolean(<strong class="jxr_keyword">final</strong> Object choices) {
<a class="jxr_linenumber" name="901" href="#901">901</a>         <strong class="jxr_keyword">if</strong> (!(choices instanceof List)) {
<a class="jxr_linenumber" name="902" href="#902">902</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="903" href="#903">903</a>         }
<a class="jxr_linenumber" name="904" href="#904">904</a> 
<a class="jxr_linenumber" name="905" href="#905">905</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="906" href="#906">906</a> 
<a class="jxr_linenumber" name="907" href="#907">907</a>         <strong class="jxr_keyword">for</strong> (Object obj : (List) choices) {
<a class="jxr_linenumber" name="908" href="#908">908</a>             Map&lt;String, Object&gt; choiceMap = getMap(obj);
<a class="jxr_linenumber" name="909" href="#909">909</a>             <strong class="jxr_keyword">if</strong> (choiceMap != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="910" href="#910">910</a>                 ChoiceImpl&lt;Boolean&gt; choice = <strong class="jxr_keyword">new</strong> ChoiceImpl&lt;Boolean&gt;();
<a class="jxr_linenumber" name="911" href="#911">911</a>                 choice.setDisplayName(getString(choiceMap, JSON_PROPERTY_TYPE_CHOICE_DISPLAYNAME));
<a class="jxr_linenumber" name="912" href="#912">912</a> 
<a class="jxr_linenumber" name="913" href="#913">913</a>                 Object choiceValue = choiceMap.get(JSON_PROPERTY_TYPE_CHOICE_VALUE);
<a class="jxr_linenumber" name="914" href="#914">914</a>                 List&lt;Boolean&gt; values = <strong class="jxr_keyword">new</strong> ArrayList&lt;Boolean&gt;();
<a class="jxr_linenumber" name="915" href="#915">915</a>                 <strong class="jxr_keyword">if</strong> (choiceValue instanceof List) {
<a class="jxr_linenumber" name="916" href="#916">916</a>                     <strong class="jxr_keyword">for</strong> (Object value : (List) choiceValue) {
<a class="jxr_linenumber" name="917" href="#917">917</a>                         values.add((Boolean) getCMISValue(value, PropertyType.BOOLEAN));
<a class="jxr_linenumber" name="918" href="#918">918</a>                     }
<a class="jxr_linenumber" name="919" href="#919">919</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="920" href="#920">920</a>                     values.add((Boolean) getCMISValue(choiceValue, PropertyType.BOOLEAN));
<a class="jxr_linenumber" name="921" href="#921">921</a>                 }
<a class="jxr_linenumber" name="922" href="#922">922</a>                 choice.setValue(values);
<a class="jxr_linenumber" name="923" href="#923">923</a> 
<a class="jxr_linenumber" name="924" href="#924">924</a>                 choice.setChoice(convertChoicesBoolean(choiceMap.get(JSON_PROPERTY_TYPE_CHOICE_CHOICE)));
<a class="jxr_linenumber" name="925" href="#925">925</a> 
<a class="jxr_linenumber" name="926" href="#926">926</a>                 result.add(choice);
<a class="jxr_linenumber" name="927" href="#927">927</a>             }
<a class="jxr_linenumber" name="928" href="#928">928</a>         }
<a class="jxr_linenumber" name="929" href="#929">929</a> 
<a class="jxr_linenumber" name="930" href="#930">930</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="931" href="#931">931</a>     }
<a class="jxr_linenumber" name="932" href="#932">932</a> 
<a class="jxr_linenumber" name="933" href="#933">933</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="934" href="#934">934</a> <em class="jxr_javadoccomment">     * Converts choices.</em>
<a class="jxr_linenumber" name="935" href="#935">935</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="936" href="#936">936</a>     @SuppressWarnings({ <span class="jxr_string">"rawtypes"</span> })
<a class="jxr_linenumber" name="937" href="#937">937</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;Choice&lt;BigInteger&gt;&gt; convertChoicesInteger(<strong class="jxr_keyword">final</strong> Object choices) {
<a class="jxr_linenumber" name="938" href="#938">938</a>         <strong class="jxr_keyword">if</strong> (!(choices instanceof List)) {
<a class="jxr_linenumber" name="939" href="#939">939</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="940" href="#940">940</a>         }
<a class="jxr_linenumber" name="941" href="#941">941</a> 
<a class="jxr_linenumber" name="942" href="#942">942</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="943" href="#943">943</a> 
<a class="jxr_linenumber" name="944" href="#944">944</a>         <strong class="jxr_keyword">for</strong> (Object obj : (List) choices) {
<a class="jxr_linenumber" name="945" href="#945">945</a>             Map&lt;String, Object&gt; choiceMap = getMap(obj);
<a class="jxr_linenumber" name="946" href="#946">946</a>             <strong class="jxr_keyword">if</strong> (choiceMap != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="947" href="#947">947</a>                 ChoiceImpl&lt;BigInteger&gt; choice = <strong class="jxr_keyword">new</strong> ChoiceImpl&lt;BigInteger&gt;();
<a class="jxr_linenumber" name="948" href="#948">948</a>                 choice.setDisplayName(getString(choiceMap, JSON_PROPERTY_TYPE_CHOICE_DISPLAYNAME));
<a class="jxr_linenumber" name="949" href="#949">949</a> 
<a class="jxr_linenumber" name="950" href="#950">950</a>                 Object choiceValue = choiceMap.get(JSON_PROPERTY_TYPE_CHOICE_VALUE);
<a class="jxr_linenumber" name="951" href="#951">951</a>                 List&lt;BigInteger&gt; values = <strong class="jxr_keyword">new</strong> ArrayList&lt;BigInteger&gt;();
<a class="jxr_linenumber" name="952" href="#952">952</a>                 <strong class="jxr_keyword">if</strong> (choiceValue instanceof List) {
<a class="jxr_linenumber" name="953" href="#953">953</a>                     <strong class="jxr_keyword">for</strong> (Object value : (List) choiceValue) {
<a class="jxr_linenumber" name="954" href="#954">954</a>                         values.add((BigInteger) getCMISValue(value, PropertyType.INTEGER));
<a class="jxr_linenumber" name="955" href="#955">955</a>                     }
<a class="jxr_linenumber" name="956" href="#956">956</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="957" href="#957">957</a>                     values.add((BigInteger) getCMISValue(choiceValue, PropertyType.INTEGER));
<a class="jxr_linenumber" name="958" href="#958">958</a>                 }
<a class="jxr_linenumber" name="959" href="#959">959</a>                 choice.setValue(values);
<a class="jxr_linenumber" name="960" href="#960">960</a> 
<a class="jxr_linenumber" name="961" href="#961">961</a>                 choice.setChoice(convertChoicesInteger(choiceMap.get(JSON_PROPERTY_TYPE_CHOICE_CHOICE)));
<a class="jxr_linenumber" name="962" href="#962">962</a> 
<a class="jxr_linenumber" name="963" href="#963">963</a>                 result.add(choice);
<a class="jxr_linenumber" name="964" href="#964">964</a>             }
<a class="jxr_linenumber" name="965" href="#965">965</a>         }
<a class="jxr_linenumber" name="966" href="#966">966</a> 
<a class="jxr_linenumber" name="967" href="#967">967</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="968" href="#968">968</a>     }
<a class="jxr_linenumber" name="969" href="#969">969</a> 
<a class="jxr_linenumber" name="970" href="#970">970</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="971" href="#971">971</a> <em class="jxr_javadoccomment">     * Converts choices.</em>
<a class="jxr_linenumber" name="972" href="#972">972</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="973" href="#973">973</a>     @SuppressWarnings({ <span class="jxr_string">"rawtypes"</span> })
<a class="jxr_linenumber" name="974" href="#974">974</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;Choice&lt;BigDecimal&gt;&gt; convertChoicesDecimal(<strong class="jxr_keyword">final</strong> Object choices) {
<a class="jxr_linenumber" name="975" href="#975">975</a>         <strong class="jxr_keyword">if</strong> (!(choices instanceof List)) {
<a class="jxr_linenumber" name="976" href="#976">976</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="977" href="#977">977</a>         }
<a class="jxr_linenumber" name="978" href="#978">978</a> 
<a class="jxr_linenumber" name="979" href="#979">979</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="980" href="#980">980</a> 
<a class="jxr_linenumber" name="981" href="#981">981</a>         <strong class="jxr_keyword">for</strong> (Object obj : (List) choices) {
<a class="jxr_linenumber" name="982" href="#982">982</a>             Map&lt;String, Object&gt; choiceMap = getMap(obj);
<a class="jxr_linenumber" name="983" href="#983">983</a>             <strong class="jxr_keyword">if</strong> (choiceMap != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="984" href="#984">984</a>                 ChoiceImpl&lt;BigDecimal&gt; choice = <strong class="jxr_keyword">new</strong> ChoiceImpl&lt;BigDecimal&gt;();
<a class="jxr_linenumber" name="985" href="#985">985</a>                 choice.setDisplayName(getString(choiceMap, JSON_PROPERTY_TYPE_CHOICE_DISPLAYNAME));
<a class="jxr_linenumber" name="986" href="#986">986</a> 
<a class="jxr_linenumber" name="987" href="#987">987</a>                 Object choiceValue = choiceMap.get(JSON_PROPERTY_TYPE_CHOICE_VALUE);
<a class="jxr_linenumber" name="988" href="#988">988</a>                 List&lt;BigDecimal&gt; values = <strong class="jxr_keyword">new</strong> ArrayList&lt;BigDecimal&gt;();
<a class="jxr_linenumber" name="989" href="#989">989</a>                 <strong class="jxr_keyword">if</strong> (choiceValue instanceof List) {
<a class="jxr_linenumber" name="990" href="#990">990</a>                     <strong class="jxr_keyword">for</strong> (Object value : (List) choiceValue) {
<a class="jxr_linenumber" name="991" href="#991">991</a>                         values.add((BigDecimal) getCMISValue(value, PropertyType.DECIMAL));
<a class="jxr_linenumber" name="992" href="#992">992</a>                     }
<a class="jxr_linenumber" name="993" href="#993">993</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="994" href="#994">994</a>                     values.add((BigDecimal) getCMISValue(choiceValue, PropertyType.DECIMAL));
<a class="jxr_linenumber" name="995" href="#995">995</a>                 }
<a class="jxr_linenumber" name="996" href="#996">996</a>                 choice.setValue(values);
<a class="jxr_linenumber" name="997" href="#997">997</a> 
<a class="jxr_linenumber" name="998" href="#998">998</a>                 choice.setChoice(convertChoicesDecimal(choiceMap.get(JSON_PROPERTY_TYPE_CHOICE_CHOICE)));
<a class="jxr_linenumber" name="999" href="#999">999</a> 
<a class="jxr_linenumber" name="1000" href="#1000">1000</a>                 result.add(choice);
<a class="jxr_linenumber" name="1001" href="#1001">1001</a>             }
<a class="jxr_linenumber" name="1002" href="#1002">1002</a>         }
<a class="jxr_linenumber" name="1003" href="#1003">1003</a> 
<a class="jxr_linenumber" name="1004" href="#1004">1004</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1005" href="#1005">1005</a>     }
<a class="jxr_linenumber" name="1006" href="#1006">1006</a> 
<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> <em class="jxr_javadoccomment">     * Converts choices.</em>
<a class="jxr_linenumber" name="1009" href="#1009">1009</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1010" href="#1010">1010</a>     @SuppressWarnings({ <span class="jxr_string">"rawtypes"</span> })
<a class="jxr_linenumber" name="1011" href="#1011">1011</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;Choice&lt;GregorianCalendar&gt;&gt; convertChoicesDateTime(<strong class="jxr_keyword">final</strong> Object choices) {
<a class="jxr_linenumber" name="1012" href="#1012">1012</a>         <strong class="jxr_keyword">if</strong> (!(choices instanceof List)) {
<a class="jxr_linenumber" name="1013" href="#1013">1013</a>             <strong class="jxr_keyword">return</strong> <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> 
<a class="jxr_linenumber" name="1016" href="#1016">1016</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="1017" href="#1017">1017</a> 
<a class="jxr_linenumber" name="1018" href="#1018">1018</a>         <strong class="jxr_keyword">for</strong> (Object obj : (List) choices) {
<a class="jxr_linenumber" name="1019" href="#1019">1019</a>             Map&lt;String, Object&gt; choiceMap = getMap(obj);
<a class="jxr_linenumber" name="1020" href="#1020">1020</a>             <strong class="jxr_keyword">if</strong> (choiceMap != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1021" href="#1021">1021</a>                 ChoiceImpl&lt;GregorianCalendar&gt; choice = <strong class="jxr_keyword">new</strong> ChoiceImpl&lt;GregorianCalendar&gt;();
<a class="jxr_linenumber" name="1022" href="#1022">1022</a>                 choice.setDisplayName(getString(choiceMap, JSON_PROPERTY_TYPE_CHOICE_DISPLAYNAME));
<a class="jxr_linenumber" name="1023" href="#1023">1023</a> 
<a class="jxr_linenumber" name="1024" href="#1024">1024</a>                 Object choiceValue = choiceMap.get(JSON_PROPERTY_TYPE_CHOICE_VALUE);
<a class="jxr_linenumber" name="1025" href="#1025">1025</a>                 List&lt;GregorianCalendar&gt; values = <strong class="jxr_keyword">new</strong> ArrayList&lt;GregorianCalendar&gt;();
<a class="jxr_linenumber" name="1026" href="#1026">1026</a>                 <strong class="jxr_keyword">if</strong> (choiceValue instanceof List) {
<a class="jxr_linenumber" name="1027" href="#1027">1027</a>                     <strong class="jxr_keyword">for</strong> (Object value : (List) choiceValue) {
<a class="jxr_linenumber" name="1028" href="#1028">1028</a>                         values.add((GregorianCalendar) getCMISValue(value, PropertyType.DATETIME));
<a class="jxr_linenumber" name="1029" href="#1029">1029</a>                     }
<a class="jxr_linenumber" name="1030" href="#1030">1030</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1031" href="#1031">1031</a>                     values.add((GregorianCalendar) getCMISValue(choiceValue, PropertyType.DATETIME));
<a class="jxr_linenumber" name="1032" href="#1032">1032</a>                 }
<a class="jxr_linenumber" name="1033" href="#1033">1033</a>                 choice.setValue(values);
<a class="jxr_linenumber" name="1034" href="#1034">1034</a> 
<a class="jxr_linenumber" name="1035" href="#1035">1035</a>                 choice.setChoice(convertChoicesDateTime(choiceMap.get(JSON_PROPERTY_TYPE_CHOICE_CHOICE)));
<a class="jxr_linenumber" name="1036" href="#1036">1036</a> 
<a class="jxr_linenumber" name="1037" href="#1037">1037</a>                 result.add(choice);
<a class="jxr_linenumber" name="1038" href="#1038">1038</a>             }
<a class="jxr_linenumber" name="1039" href="#1039">1039</a>         }
<a class="jxr_linenumber" name="1040" href="#1040">1040</a> 
<a class="jxr_linenumber" name="1041" href="#1041">1041</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1042" href="#1042">1042</a>     }
<a class="jxr_linenumber" name="1043" href="#1043">1043</a> 
<a class="jxr_linenumber" name="1044" href="#1044">1044</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1045" href="#1045">1045</a> <em class="jxr_javadoccomment">     * Converts an object.</em>
<a class="jxr_linenumber" name="1046" href="#1046">1046</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1047" href="#1047">1047</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> convert(<strong class="jxr_keyword">final</strong> ObjectData object, <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/TypeCache.html">TypeCache</a> typeCache,
<a class="jxr_linenumber" name="1048" href="#1048">1048</a>             <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/JSONConverter.html">PropertyMode</a> propertyMode, <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> succinct) {
<a class="jxr_linenumber" name="1049" href="#1049">1049</a>         <strong class="jxr_keyword">if</strong> (object == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1050" href="#1050">1050</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1051" href="#1051">1051</a>         }
<a class="jxr_linenumber" name="1052" href="#1052">1052</a> 
<a class="jxr_linenumber" name="1053" href="#1053">1053</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="1054" href="#1054">1054</a> 
<a class="jxr_linenumber" name="1055" href="#1055">1055</a>         <em class="jxr_comment">// properties</em>
<a class="jxr_linenumber" name="1056" href="#1056">1056</a>         <strong class="jxr_keyword">if</strong> (object.getProperties() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1057" href="#1057">1057</a>             <strong class="jxr_keyword">if</strong> (succinct) {
<a class="jxr_linenumber" name="1058" href="#1058">1058</a>                 <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> properties = convert(object.getProperties(), object.getId(), typeCache, propertyMode, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="1059" href="#1059">1059</a>                 <strong class="jxr_keyword">if</strong> (properties != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1060" href="#1060">1060</a>                     result.put(JSON_OBJECT_SUCCINCT_PROPERTIES, properties);
<a class="jxr_linenumber" name="1061" href="#1061">1061</a>                 }
<a class="jxr_linenumber" name="1062" href="#1062">1062</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1063" href="#1063">1063</a>                 <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> properties = convert(object.getProperties(), object.getId(), typeCache, propertyMode, false);
<a class="jxr_linenumber" name="1064" href="#1064">1064</a>                 <strong class="jxr_keyword">if</strong> (properties != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1065" href="#1065">1065</a>                     result.put(JSON_OBJECT_PROPERTIES, properties);
<a class="jxr_linenumber" name="1066" href="#1066">1066</a>                 }
<a class="jxr_linenumber" name="1067" href="#1067">1067</a>             }
<a class="jxr_linenumber" name="1068" href="#1068">1068</a> 
<a class="jxr_linenumber" name="1069" href="#1069">1069</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> propertiesExtension = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="1070" href="#1070">1070</a>             convertExtension(object.getProperties(), propertiesExtension);
<a class="jxr_linenumber" name="1071" href="#1071">1071</a>             <strong class="jxr_keyword">if</strong> (!propertiesExtension.isEmpty()) {
<a class="jxr_linenumber" name="1072" href="#1072">1072</a>                 result.put(JSON_OBJECT_PROPERTIES_EXTENSION, propertiesExtension);
<a class="jxr_linenumber" name="1073" href="#1073">1073</a>             }
<a class="jxr_linenumber" name="1074" href="#1074">1074</a>         }
<a class="jxr_linenumber" name="1075" href="#1075">1075</a> 
<a class="jxr_linenumber" name="1076" href="#1076">1076</a>         <em class="jxr_comment">// allowable actions</em>
<a class="jxr_linenumber" name="1077" href="#1077">1077</a>         <strong class="jxr_keyword">if</strong> (object.getAllowableActions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1078" href="#1078">1078</a>             result.put(JSON_OBJECT_ALLOWABLE_ACTIONS, convert(object.getAllowableActions()));
<a class="jxr_linenumber" name="1079" href="#1079">1079</a>         }
<a class="jxr_linenumber" name="1080" href="#1080">1080</a> 
<a class="jxr_linenumber" name="1081" href="#1081">1081</a>         <em class="jxr_comment">// relationships</em>
<a class="jxr_linenumber" name="1082" href="#1082">1082</a>         <strong class="jxr_keyword">if</strong> ((object.getRelationships() != <strong class="jxr_keyword">null</strong>) &amp;&amp; (!object.getRelationships().isEmpty())) {
<a class="jxr_linenumber" name="1083" href="#1083">1083</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> relationships = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a>();
<a class="jxr_linenumber" name="1084" href="#1084">1084</a> 
<a class="jxr_linenumber" name="1085" href="#1085">1085</a>             <strong class="jxr_keyword">for</strong> (ObjectData relationship : object.getRelationships()) {
<a class="jxr_linenumber" name="1086" href="#1086">1086</a>                 relationships.add(convert(relationship, typeCache, propertyMode, succinct));
<a class="jxr_linenumber" name="1087" href="#1087">1087</a>             }
<a class="jxr_linenumber" name="1088" href="#1088">1088</a> 
<a class="jxr_linenumber" name="1089" href="#1089">1089</a>             result.put(JSON_OBJECT_RELATIONSHIPS, relationships);
<a class="jxr_linenumber" name="1090" href="#1090">1090</a>         }
<a class="jxr_linenumber" name="1091" href="#1091">1091</a> 
<a class="jxr_linenumber" name="1092" href="#1092">1092</a>         <em class="jxr_comment">// change event info</em>
<a class="jxr_linenumber" name="1093" href="#1093">1093</a>         <strong class="jxr_keyword">if</strong> (object.getChangeEventInfo() != <strong class="jxr_keyword">null</strong> &amp;&amp; propertyMode == PropertyMode.CHANGE) {
<a class="jxr_linenumber" name="1094" href="#1094">1094</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> changeEventInfo = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="1095" href="#1095">1095</a> 
<a class="jxr_linenumber" name="1096" href="#1096">1096</a>             ChangeEventInfo cei = object.getChangeEventInfo();
<a class="jxr_linenumber" name="1097" href="#1097">1097</a>             changeEventInfo.put(JSON_CHANGE_EVENT_TYPE, getJSONEnumValue(cei.getChangeType()));
<a class="jxr_linenumber" name="1098" href="#1098">1098</a>             changeEventInfo.put(JSON_CHANGE_EVENT_TIME, getJSONValue(cei.getChangeTime()));
<a class="jxr_linenumber" name="1099" href="#1099">1099</a> 
<a class="jxr_linenumber" name="1100" href="#1100">1100</a>             convertExtension(object.getChangeEventInfo(), changeEventInfo);
<a class="jxr_linenumber" name="1101" href="#1101">1101</a> 
<a class="jxr_linenumber" name="1102" href="#1102">1102</a>             result.put(JSON_OBJECT_CHANGE_EVENT_INFO, changeEventInfo);
<a class="jxr_linenumber" name="1103" href="#1103">1103</a>         }
<a class="jxr_linenumber" name="1104" href="#1104">1104</a> 
<a class="jxr_linenumber" name="1105" href="#1105">1105</a>         <em class="jxr_comment">// ACL</em>
<a class="jxr_linenumber" name="1106" href="#1106">1106</a>         <strong class="jxr_keyword">if</strong> ((object.getAcl() != <strong class="jxr_keyword">null</strong>) &amp;&amp; (object.getAcl().getAces() != <strong class="jxr_keyword">null</strong>) &amp;&amp; propertyMode != PropertyMode.QUERY) {
<a class="jxr_linenumber" name="1107" href="#1107">1107</a>             result.put(JSON_OBJECT_ACL, convert(object.getAcl()));
<a class="jxr_linenumber" name="1108" href="#1108">1108</a>             result.put(JSON_OBJECT_EXACT_ACL, object.isExactAcl());
<a class="jxr_linenumber" name="1109" href="#1109">1109</a>         }
<a class="jxr_linenumber" name="1110" href="#1110">1110</a> 
<a class="jxr_linenumber" name="1111" href="#1111">1111</a>         <em class="jxr_comment">// policy ids</em>
<a class="jxr_linenumber" name="1112" href="#1112">1112</a>         <strong class="jxr_keyword">if</strong> ((object.getPolicyIds() != <strong class="jxr_keyword">null</strong>) &amp;&amp; (object.getPolicyIds().getPolicyIds() != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="1113" href="#1113">1113</a>                 &amp;&amp; propertyMode != PropertyMode.QUERY) {
<a class="jxr_linenumber" name="1114" href="#1114">1114</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> policyIds = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="1115" href="#1115">1115</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> ids = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a>();
<a class="jxr_linenumber" name="1116" href="#1116">1116</a>             policyIds.put(JSON_OBJECT_POLICY_IDS_IDS, ids);
<a class="jxr_linenumber" name="1117" href="#1117">1117</a> 
<a class="jxr_linenumber" name="1118" href="#1118">1118</a>             <strong class="jxr_keyword">for</strong> (String pi : object.getPolicyIds().getPolicyIds()) {
<a class="jxr_linenumber" name="1119" href="#1119">1119</a>                 ids.add(pi);
<a class="jxr_linenumber" name="1120" href="#1120">1120</a>             }
<a class="jxr_linenumber" name="1121" href="#1121">1121</a> 
<a class="jxr_linenumber" name="1122" href="#1122">1122</a>             convertExtension(object.getPolicyIds(), policyIds);
<a class="jxr_linenumber" name="1123" href="#1123">1123</a> 
<a class="jxr_linenumber" name="1124" href="#1124">1124</a>             result.put(JSON_OBJECT_POLICY_IDS, policyIds);
<a class="jxr_linenumber" name="1125" href="#1125">1125</a>         }
<a class="jxr_linenumber" name="1126" href="#1126">1126</a> 
<a class="jxr_linenumber" name="1127" href="#1127">1127</a>         <em class="jxr_comment">// renditions</em>
<a class="jxr_linenumber" name="1128" href="#1128">1128</a>         <strong class="jxr_keyword">if</strong> ((object.getRenditions() != <strong class="jxr_keyword">null</strong>) &amp;&amp; (!object.getRenditions().isEmpty())) {
<a class="jxr_linenumber" name="1129" href="#1129">1129</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> renditions = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a>();
<a class="jxr_linenumber" name="1130" href="#1130">1130</a> 
<a class="jxr_linenumber" name="1131" href="#1131">1131</a>             <strong class="jxr_keyword">for</strong> (RenditionData rendition : object.getRenditions()) {
<a class="jxr_linenumber" name="1132" href="#1132">1132</a>                 renditions.add(convert(rendition));
<a class="jxr_linenumber" name="1133" href="#1133">1133</a>             }
<a class="jxr_linenumber" name="1134" href="#1134">1134</a> 
<a class="jxr_linenumber" name="1135" href="#1135">1135</a>             result.put(JSON_OBJECT_RENDITIONS, renditions);
<a class="jxr_linenumber" name="1136" href="#1136">1136</a>         }
<a class="jxr_linenumber" name="1137" href="#1137">1137</a> 
<a class="jxr_linenumber" name="1138" href="#1138">1138</a>         convertExtension(object, result);
<a class="jxr_linenumber" name="1139" href="#1139">1139</a> 
<a class="jxr_linenumber" name="1140" href="#1140">1140</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1141" href="#1141">1141</a>     }
<a class="jxr_linenumber" name="1142" href="#1142">1142</a> 
<a class="jxr_linenumber" name="1143" href="#1143">1143</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1144" href="#1144">1144</a> <em class="jxr_javadoccomment">     * Converts a bag of properties.</em>
<a class="jxr_linenumber" name="1145" href="#1145">1145</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1146" href="#1146">1146</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> convert(<strong class="jxr_keyword">final</strong> Properties properties, <strong class="jxr_keyword">final</strong> String objectId, <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/TypeCache.html">TypeCache</a> typeCache,
<a class="jxr_linenumber" name="1147" href="#1147">1147</a>             <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/JSONConverter.html">PropertyMode</a> propertyMode, <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> succinct) {
<a class="jxr_linenumber" name="1148" href="#1148">1148</a>         <strong class="jxr_keyword">if</strong> (properties == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1149" href="#1149">1149</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1150" href="#1150">1150</a>         }
<a class="jxr_linenumber" name="1151" href="#1151">1151</a> 
<a class="jxr_linenumber" name="1152" href="#1152">1152</a>         <em class="jxr_comment">// get the type</em>
<a class="jxr_linenumber" name="1153" href="#1153">1153</a>         TypeDefinition type = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1154" href="#1154">1154</a>         <strong class="jxr_keyword">if</strong> (typeCache != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1155" href="#1155">1155</a>             PropertyData&lt;?&gt; typeProp = properties.getProperties().get(PropertyIds.OBJECT_TYPE_ID);
<a class="jxr_linenumber" name="1156" href="#1156">1156</a>             <strong class="jxr_keyword">if</strong> (typeProp instanceof PropertyId) {
<a class="jxr_linenumber" name="1157" href="#1157">1157</a>                 String typeId = ((PropertyId) typeProp).getFirstValue();
<a class="jxr_linenumber" name="1158" href="#1158">1158</a>                 <strong class="jxr_keyword">if</strong> (typeId != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1159" href="#1159">1159</a>                     type = typeCache.getTypeDefinition(typeId);
<a class="jxr_linenumber" name="1160" href="#1160">1160</a>                 }
<a class="jxr_linenumber" name="1161" href="#1161">1161</a>             }
<a class="jxr_linenumber" name="1162" href="#1162">1162</a> 
<a class="jxr_linenumber" name="1163" href="#1163">1163</a>             <strong class="jxr_keyword">if</strong> (type == <strong class="jxr_keyword">null</strong> &amp;&amp; objectId != <strong class="jxr_keyword">null</strong> &amp;&amp; propertyMode != PropertyMode.CHANGE) {
<a class="jxr_linenumber" name="1164" href="#1164">1164</a>                 type = typeCache.getTypeDefinitionForObject(objectId);
<a class="jxr_linenumber" name="1165" href="#1165">1165</a>             }
<a class="jxr_linenumber" name="1166" href="#1166">1166</a>         }
<a class="jxr_linenumber" name="1167" href="#1167">1167</a> 
<a class="jxr_linenumber" name="1168" href="#1168">1168</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="1169" href="#1169">1169</a> 
<a class="jxr_linenumber" name="1170" href="#1170">1170</a>         <strong class="jxr_keyword">for</strong> (PropertyData&lt;?&gt; property : properties.getPropertyList()) {
<a class="jxr_linenumber" name="1171" href="#1171">1171</a>             PropertyDefinition&lt;?&gt; propDef = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1172" href="#1172">1172</a>             <strong class="jxr_keyword">if</strong> (typeCache != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1173" href="#1173">1173</a>                 propDef = typeCache.getPropertyDefinition(property.getId());
<a class="jxr_linenumber" name="1174" href="#1174">1174</a>             }
<a class="jxr_linenumber" name="1175" href="#1175">1175</a>             <strong class="jxr_keyword">if</strong> (propDef == <strong class="jxr_keyword">null</strong> &amp;&amp; type != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1176" href="#1176">1176</a>                 propDef = type.getPropertyDefinitions().get(property.getId());
<a class="jxr_linenumber" name="1177" href="#1177">1177</a>             }
<a class="jxr_linenumber" name="1178" href="#1178">1178</a> 
<a class="jxr_linenumber" name="1179" href="#1179">1179</a>             String propId = (propertyMode == PropertyMode.QUERY ? property.getQueryName() : property.getId());
<a class="jxr_linenumber" name="1180" href="#1180">1180</a>             result.put(propId, convert(property, propDef, succinct));
<a class="jxr_linenumber" name="1181" href="#1181">1181</a>         }
<a class="jxr_linenumber" name="1182" href="#1182">1182</a> 
<a class="jxr_linenumber" name="1183" href="#1183">1183</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1184" href="#1184">1184</a>     }
<a class="jxr_linenumber" name="1185" href="#1185">1185</a> 
<a class="jxr_linenumber" name="1186" href="#1186">1186</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1187" href="#1187">1187</a> <em class="jxr_javadoccomment">     * Converts a property.</em>
<a class="jxr_linenumber" name="1188" href="#1188">1188</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1189" href="#1189">1189</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Object convert(<strong class="jxr_keyword">final</strong> PropertyData&lt;?&gt; property, <strong class="jxr_keyword">final</strong> PropertyDefinition&lt;?&gt; propDef, <strong class="jxr_keyword">boolean</strong> succinct) {
<a class="jxr_linenumber" name="1190" href="#1190">1190</a>         <strong class="jxr_keyword">if</strong> (property == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1191" href="#1191">1191</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1192" href="#1192">1192</a>         }
<a class="jxr_linenumber" name="1193" href="#1193">1193</a> 
<a class="jxr_linenumber" name="1194" href="#1194">1194</a>         <strong class="jxr_keyword">if</strong> (succinct) {
<a class="jxr_linenumber" name="1195" href="#1195">1195</a>             Object result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1196" href="#1196">1196</a> 
<a class="jxr_linenumber" name="1197" href="#1197">1197</a>             <strong class="jxr_keyword">if</strong> (propDef != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1198" href="#1198">1198</a>                 <strong class="jxr_keyword">if</strong> ((property.getValues() == <strong class="jxr_keyword">null</strong>) || (property.getValues().size() == 0)) {
<a class="jxr_linenumber" name="1199" href="#1199">1199</a>                     result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1200" href="#1200">1200</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propDef.getCardinality() == Cardinality.SINGLE) {
<a class="jxr_linenumber" name="1201" href="#1201">1201</a>                     result = getJSONValue(property.getValues().get(0));
<a class="jxr_linenumber" name="1202" href="#1202">1202</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1203" href="#1203">1203</a>                     <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> values = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a>();
<a class="jxr_linenumber" name="1204" href="#1204">1204</a> 
<a class="jxr_linenumber" name="1205" href="#1205">1205</a>                     <strong class="jxr_keyword">for</strong> (Object value : property.getValues()) {
<a class="jxr_linenumber" name="1206" href="#1206">1206</a>                         values.add(getJSONValue(value));
<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>                     result = values;
<a class="jxr_linenumber" name="1210" href="#1210">1210</a>                 }
<a class="jxr_linenumber" name="1211" href="#1211">1211</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1212" href="#1212">1212</a>                 <strong class="jxr_keyword">if</strong> ((property.getValues() == <strong class="jxr_keyword">null</strong>) || (property.getValues().size() == 0)) {
<a class="jxr_linenumber" name="1213" href="#1213">1213</a>                     result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1214" href="#1214">1214</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property.getValues().size() &gt; 0) {
<a class="jxr_linenumber" name="1215" href="#1215">1215</a>                     <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> values = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a>();
<a class="jxr_linenumber" name="1216" href="#1216">1216</a> 
<a class="jxr_linenumber" name="1217" href="#1217">1217</a>                     <strong class="jxr_keyword">for</strong> (Object value : property.getValues()) {
<a class="jxr_linenumber" name="1218" href="#1218">1218</a>                         values.add(getJSONValue(value));
<a class="jxr_linenumber" name="1219" href="#1219">1219</a>                     }
<a class="jxr_linenumber" name="1220" href="#1220">1220</a> 
<a class="jxr_linenumber" name="1221" href="#1221">1221</a>                     result = values;
<a class="jxr_linenumber" name="1222" href="#1222">1222</a>                 }
<a class="jxr_linenumber" name="1223" href="#1223">1223</a>             }
<a class="jxr_linenumber" name="1224" href="#1224">1224</a> 
<a class="jxr_linenumber" name="1225" href="#1225">1225</a>             <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1226" href="#1226">1226</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1227" href="#1227">1227</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="1228" href="#1228">1228</a> 
<a class="jxr_linenumber" name="1229" href="#1229">1229</a>             result.put(JSON_PROPERTY_ID, property.getId());
<a class="jxr_linenumber" name="1230" href="#1230">1230</a>             setIfNotNull(JSON_PROPERTY_LOCALNAME, property.getLocalName(), result);
<a class="jxr_linenumber" name="1231" href="#1231">1231</a>             setIfNotNull(JSON_PROPERTY_DISPLAYNAME, property.getDisplayName(), result);
<a class="jxr_linenumber" name="1232" href="#1232">1232</a>             setIfNotNull(JSON_PROPERTY_QUERYNAME, property.getQueryName(), result);
<a class="jxr_linenumber" name="1233" href="#1233">1233</a> 
<a class="jxr_linenumber" name="1234" href="#1234">1234</a>             <strong class="jxr_keyword">if</strong> (propDef != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1235" href="#1235">1235</a>                 result.put(JSON_PROPERTY_DATATYPE, getJSONEnumValue(propDef.getPropertyType()));
<a class="jxr_linenumber" name="1236" href="#1236">1236</a>                 result.put(JSON_PROPERTY_CARDINALITY, getJSONEnumValue(propDef.getCardinality()));
<a class="jxr_linenumber" name="1237" href="#1237">1237</a> 
<a class="jxr_linenumber" name="1238" href="#1238">1238</a>                 <strong class="jxr_keyword">if</strong> ((property.getValues() == <strong class="jxr_keyword">null</strong>) || (property.getValues().size() == 0)) {
<a class="jxr_linenumber" name="1239" href="#1239">1239</a>                     result.put(JSON_PROPERTY_VALUE, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1240" href="#1240">1240</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propDef.getCardinality() == Cardinality.SINGLE) {
<a class="jxr_linenumber" name="1241" href="#1241">1241</a>                     result.put(JSON_PROPERTY_VALUE, getJSONValue(property.getValues().get(0)));
<a class="jxr_linenumber" name="1242" href="#1242">1242</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1243" href="#1243">1243</a>                     <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> values = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a>();
<a class="jxr_linenumber" name="1244" href="#1244">1244</a> 
<a class="jxr_linenumber" name="1245" href="#1245">1245</a>                     <strong class="jxr_keyword">for</strong> (Object value : property.getValues()) {
<a class="jxr_linenumber" name="1246" href="#1246">1246</a>                         values.add(getJSONValue(value));
<a class="jxr_linenumber" name="1247" href="#1247">1247</a>                     }
<a class="jxr_linenumber" name="1248" href="#1248">1248</a> 
<a class="jxr_linenumber" name="1249" href="#1249">1249</a>                     result.put(JSON_PROPERTY_VALUE, values);
<a class="jxr_linenumber" name="1250" href="#1250">1250</a>                 }
<a class="jxr_linenumber" name="1251" href="#1251">1251</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1252" href="#1252">1252</a>                 result.put(JSON_PROPERTY_DATATYPE, getJSONPropertyDataType(property));
<a class="jxr_linenumber" name="1253" href="#1253">1253</a> 
<a class="jxr_linenumber" name="1254" href="#1254">1254</a>                 <strong class="jxr_keyword">if</strong> ((property.getValues() == <strong class="jxr_keyword">null</strong>) || (property.getValues().size() == 0)) {
<a class="jxr_linenumber" name="1255" href="#1255">1255</a>                     result.put(JSON_PROPERTY_VALUE, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1256" href="#1256">1256</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property.getValues().size() &gt; 0) {
<a class="jxr_linenumber" name="1257" href="#1257">1257</a>                     <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> values = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a>();
<a class="jxr_linenumber" name="1258" href="#1258">1258</a> 
<a class="jxr_linenumber" name="1259" href="#1259">1259</a>                     <strong class="jxr_keyword">for</strong> (Object value : property.getValues()) {
<a class="jxr_linenumber" name="1260" href="#1260">1260</a>                         values.add(getJSONValue(value));
<a class="jxr_linenumber" name="1261" href="#1261">1261</a>                     }
<a class="jxr_linenumber" name="1262" href="#1262">1262</a> 
<a class="jxr_linenumber" name="1263" href="#1263">1263</a>                     result.put(JSON_PROPERTY_VALUE, values);
<a class="jxr_linenumber" name="1264" href="#1264">1264</a>                 }
<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>             convertExtension(property, result);
<a class="jxr_linenumber" name="1268" href="#1268">1268</a> 
<a class="jxr_linenumber" name="1269" href="#1269">1269</a>             <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1270" href="#1270">1270</a>         }
<a class="jxr_linenumber" name="1271" href="#1271">1271</a>     }
<a class="jxr_linenumber" name="1272" href="#1272">1272</a> 
<a class="jxr_linenumber" name="1273" href="#1273">1273</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1274" href="#1274">1274</a> <em class="jxr_javadoccomment">     * Converts allowable actions.</em>
<a class="jxr_linenumber" name="1275" href="#1275">1275</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1276" href="#1276">1276</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> convert(<strong class="jxr_keyword">final</strong> AllowableActions allowableActions) {
<a class="jxr_linenumber" name="1277" href="#1277">1277</a>         <strong class="jxr_keyword">if</strong> (allowableActions == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1278" href="#1278">1278</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1279" href="#1279">1279</a>         }
<a class="jxr_linenumber" name="1280" href="#1280">1280</a> 
<a class="jxr_linenumber" name="1281" href="#1281">1281</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="1282" href="#1282">1282</a> 
<a class="jxr_linenumber" name="1283" href="#1283">1283</a>         Set&lt;Action&gt; actionSet = allowableActions.getAllowableActions();
<a class="jxr_linenumber" name="1284" href="#1284">1284</a>         <strong class="jxr_keyword">for</strong> (Action action : Action.values()) {
<a class="jxr_linenumber" name="1285" href="#1285">1285</a>             result.put(action.value(), actionSet.contains(action));
<a class="jxr_linenumber" name="1286" href="#1286">1286</a>         }
<a class="jxr_linenumber" name="1287" href="#1287">1287</a> 
<a class="jxr_linenumber" name="1288" href="#1288">1288</a>         convertExtension(allowableActions, result);
<a class="jxr_linenumber" name="1289" href="#1289">1289</a> 
<a class="jxr_linenumber" name="1290" href="#1290">1290</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1291" href="#1291">1291</a>     }
<a class="jxr_linenumber" name="1292" href="#1292">1292</a> 
<a class="jxr_linenumber" name="1293" href="#1293">1293</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1294" href="#1294">1294</a> <em class="jxr_javadoccomment">     * Converts an ACL.</em>
<a class="jxr_linenumber" name="1295" href="#1295">1295</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1296" href="#1296">1296</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> convert(<strong class="jxr_keyword">final</strong> Acl acl) {
<a class="jxr_linenumber" name="1297" href="#1297">1297</a>         <strong class="jxr_keyword">if</strong> ((acl == <strong class="jxr_keyword">null</strong>) || (acl.getAces() == <strong class="jxr_keyword">null</strong>)) {
<a class="jxr_linenumber" name="1298" href="#1298">1298</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1299" href="#1299">1299</a>         }
<a class="jxr_linenumber" name="1300" href="#1300">1300</a> 
<a class="jxr_linenumber" name="1301" href="#1301">1301</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> aceObjects = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</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">for</strong> (Ace ace : acl.getAces()) {
<a class="jxr_linenumber" name="1304" href="#1304">1304</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> permissions = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a>();
<a class="jxr_linenumber" name="1305" href="#1305">1305</a>             <strong class="jxr_keyword">if</strong> (ace.getPermissions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1306" href="#1306">1306</a>                 <strong class="jxr_keyword">for</strong> (String p : ace.getPermissions()) {
<a class="jxr_linenumber" name="1307" href="#1307">1307</a>                     permissions.add(p);
<a class="jxr_linenumber" name="1308" href="#1308">1308</a>                 }
<a class="jxr_linenumber" name="1309" href="#1309">1309</a>             }
<a class="jxr_linenumber" name="1310" href="#1310">1310</a> 
<a class="jxr_linenumber" name="1311" href="#1311">1311</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> aceObject = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="1312" href="#1312">1312</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> principalObjecy = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="1313" href="#1313">1313</a>             principalObjecy.put(JSON_ACE_PRINCIPAL_ID, ace.getPrincipalId());
<a class="jxr_linenumber" name="1314" href="#1314">1314</a>             aceObject.put(JSON_ACE_PRINCIPAL, principalObjecy);
<a class="jxr_linenumber" name="1315" href="#1315">1315</a>             aceObject.put(JSON_ACE_PERMISSIONS, permissions);
<a class="jxr_linenumber" name="1316" href="#1316">1316</a>             aceObject.put(JSON_ACE_IS_DIRECT, ace.isDirect());
<a class="jxr_linenumber" name="1317" href="#1317">1317</a> 
<a class="jxr_linenumber" name="1318" href="#1318">1318</a>             aceObjects.add(aceObject);
<a class="jxr_linenumber" name="1319" href="#1319">1319</a>         }
<a class="jxr_linenumber" name="1320" href="#1320">1320</a> 
<a class="jxr_linenumber" name="1321" href="#1321">1321</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="1322" href="#1322">1322</a>         result.put(JSON_ACL_ACES, aceObjects);
<a class="jxr_linenumber" name="1323" href="#1323">1323</a>         setIfNotNull(JSON_ACL_IS_EXACT, acl.isExact(), result);
<a class="jxr_linenumber" name="1324" href="#1324">1324</a> 
<a class="jxr_linenumber" name="1325" href="#1325">1325</a>         convertExtension(acl, result);
<a class="jxr_linenumber" name="1326" href="#1326">1326</a> 
<a class="jxr_linenumber" name="1327" href="#1327">1327</a>         <strong class="jxr_keyword">return</strong> result;
<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 rendition.</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">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> convert(<strong class="jxr_keyword">final</strong> RenditionData rendition) {
<a class="jxr_linenumber" name="1334" href="#1334">1334</a>         <strong class="jxr_keyword">if</strong> (rendition == <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>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="1339" href="#1339">1339</a> 
<a class="jxr_linenumber" name="1340" href="#1340">1340</a>         result.put(JSON_RENDITION_STREAM_ID, rendition.getStreamId());
<a class="jxr_linenumber" name="1341" href="#1341">1341</a>         result.put(JSON_RENDITION_MIMETYPE, rendition.getMimeType());
<a class="jxr_linenumber" name="1342" href="#1342">1342</a>         result.put(JSON_RENDITION_LENGTH, rendition.getBigLength());
<a class="jxr_linenumber" name="1343" href="#1343">1343</a>         result.put(JSON_RENDITION_KIND, rendition.getKind());
<a class="jxr_linenumber" name="1344" href="#1344">1344</a>         setIfNotNull(JSON_RENDITION_TITLE, rendition.getTitle(), result);
<a class="jxr_linenumber" name="1345" href="#1345">1345</a>         setIfNotNull(JSON_RENDITION_HEIGHT, rendition.getBigHeight(), result);
<a class="jxr_linenumber" name="1346" href="#1346">1346</a>         setIfNotNull(JSON_RENDITION_WIDTH, rendition.getBigWidth(), result);
<a class="jxr_linenumber" name="1347" href="#1347">1347</a>         setIfNotNull(JSON_RENDITION_DOCUMENT_ID, rendition.getRenditionDocumentId(), result);
<a class="jxr_linenumber" name="1348" href="#1348">1348</a> 
<a class="jxr_linenumber" name="1349" href="#1349">1349</a>         convertExtension(rendition, result);
<a class="jxr_linenumber" name="1350" href="#1350">1350</a> 
<a class="jxr_linenumber" name="1351" href="#1351">1351</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1352" href="#1352">1352</a>     }
<a class="jxr_linenumber" name="1353" href="#1353">1353</a> 
<a class="jxr_linenumber" name="1354" href="#1354">1354</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1355" href="#1355">1355</a> <em class="jxr_javadoccomment">     * Converts a query object list.</em>
<a class="jxr_linenumber" name="1356" href="#1356">1356</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1357" href="#1357">1357</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> convert(<strong class="jxr_keyword">final</strong> ObjectList list, <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/TypeCache.html">TypeCache</a> typeCache, <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/JSONConverter.html">PropertyMode</a> propertyMode,
<a class="jxr_linenumber" name="1358" href="#1358">1358</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> succinct) {
<a class="jxr_linenumber" name="1359" href="#1359">1359</a>         <strong class="jxr_keyword">if</strong> (list == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1360" href="#1360">1360</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1361" href="#1361">1361</a>         }
<a class="jxr_linenumber" name="1362" href="#1362">1362</a> 
<a class="jxr_linenumber" name="1363" href="#1363">1363</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="1364" href="#1364">1364</a> 
<a class="jxr_linenumber" name="1365" href="#1365">1365</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> objects = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a>();
<a class="jxr_linenumber" name="1366" href="#1366">1366</a>         <strong class="jxr_keyword">if</strong> (list.getObjects() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1367" href="#1367">1367</a>             <strong class="jxr_keyword">for</strong> (ObjectData object : list.getObjects()) {
<a class="jxr_linenumber" name="1368" href="#1368">1368</a>                 objects.add(convert(object, typeCache, propertyMode, succinct));
<a class="jxr_linenumber" name="1369" href="#1369">1369</a>             }
<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>         <strong class="jxr_keyword">if</strong> (propertyMode == PropertyMode.QUERY) {
<a class="jxr_linenumber" name="1373" href="#1373">1373</a>             result.put(JSON_QUERYRESULTLIST_RESULTS, objects);
<a class="jxr_linenumber" name="1374" href="#1374">1374</a> 
<a class="jxr_linenumber" name="1375" href="#1375">1375</a>             setIfNotNull(JSON_QUERYRESULTLIST_HAS_MORE_ITEMS, list.hasMoreItems(), result);
<a class="jxr_linenumber" name="1376" href="#1376">1376</a>             setIfNotNull(JSON_QUERYRESULTLIST_NUM_ITEMS, list.getNumItems(), result);
<a class="jxr_linenumber" name="1377" href="#1377">1377</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1378" href="#1378">1378</a>             result.put(JSON_OBJECTLIST_OBJECTS, objects);
<a class="jxr_linenumber" name="1379" href="#1379">1379</a> 
<a class="jxr_linenumber" name="1380" href="#1380">1380</a>             setIfNotNull(JSON_OBJECTLIST_HAS_MORE_ITEMS, list.hasMoreItems(), result);
<a class="jxr_linenumber" name="1381" href="#1381">1381</a>             setIfNotNull(JSON_OBJECTLIST_NUM_ITEMS, list.getNumItems(), result);
<a class="jxr_linenumber" name="1382" href="#1382">1382</a>         }
<a class="jxr_linenumber" name="1383" href="#1383">1383</a> 
<a class="jxr_linenumber" name="1384" href="#1384">1384</a>         convertExtension(list, result);
<a class="jxr_linenumber" name="1385" href="#1385">1385</a> 
<a class="jxr_linenumber" name="1386" href="#1386">1386</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1387" href="#1387">1387</a>     }
<a class="jxr_linenumber" name="1388" href="#1388">1388</a> 
<a class="jxr_linenumber" name="1389" href="#1389">1389</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1390" href="#1390">1390</a> <em class="jxr_javadoccomment">     * Converts an object in a folder list.</em>
<a class="jxr_linenumber" name="1391" href="#1391">1391</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1392" href="#1392">1392</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> convert(<strong class="jxr_keyword">final</strong> ObjectInFolderData objectInFolder, <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/TypeCache.html">TypeCache</a> typeCache,
<a class="jxr_linenumber" name="1393" href="#1393">1393</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> succinct) {
<a class="jxr_linenumber" name="1394" href="#1394">1394</a>         <strong class="jxr_keyword">if</strong> ((objectInFolder == <strong class="jxr_keyword">null</strong>) || (objectInFolder.getObject() == <strong class="jxr_keyword">null</strong>)) {
<a class="jxr_linenumber" name="1395" href="#1395">1395</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1396" href="#1396">1396</a>         }
<a class="jxr_linenumber" name="1397" href="#1397">1397</a> 
<a class="jxr_linenumber" name="1398" href="#1398">1398</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="1399" href="#1399">1399</a>         result.put(JSON_OBJECTINFOLDER_OBJECT,
<a class="jxr_linenumber" name="1400" href="#1400">1400</a>                 convert(objectInFolder.getObject(), typeCache, PropertyMode.OBJECT, succinct));
<a class="jxr_linenumber" name="1401" href="#1401">1401</a>         setIfNotNull(JSON_OBJECTINFOLDER_PATH_SEGMENT, objectInFolder.getPathSegment(), result);
<a class="jxr_linenumber" name="1402" href="#1402">1402</a> 
<a class="jxr_linenumber" name="1403" href="#1403">1403</a>         convertExtension(objectInFolder, result);
<a class="jxr_linenumber" name="1404" href="#1404">1404</a> 
<a class="jxr_linenumber" name="1405" href="#1405">1405</a>         <strong class="jxr_keyword">return</strong> result;
<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>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1409" href="#1409">1409</a> <em class="jxr_javadoccomment">     * Converts a folder list.</em>
<a class="jxr_linenumber" name="1410" href="#1410">1410</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1411" href="#1411">1411</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> convert(<strong class="jxr_keyword">final</strong> ObjectInFolderList objectInFolderList, <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/TypeCache.html">TypeCache</a> typeCache,
<a class="jxr_linenumber" name="1412" href="#1412">1412</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> succinct) {
<a class="jxr_linenumber" name="1413" href="#1413">1413</a>         <strong class="jxr_keyword">if</strong> (objectInFolderList == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1414" href="#1414">1414</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1415" href="#1415">1415</a>         }
<a class="jxr_linenumber" name="1416" href="#1416">1416</a> 
<a class="jxr_linenumber" name="1417" href="#1417">1417</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="1418" href="#1418">1418</a> 
<a class="jxr_linenumber" name="1419" href="#1419">1419</a>         <strong class="jxr_keyword">if</strong> (objectInFolderList.getObjects() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1420" href="#1420">1420</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> objects = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a>();
<a class="jxr_linenumber" name="1421" href="#1421">1421</a> 
<a class="jxr_linenumber" name="1422" href="#1422">1422</a>             <strong class="jxr_keyword">for</strong> (ObjectInFolderData object : objectInFolderList.getObjects()) {
<a class="jxr_linenumber" name="1423" href="#1423">1423</a>                 objects.add(convert(object, typeCache, succinct));
<a class="jxr_linenumber" name="1424" href="#1424">1424</a>             }
<a class="jxr_linenumber" name="1425" href="#1425">1425</a> 
<a class="jxr_linenumber" name="1426" href="#1426">1426</a>             result.put(JSON_OBJECTINFOLDERLIST_OBJECTS, objects);
<a class="jxr_linenumber" name="1427" href="#1427">1427</a>         }
<a class="jxr_linenumber" name="1428" href="#1428">1428</a> 
<a class="jxr_linenumber" name="1429" href="#1429">1429</a>         setIfNotNull(JSON_OBJECTINFOLDERLIST_HAS_MORE_ITEMS, objectInFolderList.hasMoreItems(), result);
<a class="jxr_linenumber" name="1430" href="#1430">1430</a>         setIfNotNull(JSON_OBJECTINFOLDERLIST_NUM_ITEMS, objectInFolderList.getNumItems(), result);
<a class="jxr_linenumber" name="1431" href="#1431">1431</a> 
<a class="jxr_linenumber" name="1432" href="#1432">1432</a>         convertExtension(objectInFolderList, result);
<a class="jxr_linenumber" name="1433" href="#1433">1433</a> 
<a class="jxr_linenumber" name="1434" href="#1434">1434</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1435" href="#1435">1435</a>     }
<a class="jxr_linenumber" name="1436" href="#1436">1436</a> 
<a class="jxr_linenumber" name="1437" href="#1437">1437</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1438" href="#1438">1438</a> <em class="jxr_javadoccomment">     * Converts a folder container.</em>
<a class="jxr_linenumber" name="1439" href="#1439">1439</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1440" href="#1440">1440</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> convert(<strong class="jxr_keyword">final</strong> ObjectInFolderContainer container, <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/TypeCache.html">TypeCache</a> typeCache,
<a class="jxr_linenumber" name="1441" href="#1441">1441</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> succinct) {
<a class="jxr_linenumber" name="1442" href="#1442">1442</a>         <strong class="jxr_keyword">if</strong> (container == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1443" href="#1443">1443</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1444" href="#1444">1444</a>         }
<a class="jxr_linenumber" name="1445" href="#1445">1445</a> 
<a class="jxr_linenumber" name="1446" href="#1446">1446</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="1447" href="#1447">1447</a>         result.put(JSON_OBJECTINFOLDERCONTAINER_OBJECT, convert(container.getObject(), typeCache, succinct));
<a class="jxr_linenumber" name="1448" href="#1448">1448</a> 
<a class="jxr_linenumber" name="1449" href="#1449">1449</a>         <strong class="jxr_keyword">if</strong> ((container.getChildren() != <strong class="jxr_keyword">null</strong>) &amp;&amp; (container.getChildren().size() &gt; 0)) {
<a class="jxr_linenumber" name="1450" href="#1450">1450</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> children = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a>();
<a class="jxr_linenumber" name="1451" href="#1451">1451</a>             <strong class="jxr_keyword">for</strong> (ObjectInFolderContainer descendant : container.getChildren()) {
<a class="jxr_linenumber" name="1452" href="#1452">1452</a>                 children.add(JSONConverter.convert(descendant, typeCache, succinct));
<a class="jxr_linenumber" name="1453" href="#1453">1453</a>             }
<a class="jxr_linenumber" name="1454" href="#1454">1454</a> 
<a class="jxr_linenumber" name="1455" href="#1455">1455</a>             result.put(JSON_OBJECTINFOLDERCONTAINER_CHILDREN, children);
<a class="jxr_linenumber" name="1456" href="#1456">1456</a>         }
<a class="jxr_linenumber" name="1457" href="#1457">1457</a> 
<a class="jxr_linenumber" name="1458" href="#1458">1458</a>         convertExtension(container, result);
<a class="jxr_linenumber" name="1459" href="#1459">1459</a> 
<a class="jxr_linenumber" name="1460" href="#1460">1460</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1461" href="#1461">1461</a>     }
<a class="jxr_linenumber" name="1462" href="#1462">1462</a> 
<a class="jxr_linenumber" name="1463" href="#1463">1463</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1464" href="#1464">1464</a> <em class="jxr_javadoccomment">     * Converts an object parent.</em>
<a class="jxr_linenumber" name="1465" href="#1465">1465</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1466" href="#1466">1466</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> convert(<strong class="jxr_keyword">final</strong> ObjectParentData parent, <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/TypeCache.html">TypeCache</a> typeCache, <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> succinct) {
<a class="jxr_linenumber" name="1467" href="#1467">1467</a>         <strong class="jxr_keyword">if</strong> ((parent == <strong class="jxr_keyword">null</strong>) || (parent.getObject() == <strong class="jxr_keyword">null</strong>)) {
<a class="jxr_linenumber" name="1468" href="#1468">1468</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<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 href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="1472" href="#1472">1472</a>         result.put(JSON_OBJECTPARENTS_OBJECT, convert(parent.getObject(), typeCache, PropertyMode.OBJECT, succinct));
<a class="jxr_linenumber" name="1473" href="#1473">1473</a>         <strong class="jxr_keyword">if</strong> (parent.getRelativePathSegment() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1474" href="#1474">1474</a>             result.put(JSON_OBJECTPARENTS_RELATIVE_PATH_SEGMENT, parent.getRelativePathSegment());
<a class="jxr_linenumber" name="1475" href="#1475">1475</a>         }
<a class="jxr_linenumber" name="1476" href="#1476">1476</a> 
<a class="jxr_linenumber" name="1477" href="#1477">1477</a>         convertExtension(parent, result);
<a class="jxr_linenumber" name="1478" href="#1478">1478</a> 
<a class="jxr_linenumber" name="1479" href="#1479">1479</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1480" href="#1480">1480</a>     }
<a class="jxr_linenumber" name="1481" href="#1481">1481</a> 
<a class="jxr_linenumber" name="1482" href="#1482">1482</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1483" href="#1483">1483</a> <em class="jxr_javadoccomment">     * Converts a type definition.</em>
<a class="jxr_linenumber" name="1484" href="#1484">1484</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1485" href="#1485">1485</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> convert(<strong class="jxr_keyword">final</strong> TypeDefinition type) {
<a class="jxr_linenumber" name="1486" href="#1486">1486</a>         <strong class="jxr_keyword">if</strong> (type == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1487" href="#1487">1487</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1488" href="#1488">1488</a>         }
<a class="jxr_linenumber" name="1489" href="#1489">1489</a> 
<a class="jxr_linenumber" name="1490" href="#1490">1490</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="1491" href="#1491">1491</a>         result.put(JSON_TYPE_ID, type.getId());
<a class="jxr_linenumber" name="1492" href="#1492">1492</a>         result.put(JSON_TYPE_LOCALNAME, type.getLocalName());
<a class="jxr_linenumber" name="1493" href="#1493">1493</a>         result.put(JSON_TYPE_LOCALNAMESPACE, type.getLocalNamespace());
<a class="jxr_linenumber" name="1494" href="#1494">1494</a>         setIfNotNull(JSON_TYPE_DISPLAYNAME, type.getDisplayName(), result);
<a class="jxr_linenumber" name="1495" href="#1495">1495</a>         setIfNotNull(JSON_TYPE_QUERYNAME, type.getQueryName(), result);
<a class="jxr_linenumber" name="1496" href="#1496">1496</a>         setIfNotNull(JSON_TYPE_DESCRIPTION, type.getDescription(), result);
<a class="jxr_linenumber" name="1497" href="#1497">1497</a>         result.put(JSON_TYPE_BASE_ID, getJSONEnumValue(type.getBaseTypeId()));
<a class="jxr_linenumber" name="1498" href="#1498">1498</a>         setIfNotNull(JSON_TYPE_PARENT_ID, type.getParentTypeId(), result);
<a class="jxr_linenumber" name="1499" href="#1499">1499</a>         result.put(JSON_TYPE_CREATABLE, type.isCreatable());
<a class="jxr_linenumber" name="1500" href="#1500">1500</a>         result.put(JSON_TYPE_FILEABLE, type.isFileable());
<a class="jxr_linenumber" name="1501" href="#1501">1501</a>         result.put(JSON_TYPE_QUERYABLE, type.isQueryable());
<a class="jxr_linenumber" name="1502" href="#1502">1502</a>         result.put(JSON_TYPE_FULLTEXT_INDEXED, type.isFulltextIndexed());
<a class="jxr_linenumber" name="1503" href="#1503">1503</a>         result.put(JSON_TYPE_INCLUDE_IN_SUPERTYPE_QUERY, type.isIncludedInSupertypeQuery());
<a class="jxr_linenumber" name="1504" href="#1504">1504</a>         result.put(JSON_TYPE_CONTROLABLE_POLICY, type.isControllablePolicy());
<a class="jxr_linenumber" name="1505" href="#1505">1505</a>         result.put(JSON_TYPE_CONTROLABLE_ACL, type.isControllableAcl());
<a class="jxr_linenumber" name="1506" href="#1506">1506</a> 
<a class="jxr_linenumber" name="1507" href="#1507">1507</a>         <strong class="jxr_keyword">if</strong> (type.getTypeMutability() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1508" href="#1508">1508</a>             TypeMutability typeMutability = type.getTypeMutability();
<a class="jxr_linenumber" name="1509" href="#1509">1509</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> typeMutabilityJson = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="1510" href="#1510">1510</a> 
<a class="jxr_linenumber" name="1511" href="#1511">1511</a>             typeMutabilityJson.put(JSON_TYPE_TYPE_MUTABILITY_CREATE, typeMutability.canCreate());
<a class="jxr_linenumber" name="1512" href="#1512">1512</a>             typeMutabilityJson.put(JSON_TYPE_TYPE_MUTABILITY_UPDATE, typeMutability.canUpdate());
<a class="jxr_linenumber" name="1513" href="#1513">1513</a>             typeMutabilityJson.put(JSON_TYPE_TYPE_MUTABILITY_DELETE, typeMutability.canDelete());
<a class="jxr_linenumber" name="1514" href="#1514">1514</a> 
<a class="jxr_linenumber" name="1515" href="#1515">1515</a>             convertExtension(typeMutability, typeMutabilityJson);
<a class="jxr_linenumber" name="1516" href="#1516">1516</a> 
<a class="jxr_linenumber" name="1517" href="#1517">1517</a>             result.put(JSON_TYPE_TYPE_MUTABILITY, typeMutabilityJson);
<a class="jxr_linenumber" name="1518" href="#1518">1518</a>         }
<a class="jxr_linenumber" name="1519" href="#1519">1519</a> 
<a class="jxr_linenumber" name="1520" href="#1520">1520</a>         <strong class="jxr_keyword">if</strong> (type instanceof DocumentTypeDefinition) {
<a class="jxr_linenumber" name="1521" href="#1521">1521</a>             result.put(JSON_TYPE_VERSIONABLE, ((DocumentTypeDefinition) type).isVersionable());
<a class="jxr_linenumber" name="1522" href="#1522">1522</a>             result.put(JSON_TYPE_CONTENTSTREAM_ALLOWED,
<a class="jxr_linenumber" name="1523" href="#1523">1523</a>                     getJSONEnumValue(((DocumentTypeDefinition) type).getContentStreamAllowed()));
<a class="jxr_linenumber" name="1524" href="#1524">1524</a>         }
<a class="jxr_linenumber" name="1525" href="#1525">1525</a> 
<a class="jxr_linenumber" name="1526" href="#1526">1526</a>         <strong class="jxr_keyword">if</strong> (type instanceof RelationshipTypeDefinition) {
<a class="jxr_linenumber" name="1527" href="#1527">1527</a>             result.put(JSON_TYPE_ALLOWED_SOURCE_TYPES,
<a class="jxr_linenumber" name="1528" href="#1528">1528</a>                     getJSONArrayFromList(((RelationshipTypeDefinition) type).getAllowedSourceTypeIds()));
<a class="jxr_linenumber" name="1529" href="#1529">1529</a>             result.put(JSON_TYPE_ALLOWED_TARGET_TYPES,
<a class="jxr_linenumber" name="1530" href="#1530">1530</a>                     getJSONArrayFromList(((RelationshipTypeDefinition) type).getAllowedTargetTypeIds()));
<a class="jxr_linenumber" name="1531" href="#1531">1531</a>         }
<a class="jxr_linenumber" name="1532" href="#1532">1532</a> 
<a class="jxr_linenumber" name="1533" href="#1533">1533</a>         <strong class="jxr_keyword">if</strong> ((type.getPropertyDefinitions() != <strong class="jxr_keyword">null</strong>) &amp;&amp; (!type.getPropertyDefinitions().isEmpty())) {
<a class="jxr_linenumber" name="1534" href="#1534">1534</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> propertyDefs = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="1535" href="#1535">1535</a> 
<a class="jxr_linenumber" name="1536" href="#1536">1536</a>             <strong class="jxr_keyword">for</strong> (PropertyDefinition&lt;?&gt; pd : type.getPropertyDefinitions().values()) {
<a class="jxr_linenumber" name="1537" href="#1537">1537</a>                 propertyDefs.put(pd.getId(), convert(pd));
<a class="jxr_linenumber" name="1538" href="#1538">1538</a>             }
<a class="jxr_linenumber" name="1539" href="#1539">1539</a> 
<a class="jxr_linenumber" name="1540" href="#1540">1540</a>             result.put(JSON_TYPE_PROPERTY_DEFINITIONS, propertyDefs);
<a class="jxr_linenumber" name="1541" href="#1541">1541</a>         }
<a class="jxr_linenumber" name="1542" href="#1542">1542</a> 
<a class="jxr_linenumber" name="1543" href="#1543">1543</a>         convertExtension(type, result);
<a class="jxr_linenumber" name="1544" href="#1544">1544</a> 
<a class="jxr_linenumber" name="1545" href="#1545">1545</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1546" href="#1546">1546</a>     }
<a class="jxr_linenumber" name="1547" href="#1547">1547</a> 
<a class="jxr_linenumber" name="1548" href="#1548">1548</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1549" href="#1549">1549</a> <em class="jxr_javadoccomment">     * Converts a property type definition.</em>
<a class="jxr_linenumber" name="1550" href="#1550">1550</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1551" href="#1551">1551</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> convert(<strong class="jxr_keyword">final</strong> PropertyDefinition&lt;?&gt; propertyDefinition) {
<a class="jxr_linenumber" name="1552" href="#1552">1552</a>         <strong class="jxr_keyword">if</strong> (propertyDefinition == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1553" href="#1553">1553</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1554" href="#1554">1554</a>         }
<a class="jxr_linenumber" name="1555" href="#1555">1555</a> 
<a class="jxr_linenumber" name="1556" href="#1556">1556</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="1557" href="#1557">1557</a> 
<a class="jxr_linenumber" name="1558" href="#1558">1558</a>         <em class="jxr_comment">// type specific</em>
<a class="jxr_linenumber" name="1559" href="#1559">1559</a>         <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof PropertyStringDefinition) {
<a class="jxr_linenumber" name="1560" href="#1560">1560</a>             setIfNotNull(JSON_PROPERTY_TYPE_MAX_LENGTH, ((PropertyStringDefinition) propertyDefinition).getMaxLength(),
<a class="jxr_linenumber" name="1561" href="#1561">1561</a>                     result);
<a class="jxr_linenumber" name="1562" href="#1562">1562</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof PropertyIdDefinition) {
<a class="jxr_linenumber" name="1563" href="#1563">1563</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof PropertyIntegerDefinition) {
<a class="jxr_linenumber" name="1564" href="#1564">1564</a>             setIfNotNull(JSON_PROPERTY_TYPE_MIN_VALUE, ((PropertyIntegerDefinition) propertyDefinition).getMinValue(),
<a class="jxr_linenumber" name="1565" href="#1565">1565</a>                     result);
<a class="jxr_linenumber" name="1566" href="#1566">1566</a>             setIfNotNull(JSON_PROPERTY_TYPE_MAX_VALUE, ((PropertyIntegerDefinition) propertyDefinition).getMaxValue(),
<a class="jxr_linenumber" name="1567" href="#1567">1567</a>                     result);
<a class="jxr_linenumber" name="1568" href="#1568">1568</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof PropertyDecimalDefinition) {
<a class="jxr_linenumber" name="1569" href="#1569">1569</a>             setIfNotNull(JSON_PROPERTY_TYPE_MIN_VALUE, ((PropertyDecimalDefinition) propertyDefinition).getMinValue(),
<a class="jxr_linenumber" name="1570" href="#1570">1570</a>                     result);
<a class="jxr_linenumber" name="1571" href="#1571">1571</a>             setIfNotNull(JSON_PROPERTY_TYPE_MAX_VALUE, ((PropertyDecimalDefinition) propertyDefinition).getMaxValue(),
<a class="jxr_linenumber" name="1572" href="#1572">1572</a>                     result);
<a class="jxr_linenumber" name="1573" href="#1573">1573</a>             DecimalPrecision precision = ((PropertyDecimalDefinition) propertyDefinition).getPrecision();
<a class="jxr_linenumber" name="1574" href="#1574">1574</a>             <strong class="jxr_keyword">if</strong> (precision != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1575" href="#1575">1575</a>                 result.put(JSON_PROPERTY_TYPE_PRECISION, precision.value());
<a class="jxr_linenumber" name="1576" href="#1576">1576</a>             }
<a class="jxr_linenumber" name="1577" href="#1577">1577</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof PropertyBooleanDefinition) {
<a class="jxr_linenumber" name="1578" href="#1578">1578</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof PropertyDateTimeDefinition) {
<a class="jxr_linenumber" name="1579" href="#1579">1579</a>             DateTimeResolution resolution = ((PropertyDateTimeDefinition) propertyDefinition).getDateTimeResolution();
<a class="jxr_linenumber" name="1580" href="#1580">1580</a>             <strong class="jxr_keyword">if</strong> (resolution != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1581" href="#1581">1581</a>                 result.put(JSON_PROPERTY_TYPE_RESOLUTION, resolution.value());
<a class="jxr_linenumber" name="1582" href="#1582">1582</a>             }
<a class="jxr_linenumber" name="1583" href="#1583">1583</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof PropertyHtmlDefinition) {
<a class="jxr_linenumber" name="1584" href="#1584">1584</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof PropertyUriDefinition) {
<a class="jxr_linenumber" name="1585" href="#1585">1585</a>         }
<a class="jxr_linenumber" name="1586" href="#1586">1586</a> 
<a class="jxr_linenumber" name="1587" href="#1587">1587</a>         <em class="jxr_comment">// default value</em>
<a class="jxr_linenumber" name="1588" href="#1588">1588</a>         <strong class="jxr_keyword">if</strong> (propertyDefinition.getDefaultValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1589" href="#1589">1589</a>             <strong class="jxr_keyword">if</strong> (propertyDefinition.getCardinality() == Cardinality.SINGLE) {
<a class="jxr_linenumber" name="1590" href="#1590">1590</a>                 <strong class="jxr_keyword">if</strong> (!propertyDefinition.getDefaultValue().isEmpty()) {
<a class="jxr_linenumber" name="1591" href="#1591">1591</a>                     result.put(JSON_PROPERTY_TYPE_DEAULT_VALUE, getJSONValue(propertyDefinition.getDefaultValue()
<a class="jxr_linenumber" name="1592" href="#1592">1592</a>                             .get(0)));
<a class="jxr_linenumber" name="1593" href="#1593">1593</a>                 }
<a class="jxr_linenumber" name="1594" href="#1594">1594</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1595" href="#1595">1595</a>                 <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> values = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a>();
<a class="jxr_linenumber" name="1596" href="#1596">1596</a>                 <strong class="jxr_keyword">for</strong> (Object value : propertyDefinition.getDefaultValue()) {
<a class="jxr_linenumber" name="1597" href="#1597">1597</a>                     values.add(getJSONValue(value));
<a class="jxr_linenumber" name="1598" href="#1598">1598</a>                 }
<a class="jxr_linenumber" name="1599" href="#1599">1599</a>                 result.put(JSON_PROPERTY_TYPE_DEAULT_VALUE, values);
<a class="jxr_linenumber" name="1600" href="#1600">1600</a>             }
<a class="jxr_linenumber" name="1601" href="#1601">1601</a>         }
<a class="jxr_linenumber" name="1602" href="#1602">1602</a> 
<a class="jxr_linenumber" name="1603" href="#1603">1603</a>         <em class="jxr_comment">// choices</em>
<a class="jxr_linenumber" name="1604" href="#1604">1604</a>         <strong class="jxr_keyword">if</strong> (propertyDefinition.getChoices() != <strong class="jxr_keyword">null</strong> &amp;&amp; !propertyDefinition.getChoices().isEmpty()) {
<a class="jxr_linenumber" name="1605" href="#1605">1605</a>             result.put(JSON_PROPERTY_TYPE_CHOICE,
<a class="jxr_linenumber" name="1606" href="#1606">1606</a>                     convertChoices(propertyDefinition.getChoices(), propertyDefinition.getCardinality()));
<a class="jxr_linenumber" name="1607" href="#1607">1607</a>         }
<a class="jxr_linenumber" name="1608" href="#1608">1608</a> 
<a class="jxr_linenumber" name="1609" href="#1609">1609</a>         <em class="jxr_comment">// generic</em>
<a class="jxr_linenumber" name="1610" href="#1610">1610</a>         result.put(JSON_PROPERTY_TYPE_ID, propertyDefinition.getId());
<a class="jxr_linenumber" name="1611" href="#1611">1611</a>         result.put(JSON_PROPERTY_TYPE_LOCALNAME, propertyDefinition.getLocalName());
<a class="jxr_linenumber" name="1612" href="#1612">1612</a>         setIfNotNull(JSON_PROPERTY_TYPE_LOCALNAMESPACE, propertyDefinition.getLocalNamespace(), result);
<a class="jxr_linenumber" name="1613" href="#1613">1613</a>         setIfNotNull(JSON_PROPERTY_TYPE_DISPLAYNAME, propertyDefinition.getDisplayName(), result);
<a class="jxr_linenumber" name="1614" href="#1614">1614</a>         setIfNotNull(JSON_PROPERTY_TYPE_QUERYNAME, propertyDefinition.getQueryName(), result);
<a class="jxr_linenumber" name="1615" href="#1615">1615</a>         setIfNotNull(JSON_PROPERTY_TYPE_DESCRIPTION, propertyDefinition.getDescription(), result);
<a class="jxr_linenumber" name="1616" href="#1616">1616</a>         result.put(JSON_PROPERTY_TYPE_PROPERTY_TYPE, getJSONEnumValue(propertyDefinition.getPropertyType()));
<a class="jxr_linenumber" name="1617" href="#1617">1617</a>         result.put(JSON_PROPERTY_TYPE_CARDINALITY, getJSONEnumValue(propertyDefinition.getCardinality()));
<a class="jxr_linenumber" name="1618" href="#1618">1618</a>         result.put(JSON_PROPERTY_TYPE_UPDATABILITY, getJSONEnumValue(propertyDefinition.getUpdatability()));
<a class="jxr_linenumber" name="1619" href="#1619">1619</a>         setIfNotNull(JSON_PROPERTY_TYPE_INHERITED, propertyDefinition.isInherited(), result);
<a class="jxr_linenumber" name="1620" href="#1620">1620</a>         result.put(JSON_PROPERTY_TYPE_REQUIRED, propertyDefinition.isRequired());
<a class="jxr_linenumber" name="1621" href="#1621">1621</a>         result.put(JSON_PROPERTY_TYPE_QUERYABLE, propertyDefinition.isQueryable());
<a class="jxr_linenumber" name="1622" href="#1622">1622</a>         result.put(JSON_PROPERTY_TYPE_ORDERABLE, propertyDefinition.isOrderable());
<a class="jxr_linenumber" name="1623" href="#1623">1623</a>         setIfNotNull(JSON_PROPERTY_TYPE_OPENCHOICE, propertyDefinition.isOpenChoice(), result);
<a class="jxr_linenumber" name="1624" href="#1624">1624</a> 
<a class="jxr_linenumber" name="1625" href="#1625">1625</a>         convertExtension(propertyDefinition, result);
<a class="jxr_linenumber" name="1626" href="#1626">1626</a> 
<a class="jxr_linenumber" name="1627" href="#1627">1627</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1628" href="#1628">1628</a>     }
<a class="jxr_linenumber" name="1629" href="#1629">1629</a> 
<a class="jxr_linenumber" name="1630" href="#1630">1630</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1631" href="#1631">1631</a> <em class="jxr_javadoccomment">     * Converts choices.</em>
<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>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> &lt;T&gt; <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> convertChoices(<strong class="jxr_keyword">final</strong> List&lt;Choice&lt;T&gt;&gt; choices, <strong class="jxr_keyword">final</strong> Cardinality cardinality) {
<a class="jxr_linenumber" name="1634" href="#1634">1634</a>         <strong class="jxr_keyword">if</strong> (choices == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1635" href="#1635">1635</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1636" href="#1636">1636</a>         }
<a class="jxr_linenumber" name="1637" href="#1637">1637</a> 
<a class="jxr_linenumber" name="1638" href="#1638">1638</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a>();
<a class="jxr_linenumber" name="1639" href="#1639">1639</a> 
<a class="jxr_linenumber" name="1640" href="#1640">1640</a>         <strong class="jxr_keyword">for</strong> (Choice&lt;?&gt; choice : choices) {
<a class="jxr_linenumber" name="1641" href="#1641">1641</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> jsonChoice = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="1642" href="#1642">1642</a> 
<a class="jxr_linenumber" name="1643" href="#1643">1643</a>             jsonChoice.put(JSON_PROPERTY_TYPE_CHOICE_DISPLAYNAME, choice.getDisplayName());
<a class="jxr_linenumber" name="1644" href="#1644">1644</a> 
<a class="jxr_linenumber" name="1645" href="#1645">1645</a>             <strong class="jxr_keyword">if</strong> (cardinality == Cardinality.SINGLE) {
<a class="jxr_linenumber" name="1646" href="#1646">1646</a>                 <strong class="jxr_keyword">if</strong> (!choice.getValue().isEmpty()) {
<a class="jxr_linenumber" name="1647" href="#1647">1647</a>                     jsonChoice.put(JSON_PROPERTY_TYPE_CHOICE_VALUE, getJSONValue(choice.getValue().get(0)));
<a class="jxr_linenumber" name="1648" href="#1648">1648</a>                 }
<a class="jxr_linenumber" name="1649" href="#1649">1649</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1650" href="#1650">1650</a>                 <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> values = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a>();
<a class="jxr_linenumber" name="1651" href="#1651">1651</a>                 <strong class="jxr_keyword">for</strong> (Object value : choice.getValue()) {
<a class="jxr_linenumber" name="1652" href="#1652">1652</a>                     values.add(getJSONValue(value));
<a class="jxr_linenumber" name="1653" href="#1653">1653</a>                 }
<a class="jxr_linenumber" name="1654" href="#1654">1654</a>                 jsonChoice.put(JSON_PROPERTY_TYPE_CHOICE_VALUE, values);
<a class="jxr_linenumber" name="1655" href="#1655">1655</a>             }
<a class="jxr_linenumber" name="1656" href="#1656">1656</a> 
<a class="jxr_linenumber" name="1657" href="#1657">1657</a>             <strong class="jxr_keyword">if</strong> (choice.getChoice() != <strong class="jxr_keyword">null</strong> &amp;&amp; !choice.getChoice().isEmpty()) {
<a class="jxr_linenumber" name="1658" href="#1658">1658</a>                 jsonChoice.put(JSON_PROPERTY_TYPE_CHOICE_CHOICE, convertChoices(choice.getChoice(), cardinality));
<a class="jxr_linenumber" name="1659" href="#1659">1659</a>             }
<a class="jxr_linenumber" name="1660" href="#1660">1660</a> 
<a class="jxr_linenumber" name="1661" href="#1661">1661</a>             result.add(jsonChoice);
<a class="jxr_linenumber" name="1662" href="#1662">1662</a>         }
<a class="jxr_linenumber" name="1663" href="#1663">1663</a> 
<a class="jxr_linenumber" name="1664" href="#1664">1664</a>         <strong class="jxr_keyword">return</strong> result;
<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>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1668" href="#1668">1668</a> <em class="jxr_javadoccomment">     * Converts a type definition list.</em>
<a class="jxr_linenumber" name="1669" href="#1669">1669</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1670" href="#1670">1670</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> convert(<strong class="jxr_keyword">final</strong> TypeDefinitionList list) {
<a class="jxr_linenumber" name="1671" href="#1671">1671</a>         <strong class="jxr_keyword">if</strong> (list == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1672" href="#1672">1672</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1673" href="#1673">1673</a>         }
<a class="jxr_linenumber" name="1674" href="#1674">1674</a> 
<a class="jxr_linenumber" name="1675" href="#1675">1675</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="1676" href="#1676">1676</a> 
<a class="jxr_linenumber" name="1677" href="#1677">1677</a>         <strong class="jxr_keyword">if</strong> (list.getList() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1678" href="#1678">1678</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> objects = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a>();
<a class="jxr_linenumber" name="1679" href="#1679">1679</a> 
<a class="jxr_linenumber" name="1680" href="#1680">1680</a>             <strong class="jxr_keyword">for</strong> (TypeDefinition type : list.getList()) {
<a class="jxr_linenumber" name="1681" href="#1681">1681</a>                 objects.add(convert(type));
<a class="jxr_linenumber" name="1682" href="#1682">1682</a>             }
<a class="jxr_linenumber" name="1683" href="#1683">1683</a> 
<a class="jxr_linenumber" name="1684" href="#1684">1684</a>             result.put(JSON_TYPESLIST_TYPES, objects);
<a class="jxr_linenumber" name="1685" href="#1685">1685</a>         }
<a class="jxr_linenumber" name="1686" href="#1686">1686</a> 
<a class="jxr_linenumber" name="1687" href="#1687">1687</a>         setIfNotNull(JSON_TYPESLIST_HAS_MORE_ITEMS, list.hasMoreItems(), result);
<a class="jxr_linenumber" name="1688" href="#1688">1688</a>         setIfNotNull(JSON_TYPESLIST_NUM_ITEMS, list.getNumItems(), result);
<a class="jxr_linenumber" name="1689" href="#1689">1689</a> 
<a class="jxr_linenumber" name="1690" href="#1690">1690</a>         convertExtension(list, result);
<a class="jxr_linenumber" name="1691" href="#1691">1691</a> 
<a class="jxr_linenumber" name="1692" href="#1692">1692</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1693" href="#1693">1693</a>     }
<a class="jxr_linenumber" name="1694" href="#1694">1694</a> 
<a class="jxr_linenumber" name="1695" href="#1695">1695</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1696" href="#1696">1696</a> <em class="jxr_javadoccomment">     * Converts a type definition list.</em>
<a class="jxr_linenumber" name="1697" href="#1697">1697</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1698" href="#1698">1698</a>     @SuppressWarnings({ <span class="jxr_string">"rawtypes"</span>, <span class="jxr_string">"unchecked"</span> })
<a class="jxr_linenumber" name="1699" href="#1699">1699</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> TypeDefinitionList convertTypeChildren(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json) {
<a class="jxr_linenumber" name="1700" href="#1700">1700</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1701" href="#1701">1701</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1702" href="#1702">1702</a>         }
<a class="jxr_linenumber" name="1703" href="#1703">1703</a> 
<a class="jxr_linenumber" name="1704" href="#1704">1704</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="1705" href="#1705">1705</a> 
<a class="jxr_linenumber" name="1706" href="#1706">1706</a>         Object typesList = json.get(JSON_TYPESLIST_TYPES);
<a class="jxr_linenumber" name="1707" href="#1707">1707</a>         List&lt;TypeDefinition&gt; types = <strong class="jxr_keyword">new</strong> ArrayList&lt;TypeDefinition&gt;();
<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> (typesList instanceof List) {
<a class="jxr_linenumber" name="1710" href="#1710">1710</a>             <strong class="jxr_keyword">for</strong> (Object type : (List) typesList) {
<a class="jxr_linenumber" name="1711" href="#1711">1711</a>                 <strong class="jxr_keyword">if</strong> (type instanceof Map) {
<a class="jxr_linenumber" name="1712" href="#1712">1712</a>                     types.add(convertTypeDefinition((Map&lt;String, Object&gt;) type));
<a class="jxr_linenumber" name="1713" href="#1713">1713</a>                 }
<a class="jxr_linenumber" name="1714" href="#1714">1714</a>             }
<a class="jxr_linenumber" name="1715" href="#1715">1715</a>         }
<a class="jxr_linenumber" name="1716" href="#1716">1716</a> 
<a class="jxr_linenumber" name="1717" href="#1717">1717</a>         result.setList(types);
<a class="jxr_linenumber" name="1718" href="#1718">1718</a>         result.setHasMoreItems(getBoolean(json, JSON_TYPESLIST_HAS_MORE_ITEMS));
<a class="jxr_linenumber" name="1719" href="#1719">1719</a>         result.setNumItems(getInteger(json, JSON_TYPESLIST_NUM_ITEMS));
<a class="jxr_linenumber" name="1720" href="#1720">1720</a> 
<a class="jxr_linenumber" name="1721" href="#1721">1721</a>         convertExtension(json, result, TYPESLIST_KEYS);
<a class="jxr_linenumber" name="1722" href="#1722">1722</a> 
<a class="jxr_linenumber" name="1723" href="#1723">1723</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1724" href="#1724">1724</a>     }
<a class="jxr_linenumber" name="1725" href="#1725">1725</a> 
<a class="jxr_linenumber" name="1726" href="#1726">1726</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1727" href="#1727">1727</a> <em class="jxr_javadoccomment">     * Converts a type definition container.</em>
<a class="jxr_linenumber" name="1728" href="#1728">1728</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1729" href="#1729">1729</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> convert(<strong class="jxr_keyword">final</strong> TypeDefinitionContainer container) {
<a class="jxr_linenumber" name="1730" href="#1730">1730</a>         <strong class="jxr_keyword">if</strong> (container == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1731" href="#1731">1731</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1732" href="#1732">1732</a>         }
<a class="jxr_linenumber" name="1733" href="#1733">1733</a> 
<a class="jxr_linenumber" name="1734" href="#1734">1734</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="1735" href="#1735">1735</a>         result.put(JSON_TYPESCONTAINER_TYPE, convert(container.getTypeDefinition()));
<a class="jxr_linenumber" name="1736" href="#1736">1736</a> 
<a class="jxr_linenumber" name="1737" href="#1737">1737</a>         <strong class="jxr_keyword">if</strong> ((container.getChildren() != <strong class="jxr_keyword">null</strong>) &amp;&amp; (container.getChildren().size() &gt; 0)) {
<a class="jxr_linenumber" name="1738" href="#1738">1738</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> children = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a>();
<a class="jxr_linenumber" name="1739" href="#1739">1739</a>             <strong class="jxr_keyword">for</strong> (TypeDefinitionContainer child : container.getChildren()) {
<a class="jxr_linenumber" name="1740" href="#1740">1740</a>                 children.add(JSONConverter.convert(child));
<a class="jxr_linenumber" name="1741" href="#1741">1741</a>             }
<a class="jxr_linenumber" name="1742" href="#1742">1742</a> 
<a class="jxr_linenumber" name="1743" href="#1743">1743</a>             result.put(JSON_TYPESCONTAINER_CHILDREN, children);
<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>         convertExtension(container, result);
<a class="jxr_linenumber" name="1747" href="#1747">1747</a> 
<a class="jxr_linenumber" name="1748" href="#1748">1748</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1749" href="#1749">1749</a>     }
<a class="jxr_linenumber" name="1750" href="#1750">1750</a> 
<a class="jxr_linenumber" name="1751" href="#1751">1751</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1752" href="#1752">1752</a> <em class="jxr_javadoccomment">     * Converts a type definition list.</em>
<a class="jxr_linenumber" name="1753" href="#1753">1753</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1754" href="#1754">1754</a>     @SuppressWarnings({ <span class="jxr_string">"unchecked"</span> })
<a class="jxr_linenumber" name="1755" href="#1755">1755</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> List&lt;TypeDefinitionContainer&gt; convertTypeDescendants(<strong class="jxr_keyword">final</strong> List&lt;Object&gt; json) {
<a class="jxr_linenumber" name="1756" href="#1756">1756</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1757" href="#1757">1757</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1758" href="#1758">1758</a>         }
<a class="jxr_linenumber" name="1759" href="#1759">1759</a> 
<a class="jxr_linenumber" name="1760" href="#1760">1760</a>         <strong class="jxr_keyword">if</strong> (json.isEmpty()) {
<a class="jxr_linenumber" name="1761" href="#1761">1761</a>             <strong class="jxr_keyword">return</strong> Collections.emptyList();
<a class="jxr_linenumber" name="1762" href="#1762">1762</a>         }
<a class="jxr_linenumber" name="1763" href="#1763">1763</a> 
<a class="jxr_linenumber" name="1764" href="#1764">1764</a>         List&lt;TypeDefinitionContainer&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;TypeDefinitionContainer&gt;();
<a class="jxr_linenumber" name="1765" href="#1765">1765</a> 
<a class="jxr_linenumber" name="1766" href="#1766">1766</a>         <strong class="jxr_keyword">for</strong> (Object obj : json) {
<a class="jxr_linenumber" name="1767" href="#1767">1767</a>             <strong class="jxr_keyword">if</strong> (obj instanceof Map) {
<a class="jxr_linenumber" name="1768" href="#1768">1768</a>                 Map&lt;String, Object&gt; jsonContainer = (Map&lt;String, Object&gt;) obj;
<a class="jxr_linenumber" name="1769" href="#1769">1769</a>                 <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/TypeDefinitionContainerImpl.html">TypeDefinitionContainerImpl</a> container = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/TypeDefinitionContainerImpl.html">TypeDefinitionContainerImpl</a>();
<a class="jxr_linenumber" name="1770" href="#1770">1770</a> 
<a class="jxr_linenumber" name="1771" href="#1771">1771</a>                 container.setTypeDefinition(convertTypeDefinition(getMap(jsonContainer.get(JSON_TYPESCONTAINER_TYPE))));
<a class="jxr_linenumber" name="1772" href="#1772">1772</a> 
<a class="jxr_linenumber" name="1773" href="#1773">1773</a>                 Object children = jsonContainer.get(JSON_TYPESCONTAINER_CHILDREN);
<a class="jxr_linenumber" name="1774" href="#1774">1774</a>                 <strong class="jxr_keyword">if</strong> (children instanceof List) {
<a class="jxr_linenumber" name="1775" href="#1775">1775</a>                     container.setChildren(convertTypeDescendants((List&lt;Object&gt;) children));
<a class="jxr_linenumber" name="1776" href="#1776">1776</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1777" href="#1777">1777</a>                     container.setChildren((List&lt;TypeDefinitionContainer&gt;) Collections.EMPTY_LIST);
<a class="jxr_linenumber" name="1778" href="#1778">1778</a>                 }
<a class="jxr_linenumber" name="1779" href="#1779">1779</a> 
<a class="jxr_linenumber" name="1780" href="#1780">1780</a>                 convertExtension(jsonContainer, container, TYPESCONTAINER_KEYS);
<a class="jxr_linenumber" name="1781" href="#1781">1781</a> 
<a class="jxr_linenumber" name="1782" href="#1782">1782</a>                 result.add(container);
<a class="jxr_linenumber" name="1783" href="#1783">1783</a>             }
<a class="jxr_linenumber" name="1784" href="#1784">1784</a>         }
<a class="jxr_linenumber" name="1785" href="#1785">1785</a> 
<a class="jxr_linenumber" name="1786" href="#1786">1786</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1787" href="#1787">1787</a>     }
<a class="jxr_linenumber" name="1788" href="#1788">1788</a> 
<a class="jxr_linenumber" name="1789" href="#1789">1789</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1790" href="#1790">1790</a> <em class="jxr_javadoccomment">     * Converts an object.</em>
<a class="jxr_linenumber" name="1791" href="#1791">1791</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1792" href="#1792">1792</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ObjectData convertObject(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json, <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/TypeCache.html">TypeCache</a> typeCache) {
<a class="jxr_linenumber" name="1793" href="#1793">1793</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1794" href="#1794">1794</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1795" href="#1795">1795</a>         }
<a class="jxr_linenumber" name="1796" href="#1796">1796</a> 
<a class="jxr_linenumber" name="1797" href="#1797">1797</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="1798" href="#1798">1798</a> 
<a class="jxr_linenumber" name="1799" href="#1799">1799</a>         result.setAcl(convertAcl(getMap(json.get(JSON_OBJECT_ACL)), getBoolean(json, JSON_OBJECT_EXACT_ACL)));
<a class="jxr_linenumber" name="1800" href="#1800">1800</a>         result.setAllowableActions(convertAllowableActions(getMap(json.get(JSON_OBJECT_ALLOWABLE_ACTIONS))));
<a class="jxr_linenumber" name="1801" href="#1801">1801</a>         Map&lt;String, Object&gt; jsonChangeEventInfo = getMap(json.get(JSON_OBJECT_CHANGE_EVENT_INFO));
<a class="jxr_linenumber" name="1802" href="#1802">1802</a>         <strong class="jxr_keyword">if</strong> (jsonChangeEventInfo != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1803" href="#1803">1803</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="1804" href="#1804">1804</a> 
<a class="jxr_linenumber" name="1805" href="#1805">1805</a>             changeEventInfo.setChangeTime(getDateTime(jsonChangeEventInfo, JSON_CHANGE_EVENT_TIME));
<a class="jxr_linenumber" name="1806" href="#1806">1806</a>             changeEventInfo.setChangeType(getEnum(jsonChangeEventInfo, JSON_CHANGE_EVENT_TYPE, ChangeType.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="1807" href="#1807">1807</a> 
<a class="jxr_linenumber" name="1808" href="#1808">1808</a>             convertExtension(json, result, CHANGE_EVENT_KEYS);
<a class="jxr_linenumber" name="1809" href="#1809">1809</a> 
<a class="jxr_linenumber" name="1810" href="#1810">1810</a>             result.setChangeEventInfo(changeEventInfo);
<a class="jxr_linenumber" name="1811" href="#1811">1811</a>         }
<a class="jxr_linenumber" name="1812" href="#1812">1812</a>         result.setIsExactAcl(getBoolean(json, JSON_OBJECT_EXACT_ACL));
<a class="jxr_linenumber" name="1813" href="#1813">1813</a>         result.setPolicyIds(convertPolicyIds(getMap(json.get(JSON_OBJECT_POLICY_IDS))));
<a class="jxr_linenumber" name="1814" href="#1814">1814</a> 
<a class="jxr_linenumber" name="1815" href="#1815">1815</a>         Map&lt;String, Object&gt; propMap = getMap(json.get(JSON_OBJECT_SUCCINCT_PROPERTIES));
<a class="jxr_linenumber" name="1816" href="#1816">1816</a>         <strong class="jxr_keyword">if</strong> (propMap != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1817" href="#1817">1817</a>             result.setProperties(convertSuccinctProperties(propMap, getMap(json.get(JSON_OBJECT_PROPERTIES_EXTENSION)),
<a class="jxr_linenumber" name="1818" href="#1818">1818</a>                     typeCache));
<a class="jxr_linenumber" name="1819" href="#1819">1819</a>         }
<a class="jxr_linenumber" name="1820" href="#1820">1820</a>         propMap = getMap(json.get(JSON_OBJECT_PROPERTIES));
<a class="jxr_linenumber" name="1821" href="#1821">1821</a>         <strong class="jxr_keyword">if</strong> (propMap != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1822" href="#1822">1822</a>             result.setProperties(convertProperties(propMap, getMap(json.get(JSON_OBJECT_PROPERTIES_EXTENSION))));
<a class="jxr_linenumber" name="1823" href="#1823">1823</a>         }
<a class="jxr_linenumber" name="1824" href="#1824">1824</a> 
<a class="jxr_linenumber" name="1825" href="#1825">1825</a>         List&lt;Object&gt; jsonRelationships = getList(json.get(JSON_OBJECT_RELATIONSHIPS));
<a class="jxr_linenumber" name="1826" href="#1826">1826</a>         <strong class="jxr_keyword">if</strong> (jsonRelationships != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1827" href="#1827">1827</a>             result.setRelationships(convertObjects(jsonRelationships, typeCache));
<a class="jxr_linenumber" name="1828" href="#1828">1828</a>         }
<a class="jxr_linenumber" name="1829" href="#1829">1829</a>         List&lt;Object&gt; jsonRenditions = getList(json.get(JSON_OBJECT_RENDITIONS));
<a class="jxr_linenumber" name="1830" href="#1830">1830</a>         <strong class="jxr_keyword">if</strong> (jsonRenditions != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1831" href="#1831">1831</a>             result.setRenditions(convertRenditions(jsonRenditions));
<a class="jxr_linenumber" name="1832" href="#1832">1832</a>         }
<a class="jxr_linenumber" name="1833" href="#1833">1833</a> 
<a class="jxr_linenumber" name="1834" href="#1834">1834</a>         convertExtension(json, result, OBJECT_KEYS);
<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_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1840" href="#1840">1840</a> <em class="jxr_javadoccomment">     * Converts an object.</em>
<a class="jxr_linenumber" name="1841" href="#1841">1841</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1842" href="#1842">1842</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> List&lt;ObjectData&gt; convertObjects(<strong class="jxr_keyword">final</strong> List&lt;Object&gt; json, <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/TypeCache.html">TypeCache</a> typeCache) {
<a class="jxr_linenumber" name="1843" href="#1843">1843</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1844" href="#1844">1844</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1845" href="#1845">1845</a>         }
<a class="jxr_linenumber" name="1846" href="#1846">1846</a> 
<a class="jxr_linenumber" name="1847" href="#1847">1847</a>         List&lt;ObjectData&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;ObjectData&gt;();
<a class="jxr_linenumber" name="1848" href="#1848">1848</a>         <strong class="jxr_keyword">for</strong> (Object obj : json) {
<a class="jxr_linenumber" name="1849" href="#1849">1849</a>             ObjectData relationship = convertObject(getMap(obj), typeCache);
<a class="jxr_linenumber" name="1850" href="#1850">1850</a>             <strong class="jxr_keyword">if</strong> (relationship != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1851" href="#1851">1851</a>                 result.add(relationship);
<a class="jxr_linenumber" name="1852" href="#1852">1852</a>             }
<a class="jxr_linenumber" name="1853" href="#1853">1853</a>         }
<a class="jxr_linenumber" name="1854" href="#1854">1854</a> 
<a class="jxr_linenumber" name="1855" href="#1855">1855</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1856" href="#1856">1856</a>     }
<a class="jxr_linenumber" name="1857" href="#1857">1857</a> 
<a class="jxr_linenumber" name="1858" href="#1858">1858</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1859" href="#1859">1859</a> <em class="jxr_javadoccomment">     * Converts an ACL.</em>
<a class="jxr_linenumber" name="1860" href="#1860">1860</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1861" href="#1861">1861</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Acl convertAcl(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json, <strong class="jxr_keyword">final</strong> Boolean isExact) {
<a class="jxr_linenumber" name="1862" href="#1862">1862</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1863" href="#1863">1863</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1864" href="#1864">1864</a>         }
<a class="jxr_linenumber" name="1865" href="#1865">1865</a> 
<a class="jxr_linenumber" name="1866" href="#1866">1866</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="1867" href="#1867">1867</a> 
<a class="jxr_linenumber" name="1868" href="#1868">1868</a>         List&lt;Ace&gt; aces = <strong class="jxr_keyword">new</strong> ArrayList&lt;Ace&gt;();
<a class="jxr_linenumber" name="1869" href="#1869">1869</a> 
<a class="jxr_linenumber" name="1870" href="#1870">1870</a>         List&lt;Object&gt; jsonAces = getList(json.get(JSON_ACL_ACES));
<a class="jxr_linenumber" name="1871" href="#1871">1871</a>         <strong class="jxr_keyword">if</strong> (jsonAces != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1872" href="#1872">1872</a>             <strong class="jxr_keyword">for</strong> (Object obj : jsonAces) {
<a class="jxr_linenumber" name="1873" href="#1873">1873</a>                 Map&lt;String, Object&gt; entry = getMap(obj);
<a class="jxr_linenumber" name="1874" href="#1874">1874</a>                 <strong class="jxr_keyword">if</strong> (entry != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1875" href="#1875">1875</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="1876" href="#1876">1876</a> 
<a class="jxr_linenumber" name="1877" href="#1877">1877</a>                     Boolean isDirect = getBoolean(entry, JSON_ACE_IS_DIRECT);
<a class="jxr_linenumber" name="1878" href="#1878">1878</a>                     ace.setDirect(isDirect != <strong class="jxr_keyword">null</strong> ? isDirect.booleanValue() : <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="1879" href="#1879">1879</a> 
<a class="jxr_linenumber" name="1880" href="#1880">1880</a>                     List&lt;Object&gt; jsonPermissions = getList(entry.get(JSON_ACE_PERMISSIONS));
<a class="jxr_linenumber" name="1881" href="#1881">1881</a>                     <strong class="jxr_keyword">if</strong> (jsonPermissions != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1882" href="#1882">1882</a>                         List&lt;String&gt; permissions = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a class="jxr_linenumber" name="1883" href="#1883">1883</a>                         <strong class="jxr_keyword">for</strong> (Object perm : jsonPermissions) {
<a class="jxr_linenumber" name="1884" href="#1884">1884</a>                             <strong class="jxr_keyword">if</strong> (perm != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1885" href="#1885">1885</a>                                 permissions.add(perm.toString());
<a class="jxr_linenumber" name="1886" href="#1886">1886</a>                             }
<a class="jxr_linenumber" name="1887" href="#1887">1887</a>                         }
<a class="jxr_linenumber" name="1888" href="#1888">1888</a>                         ace.setPermissions(permissions);
<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>                     Map&lt;String, Object&gt; jsonPrincipal = getMap(entry.get(JSON_ACE_PRINCIPAL));
<a class="jxr_linenumber" name="1892" href="#1892">1892</a>                     <strong class="jxr_keyword">if</strong> (jsonPrincipal != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1893" href="#1893">1893</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="1894" href="#1894">1894</a> 
<a class="jxr_linenumber" name="1895" href="#1895">1895</a>                         principal.setPrincipalId(getString(jsonPrincipal, JSON_ACE_PRINCIPAL_ID));
<a class="jxr_linenumber" name="1896" href="#1896">1896</a> 
<a class="jxr_linenumber" name="1897" href="#1897">1897</a>                         convertExtension(jsonPrincipal, principal, PRINCIPAL_KEYS);
<a class="jxr_linenumber" name="1898" href="#1898">1898</a> 
<a class="jxr_linenumber" name="1899" href="#1899">1899</a>                         ace.setPrincipal(principal);
<a class="jxr_linenumber" name="1900" href="#1900">1900</a>                     }
<a class="jxr_linenumber" name="1901" href="#1901">1901</a> 
<a class="jxr_linenumber" name="1902" href="#1902">1902</a>                     convertExtension(entry, ace, ACE_KEYS);
<a class="jxr_linenumber" name="1903" href="#1903">1903</a> 
<a class="jxr_linenumber" name="1904" href="#1904">1904</a>                     aces.add(ace);
<a class="jxr_linenumber" name="1905" href="#1905">1905</a>                 }
<a class="jxr_linenumber" name="1906" href="#1906">1906</a>             }
<a class="jxr_linenumber" name="1907" href="#1907">1907</a>         }
<a class="jxr_linenumber" name="1908" href="#1908">1908</a> 
<a class="jxr_linenumber" name="1909" href="#1909">1909</a>         result.setAces(aces);
<a class="jxr_linenumber" name="1910" href="#1910">1910</a> 
<a class="jxr_linenumber" name="1911" href="#1911">1911</a>         result.setExact(isExact);
<a class="jxr_linenumber" name="1912" href="#1912">1912</a> 
<a class="jxr_linenumber" name="1913" href="#1913">1913</a>         convertExtension(json, result, ACL_KEYS);
<a class="jxr_linenumber" name="1914" href="#1914">1914</a> 
<a class="jxr_linenumber" name="1915" href="#1915">1915</a>         <strong class="jxr_keyword">return</strong> result;
<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>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1919" href="#1919">1919</a> <em class="jxr_javadoccomment">     * Converts allowable actions.</em>
<a class="jxr_linenumber" name="1920" href="#1920">1920</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1921" href="#1921">1921</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> AllowableActions convertAllowableActions(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json) {
<a class="jxr_linenumber" name="1922" href="#1922">1922</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1923" href="#1923">1923</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1924" href="#1924">1924</a>         }
<a class="jxr_linenumber" name="1925" href="#1925">1925</a> 
<a class="jxr_linenumber" name="1926" href="#1926">1926</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="1927" href="#1927">1927</a>         Set&lt;Action&gt; allowableActions = EnumSet.noneOf(Action.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="1928" href="#1928">1928</a> 
<a class="jxr_linenumber" name="1929" href="#1929">1929</a>         <strong class="jxr_keyword">for</strong> (Action action : Action.values()) {
<a class="jxr_linenumber" name="1930" href="#1930">1930</a>             Boolean value = getBoolean(json, action.value());
<a class="jxr_linenumber" name="1931" href="#1931">1931</a>             <strong class="jxr_keyword">if</strong> (value != <strong class="jxr_keyword">null</strong> &amp;&amp; value.booleanValue()) {
<a class="jxr_linenumber" name="1932" href="#1932">1932</a>                 allowableActions.add(action);
<a class="jxr_linenumber" name="1933" href="#1933">1933</a>             }
<a class="jxr_linenumber" name="1934" href="#1934">1934</a>         }
<a class="jxr_linenumber" name="1935" href="#1935">1935</a> 
<a class="jxr_linenumber" name="1936" href="#1936">1936</a>         result.setAllowableActions(allowableActions);
<a class="jxr_linenumber" name="1937" href="#1937">1937</a> 
<a class="jxr_linenumber" name="1938" href="#1938">1938</a>         convertExtension(json, result, ALLOWABLE_ACTIONS_KEYS);
<a class="jxr_linenumber" name="1939" href="#1939">1939</a> 
<a class="jxr_linenumber" name="1940" href="#1940">1940</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1941" href="#1941">1941</a>     }
<a class="jxr_linenumber" name="1942" href="#1942">1942</a> 
<a class="jxr_linenumber" name="1943" href="#1943">1943</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1944" href="#1944">1944</a> <em class="jxr_javadoccomment">     * Converts a list of policy ids.</em>
<a class="jxr_linenumber" name="1945" href="#1945">1945</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1946" href="#1946">1946</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> PolicyIdList convertPolicyIds(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json) {
<a class="jxr_linenumber" name="1947" href="#1947">1947</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1948" href="#1948">1948</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1949" href="#1949">1949</a>         }
<a class="jxr_linenumber" name="1950" href="#1950">1950</a> 
<a class="jxr_linenumber" name="1951" href="#1951">1951</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="1952" href="#1952">1952</a>         List&lt;String&gt; policyIds = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a class="jxr_linenumber" name="1953" href="#1953">1953</a> 
<a class="jxr_linenumber" name="1954" href="#1954">1954</a>         List&lt;Object&gt; ids = getList(json.get(JSON_OBJECT_POLICY_IDS_IDS));
<a class="jxr_linenumber" name="1955" href="#1955">1955</a> 
<a class="jxr_linenumber" name="1956" href="#1956">1956</a>         <strong class="jxr_keyword">if</strong> (ids != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1957" href="#1957">1957</a>             <strong class="jxr_keyword">for</strong> (Object obj : ids) {
<a class="jxr_linenumber" name="1958" href="#1958">1958</a>                 <strong class="jxr_keyword">if</strong> (obj instanceof String) {
<a class="jxr_linenumber" name="1959" href="#1959">1959</a>                     policyIds.add((String) obj);
<a class="jxr_linenumber" name="1960" href="#1960">1960</a>                 }
<a class="jxr_linenumber" name="1961" href="#1961">1961</a>             }
<a class="jxr_linenumber" name="1962" href="#1962">1962</a>         }
<a class="jxr_linenumber" name="1963" href="#1963">1963</a> 
<a class="jxr_linenumber" name="1964" href="#1964">1964</a>         convertExtension(json, result, POLICY_IDS_KEYS);
<a class="jxr_linenumber" name="1965" href="#1965">1965</a> 
<a class="jxr_linenumber" name="1966" href="#1966">1966</a>         result.setPolicyIds(policyIds);
<a class="jxr_linenumber" name="1967" href="#1967">1967</a> 
<a class="jxr_linenumber" name="1968" href="#1968">1968</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1969" href="#1969">1969</a>     }
<a class="jxr_linenumber" name="1970" href="#1970">1970</a> 
<a class="jxr_linenumber" name="1971" href="#1971">1971</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1972" href="#1972">1972</a> <em class="jxr_javadoccomment">     * Converts properties.</em>
<a class="jxr_linenumber" name="1973" href="#1973">1973</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1974" href="#1974">1974</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="1975" href="#1975">1975</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Properties convertProperties(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json, <strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; extJson) {
<a class="jxr_linenumber" name="1976" href="#1976">1976</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1977" href="#1977">1977</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1978" href="#1978">1978</a>         }
<a class="jxr_linenumber" name="1979" href="#1979">1979</a> 
<a class="jxr_linenumber" name="1980" href="#1980">1980</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="1981" href="#1981">1981</a> 
<a class="jxr_linenumber" name="1982" href="#1982">1982</a>         <strong class="jxr_keyword">for</strong> (Object jsonProperty : json.values()) {
<a class="jxr_linenumber" name="1983" href="#1983">1983</a>             Map&lt;String, Object&gt; jsonPropertyMap = getMap(jsonProperty);
<a class="jxr_linenumber" name="1984" href="#1984">1984</a>             <strong class="jxr_keyword">if</strong> (jsonPropertyMap != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1985" href="#1985">1985</a>                 AbstractPropertyData&lt;?&gt; property = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1986" href="#1986">1986</a> 
<a class="jxr_linenumber" name="1987" href="#1987">1987</a>                 String id = getString(jsonPropertyMap, JSON_PROPERTY_ID);
<a class="jxr_linenumber" name="1988" href="#1988">1988</a>                 <strong class="jxr_keyword">if</strong> (id == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1989" href="#1989">1989</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Invalid property!"</span>);
<a class="jxr_linenumber" name="1990" href="#1990">1990</a>                 }
<a class="jxr_linenumber" name="1991" href="#1991">1991</a> 
<a class="jxr_linenumber" name="1992" href="#1992">1992</a>                 PropertyType propertyType = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1993" href="#1993">1993</a>                 <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="1994" href="#1994">1994</a>                     propertyType = PropertyType.fromValue(getString(jsonPropertyMap, JSON_PROPERTY_DATATYPE));
<a class="jxr_linenumber" name="1995" href="#1995">1995</a>                 } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="1996" href="#1996">1996</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Invalid property: "</span> + id);
<a class="jxr_linenumber" name="1997" href="#1997">1997</a>                 }
<a class="jxr_linenumber" name="1998" href="#1998">1998</a> 
<a class="jxr_linenumber" name="1999" href="#1999">1999</a>                 Object value = jsonPropertyMap.get(JSON_PROPERTY_VALUE);
<a class="jxr_linenumber" name="2000" href="#2000">2000</a>                 List&lt;Object&gt; values = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2001" href="#2001">2001</a>                 <strong class="jxr_keyword">if</strong> (value instanceof List) {
<a class="jxr_linenumber" name="2002" href="#2002">2002</a>                     values = (List&lt;Object&gt;) value;
<a class="jxr_linenumber" name="2003" href="#2003">2003</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (value != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2004" href="#2004">2004</a>                     values = Collections.singletonList(value);
<a class="jxr_linenumber" name="2005" href="#2005">2005</a>                 }
<a class="jxr_linenumber" name="2006" href="#2006">2006</a> 
<a class="jxr_linenumber" name="2007" href="#2007">2007</a>                 <strong class="jxr_keyword">switch</strong> (propertyType) {
<a class="jxr_linenumber" name="2008" href="#2008">2008</a>                 <strong class="jxr_keyword">case</strong> STRING:
<a class="jxr_linenumber" name="2009" href="#2009">2009</a>                     property = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyStringImpl.html">PropertyStringImpl</a>();
<a class="jxr_linenumber" name="2010" href="#2010">2010</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyStringImpl.html">PropertyStringImpl</a>) property).setValues(copyStringValues(values));
<a class="jxr_linenumber" name="2011" href="#2011">2011</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2012" href="#2012">2012</a>                 <strong class="jxr_keyword">case</strong> ID:
<a class="jxr_linenumber" name="2013" href="#2013">2013</a>                     property = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIdImpl.html">PropertyIdImpl</a>();
<a class="jxr_linenumber" name="2014" href="#2014">2014</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIdImpl.html">PropertyIdImpl</a>) property).setValues(copyStringValues(values));
<a class="jxr_linenumber" name="2015" href="#2015">2015</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2016" href="#2016">2016</a>                 <strong class="jxr_keyword">case</strong> BOOLEAN:
<a class="jxr_linenumber" name="2017" href="#2017">2017</a>                     property = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyBooleanImpl.html">PropertyBooleanImpl</a>();
<a class="jxr_linenumber" name="2018" href="#2018">2018</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyBooleanImpl.html">PropertyBooleanImpl</a>) property).setValues(copyBooleanValues(values));
<a class="jxr_linenumber" name="2019" href="#2019">2019</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2020" href="#2020">2020</a>                 <strong class="jxr_keyword">case</strong> INTEGER:
<a class="jxr_linenumber" name="2021" href="#2021">2021</a>                     property = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIntegerImpl.html">PropertyIntegerImpl</a>();
<a class="jxr_linenumber" name="2022" href="#2022">2022</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIntegerImpl.html">PropertyIntegerImpl</a>) property).setValues(copyIntegerValues(values));
<a class="jxr_linenumber" name="2023" href="#2023">2023</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2024" href="#2024">2024</a>                 <strong class="jxr_keyword">case</strong> DECIMAL:
<a class="jxr_linenumber" name="2025" href="#2025">2025</a>                     property = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDecimalImpl.html">PropertyDecimalImpl</a>();
<a class="jxr_linenumber" name="2026" href="#2026">2026</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDecimalImpl.html">PropertyDecimalImpl</a>) property).setValues(copyDecimalValues(values));
<a class="jxr_linenumber" name="2027" href="#2027">2027</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2028" href="#2028">2028</a>                 <strong class="jxr_keyword">case</strong> DATETIME:
<a class="jxr_linenumber" name="2029" href="#2029">2029</a>                     property = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDateTimeImpl.html">PropertyDateTimeImpl</a>();
<a class="jxr_linenumber" name="2030" href="#2030">2030</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDateTimeImpl.html">PropertyDateTimeImpl</a>) property).setValues(copyDateTimeValues(values));
<a class="jxr_linenumber" name="2031" href="#2031">2031</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2032" href="#2032">2032</a>                 <strong class="jxr_keyword">case</strong> HTML:
<a class="jxr_linenumber" name="2033" href="#2033">2033</a>                     property = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyHtmlImpl.html">PropertyHtmlImpl</a>();
<a class="jxr_linenumber" name="2034" href="#2034">2034</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyHtmlImpl.html">PropertyHtmlImpl</a>) property).setValues(copyStringValues(values));
<a class="jxr_linenumber" name="2035" href="#2035">2035</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2036" href="#2036">2036</a>                 <strong class="jxr_keyword">case</strong> URI:
<a class="jxr_linenumber" name="2037" href="#2037">2037</a>                     property = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyUriImpl.html">PropertyUriImpl</a>();
<a class="jxr_linenumber" name="2038" href="#2038">2038</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyUriImpl.html">PropertyUriImpl</a>) property).setValues(copyStringValues(values));
<a class="jxr_linenumber" name="2039" href="#2039">2039</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2040" href="#2040">2040</a>                 }
<a class="jxr_linenumber" name="2041" href="#2041">2041</a> 
<a class="jxr_linenumber" name="2042" href="#2042">2042</a>                 property.setId(id);
<a class="jxr_linenumber" name="2043" href="#2043">2043</a>                 property.setDisplayName(getString(jsonPropertyMap, JSON_PROPERTY_DISPLAYNAME));
<a class="jxr_linenumber" name="2044" href="#2044">2044</a>                 property.setQueryName(getString(jsonPropertyMap, JSON_PROPERTY_QUERYNAME));
<a class="jxr_linenumber" name="2045" href="#2045">2045</a>                 property.setLocalName(getString(jsonPropertyMap, JSON_PROPERTY_LOCALNAME));
<a class="jxr_linenumber" name="2046" href="#2046">2046</a> 
<a class="jxr_linenumber" name="2047" href="#2047">2047</a>                 convertExtension(jsonPropertyMap, property, PROPERTY_KEYS);
<a class="jxr_linenumber" name="2048" href="#2048">2048</a> 
<a class="jxr_linenumber" name="2049" href="#2049">2049</a>                 result.addProperty(property);
<a class="jxr_linenumber" name="2050" href="#2050">2050</a>             }
<a class="jxr_linenumber" name="2051" href="#2051">2051</a>         }
<a class="jxr_linenumber" name="2052" href="#2052">2052</a> 
<a class="jxr_linenumber" name="2053" href="#2053">2053</a>         <strong class="jxr_keyword">if</strong> (extJson != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2054" href="#2054">2054</a>             convertExtension(extJson, result, Collections.&lt;String&gt; emptySet());
<a class="jxr_linenumber" name="2055" href="#2055">2055</a>         }
<a class="jxr_linenumber" name="2056" href="#2056">2056</a> 
<a class="jxr_linenumber" name="2057" href="#2057">2057</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2058" href="#2058">2058</a>     }
<a class="jxr_linenumber" name="2059" href="#2059">2059</a> 
<a class="jxr_linenumber" name="2060" href="#2060">2060</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2061" href="#2061">2061</a> <em class="jxr_javadoccomment">     * Converts properties.</em>
<a class="jxr_linenumber" name="2062" href="#2062">2062</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2063" href="#2063">2063</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="2064" href="#2064">2064</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Properties convertSuccinctProperties(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json,
<a class="jxr_linenumber" name="2065" href="#2065">2065</a>             <strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; extJson, <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/TypeCache.html">TypeCache</a> typeCache) {
<a class="jxr_linenumber" name="2066" href="#2066">2066</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2067" href="#2067">2067</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2068" href="#2068">2068</a>         }
<a class="jxr_linenumber" name="2069" href="#2069">2069</a> 
<a class="jxr_linenumber" name="2070" href="#2070">2070</a>         TypeDefinition typeDef = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2071" href="#2071">2071</a>         <strong class="jxr_keyword">if</strong> (json.get(PropertyIds.OBJECT_TYPE_ID) instanceof String) {
<a class="jxr_linenumber" name="2072" href="#2072">2072</a>             typeDef = typeCache.getTypeDefinition((String) json.get(PropertyIds.OBJECT_TYPE_ID));
<a class="jxr_linenumber" name="2073" href="#2073">2073</a>         }
<a class="jxr_linenumber" name="2074" href="#2074">2074</a> 
<a class="jxr_linenumber" name="2075" href="#2075">2075</a>         List&lt;Object&gt; secTypeIds = getList(json.get(PropertyIds.SECONDARY_OBJECT_TYPE_IDS));
<a class="jxr_linenumber" name="2076" href="#2076">2076</a>         List&lt;TypeDefinition&gt; secTypeDefs = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2077" href="#2077">2077</a>         <strong class="jxr_keyword">if</strong> (secTypeIds != <strong class="jxr_keyword">null</strong> &amp;&amp; !secTypeIds.isEmpty()) {
<a class="jxr_linenumber" name="2078" href="#2078">2078</a>             secTypeDefs = <strong class="jxr_keyword">new</strong> ArrayList&lt;TypeDefinition&gt;(secTypeIds.size());
<a class="jxr_linenumber" name="2079" href="#2079">2079</a>             <strong class="jxr_keyword">for</strong> (Object secTypeId : secTypeIds) {
<a class="jxr_linenumber" name="2080" href="#2080">2080</a>                 <strong class="jxr_keyword">if</strong> (secTypeId instanceof String) {
<a class="jxr_linenumber" name="2081" href="#2081">2081</a>                     secTypeDefs.add(typeCache.getTypeDefinition((String) secTypeId));
<a class="jxr_linenumber" name="2082" href="#2082">2082</a>                 }
<a class="jxr_linenumber" name="2083" href="#2083">2083</a>             }
<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 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="2087" href="#2087">2087</a> 
<a class="jxr_linenumber" name="2088" href="#2088">2088</a>         <strong class="jxr_keyword">for</strong> (Map.Entry&lt;String, Object&gt; entry : json.entrySet()) {
<a class="jxr_linenumber" name="2089" href="#2089">2089</a>             String id = entry.getKey();
<a class="jxr_linenumber" name="2090" href="#2090">2090</a> 
<a class="jxr_linenumber" name="2091" href="#2091">2091</a>             PropertyDefinition&lt;?&gt; propDef = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2092" href="#2092">2092</a>             <strong class="jxr_keyword">if</strong> (typeDef != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2093" href="#2093">2093</a>                 propDef = typeDef.getPropertyDefinitions().get(id);
<a class="jxr_linenumber" name="2094" href="#2094">2094</a>             }
<a class="jxr_linenumber" name="2095" href="#2095">2095</a> 
<a class="jxr_linenumber" name="2096" href="#2096">2096</a>             <strong class="jxr_keyword">if</strong> (propDef == <strong class="jxr_keyword">null</strong> &amp;&amp; secTypeDefs != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2097" href="#2097">2097</a>                 <strong class="jxr_keyword">for</strong> (TypeDefinition secTypeDef : secTypeDefs) {
<a class="jxr_linenumber" name="2098" href="#2098">2098</a>                     propDef = secTypeDef.getPropertyDefinitions().get(id);
<a class="jxr_linenumber" name="2099" href="#2099">2099</a>                     <strong class="jxr_keyword">if</strong> (propDef != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2100" href="#2100">2100</a>                         <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2101" href="#2101">2101</a>                     }
<a class="jxr_linenumber" name="2102" href="#2102">2102</a>                 }
<a class="jxr_linenumber" name="2103" href="#2103">2103</a>             }
<a class="jxr_linenumber" name="2104" href="#2104">2104</a> 
<a class="jxr_linenumber" name="2105" href="#2105">2105</a>             <strong class="jxr_keyword">if</strong> (propDef == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2106" href="#2106">2106</a>                 propDef = typeCache.getTypeDefinition(BaseTypeId.CMIS_DOCUMENT.value()).getPropertyDefinitions()
<a class="jxr_linenumber" name="2107" href="#2107">2107</a>                         .get(id);
<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>             <strong class="jxr_keyword">if</strong> (propDef == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2111" href="#2111">2111</a>                 propDef = typeCache.getTypeDefinition(BaseTypeId.CMIS_FOLDER.value()).getPropertyDefinitions().get(id);
<a class="jxr_linenumber" name="2112" href="#2112">2112</a>             }
<a class="jxr_linenumber" name="2113" href="#2113">2113</a> 
<a class="jxr_linenumber" name="2114" href="#2114">2114</a>             List&lt;Object&gt; values = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2115" href="#2115">2115</a>             <strong class="jxr_keyword">if</strong> (entry.getValue() instanceof List) {
<a class="jxr_linenumber" name="2116" href="#2116">2116</a>                 values = (List&lt;Object&gt;) entry.getValue();
<a class="jxr_linenumber" name="2117" href="#2117">2117</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (entry.getValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2118" href="#2118">2118</a>                 values = Collections.singletonList(entry.getValue());
<a class="jxr_linenumber" name="2119" href="#2119">2119</a>             }
<a class="jxr_linenumber" name="2120" href="#2120">2120</a> 
<a class="jxr_linenumber" name="2121" href="#2121">2121</a>             AbstractPropertyData&lt;?&gt; property = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2122" href="#2122">2122</a> 
<a class="jxr_linenumber" name="2123" href="#2123">2123</a>             <strong class="jxr_keyword">if</strong> (propDef != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2124" href="#2124">2124</a>                 <strong class="jxr_keyword">switch</strong> (propDef.getPropertyType()) {
<a class="jxr_linenumber" name="2125" href="#2125">2125</a>                 <strong class="jxr_keyword">case</strong> STRING:
<a class="jxr_linenumber" name="2126" href="#2126">2126</a>                     property = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyStringImpl.html">PropertyStringImpl</a>();
<a class="jxr_linenumber" name="2127" href="#2127">2127</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyStringImpl.html">PropertyStringImpl</a>) property).setValues(copyStringValues(values));
<a class="jxr_linenumber" name="2128" href="#2128">2128</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2129" href="#2129">2129</a>                 <strong class="jxr_keyword">case</strong> ID:
<a class="jxr_linenumber" name="2130" href="#2130">2130</a>                     property = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIdImpl.html">PropertyIdImpl</a>();
<a class="jxr_linenumber" name="2131" href="#2131">2131</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIdImpl.html">PropertyIdImpl</a>) property).setValues(copyStringValues(values));
<a class="jxr_linenumber" name="2132" href="#2132">2132</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2133" href="#2133">2133</a>                 <strong class="jxr_keyword">case</strong> BOOLEAN:
<a class="jxr_linenumber" name="2134" href="#2134">2134</a>                     property = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyBooleanImpl.html">PropertyBooleanImpl</a>();
<a class="jxr_linenumber" name="2135" href="#2135">2135</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyBooleanImpl.html">PropertyBooleanImpl</a>) property).setValues(copyBooleanValues(values));
<a class="jxr_linenumber" name="2136" href="#2136">2136</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2137" href="#2137">2137</a>                 <strong class="jxr_keyword">case</strong> INTEGER:
<a class="jxr_linenumber" name="2138" href="#2138">2138</a>                     property = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIntegerImpl.html">PropertyIntegerImpl</a>();
<a class="jxr_linenumber" name="2139" href="#2139">2139</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIntegerImpl.html">PropertyIntegerImpl</a>) property).setValues(copyIntegerValues(values));
<a class="jxr_linenumber" name="2140" href="#2140">2140</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2141" href="#2141">2141</a>                 <strong class="jxr_keyword">case</strong> DECIMAL:
<a class="jxr_linenumber" name="2142" href="#2142">2142</a>                     property = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDecimalImpl.html">PropertyDecimalImpl</a>();
<a class="jxr_linenumber" name="2143" href="#2143">2143</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDecimalImpl.html">PropertyDecimalImpl</a>) property).setValues(copyDecimalValues(values));
<a class="jxr_linenumber" name="2144" href="#2144">2144</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2145" href="#2145">2145</a>                 <strong class="jxr_keyword">case</strong> DATETIME:
<a class="jxr_linenumber" name="2146" href="#2146">2146</a>                     property = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDateTimeImpl.html">PropertyDateTimeImpl</a>();
<a class="jxr_linenumber" name="2147" href="#2147">2147</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDateTimeImpl.html">PropertyDateTimeImpl</a>) property).setValues(copyDateTimeValues(values));
<a class="jxr_linenumber" name="2148" href="#2148">2148</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2149" href="#2149">2149</a>                 <strong class="jxr_keyword">case</strong> HTML:
<a class="jxr_linenumber" name="2150" href="#2150">2150</a>                     property = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyHtmlImpl.html">PropertyHtmlImpl</a>();
<a class="jxr_linenumber" name="2151" href="#2151">2151</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyHtmlImpl.html">PropertyHtmlImpl</a>) property).setValues(copyStringValues(values));
<a class="jxr_linenumber" name="2152" href="#2152">2152</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2153" href="#2153">2153</a>                 <strong class="jxr_keyword">case</strong> URI:
<a class="jxr_linenumber" name="2154" href="#2154">2154</a>                     property = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyUriImpl.html">PropertyUriImpl</a>();
<a class="jxr_linenumber" name="2155" href="#2155">2155</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyUriImpl.html">PropertyUriImpl</a>) property).setValues(copyStringValues(values));
<a class="jxr_linenumber" name="2156" href="#2156">2156</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2157" href="#2157">2157</a>                 }
<a class="jxr_linenumber" name="2158" href="#2158">2158</a> 
<a class="jxr_linenumber" name="2159" href="#2159">2159</a>                 property.setId(id);
<a class="jxr_linenumber" name="2160" href="#2160">2160</a>                 property.setDisplayName(propDef.getDisplayName());
<a class="jxr_linenumber" name="2161" href="#2161">2161</a>                 property.setQueryName(propDef.getQueryName());
<a class="jxr_linenumber" name="2162" href="#2162">2162</a>                 property.setLocalName(propDef.getLocalName());
<a class="jxr_linenumber" name="2163" href="#2163">2163</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2164" href="#2164">2164</a>                 <em class="jxr_comment">// this else block should only be reached in rare circumstances</em>
<a class="jxr_linenumber" name="2165" href="#2165">2165</a>                 <em class="jxr_comment">// it may return incorrect types</em>
<a class="jxr_linenumber" name="2166" href="#2166">2166</a> 
<a class="jxr_linenumber" name="2167" href="#2167">2167</a>                 <strong class="jxr_keyword">if</strong> (values == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2168" href="#2168">2168</a>                     property = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyStringImpl.html">PropertyStringImpl</a>();
<a class="jxr_linenumber" name="2169" href="#2169">2169</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyStringImpl.html">PropertyStringImpl</a>) property).setValues(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2170" href="#2170">2170</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2171" href="#2171">2171</a>                     Object firstValue = values.get(0);
<a class="jxr_linenumber" name="2172" href="#2172">2172</a>                     <strong class="jxr_keyword">if</strong> (firstValue instanceof Boolean) {
<a class="jxr_linenumber" name="2173" href="#2173">2173</a>                         property = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyBooleanImpl.html">PropertyBooleanImpl</a>();
<a class="jxr_linenumber" name="2174" href="#2174">2174</a>                         ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyBooleanImpl.html">PropertyBooleanImpl</a>) property).setValues(copyBooleanValues(values));
<a class="jxr_linenumber" name="2175" href="#2175">2175</a>                     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (firstValue instanceof BigInteger) {
<a class="jxr_linenumber" name="2176" href="#2176">2176</a>                         property = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIntegerImpl.html">PropertyIntegerImpl</a>();
<a class="jxr_linenumber" name="2177" href="#2177">2177</a>                         ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIntegerImpl.html">PropertyIntegerImpl</a>) property).setValues(copyIntegerValues(values));
<a class="jxr_linenumber" name="2178" href="#2178">2178</a>                     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (firstValue instanceof BigDecimal) {
<a class="jxr_linenumber" name="2179" href="#2179">2179</a>                         property = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDecimalImpl.html">PropertyDecimalImpl</a>();
<a class="jxr_linenumber" name="2180" href="#2180">2180</a>                         ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDecimalImpl.html">PropertyDecimalImpl</a>) property).setValues(copyDecimalValues(values));
<a class="jxr_linenumber" name="2181" href="#2181">2181</a>                     } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2182" href="#2182">2182</a>                         property = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyStringImpl.html">PropertyStringImpl</a>();
<a class="jxr_linenumber" name="2183" href="#2183">2183</a>                         ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyStringImpl.html">PropertyStringImpl</a>) property).setValues(copyStringValues(values));
<a class="jxr_linenumber" name="2184" href="#2184">2184</a>                     }
<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>                 property.setId(id);
<a class="jxr_linenumber" name="2188" href="#2188">2188</a>                 property.setDisplayName(id);
<a class="jxr_linenumber" name="2189" href="#2189">2189</a>                 property.setQueryName(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2190" href="#2190">2190</a>                 property.setLocalName(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2191" href="#2191">2191</a>             }
<a class="jxr_linenumber" name="2192" href="#2192">2192</a> 
<a class="jxr_linenumber" name="2193" href="#2193">2193</a>             result.addProperty(property);
<a class="jxr_linenumber" name="2194" href="#2194">2194</a>         }
<a class="jxr_linenumber" name="2195" href="#2195">2195</a> 
<a class="jxr_linenumber" name="2196" href="#2196">2196</a>         <strong class="jxr_keyword">if</strong> (extJson != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2197" href="#2197">2197</a>             convertExtension(extJson, result, Collections.&lt;String&gt; emptySet());
<a class="jxr_linenumber" name="2198" href="#2198">2198</a>         }
<a class="jxr_linenumber" name="2199" href="#2199">2199</a> 
<a class="jxr_linenumber" name="2200" href="#2200">2200</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2201" href="#2201">2201</a>     }
<a class="jxr_linenumber" name="2202" href="#2202">2202</a> 
<a class="jxr_linenumber" name="2203" href="#2203">2203</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;String&gt; copyStringValues(List&lt;Object&gt; source) {
<a class="jxr_linenumber" name="2204" href="#2204">2204</a>         List&lt;String&gt; result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2205" href="#2205">2205</a>         <strong class="jxr_keyword">if</strong> (source != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2206" href="#2206">2206</a>             result = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;(source.size());
<a class="jxr_linenumber" name="2207" href="#2207">2207</a>             <strong class="jxr_keyword">for</strong> (Object obj : source) {
<a class="jxr_linenumber" name="2208" href="#2208">2208</a>                 <strong class="jxr_keyword">if</strong> (obj instanceof String) {
<a class="jxr_linenumber" name="2209" href="#2209">2209</a>                     result.add(obj.toString());
<a class="jxr_linenumber" name="2210" href="#2210">2210</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2211" href="#2211">2211</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Invalid property value: "</span> + obj);
<a class="jxr_linenumber" name="2212" href="#2212">2212</a>                 }
<a class="jxr_linenumber" name="2213" href="#2213">2213</a>             }
<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>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2217" href="#2217">2217</a>     }
<a class="jxr_linenumber" name="2218" href="#2218">2218</a> 
<a class="jxr_linenumber" name="2219" href="#2219">2219</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;Boolean&gt; copyBooleanValues(List&lt;Object&gt; source) {
<a class="jxr_linenumber" name="2220" href="#2220">2220</a>         List&lt;Boolean&gt; result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2221" href="#2221">2221</a>         <strong class="jxr_keyword">if</strong> (source != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2222" href="#2222">2222</a>             result = <strong class="jxr_keyword">new</strong> ArrayList&lt;Boolean&gt;(source.size());
<a class="jxr_linenumber" name="2223" href="#2223">2223</a>             <strong class="jxr_keyword">for</strong> (Object obj : source) {
<a class="jxr_linenumber" name="2224" href="#2224">2224</a>                 <strong class="jxr_keyword">if</strong> (obj instanceof Boolean) {
<a class="jxr_linenumber" name="2225" href="#2225">2225</a>                     result.add((Boolean) obj);
<a class="jxr_linenumber" name="2226" href="#2226">2226</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2227" href="#2227">2227</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Invalid property value: "</span> + obj);
<a class="jxr_linenumber" name="2228" href="#2228">2228</a>                 }
<a class="jxr_linenumber" name="2229" href="#2229">2229</a>             }
<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>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2233" href="#2233">2233</a>     }
<a class="jxr_linenumber" name="2234" href="#2234">2234</a> 
<a class="jxr_linenumber" name="2235" href="#2235">2235</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;BigInteger&gt; copyIntegerValues(List&lt;Object&gt; source) {
<a class="jxr_linenumber" name="2236" href="#2236">2236</a>         List&lt;BigInteger&gt; result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2237" href="#2237">2237</a>         <strong class="jxr_keyword">if</strong> (source != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2238" href="#2238">2238</a>             result = <strong class="jxr_keyword">new</strong> ArrayList&lt;BigInteger&gt;(source.size());
<a class="jxr_linenumber" name="2239" href="#2239">2239</a>             <strong class="jxr_keyword">for</strong> (Object obj : source) {
<a class="jxr_linenumber" name="2240" href="#2240">2240</a>                 <strong class="jxr_keyword">if</strong> (obj instanceof BigInteger) {
<a class="jxr_linenumber" name="2241" href="#2241">2241</a>                     result.add((BigInteger) obj);
<a class="jxr_linenumber" name="2242" href="#2242">2242</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2243" href="#2243">2243</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Invalid property value: "</span> + obj);
<a class="jxr_linenumber" name="2244" href="#2244">2244</a>                 }
<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>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2249" href="#2249">2249</a>     }
<a class="jxr_linenumber" name="2250" href="#2250">2250</a> 
<a class="jxr_linenumber" name="2251" href="#2251">2251</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;BigDecimal&gt; copyDecimalValues(List&lt;Object&gt; source) {
<a class="jxr_linenumber" name="2252" href="#2252">2252</a>         List&lt;BigDecimal&gt; result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2253" href="#2253">2253</a>         <strong class="jxr_keyword">if</strong> (source != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2254" href="#2254">2254</a>             result = <strong class="jxr_keyword">new</strong> ArrayList&lt;BigDecimal&gt;(source.size());
<a class="jxr_linenumber" name="2255" href="#2255">2255</a>             <strong class="jxr_keyword">for</strong> (Object obj : source) {
<a class="jxr_linenumber" name="2256" href="#2256">2256</a>                 <strong class="jxr_keyword">if</strong> (obj instanceof BigDecimal) {
<a class="jxr_linenumber" name="2257" href="#2257">2257</a>                     result.add((BigDecimal) obj);
<a class="jxr_linenumber" name="2258" href="#2258">2258</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (obj instanceof BigInteger) {
<a class="jxr_linenumber" name="2259" href="#2259">2259</a>                     result.add(<strong class="jxr_keyword">new</strong> BigDecimal((BigInteger) obj));
<a class="jxr_linenumber" name="2260" href="#2260">2260</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2261" href="#2261">2261</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Invalid property value: "</span> + obj);
<a class="jxr_linenumber" name="2262" href="#2262">2262</a>                 }
<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> 
<a class="jxr_linenumber" name="2266" href="#2266">2266</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2267" href="#2267">2267</a>     }
<a class="jxr_linenumber" name="2268" href="#2268">2268</a> 
<a class="jxr_linenumber" name="2269" href="#2269">2269</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;GregorianCalendar&gt; copyDateTimeValues(List&lt;Object&gt; source) {
<a class="jxr_linenumber" name="2270" href="#2270">2270</a>         List&lt;GregorianCalendar&gt; result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2271" href="#2271">2271</a>         <strong class="jxr_keyword">if</strong> (source != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2272" href="#2272">2272</a>             result = <strong class="jxr_keyword">new</strong> ArrayList&lt;GregorianCalendar&gt;(source.size());
<a class="jxr_linenumber" name="2273" href="#2273">2273</a>             <strong class="jxr_keyword">for</strong> (Object obj : source) {
<a class="jxr_linenumber" name="2274" href="#2274">2274</a>                 <strong class="jxr_keyword">if</strong> (obj instanceof Number) {
<a class="jxr_linenumber" name="2275" href="#2275">2275</a>                     GregorianCalendar cal = <strong class="jxr_keyword">new</strong> GregorianCalendar(TimeZone.getTimeZone(<span class="jxr_string">"UTC"</span>));
<a class="jxr_linenumber" name="2276" href="#2276">2276</a>                     cal.setTimeInMillis(((Number) obj).longValue());
<a class="jxr_linenumber" name="2277" href="#2277">2277</a>                     result.add(cal);
<a class="jxr_linenumber" name="2278" href="#2278">2278</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2279" href="#2279">2279</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Invalid property value: "</span> + obj);
<a class="jxr_linenumber" name="2280" href="#2280">2280</a>                 }
<a class="jxr_linenumber" name="2281" href="#2281">2281</a>             }
<a class="jxr_linenumber" name="2282" href="#2282">2282</a>         }
<a class="jxr_linenumber" name="2283" href="#2283">2283</a> 
<a class="jxr_linenumber" name="2284" href="#2284">2284</a>         <strong class="jxr_keyword">return</strong> result;
<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>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2288" href="#2288">2288</a> <em class="jxr_javadoccomment">     * Converts a rendition.</em>
<a class="jxr_linenumber" name="2289" href="#2289">2289</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2290" href="#2290">2290</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> RenditionData convertRendition(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json) {
<a class="jxr_linenumber" name="2291" href="#2291">2291</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2292" href="#2292">2292</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2293" href="#2293">2293</a>         }
<a class="jxr_linenumber" name="2294" href="#2294">2294</a> 
<a class="jxr_linenumber" name="2295" href="#2295">2295</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="2296" href="#2296">2296</a> 
<a class="jxr_linenumber" name="2297" href="#2297">2297</a>         result.setBigHeight(getInteger(json, JSON_RENDITION_HEIGHT));
<a class="jxr_linenumber" name="2298" href="#2298">2298</a>         result.setKind(getString(json, JSON_RENDITION_KIND));
<a class="jxr_linenumber" name="2299" href="#2299">2299</a>         result.setBigLength(getInteger(json, JSON_RENDITION_LENGTH));
<a class="jxr_linenumber" name="2300" href="#2300">2300</a>         result.setMimeType(getString(json, JSON_RENDITION_MIMETYPE));
<a class="jxr_linenumber" name="2301" href="#2301">2301</a>         result.setRenditionDocumentId(getString(json, JSON_RENDITION_DOCUMENT_ID));
<a class="jxr_linenumber" name="2302" href="#2302">2302</a>         result.setStreamId(getString(json, JSON_RENDITION_STREAM_ID));
<a class="jxr_linenumber" name="2303" href="#2303">2303</a>         result.setTitle(getString(json, JSON_RENDITION_TITLE));
<a class="jxr_linenumber" name="2304" href="#2304">2304</a>         result.setBigWidth(getInteger(json, JSON_RENDITION_WIDTH));
<a class="jxr_linenumber" name="2305" href="#2305">2305</a> 
<a class="jxr_linenumber" name="2306" href="#2306">2306</a>         convertExtension(json, result, RENDITION_KEYS);
<a class="jxr_linenumber" name="2307" href="#2307">2307</a> 
<a class="jxr_linenumber" name="2308" href="#2308">2308</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2309" href="#2309">2309</a>     }
<a class="jxr_linenumber" name="2310" href="#2310">2310</a> 
<a class="jxr_linenumber" name="2311" href="#2311">2311</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2312" href="#2312">2312</a> <em class="jxr_javadoccomment">     * Converts a list of renditions.</em>
<a class="jxr_linenumber" name="2313" href="#2313">2313</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2314" href="#2314">2314</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> List&lt;RenditionData&gt; convertRenditions(<strong class="jxr_keyword">final</strong> List&lt;Object&gt; json) {
<a class="jxr_linenumber" name="2315" href="#2315">2315</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2316" href="#2316">2316</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2317" href="#2317">2317</a>         }
<a class="jxr_linenumber" name="2318" href="#2318">2318</a> 
<a class="jxr_linenumber" name="2319" href="#2319">2319</a>         List&lt;RenditionData&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;RenditionData&gt;();
<a class="jxr_linenumber" name="2320" href="#2320">2320</a> 
<a class="jxr_linenumber" name="2321" href="#2321">2321</a>         <strong class="jxr_keyword">for</strong> (Object obj : json) {
<a class="jxr_linenumber" name="2322" href="#2322">2322</a>             RenditionData rendition = convertRendition(getMap(obj));
<a class="jxr_linenumber" name="2323" href="#2323">2323</a>             <strong class="jxr_keyword">if</strong> (rendition != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2324" href="#2324">2324</a>                 result.add(rendition);
<a class="jxr_linenumber" name="2325" href="#2325">2325</a>             }
<a class="jxr_linenumber" name="2326" href="#2326">2326</a>         }
<a class="jxr_linenumber" name="2327" href="#2327">2327</a> 
<a class="jxr_linenumber" name="2328" href="#2328">2328</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2329" href="#2329">2329</a>     }
<a class="jxr_linenumber" name="2330" href="#2330">2330</a> 
<a class="jxr_linenumber" name="2331" href="#2331">2331</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2332" href="#2332">2332</a> <em class="jxr_javadoccomment">     * Converts a object list.</em>
<a class="jxr_linenumber" name="2333" href="#2333">2333</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2334" href="#2334">2334</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ObjectInFolderList convertObjectInFolderList(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json, <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/TypeCache.html">TypeCache</a> typeCache) {
<a class="jxr_linenumber" name="2335" href="#2335">2335</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2336" href="#2336">2336</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2337" href="#2337">2337</a>         }
<a class="jxr_linenumber" name="2338" href="#2338">2338</a> 
<a class="jxr_linenumber" name="2339" href="#2339">2339</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="2340" href="#2340">2340</a> 
<a class="jxr_linenumber" name="2341" href="#2341">2341</a>         List&lt;Object&gt; jsonChildren = getList(json.get(JSON_OBJECTINFOLDERLIST_OBJECTS));
<a class="jxr_linenumber" name="2342" href="#2342">2342</a>         List&lt;ObjectInFolderData&gt; objects = <strong class="jxr_keyword">new</strong> ArrayList&lt;ObjectInFolderData&gt;();
<a class="jxr_linenumber" name="2343" href="#2343">2343</a> 
<a class="jxr_linenumber" name="2344" href="#2344">2344</a>         <strong class="jxr_keyword">if</strong> (jsonChildren != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2345" href="#2345">2345</a>             <strong class="jxr_keyword">for</strong> (Object obj : jsonChildren) {
<a class="jxr_linenumber" name="2346" href="#2346">2346</a>                 Map&lt;String, Object&gt; jsonObject = getMap(obj);
<a class="jxr_linenumber" name="2347" href="#2347">2347</a>                 <strong class="jxr_keyword">if</strong> (jsonObject != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2348" href="#2348">2348</a>                     objects.add(convertObjectInFolder(jsonObject, typeCache));
<a class="jxr_linenumber" name="2349" href="#2349">2349</a>                 }
<a class="jxr_linenumber" name="2350" href="#2350">2350</a>             }
<a class="jxr_linenumber" name="2351" href="#2351">2351</a>         }
<a class="jxr_linenumber" name="2352" href="#2352">2352</a> 
<a class="jxr_linenumber" name="2353" href="#2353">2353</a>         result.setObjects(objects);
<a class="jxr_linenumber" name="2354" href="#2354">2354</a>         result.setHasMoreItems(getBoolean(json, JSON_OBJECTINFOLDERLIST_HAS_MORE_ITEMS));
<a class="jxr_linenumber" name="2355" href="#2355">2355</a>         result.setNumItems(getInteger(json, JSON_OBJECTINFOLDERLIST_NUM_ITEMS));
<a class="jxr_linenumber" name="2356" href="#2356">2356</a> 
<a class="jxr_linenumber" name="2357" href="#2357">2357</a>         convertExtension(json, result, OBJECTINFOLDERLIST_KEYS);
<a class="jxr_linenumber" name="2358" href="#2358">2358</a> 
<a class="jxr_linenumber" name="2359" href="#2359">2359</a>         <strong class="jxr_keyword">return</strong> result;
<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>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2363" href="#2363">2363</a> <em class="jxr_javadoccomment">     * Converts an object in a folder.</em>
<a class="jxr_linenumber" name="2364" href="#2364">2364</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2365" href="#2365">2365</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ObjectInFolderData convertObjectInFolder(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json, <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/TypeCache.html">TypeCache</a> typeCache) {
<a class="jxr_linenumber" name="2366" href="#2366">2366</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2367" href="#2367">2367</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2368" href="#2368">2368</a>         }
<a class="jxr_linenumber" name="2369" href="#2369">2369</a> 
<a class="jxr_linenumber" name="2370" href="#2370">2370</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="2371" href="#2371">2371</a> 
<a class="jxr_linenumber" name="2372" href="#2372">2372</a>         result.setObject(convertObject(getMap(json.get(JSON_OBJECTINFOLDER_OBJECT)), typeCache));
<a class="jxr_linenumber" name="2373" href="#2373">2373</a>         result.setPathSegment(getString(json, JSON_OBJECTINFOLDER_PATH_SEGMENT));
<a class="jxr_linenumber" name="2374" href="#2374">2374</a> 
<a class="jxr_linenumber" name="2375" href="#2375">2375</a>         convertExtension(json, result, OBJECTINFOLDER_KEYS);
<a class="jxr_linenumber" name="2376" href="#2376">2376</a> 
<a class="jxr_linenumber" name="2377" href="#2377">2377</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2378" href="#2378">2378</a>     }
<a class="jxr_linenumber" name="2379" href="#2379">2379</a> 
<a class="jxr_linenumber" name="2380" href="#2380">2380</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2381" href="#2381">2381</a> <em class="jxr_javadoccomment">     * Converts a descendants tree.</em>
<a class="jxr_linenumber" name="2382" href="#2382">2382</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2383" href="#2383">2383</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> List&lt;ObjectInFolderContainer&gt; convertDescendants(<strong class="jxr_keyword">final</strong> List&lt;Object&gt; json, <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/TypeCache.html">TypeCache</a> typeCache) {
<a class="jxr_linenumber" name="2384" href="#2384">2384</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2385" href="#2385">2385</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2386" href="#2386">2386</a>         }
<a class="jxr_linenumber" name="2387" href="#2387">2387</a> 
<a class="jxr_linenumber" name="2388" href="#2388">2388</a>         List&lt;ObjectInFolderContainer&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;ObjectInFolderContainer&gt;();
<a class="jxr_linenumber" name="2389" href="#2389">2389</a> 
<a class="jxr_linenumber" name="2390" href="#2390">2390</a>         <strong class="jxr_keyword">for</strong> (Object obj : json) {
<a class="jxr_linenumber" name="2391" href="#2391">2391</a>             Map&lt;String, Object&gt; desc = getMap(obj);
<a class="jxr_linenumber" name="2392" href="#2392">2392</a>             <strong class="jxr_keyword">if</strong> (desc != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2393" href="#2393">2393</a>                 result.add(convertDescendant(desc, typeCache));
<a class="jxr_linenumber" name="2394" href="#2394">2394</a>             }
<a class="jxr_linenumber" name="2395" href="#2395">2395</a>         }
<a class="jxr_linenumber" name="2396" href="#2396">2396</a> 
<a class="jxr_linenumber" name="2397" href="#2397">2397</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2398" href="#2398">2398</a>     }
<a class="jxr_linenumber" name="2399" href="#2399">2399</a> 
<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> <em class="jxr_javadoccomment">     * Converts a descendant.</em>
<a class="jxr_linenumber" name="2402" href="#2402">2402</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2403" href="#2403">2403</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ObjectInFolderContainer convertDescendant(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json, <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/TypeCache.html">TypeCache</a> typeCache) {
<a class="jxr_linenumber" name="2404" href="#2404">2404</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2405" href="#2405">2405</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2406" href="#2406">2406</a>         }
<a class="jxr_linenumber" name="2407" href="#2407">2407</a> 
<a class="jxr_linenumber" name="2408" href="#2408">2408</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="2409" href="#2409">2409</a> 
<a class="jxr_linenumber" name="2410" href="#2410">2410</a>         result.setObject(convertObjectInFolder(getMap(json.get(JSON_OBJECTINFOLDERCONTAINER_OBJECT)), typeCache));
<a class="jxr_linenumber" name="2411" href="#2411">2411</a> 
<a class="jxr_linenumber" name="2412" href="#2412">2412</a>         List&lt;ObjectInFolderContainer&gt; containerList = <strong class="jxr_keyword">new</strong> ArrayList&lt;ObjectInFolderContainer&gt;();
<a class="jxr_linenumber" name="2413" href="#2413">2413</a>         List&lt;Object&gt; jsonContainerList = getList(json.get(JSON_OBJECTINFOLDERCONTAINER_CHILDREN));
<a class="jxr_linenumber" name="2414" href="#2414">2414</a>         <strong class="jxr_keyword">if</strong> (jsonContainerList != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2415" href="#2415">2415</a>             <strong class="jxr_keyword">for</strong> (Object obj : jsonContainerList) {
<a class="jxr_linenumber" name="2416" href="#2416">2416</a>                 Map&lt;String, Object&gt; containerChild = getMap(obj);
<a class="jxr_linenumber" name="2417" href="#2417">2417</a>                 <strong class="jxr_keyword">if</strong> (containerChild != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2418" href="#2418">2418</a>                     containerList.add(convertDescendant(containerChild, typeCache));
<a class="jxr_linenumber" name="2419" href="#2419">2419</a>                 }
<a class="jxr_linenumber" name="2420" href="#2420">2420</a>             }
<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>         result.setChildren(containerList);
<a class="jxr_linenumber" name="2424" href="#2424">2424</a> 
<a class="jxr_linenumber" name="2425" href="#2425">2425</a>         convertExtension(json, result, OBJECTINFOLDERCONTAINER_KEYS);
<a class="jxr_linenumber" name="2426" href="#2426">2426</a> 
<a class="jxr_linenumber" name="2427" href="#2427">2427</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2428" href="#2428">2428</a>     }
<a class="jxr_linenumber" name="2429" href="#2429">2429</a> 
<a class="jxr_linenumber" name="2430" href="#2430">2430</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2431" href="#2431">2431</a> <em class="jxr_javadoccomment">     * Converts an object parents list.</em>
<a class="jxr_linenumber" name="2432" href="#2432">2432</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2433" href="#2433">2433</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> List&lt;ObjectParentData&gt; convertObjectParents(<strong class="jxr_keyword">final</strong> List&lt;Object&gt; json, <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/TypeCache.html">TypeCache</a> typeCache) {
<a class="jxr_linenumber" name="2434" href="#2434">2434</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2435" href="#2435">2435</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<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>         List&lt;ObjectParentData&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;ObjectParentData&gt;();
<a class="jxr_linenumber" name="2439" href="#2439">2439</a> 
<a class="jxr_linenumber" name="2440" href="#2440">2440</a>         <strong class="jxr_keyword">for</strong> (Object obj : json) {
<a class="jxr_linenumber" name="2441" href="#2441">2441</a>             Map&lt;String, Object&gt; jsonParent = getMap(obj);
<a class="jxr_linenumber" name="2442" href="#2442">2442</a>             <strong class="jxr_keyword">if</strong> (jsonParent != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2443" href="#2443">2443</a>                 <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/ObjectParentDataImpl.html">ObjectParentDataImpl</a> parent = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/ObjectParentDataImpl.html">ObjectParentDataImpl</a>();
<a class="jxr_linenumber" name="2444" href="#2444">2444</a> 
<a class="jxr_linenumber" name="2445" href="#2445">2445</a>                 parent.setObject(convertObject(getMap(jsonParent.get(JSON_OBJECTPARENTS_OBJECT)), typeCache));
<a class="jxr_linenumber" name="2446" href="#2446">2446</a>                 parent.setRelativePathSegment(getString(jsonParent, JSON_OBJECTPARENTS_RELATIVE_PATH_SEGMENT));
<a class="jxr_linenumber" name="2447" href="#2447">2447</a> 
<a class="jxr_linenumber" name="2448" href="#2448">2448</a>                 convertExtension(jsonParent, parent, OBJECTPARENTS_KEYS);
<a class="jxr_linenumber" name="2449" href="#2449">2449</a> 
<a class="jxr_linenumber" name="2450" href="#2450">2450</a>                 result.add(parent);
<a class="jxr_linenumber" name="2451" href="#2451">2451</a>             }
<a class="jxr_linenumber" name="2452" href="#2452">2452</a>         }
<a class="jxr_linenumber" name="2453" href="#2453">2453</a> 
<a class="jxr_linenumber" name="2454" href="#2454">2454</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2455" href="#2455">2455</a>     }
<a class="jxr_linenumber" name="2456" href="#2456">2456</a> 
<a class="jxr_linenumber" name="2457" href="#2457">2457</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2458" href="#2458">2458</a> <em class="jxr_javadoccomment">     * Converts a object list.</em>
<a class="jxr_linenumber" name="2459" href="#2459">2459</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2460" href="#2460">2460</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ObjectList convertObjectList(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json, <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/TypeCache.html">TypeCache</a> typeCache,
<a class="jxr_linenumber" name="2461" href="#2461">2461</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> isQueryResult) {
<a class="jxr_linenumber" name="2462" href="#2462">2462</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2463" href="#2463">2463</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2464" href="#2464">2464</a>         }
<a class="jxr_linenumber" name="2465" href="#2465">2465</a> 
<a class="jxr_linenumber" name="2466" href="#2466">2466</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="2467" href="#2467">2467</a> 
<a class="jxr_linenumber" name="2468" href="#2468">2468</a>         List&lt;Object&gt; jsonChildren = getList(json.get(isQueryResult ? JSON_QUERYRESULTLIST_RESULTS
<a class="jxr_linenumber" name="2469" href="#2469">2469</a>                 : JSON_OBJECTLIST_OBJECTS));
<a class="jxr_linenumber" name="2470" href="#2470">2470</a>         List&lt;ObjectData&gt; objects = <strong class="jxr_keyword">new</strong> ArrayList&lt;ObjectData&gt;();
<a class="jxr_linenumber" name="2471" href="#2471">2471</a> 
<a class="jxr_linenumber" name="2472" href="#2472">2472</a>         <strong class="jxr_keyword">if</strong> (jsonChildren != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2473" href="#2473">2473</a>             <strong class="jxr_keyword">for</strong> (Object obj : jsonChildren) {
<a class="jxr_linenumber" name="2474" href="#2474">2474</a>                 Map&lt;String, Object&gt; jsonObject = getMap(obj);
<a class="jxr_linenumber" name="2475" href="#2475">2475</a>                 <strong class="jxr_keyword">if</strong> (jsonObject != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2476" href="#2476">2476</a>                     objects.add(convertObject(jsonObject, typeCache));
<a class="jxr_linenumber" name="2477" href="#2477">2477</a>                 }
<a class="jxr_linenumber" name="2478" href="#2478">2478</a>             }
<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>         result.setObjects(objects);
<a class="jxr_linenumber" name="2482" href="#2482">2482</a>         result.setHasMoreItems(getBoolean(json, isQueryResult ? JSON_QUERYRESULTLIST_NUM_ITEMS
<a class="jxr_linenumber" name="2483" href="#2483">2483</a>                 : JSON_OBJECTLIST_HAS_MORE_ITEMS));
<a class="jxr_linenumber" name="2484" href="#2484">2484</a>         result.setNumItems(getInteger(json, isQueryResult ? JSON_QUERYRESULTLIST_NUM_ITEMS : JSON_OBJECTLIST_NUM_ITEMS));
<a class="jxr_linenumber" name="2485" href="#2485">2485</a> 
<a class="jxr_linenumber" name="2486" href="#2486">2486</a>         convertExtension(json, result, isQueryResult ? QUERYRESULTLIST_KEYS : OBJECTLIST_KEYS);
<a class="jxr_linenumber" name="2487" href="#2487">2487</a> 
<a class="jxr_linenumber" name="2488" href="#2488">2488</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2489" href="#2489">2489</a>     }
<a class="jxr_linenumber" name="2490" href="#2490">2490</a> 
<a class="jxr_linenumber" name="2491" href="#2491">2491</a>     <em class="jxr_comment">// -----------------------------------------------------------------</em>
<a class="jxr_linenumber" name="2492" href="#2492">2492</a> 
<a class="jxr_linenumber" name="2493" href="#2493">2493</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2494" href="#2494">2494</a> <em class="jxr_javadoccomment">     * Converts FailedToDelete ids.</em>
<a class="jxr_linenumber" name="2495" href="#2495">2495</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2496" href="#2496">2496</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> convert(<strong class="jxr_keyword">final</strong> FailedToDeleteData ftd) {
<a class="jxr_linenumber" name="2497" href="#2497">2497</a>         <strong class="jxr_keyword">if</strong> (ftd == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2498" href="#2498">2498</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2499" href="#2499">2499</a>         }
<a class="jxr_linenumber" name="2500" href="#2500">2500</a> 
<a class="jxr_linenumber" name="2501" href="#2501">2501</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="2502" href="#2502">2502</a> 
<a class="jxr_linenumber" name="2503" href="#2503">2503</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> ids = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a>();
<a class="jxr_linenumber" name="2504" href="#2504">2504</a>         <strong class="jxr_keyword">if</strong> (ftd.getIds() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2505" href="#2505">2505</a>             <strong class="jxr_keyword">for</strong> (String id : ftd.getIds()) {
<a class="jxr_linenumber" name="2506" href="#2506">2506</a>                 ids.add(id);
<a class="jxr_linenumber" name="2507" href="#2507">2507</a>             }
<a class="jxr_linenumber" name="2508" href="#2508">2508</a>         }
<a class="jxr_linenumber" name="2509" href="#2509">2509</a> 
<a class="jxr_linenumber" name="2510" href="#2510">2510</a>         result.put(JSON_FAILEDTODELETE_ID, ids);
<a class="jxr_linenumber" name="2511" href="#2511">2511</a> 
<a class="jxr_linenumber" name="2512" href="#2512">2512</a>         convertExtension(ftd, result);
<a class="jxr_linenumber" name="2513" href="#2513">2513</a> 
<a class="jxr_linenumber" name="2514" href="#2514">2514</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2515" href="#2515">2515</a>     }
<a class="jxr_linenumber" name="2516" href="#2516">2516</a> 
<a class="jxr_linenumber" name="2517" href="#2517">2517</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2518" href="#2518">2518</a> <em class="jxr_javadoccomment">     * Converts FailedToDelete ids.</em>
<a class="jxr_linenumber" name="2519" href="#2519">2519</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2520" href="#2520">2520</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> FailedToDeleteData convertFailedToDelete(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json) {
<a class="jxr_linenumber" name="2521" href="#2521">2521</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2522" href="#2522">2522</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2523" href="#2523">2523</a>         }
<a class="jxr_linenumber" name="2524" href="#2524">2524</a> 
<a class="jxr_linenumber" name="2525" href="#2525">2525</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="2526" href="#2526">2526</a> 
<a class="jxr_linenumber" name="2527" href="#2527">2527</a>         List&lt;String&gt; ids = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a class="jxr_linenumber" name="2528" href="#2528">2528</a>         List&lt;Object&gt; jsonIds = getList(json.get(JSON_FAILEDTODELETE_ID));
<a class="jxr_linenumber" name="2529" href="#2529">2529</a> 
<a class="jxr_linenumber" name="2530" href="#2530">2530</a>         <strong class="jxr_keyword">if</strong> (jsonIds != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2531" href="#2531">2531</a>             <strong class="jxr_keyword">for</strong> (Object obj : jsonIds) {
<a class="jxr_linenumber" name="2532" href="#2532">2532</a>                 <strong class="jxr_keyword">if</strong> (obj != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2533" href="#2533">2533</a>                     ids.add(obj.toString());
<a class="jxr_linenumber" name="2534" href="#2534">2534</a>                 }
<a class="jxr_linenumber" name="2535" href="#2535">2535</a>             }
<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>         result.setIds(ids);
<a class="jxr_linenumber" name="2539" href="#2539">2539</a> 
<a class="jxr_linenumber" name="2540" href="#2540">2540</a>         convertExtension(json, result, FAILEDTODELETE_KEYS);
<a class="jxr_linenumber" name="2541" href="#2541">2541</a> 
<a class="jxr_linenumber" name="2542" href="#2542">2542</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2543" href="#2543">2543</a>     }
<a class="jxr_linenumber" name="2544" href="#2544">2544</a> 
<a class="jxr_linenumber" name="2545" href="#2545">2545</a>     <em class="jxr_comment">// -----------------------------------------------------------------</em>
<a class="jxr_linenumber" name="2546" href="#2546">2546</a> 
<a class="jxr_linenumber" name="2547" href="#2547">2547</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2548" href="#2548">2548</a> <em class="jxr_javadoccomment">     * Converts bulk update data.</em>
<a class="jxr_linenumber" name="2549" href="#2549">2549</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2550" href="#2550">2550</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> convert(BulkUpdateObjectIdAndChangeToken oc) {
<a class="jxr_linenumber" name="2551" href="#2551">2551</a>         <strong class="jxr_keyword">if</strong> (oc == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2552" href="#2552">2552</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2553" href="#2553">2553</a>         }
<a class="jxr_linenumber" name="2554" href="#2554">2554</a> 
<a class="jxr_linenumber" name="2555" href="#2555">2555</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="2556" href="#2556">2556</a> 
<a class="jxr_linenumber" name="2557" href="#2557">2557</a>         setIfNotNull(JSON_BULK_UPDATE_ID, oc.getId(), result);
<a class="jxr_linenumber" name="2558" href="#2558">2558</a>         setIfNotNull(JSON_BULK_UPDATE_NEW_ID, oc.getNewId(), result);
<a class="jxr_linenumber" name="2559" href="#2559">2559</a>         setIfNotNull(JSON_BULK_UPDATE_CHANGE_TOKEN, oc.getChangeToken(), result);
<a class="jxr_linenumber" name="2560" href="#2560">2560</a> 
<a class="jxr_linenumber" name="2561" href="#2561">2561</a>         convertExtension(oc, result);
<a class="jxr_linenumber" name="2562" href="#2562">2562</a> 
<a class="jxr_linenumber" name="2563" href="#2563">2563</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2564" href="#2564">2564</a>     }
<a class="jxr_linenumber" name="2565" href="#2565">2565</a> 
<a class="jxr_linenumber" name="2566" href="#2566">2566</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2567" href="#2567">2567</a> <em class="jxr_javadoccomment">     * Converts bulk update data lists.</em>
<a class="jxr_linenumber" name="2568" href="#2568">2568</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2569" href="#2569">2569</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> List&lt;BulkUpdateObjectIdAndChangeToken&gt; convertBulkUpdate(<strong class="jxr_keyword">final</strong> List&lt;Object&gt; json) {
<a class="jxr_linenumber" name="2570" href="#2570">2570</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2571" href="#2571">2571</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2572" href="#2572">2572</a>         }
<a class="jxr_linenumber" name="2573" href="#2573">2573</a> 
<a class="jxr_linenumber" name="2574" href="#2574">2574</a>         List&lt;BulkUpdateObjectIdAndChangeToken&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;BulkUpdateObjectIdAndChangeToken&gt;();
<a class="jxr_linenumber" name="2575" href="#2575">2575</a> 
<a class="jxr_linenumber" name="2576" href="#2576">2576</a>         <strong class="jxr_keyword">for</strong> (Object ocJson : json) {
<a class="jxr_linenumber" name="2577" href="#2577">2577</a>             BulkUpdateObjectIdAndChangeToken oc = convertBulkUpdate(getMap(ocJson));
<a class="jxr_linenumber" name="2578" href="#2578">2578</a>             <strong class="jxr_keyword">if</strong> (oc != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2579" href="#2579">2579</a>                 result.add(oc);
<a class="jxr_linenumber" name="2580" href="#2580">2580</a>             }
<a class="jxr_linenumber" name="2581" href="#2581">2581</a>         }
<a class="jxr_linenumber" name="2582" href="#2582">2582</a> 
<a class="jxr_linenumber" name="2583" href="#2583">2583</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2584" href="#2584">2584</a>     }
<a class="jxr_linenumber" name="2585" href="#2585">2585</a> 
<a class="jxr_linenumber" name="2586" href="#2586">2586</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2587" href="#2587">2587</a> <em class="jxr_javadoccomment">     * Converts bulk update data.</em>
<a class="jxr_linenumber" name="2588" href="#2588">2588</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2589" href="#2589">2589</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> BulkUpdateObjectIdAndChangeToken convertBulkUpdate(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json) {
<a class="jxr_linenumber" name="2590" href="#2590">2590</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2591" href="#2591">2591</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2592" href="#2592">2592</a>         }
<a class="jxr_linenumber" name="2593" href="#2593">2593</a> 
<a class="jxr_linenumber" name="2594" href="#2594">2594</a>         String id = getString(json, JSON_BULK_UPDATE_ID);
<a class="jxr_linenumber" name="2595" href="#2595">2595</a>         String newId = getString(json, JSON_BULK_UPDATE_NEW_ID);
<a class="jxr_linenumber" name="2596" href="#2596">2596</a>         String changeToken = getString(json, JSON_BULK_UPDATE_CHANGE_TOKEN);
<a class="jxr_linenumber" name="2597" href="#2597">2597</a> 
<a class="jxr_linenumber" name="2598" href="#2598">2598</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>(id, newId, changeToken);
<a class="jxr_linenumber" name="2599" href="#2599">2599</a> 
<a class="jxr_linenumber" name="2600" href="#2600">2600</a>         convertExtension(json, result, BULK_UPDATE_KEYS);
<a class="jxr_linenumber" name="2601" href="#2601">2601</a> 
<a class="jxr_linenumber" name="2602" href="#2602">2602</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2603" href="#2603">2603</a>     }
<a class="jxr_linenumber" name="2604" href="#2604">2604</a> 
<a class="jxr_linenumber" name="2605" href="#2605">2605</a>     <em class="jxr_comment">// -----------------------------------------------------------------</em>
<a class="jxr_linenumber" name="2606" href="#2606">2606</a> 
<a class="jxr_linenumber" name="2607" href="#2607">2607</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> convertExtension(<strong class="jxr_keyword">final</strong> ExtensionsData source, <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> target) {
<a class="jxr_linenumber" name="2608" href="#2608">2608</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="2609" href="#2609">2609</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="2610" href="#2610">2610</a>         }
<a class="jxr_linenumber" name="2611" href="#2611">2611</a> 
<a class="jxr_linenumber" name="2612" href="#2612">2612</a>         <strong class="jxr_keyword">for</strong> (CmisExtensionElement ext : source.getExtensions()) {
<a class="jxr_linenumber" name="2613" href="#2613">2613</a>             <strong class="jxr_keyword">if</strong> (ext == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2614" href="#2614">2614</a>                 <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="2615" href="#2615">2615</a>             }
<a class="jxr_linenumber" name="2616" href="#2616">2616</a> 
<a class="jxr_linenumber" name="2617" href="#2617">2617</a>             <strong class="jxr_keyword">if</strong> (ext.getChildren() != <strong class="jxr_keyword">null</strong> &amp;&amp; !ext.getChildren().isEmpty()) {
<a class="jxr_linenumber" name="2618" href="#2618">2618</a>                 target.put(ext.getName(), convertExtensionList(ext.getChildren()));
<a class="jxr_linenumber" name="2619" href="#2619">2619</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2620" href="#2620">2620</a>                 target.put(ext.getName(), ext.getValue());
<a class="jxr_linenumber" name="2621" href="#2621">2621</a>             }
<a class="jxr_linenumber" name="2622" href="#2622">2622</a>         }
<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>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> convertExtensionList(<strong class="jxr_keyword">final</strong> List&lt;CmisExtensionElement&gt; extensionList) {
<a class="jxr_linenumber" name="2626" href="#2626">2626</a>         <strong class="jxr_keyword">if</strong> (extensionList == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2627" href="#2627">2627</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2628" href="#2628">2628</a>         }
<a class="jxr_linenumber" name="2629" href="#2629">2629</a> 
<a class="jxr_linenumber" name="2630" href="#2630">2630</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="2631" href="#2631">2631</a> 
<a class="jxr_linenumber" name="2632" href="#2632">2632</a>         <strong class="jxr_keyword">for</strong> (CmisExtensionElement ext : extensionList) {
<a class="jxr_linenumber" name="2633" href="#2633">2633</a>             <strong class="jxr_keyword">if</strong> (ext == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2634" href="#2634">2634</a>                 <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="2635" href="#2635">2635</a>             }
<a class="jxr_linenumber" name="2636" href="#2636">2636</a> 
<a class="jxr_linenumber" name="2637" href="#2637">2637</a>             <strong class="jxr_keyword">if</strong> (ext.getChildren() != <strong class="jxr_keyword">null</strong> &amp;&amp; !ext.getChildren().isEmpty()) {
<a class="jxr_linenumber" name="2638" href="#2638">2638</a>                 result.put(ext.getName(), convertExtensionList(ext.getChildren()));
<a class="jxr_linenumber" name="2639" href="#2639">2639</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2640" href="#2640">2640</a>                 result.put(ext.getName(), ext.getValue());
<a class="jxr_linenumber" name="2641" href="#2641">2641</a>             }
<a class="jxr_linenumber" name="2642" href="#2642">2642</a>         }
<a class="jxr_linenumber" name="2643" href="#2643">2643</a> 
<a class="jxr_linenumber" name="2644" href="#2644">2644</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2645" href="#2645">2645</a>     }
<a class="jxr_linenumber" name="2646" href="#2646">2646</a> 
<a class="jxr_linenumber" name="2647" href="#2647">2647</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="2648" href="#2648">2648</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> convertExtension(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; source, <strong class="jxr_keyword">final</strong> ExtensionsData target,
<a class="jxr_linenumber" name="2649" href="#2649">2649</a>             <strong class="jxr_keyword">final</strong> Set&lt;String&gt; cmisKeys) {
<a class="jxr_linenumber" name="2650" href="#2650">2650</a>         <strong class="jxr_keyword">if</strong> (source == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2651" href="#2651">2651</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="2652" href="#2652">2652</a>         }
<a class="jxr_linenumber" name="2653" href="#2653">2653</a> 
<a class="jxr_linenumber" name="2654" href="#2654">2654</a>         List&lt;CmisExtensionElement&gt; extensions = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2655" href="#2655">2655</a> 
<a class="jxr_linenumber" name="2656" href="#2656">2656</a>         <strong class="jxr_keyword">for</strong> (Map.Entry&lt;String, Object&gt; element : source.entrySet()) {
<a class="jxr_linenumber" name="2657" href="#2657">2657</a>             <strong class="jxr_keyword">if</strong> (cmisKeys.contains(element.getKey())) {
<a class="jxr_linenumber" name="2658" href="#2658">2658</a>                 <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="2659" href="#2659">2659</a>             }
<a class="jxr_linenumber" name="2660" href="#2660">2660</a> 
<a class="jxr_linenumber" name="2661" href="#2661">2661</a>             <strong class="jxr_keyword">if</strong> (extensions == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2662" href="#2662">2662</a>                 extensions = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisExtensionElement&gt;();
<a class="jxr_linenumber" name="2663" href="#2663">2663</a>             }
<a class="jxr_linenumber" name="2664" href="#2664">2664</a> 
<a class="jxr_linenumber" name="2665" href="#2665">2665</a>             <strong class="jxr_keyword">if</strong> (element.getValue() instanceof Map) {
<a class="jxr_linenumber" name="2666" href="#2666">2666</a>                 extensions.add(<strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/CmisExtensionElementImpl.html">CmisExtensionElementImpl</a>(<strong class="jxr_keyword">null</strong>, element.getKey(), <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="2667" href="#2667">2667</a>                         convertExtension((Map&lt;String, Object&gt;) element.getValue())));
<a class="jxr_linenumber" name="2668" href="#2668">2668</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (element.getValue() instanceof List) {
<a class="jxr_linenumber" name="2669" href="#2669">2669</a>                 extensions.add(<strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/CmisExtensionElementImpl.html">CmisExtensionElementImpl</a>(<strong class="jxr_keyword">null</strong>, element.getKey(), <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="2670" href="#2670">2670</a>                         convertExtension((List&lt;Object&gt;) element.getValue())));
<a class="jxr_linenumber" name="2671" href="#2671">2671</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2672" href="#2672">2672</a>                 String value = (element.getValue() == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">null</strong> : element.getValue().toString());
<a class="jxr_linenumber" name="2673" href="#2673">2673</a>                 extensions.add(<strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/CmisExtensionElementImpl.html">CmisExtensionElementImpl</a>(<strong class="jxr_keyword">null</strong>, element.getKey(), <strong class="jxr_keyword">null</strong>, value));
<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>         target.setExtensions(extensions);
<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>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="2681" href="#2681">2681</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> List&lt;CmisExtensionElement&gt; convertExtension(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; map) {
<a class="jxr_linenumber" name="2682" href="#2682">2682</a>         <strong class="jxr_keyword">if</strong> (map == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2683" href="#2683">2683</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2684" href="#2684">2684</a>         }
<a class="jxr_linenumber" name="2685" href="#2685">2685</a> 
<a class="jxr_linenumber" name="2686" href="#2686">2686</a>         List&lt;CmisExtensionElement&gt; extensions = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisExtensionElement&gt;();
<a class="jxr_linenumber" name="2687" href="#2687">2687</a> 
<a class="jxr_linenumber" name="2688" href="#2688">2688</a>         <strong class="jxr_keyword">for</strong> (Map.Entry&lt;String, Object&gt; element : map.entrySet()) {
<a class="jxr_linenumber" name="2689" href="#2689">2689</a>             <strong class="jxr_keyword">if</strong> (element.getValue() instanceof Map) {
<a class="jxr_linenumber" name="2690" href="#2690">2690</a>                 extensions.add(<strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/CmisExtensionElementImpl.html">CmisExtensionElementImpl</a>(<strong class="jxr_keyword">null</strong>, element.getKey(), <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="2691" href="#2691">2691</a>                         convertExtension((Map&lt;String, Object&gt;) element.getValue())));
<a class="jxr_linenumber" name="2692" href="#2692">2692</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (element.getValue() instanceof List) {
<a class="jxr_linenumber" name="2693" href="#2693">2693</a>                 extensions.add(<strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/CmisExtensionElementImpl.html">CmisExtensionElementImpl</a>(<strong class="jxr_keyword">null</strong>, element.getKey(), <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="2694" href="#2694">2694</a>                         convertExtension((List&lt;Object&gt;) element.getValue())));
<a class="jxr_linenumber" name="2695" href="#2695">2695</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2696" href="#2696">2696</a>                 String value = (element.getValue() == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">null</strong> : element.getValue().toString());
<a class="jxr_linenumber" name="2697" href="#2697">2697</a>                 extensions.add(<strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/CmisExtensionElementImpl.html">CmisExtensionElementImpl</a>(<strong class="jxr_keyword">null</strong>, element.getKey(), <strong class="jxr_keyword">null</strong>, value));
<a class="jxr_linenumber" name="2698" href="#2698">2698</a>             }
<a class="jxr_linenumber" name="2699" href="#2699">2699</a>         }
<a class="jxr_linenumber" name="2700" href="#2700">2700</a> 
<a class="jxr_linenumber" name="2701" href="#2701">2701</a>         <strong class="jxr_keyword">return</strong> extensions;
<a class="jxr_linenumber" name="2702" href="#2702">2702</a>     }
<a class="jxr_linenumber" name="2703" href="#2703">2703</a> 
<a class="jxr_linenumber" name="2704" href="#2704">2704</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="2705" href="#2705">2705</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> List&lt;CmisExtensionElement&gt; convertExtension(<strong class="jxr_keyword">final</strong> List&lt;Object&gt; list) {
<a class="jxr_linenumber" name="2706" href="#2706">2706</a>         <strong class="jxr_keyword">if</strong> (list == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2707" href="#2707">2707</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2708" href="#2708">2708</a>         }
<a class="jxr_linenumber" name="2709" href="#2709">2709</a> 
<a class="jxr_linenumber" name="2710" href="#2710">2710</a>         List&lt;CmisExtensionElement&gt; extensions = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisExtensionElement&gt;();
<a class="jxr_linenumber" name="2711" href="#2711">2711</a> 
<a class="jxr_linenumber" name="2712" href="#2712">2712</a>         <strong class="jxr_keyword">int</strong> i = 0;
<a class="jxr_linenumber" name="2713" href="#2713">2713</a>         <strong class="jxr_keyword">for</strong> (Object element : list) {
<a class="jxr_linenumber" name="2714" href="#2714">2714</a>             <strong class="jxr_keyword">if</strong> (element instanceof Map) {
<a class="jxr_linenumber" name="2715" href="#2715">2715</a>                 extensions.add(<strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/CmisExtensionElementImpl.html">CmisExtensionElementImpl</a>(<strong class="jxr_keyword">null</strong>, <span class="jxr_string">""</span> + i, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="2716" href="#2716">2716</a>                         convertExtension((Map&lt;String, Object&gt;) element)));
<a class="jxr_linenumber" name="2717" href="#2717">2717</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (element instanceof List) {
<a class="jxr_linenumber" name="2718" href="#2718">2718</a>                 extensions.add(<strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/CmisExtensionElementImpl.html">CmisExtensionElementImpl</a>(<strong class="jxr_keyword">null</strong>, <span class="jxr_string">""</span> + i, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="2719" href="#2719">2719</a>                         convertExtension((List&lt;Object&gt;) element)));
<a class="jxr_linenumber" name="2720" href="#2720">2720</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2721" href="#2721">2721</a>                 String value = (element == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">null</strong> : element.toString());
<a class="jxr_linenumber" name="2722" href="#2722">2722</a>                 extensions.add(<strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/CmisExtensionElementImpl.html">CmisExtensionElementImpl</a>(<strong class="jxr_keyword">null</strong>, <span class="jxr_string">""</span> + i, <strong class="jxr_keyword">null</strong>, value));
<a class="jxr_linenumber" name="2723" href="#2723">2723</a>             }
<a class="jxr_linenumber" name="2724" href="#2724">2724</a> 
<a class="jxr_linenumber" name="2725" href="#2725">2725</a>             i++;
<a class="jxr_linenumber" name="2726" href="#2726">2726</a>         }
<a class="jxr_linenumber" name="2727" href="#2727">2727</a> 
<a class="jxr_linenumber" name="2728" href="#2728">2728</a>         <strong class="jxr_keyword">return</strong> extensions;
<a class="jxr_linenumber" name="2729" href="#2729">2729</a>     }
<a class="jxr_linenumber" name="2730" href="#2730">2730</a> 
<a class="jxr_linenumber" name="2731" href="#2731">2731</a>     <em class="jxr_comment">// -----------------------------------------------------------------</em>
<a class="jxr_linenumber" name="2732" href="#2732">2732</a> 
<a class="jxr_linenumber" name="2733" href="#2733">2733</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String getJSONStringValue(<strong class="jxr_keyword">final</strong> Object obj) {
<a class="jxr_linenumber" name="2734" href="#2734">2734</a>         <strong class="jxr_keyword">if</strong> (obj == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2735" href="#2735">2735</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2736" href="#2736">2736</a>         }
<a class="jxr_linenumber" name="2737" href="#2737">2737</a> 
<a class="jxr_linenumber" name="2738" href="#2738">2738</a>         <strong class="jxr_keyword">return</strong> obj.toString();
<a class="jxr_linenumber" name="2739" href="#2739">2739</a>     }
<a class="jxr_linenumber" name="2740" href="#2740">2740</a> 
<a class="jxr_linenumber" name="2741" href="#2741">2741</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Object getJSONValue(<strong class="jxr_keyword">final</strong> Object value) {
<a class="jxr_linenumber" name="2742" href="#2742">2742</a>         <strong class="jxr_keyword">if</strong> (value instanceof GregorianCalendar) {
<a class="jxr_linenumber" name="2743" href="#2743">2743</a>             <strong class="jxr_keyword">return</strong> ((GregorianCalendar) value).getTimeInMillis();
<a class="jxr_linenumber" name="2744" href="#2744">2744</a>         }
<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> value;
<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>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String getJSONEnumValue(<strong class="jxr_keyword">final</strong> Object obj) {
<a class="jxr_linenumber" name="2750" href="#2750">2750</a>         <strong class="jxr_keyword">if</strong> (obj == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2751" href="#2751">2751</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2752" href="#2752">2752</a>         }
<a class="jxr_linenumber" name="2753" href="#2753">2753</a> 
<a class="jxr_linenumber" name="2754" href="#2754">2754</a>         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="2755" href="#2755">2755</a>             Method m = obj.getClass().getMethod(<span class="jxr_string">"value"</span>, <strong class="jxr_keyword">new</strong> Class[0]);
<a class="jxr_linenumber" name="2756" href="#2756">2756</a>             <strong class="jxr_keyword">return</strong> (String) m.invoke(obj, <strong class="jxr_keyword">new</strong> Object[0]);
<a class="jxr_linenumber" name="2757" href="#2757">2757</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="2758" href="#2758">2758</a>             <strong class="jxr_keyword">if</strong> (e instanceof IllegalArgumentException) {
<a class="jxr_linenumber" name="2759" href="#2759">2759</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2760" href="#2760">2760</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2761" href="#2761">2761</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Could not get enum value!"</span>, e);
<a class="jxr_linenumber" name="2762" href="#2762">2762</a>             }
<a class="jxr_linenumber" name="2763" href="#2763">2763</a>         }
<a class="jxr_linenumber" name="2764" href="#2764">2764</a>     }
<a class="jxr_linenumber" name="2765" href="#2765">2765</a> 
<a class="jxr_linenumber" name="2766" href="#2766">2766</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Object getCMISValue(<strong class="jxr_keyword">final</strong> Object value, <strong class="jxr_keyword">final</strong> PropertyType propertyType) {
<a class="jxr_linenumber" name="2767" href="#2767">2767</a>         <strong class="jxr_keyword">if</strong> (value == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2768" href="#2768">2768</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2769" href="#2769">2769</a>         }
<a class="jxr_linenumber" name="2770" href="#2770">2770</a> 
<a class="jxr_linenumber" name="2771" href="#2771">2771</a>         <strong class="jxr_keyword">switch</strong> (propertyType) {
<a class="jxr_linenumber" name="2772" href="#2772">2772</a>         <strong class="jxr_keyword">case</strong> STRING:
<a class="jxr_linenumber" name="2773" href="#2773">2773</a>         <strong class="jxr_keyword">case</strong> ID:
<a class="jxr_linenumber" name="2774" href="#2774">2774</a>         <strong class="jxr_keyword">case</strong> HTML:
<a class="jxr_linenumber" name="2775" href="#2775">2775</a>         <strong class="jxr_keyword">case</strong> URI:
<a class="jxr_linenumber" name="2776" href="#2776">2776</a>             <strong class="jxr_keyword">if</strong> (value instanceof String) {
<a class="jxr_linenumber" name="2777" href="#2777">2777</a>                 <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="2778" href="#2778">2778</a>             }
<a class="jxr_linenumber" name="2779" href="#2779">2779</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Invalid String value!"</span>);
<a class="jxr_linenumber" name="2780" href="#2780">2780</a>         <strong class="jxr_keyword">case</strong> BOOLEAN:
<a class="jxr_linenumber" name="2781" href="#2781">2781</a>             <strong class="jxr_keyword">if</strong> (value instanceof Boolean) {
<a class="jxr_linenumber" name="2782" href="#2782">2782</a>                 <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="2783" href="#2783">2783</a>             }
<a class="jxr_linenumber" name="2784" href="#2784">2784</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Invalid Boolean value!"</span>);
<a class="jxr_linenumber" name="2785" href="#2785">2785</a>         <strong class="jxr_keyword">case</strong> INTEGER:
<a class="jxr_linenumber" name="2786" href="#2786">2786</a>             <strong class="jxr_keyword">if</strong> (value instanceof BigInteger) {
<a class="jxr_linenumber" name="2787" href="#2787">2787</a>                 <strong class="jxr_keyword">return</strong> (BigInteger) value;
<a class="jxr_linenumber" name="2788" href="#2788">2788</a>             }
<a class="jxr_linenumber" name="2789" href="#2789">2789</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Invalid Integer value!"</span>);
<a class="jxr_linenumber" name="2790" href="#2790">2790</a>         <strong class="jxr_keyword">case</strong> DECIMAL:
<a class="jxr_linenumber" name="2791" href="#2791">2791</a>             <strong class="jxr_keyword">if</strong> (value instanceof BigDecimal) {
<a class="jxr_linenumber" name="2792" href="#2792">2792</a>                 <strong class="jxr_keyword">return</strong> (BigDecimal) value;
<a class="jxr_linenumber" name="2793" href="#2793">2793</a>             }
<a class="jxr_linenumber" name="2794" href="#2794">2794</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Invalid Decimal value!"</span>);
<a class="jxr_linenumber" name="2795" href="#2795">2795</a>         <strong class="jxr_keyword">case</strong> DATETIME:
<a class="jxr_linenumber" name="2796" href="#2796">2796</a>             <strong class="jxr_keyword">if</strong> (value instanceof Number) {
<a class="jxr_linenumber" name="2797" href="#2797">2797</a>                 GregorianCalendar cal = <strong class="jxr_keyword">new</strong> GregorianCalendar(TimeZone.getTimeZone(<span class="jxr_string">"UTC"</span>));
<a class="jxr_linenumber" name="2798" href="#2798">2798</a>                 cal.setTimeInMillis(((Number) value).longValue());
<a class="jxr_linenumber" name="2799" href="#2799">2799</a>                 <strong class="jxr_keyword">return</strong> cal;
<a class="jxr_linenumber" name="2800" href="#2800">2800</a>             }
<a class="jxr_linenumber" name="2801" href="#2801">2801</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Invalid DateTime value!"</span>);
<a class="jxr_linenumber" name="2802" href="#2802">2802</a>         }
<a class="jxr_linenumber" name="2803" href="#2803">2803</a> 
<a class="jxr_linenumber" name="2804" href="#2804">2804</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Unkown property type!"</span>);
<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>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> getJSONArrayFromList(<strong class="jxr_keyword">final</strong> List&lt;?&gt; list) {
<a class="jxr_linenumber" name="2808" href="#2808">2808</a>         <strong class="jxr_keyword">if</strong> (list == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2809" href="#2809">2809</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2810" href="#2810">2810</a>         }
<a class="jxr_linenumber" name="2811" href="#2811">2811</a> 
<a class="jxr_linenumber" name="2812" href="#2812">2812</a>         <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a>();
<a class="jxr_linenumber" name="2813" href="#2813">2813</a>         result.addAll(list);
<a class="jxr_linenumber" name="2814" href="#2814">2814</a> 
<a class="jxr_linenumber" name="2815" href="#2815">2815</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2816" href="#2816">2816</a>     }
<a class="jxr_linenumber" name="2817" href="#2817">2817</a> 
<a class="jxr_linenumber" name="2818" href="#2818">2818</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String getJSONPropertyDataType(<strong class="jxr_keyword">final</strong> PropertyData&lt;?&gt; property) {
<a class="jxr_linenumber" name="2819" href="#2819">2819</a>         <strong class="jxr_keyword">if</strong> (property instanceof PropertyBoolean) {
<a class="jxr_linenumber" name="2820" href="#2820">2820</a>             <strong class="jxr_keyword">return</strong> PropertyType.BOOLEAN.value();
<a class="jxr_linenumber" name="2821" href="#2821">2821</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof PropertyId) {
<a class="jxr_linenumber" name="2822" href="#2822">2822</a>             <strong class="jxr_keyword">return</strong> PropertyType.ID.value();
<a class="jxr_linenumber" name="2823" href="#2823">2823</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof PropertyInteger) {
<a class="jxr_linenumber" name="2824" href="#2824">2824</a>             <strong class="jxr_keyword">return</strong> PropertyType.INTEGER.value();
<a class="jxr_linenumber" name="2825" href="#2825">2825</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof PropertyDateTime) {
<a class="jxr_linenumber" name="2826" href="#2826">2826</a>             <strong class="jxr_keyword">return</strong> PropertyType.DATETIME.value();
<a class="jxr_linenumber" name="2827" href="#2827">2827</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof PropertyDecimal) {
<a class="jxr_linenumber" name="2828" href="#2828">2828</a>             <strong class="jxr_keyword">return</strong> PropertyType.DECIMAL.value();
<a class="jxr_linenumber" name="2829" href="#2829">2829</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof PropertyHtml) {
<a class="jxr_linenumber" name="2830" href="#2830">2830</a>             <strong class="jxr_keyword">return</strong> PropertyType.HTML.value();
<a class="jxr_linenumber" name="2831" href="#2831">2831</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof PropertyString) {
<a class="jxr_linenumber" name="2832" href="#2832">2832</a>             <strong class="jxr_keyword">return</strong> PropertyType.STRING.value();
<a class="jxr_linenumber" name="2833" href="#2833">2833</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof PropertyUri) {
<a class="jxr_linenumber" name="2834" href="#2834">2834</a>             <strong class="jxr_keyword">return</strong> PropertyType.URI.value();
<a class="jxr_linenumber" name="2835" href="#2835">2835</a>         }
<a class="jxr_linenumber" name="2836" href="#2836">2836</a> 
<a class="jxr_linenumber" name="2837" href="#2837">2837</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<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>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> setIfNotNull(String name, Object obj, <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> json) {
<a class="jxr_linenumber" name="2841" href="#2841">2841</a>         <strong class="jxr_keyword">if</strong> (obj != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2842" href="#2842">2842</a>             json.put(name, obj);
<a class="jxr_linenumber" name="2843" href="#2843">2843</a>         }
<a class="jxr_linenumber" name="2844" href="#2844">2844</a>     }
<a class="jxr_linenumber" name="2845" href="#2845">2845</a> 
<a class="jxr_linenumber" name="2846" href="#2846">2846</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="2847" href="#2847">2847</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Map&lt;String, Object&gt; getMap(<strong class="jxr_keyword">final</strong> Object o) {
<a class="jxr_linenumber" name="2848" href="#2848">2848</a>         <strong class="jxr_keyword">if</strong> (o == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2849" href="#2849">2849</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2850" href="#2850">2850</a>         }
<a class="jxr_linenumber" name="2851" href="#2851">2851</a> 
<a class="jxr_linenumber" name="2852" href="#2852">2852</a>         <strong class="jxr_keyword">if</strong> (o instanceof Map) {
<a class="jxr_linenumber" name="2853" href="#2853">2853</a>             <strong class="jxr_keyword">return</strong> (Map&lt;String, Object&gt;) o;
<a class="jxr_linenumber" name="2854" href="#2854">2854</a>         }
<a class="jxr_linenumber" name="2855" href="#2855">2855</a> 
<a class="jxr_linenumber" name="2856" href="#2856">2856</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Expected a JSON object but found a "</span>
<a class="jxr_linenumber" name="2857" href="#2857">2857</a>                 + (o instanceof List ? <span class="jxr_string">"JSON array"</span> : o.getClass().getSimpleName()) + <span class="jxr_string">": "</span> + o.toString());
<a class="jxr_linenumber" name="2858" href="#2858">2858</a>     }
<a class="jxr_linenumber" name="2859" href="#2859">2859</a> 
<a class="jxr_linenumber" name="2860" href="#2860">2860</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="2861" href="#2861">2861</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> List&lt;Object&gt; getList(<strong class="jxr_keyword">final</strong> Object o) {
<a class="jxr_linenumber" name="2862" href="#2862">2862</a>         <strong class="jxr_keyword">if</strong> (o == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2863" href="#2863">2863</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2864" href="#2864">2864</a>         }
<a class="jxr_linenumber" name="2865" href="#2865">2865</a> 
<a class="jxr_linenumber" name="2866" href="#2866">2866</a>         <strong class="jxr_keyword">if</strong> (o instanceof List) {
<a class="jxr_linenumber" name="2867" href="#2867">2867</a>             <strong class="jxr_keyword">return</strong> (List&lt;Object&gt;) o;
<a class="jxr_linenumber" name="2868" href="#2868">2868</a>         }
<a class="jxr_linenumber" name="2869" href="#2869">2869</a> 
<a class="jxr_linenumber" name="2870" href="#2870">2870</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Expected a JSON array but found a "</span>
<a class="jxr_linenumber" name="2871" href="#2871">2871</a>                 + (o instanceof List ? <span class="jxr_string">"JSON object"</span> : o.getClass().getSimpleName()) + <span class="jxr_string">": "</span> + o.toString());
<a class="jxr_linenumber" name="2872" href="#2872">2872</a>     }
<a class="jxr_linenumber" name="2873" href="#2873">2873</a> 
<a class="jxr_linenumber" name="2874" href="#2874">2874</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String getString(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json, <strong class="jxr_keyword">final</strong> String key) {
<a class="jxr_linenumber" name="2875" href="#2875">2875</a>         Object obj = json.get(key);
<a class="jxr_linenumber" name="2876" href="#2876">2876</a>         <strong class="jxr_keyword">return</strong> obj == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">null</strong> : obj.toString();
<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>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Boolean getBoolean(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json, <strong class="jxr_keyword">final</strong> String key) {
<a class="jxr_linenumber" name="2880" href="#2880">2880</a>         Object obj = json.get(key);
<a class="jxr_linenumber" name="2881" href="#2881">2881</a> 
<a class="jxr_linenumber" name="2882" href="#2882">2882</a>         <strong class="jxr_keyword">if</strong> (obj instanceof Boolean) {
<a class="jxr_linenumber" name="2883" href="#2883">2883</a>             <strong class="jxr_keyword">return</strong> (Boolean) obj;
<a class="jxr_linenumber" name="2884" href="#2884">2884</a>         }
<a class="jxr_linenumber" name="2885" href="#2885">2885</a> 
<a class="jxr_linenumber" name="2886" href="#2886">2886</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2887" href="#2887">2887</a>     }
<a class="jxr_linenumber" name="2888" href="#2888">2888</a> 
<a class="jxr_linenumber" name="2889" href="#2889">2889</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> BigInteger getInteger(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json, <strong class="jxr_keyword">final</strong> String key) {
<a class="jxr_linenumber" name="2890" href="#2890">2890</a>         Object obj = json.get(key);
<a class="jxr_linenumber" name="2891" href="#2891">2891</a> 
<a class="jxr_linenumber" name="2892" href="#2892">2892</a>         <strong class="jxr_keyword">if</strong> (obj instanceof BigInteger) {
<a class="jxr_linenumber" name="2893" href="#2893">2893</a>             <strong class="jxr_keyword">return</strong> (BigInteger) obj;
<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">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2897" href="#2897">2897</a>     }
<a class="jxr_linenumber" name="2898" href="#2898">2898</a> 
<a class="jxr_linenumber" name="2899" href="#2899">2899</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> BigDecimal getDecimal(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json, <strong class="jxr_keyword">final</strong> String key) {
<a class="jxr_linenumber" name="2900" href="#2900">2900</a>         Object obj = json.get(key);
<a class="jxr_linenumber" name="2901" href="#2901">2901</a> 
<a class="jxr_linenumber" name="2902" href="#2902">2902</a>         <strong class="jxr_keyword">if</strong> (obj instanceof BigDecimal) {
<a class="jxr_linenumber" name="2903" href="#2903">2903</a>             <strong class="jxr_keyword">return</strong> (BigDecimal) 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>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2907" href="#2907">2907</a>     }
<a class="jxr_linenumber" name="2908" href="#2908">2908</a> 
<a class="jxr_linenumber" name="2909" href="#2909">2909</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> GregorianCalendar getDateTime(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json, <strong class="jxr_keyword">final</strong> String key) {
<a class="jxr_linenumber" name="2910" href="#2910">2910</a>         Object obj = json.get(key);
<a class="jxr_linenumber" name="2911" href="#2911">2911</a> 
<a class="jxr_linenumber" name="2912" href="#2912">2912</a>         <strong class="jxr_keyword">if</strong> (obj instanceof Number) {
<a class="jxr_linenumber" name="2913" href="#2913">2913</a>             GregorianCalendar cal = <strong class="jxr_keyword">new</strong> GregorianCalendar(TimeZone.getTimeZone(<span class="jxr_string">"UTC"</span>));
<a class="jxr_linenumber" name="2914" href="#2914">2914</a>             cal.setTimeInMillis(((Number) obj).longValue());
<a class="jxr_linenumber" name="2915" href="#2915">2915</a>             <strong class="jxr_keyword">return</strong> cal;
<a class="jxr_linenumber" name="2916" href="#2916">2916</a>         }
<a class="jxr_linenumber" name="2917" href="#2917">2917</a> 
<a class="jxr_linenumber" name="2918" href="#2918">2918</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2919" href="#2919">2919</a>     }
<a class="jxr_linenumber" name="2920" href="#2920">2920</a> 
<a class="jxr_linenumber" name="2921" href="#2921">2921</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 getEnum(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json, <strong class="jxr_keyword">final</strong> String key, <strong class="jxr_keyword">final</strong> Class&lt;T&gt; clazz) {
<a class="jxr_linenumber" name="2922" href="#2922">2922</a>         <strong class="jxr_keyword">return</strong> CmisEnumHelper.fromValue(getString(json, key), clazz);
<a class="jxr_linenumber" name="2923" href="#2923">2923</a>     }
<a class="jxr_linenumber" name="2924" href="#2924">2924</a> 
<a class="jxr_linenumber" name="2925" href="#2925">2925</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 getIntEnum(<strong class="jxr_keyword">final</strong> Map&lt;String, Object&gt; json, <strong class="jxr_keyword">final</strong> String key,
<a class="jxr_linenumber" name="2926" href="#2926">2926</a>             <strong class="jxr_keyword">final</strong> Class&lt;T&gt; clazz) {
<a class="jxr_linenumber" name="2927" href="#2927">2927</a>         <strong class="jxr_keyword">return</strong> CmisEnumHelper.fromValue(getInteger(json, key), clazz);
<a class="jxr_linenumber" name="2928" href="#2928">2928</a>     }
<a class="jxr_linenumber" name="2929" href="#2929">2929</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

