<!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.CollectionsHelper.isNotEmpty;
<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.chemistry.opencmis.commons.impl.CollectionsHelper.isNullOrEmpty;
<a class="jxr_linenumber" name="23" href="#23">23</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="24" href="#24">24</a>  
<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.Method;
<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.math.BigDecimal;
<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.math.BigInteger;
<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.EnumSet;
<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.GregorianCalendar;
<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashMap;
<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> java.util.TimeZone;
<a class="jxr_linenumber" name="38" href="#38">38</a>  
<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.ExtensionFeatures;
<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.PropertyIds;
<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Ace;
<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Acl;
<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.AclCapabilities;
<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.AllowableActions;
<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.BulkUpdateObjectIdAndChangeToken;
<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ChangeEventInfo;
<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.CmisExtensionElement;
<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.CreatablePropertyTypes;
<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ExtensionFeature;
<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ExtensionsData;
<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.FailedToDeleteData;
<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.NewTypeSettableAttributes;
<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectData;
<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectInFolderContainer;
<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectInFolderData;
<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectInFolderList;
<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectList;
<a class="jxr_linenumber" name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectParentData;
<a class="jxr_linenumber" name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PermissionMapping;
<a class="jxr_linenumber" name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PolicyIdList;
<a class="jxr_linenumber" name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Properties;
<a class="jxr_linenumber" name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyBoolean;
<a class="jxr_linenumber" name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyData;
<a class="jxr_linenumber" name="64" href="#64">64</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyDataWithDefinition;
<a class="jxr_linenumber" name="65" href="#65">65</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyDateTime;
<a class="jxr_linenumber" name="66" href="#66">66</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyDecimal;
<a class="jxr_linenumber" name="67" href="#67">67</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyHtml;
<a class="jxr_linenumber" name="68" href="#68">68</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyId;
<a class="jxr_linenumber" name="69" href="#69">69</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyInteger;
<a class="jxr_linenumber" name="70" href="#70">70</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyString;
<a class="jxr_linenumber" name="71" href="#71">71</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyUri;
<a class="jxr_linenumber" name="72" href="#72">72</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.RenditionData;
<a class="jxr_linenumber" name="73" href="#73">73</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.RepositoryCapabilities;
<a class="jxr_linenumber" name="74" href="#74">74</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
<a class="jxr_linenumber" name="75" href="#75">75</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.Choice;
<a class="jxr_linenumber" name="76" href="#76">76</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.DocumentTypeDefinition;
<a class="jxr_linenumber" name="77" href="#77">77</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PermissionDefinition;
<a class="jxr_linenumber" name="78" href="#78">78</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyBooleanDefinition;
<a class="jxr_linenumber" name="79" href="#79">79</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyDateTimeDefinition;
<a class="jxr_linenumber" name="80" href="#80">80</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyDecimalDefinition;
<a class="jxr_linenumber" name="81" href="#81">81</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition;
<a class="jxr_linenumber" name="82" href="#82">82</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyHtmlDefinition;
<a class="jxr_linenumber" name="83" href="#83">83</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyIdDefinition;
<a class="jxr_linenumber" name="84" href="#84">84</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyIntegerDefinition;
<a class="jxr_linenumber" name="85" href="#85">85</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyStringDefinition;
<a class="jxr_linenumber" name="86" href="#86">86</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyUriDefinition;
<a class="jxr_linenumber" name="87" href="#87">87</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.RelationshipTypeDefinition;
<a class="jxr_linenumber" name="88" href="#88">88</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
<a class="jxr_linenumber" name="89" href="#89">89</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer;
<a class="jxr_linenumber" name="90" href="#90">90</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionList;
<a class="jxr_linenumber" name="91" href="#91">91</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeMutability;
<a class="jxr_linenumber" name="92" href="#92">92</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.AclPropagation;
<a class="jxr_linenumber" name="93" href="#93">93</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Action;
<a class="jxr_linenumber" name="94" href="#94">94</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
<a class="jxr_linenumber" name="95" href="#95">95</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityAcl;
<a class="jxr_linenumber" name="96" href="#96">96</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityChanges;
<a class="jxr_linenumber" name="97" href="#97">97</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityContentStreamUpdates;
<a class="jxr_linenumber" name="98" href="#98">98</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityJoin;
<a class="jxr_linenumber" name="99" href="#99">99</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityOrderBy;
<a class="jxr_linenumber" name="100" href="#100">100</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityQuery;
<a class="jxr_linenumber" name="101" href="#101">101</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityRenditions;
<a class="jxr_linenumber" name="102" href="#102">102</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Cardinality;
<a class="jxr_linenumber" name="103" href="#103">103</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.ChangeType;
<a class="jxr_linenumber" name="104" href="#104">104</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.ContentStreamAllowed;
<a class="jxr_linenumber" name="105" href="#105">105</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.DateTimeFormat;
<a class="jxr_linenumber" name="106" href="#106">106</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.DateTimeResolution;
<a class="jxr_linenumber" name="107" href="#107">107</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.DecimalPrecision;
<a class="jxr_linenumber" name="108" href="#108">108</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.PropertyType;
<a class="jxr_linenumber" name="109" href="#109">109</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.SupportedPermissions;
<a class="jxr_linenumber" name="110" href="#110">110</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Updatability;
<a class="jxr_linenumber" name="111" href="#111">111</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
<a class="jxr_linenumber" name="112" href="#112">112</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException;
<a class="jxr_linenumber" name="113" href="#113">113</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AbstractPropertyData;
<a class="jxr_linenumber" name="114" href="#114">114</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AbstractPropertyDefinition;
<a class="jxr_linenumber" name="115" href="#115">115</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AbstractTypeDefinition;
<a class="jxr_linenumber" name="116" href="#116">116</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AccessControlEntryImpl;
<a class="jxr_linenumber" name="117" href="#117">117</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AccessControlListImpl;
<a class="jxr_linenumber" name="118" href="#118">118</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AccessControlPrincipalDataImpl;
<a class="jxr_linenumber" name="119" href="#119">119</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AclCapabilitiesDataImpl;
<a class="jxr_linenumber" name="120" href="#120">120</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AllowableActionsImpl;
<a class="jxr_linenumber" name="121" href="#121">121</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.BulkUpdateObjectIdAndChangeTokenImpl;
<a class="jxr_linenumber" name="122" href="#122">122</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ChangeEventInfoDataImpl;
<a class="jxr_linenumber" name="123" href="#123">123</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ChoiceImpl;
<a class="jxr_linenumber" name="124" href="#124">124</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.CmisExtensionElementImpl;
<a class="jxr_linenumber" name="125" href="#125">125</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.CreatablePropertyTypesImpl;
<a class="jxr_linenumber" name="126" href="#126">126</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.DocumentTypeDefinitionImpl;
<a class="jxr_linenumber" name="127" href="#127">127</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ExtensionFeatureImpl;
<a class="jxr_linenumber" name="128" href="#128">128</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.FailedToDeleteDataImpl;
<a class="jxr_linenumber" name="129" href="#129">129</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.FolderTypeDefinitionImpl;
<a class="jxr_linenumber" name="130" href="#130">130</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ItemTypeDefinitionImpl;
<a class="jxr_linenumber" name="131" href="#131">131</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.NewTypeSettableAttributesImpl;
<a class="jxr_linenumber" name="132" href="#132">132</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectDataImpl;
<a class="jxr_linenumber" name="133" href="#133">133</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectInFolderContainerImpl;
<a class="jxr_linenumber" name="134" href="#134">134</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectInFolderDataImpl;
<a class="jxr_linenumber" name="135" href="#135">135</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectInFolderListImpl;
<a class="jxr_linenumber" name="136" href="#136">136</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectListImpl;
<a class="jxr_linenumber" name="137" href="#137">137</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectParentDataImpl;
<a class="jxr_linenumber" name="138" href="#138">138</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PermissionDefinitionDataImpl;
<a class="jxr_linenumber" name="139" href="#139">139</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PermissionMappingDataImpl;
<a class="jxr_linenumber" name="140" href="#140">140</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PolicyIdListImpl;
<a class="jxr_linenumber" name="141" href="#141">141</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PolicyTypeDefinitionImpl;
<a class="jxr_linenumber" name="142" href="#142">142</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertiesImpl;
<a class="jxr_linenumber" name="143" href="#143">143</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyBooleanDefinitionImpl;
<a class="jxr_linenumber" name="144" href="#144">144</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyBooleanImpl;
<a class="jxr_linenumber" name="145" href="#145">145</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDateTimeDefinitionImpl;
<a class="jxr_linenumber" name="146" href="#146">146</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDateTimeImpl;
<a class="jxr_linenumber" name="147" href="#147">147</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDecimalDefinitionImpl;
<a class="jxr_linenumber" name="148" href="#148">148</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDecimalImpl;
<a class="jxr_linenumber" name="149" href="#149">149</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyHtmlDefinitionImpl;
<a class="jxr_linenumber" name="150" href="#150">150</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyHtmlImpl;
<a class="jxr_linenumber" name="151" href="#151">151</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIdDefinitionImpl;
<a class="jxr_linenumber" name="152" href="#152">152</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIdImpl;
<a class="jxr_linenumber" name="153" href="#153">153</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIntegerDefinitionImpl;
<a class="jxr_linenumber" name="154" href="#154">154</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIntegerImpl;
<a class="jxr_linenumber" name="155" href="#155">155</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyStringDefinitionImpl;
<a class="jxr_linenumber" name="156" href="#156">156</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyStringImpl;
<a class="jxr_linenumber" name="157" href="#157">157</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyUriDefinitionImpl;
<a class="jxr_linenumber" name="158" href="#158">158</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyUriImpl;
<a class="jxr_linenumber" name="159" href="#159">159</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.RelationshipTypeDefinitionImpl;
<a class="jxr_linenumber" name="160" href="#160">160</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.RenditionDataImpl;
<a class="jxr_linenumber" name="161" href="#161">161</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.RepositoryCapabilitiesImpl;
<a class="jxr_linenumber" name="162" href="#162">162</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.RepositoryInfoBrowserBindingImpl;
<a class="jxr_linenumber" name="163" href="#163">163</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.SecondaryTypeDefinitionImpl;
<a class="jxr_linenumber" name="164" href="#164">164</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.TypeDefinitionContainerImpl;
<a class="jxr_linenumber" name="165" href="#165">165</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.TypeDefinitionListImpl;
<a class="jxr_linenumber" name="166" href="#166">166</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.TypeMutabilityImpl;
<a class="jxr_linenumber" name="167" href="#167">167</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.json.JSONArray;
<a class="jxr_linenumber" name="168" href="#168">168</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.json.JSONObject;
<a class="jxr_linenumber" name="169" href="#169">169</a> 
<a class="jxr_linenumber" name="170" href="#170">170</a> <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="171" href="#171">171</a> <em class="jxr_javadoccomment"> * OpenCMIS objects to JSON converter.</em>
<a class="jxr_linenumber" name="172" href="#172">172</a> <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="173" href="#173">173</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="174" href="#174">174</a> 
<a class="jxr_linenumber" name="175" href="#175">175</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="176" href="#176">176</a> <em class="jxr_javadoccomment">     * Private constructor.</em>
<a class="jxr_linenumber" name="177" href="#177">177</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="178" href="#178">178</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/JSONConverter.html">JSONConverter</a>() {
<a class="jxr_linenumber" name="179" href="#179">179</a>     }
<a class="jxr_linenumber" name="180" href="#180">180</a> 
<a class="jxr_linenumber" name="181" href="#181">181</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="182" href="#182">182</a>         <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> object */</em>
<a class="jxr_linenumber" name="183" href="#183">183</a>         OBJECT,
<a class="jxr_linenumber" name="184" href="#184">184</a>         <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> query result */</em>
<a class="jxr_linenumber" name="185" href="#185">185</a>         QUERY,
<a class="jxr_linenumber" name="186" href="#186">186</a>         <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> change event */</em>
<a class="jxr_linenumber" name="187" href="#187">187</a>         CHANGE
<a class="jxr_linenumber" name="188" href="#188">188</a>     }
<a class="jxr_linenumber" name="189" href="#189">189</a> 
<a class="jxr_linenumber" name="190" href="#190">190</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="191" href="#191">191</a> <em class="jxr_javadoccomment">     * Converts a repository info object.</em>
<a class="jxr_linenumber" name="192" href="#192">192</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="193" href="#193">193</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="194" href="#194">194</a>             <strong class="jxr_keyword">final</strong> String rootUrl, <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> addExtendedDatetimeExtensionFeature) {
<a class="jxr_linenumber" name="195" href="#195">195</a>         <strong class="jxr_keyword">if</strong> (repositoryInfo == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="196" href="#196">196</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="197" href="#197">197</a>         }
<a class="jxr_linenumber" name="198" href="#198">198</a> 
<a class="jxr_linenumber" name="199" href="#199">199</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="200" href="#200">200</a> 
<a class="jxr_linenumber" name="201" href="#201">201</a>         result.put(JSON_REPINFO_ID, repositoryInfo.getId());
<a class="jxr_linenumber" name="202" href="#202">202</a>         result.put(JSON_REPINFO_NAME, repositoryInfo.getName());
<a class="jxr_linenumber" name="203" href="#203">203</a>         result.put(JSON_REPINFO_DESCRIPTION, repositoryInfo.getDescription());
<a class="jxr_linenumber" name="204" href="#204">204</a>         result.put(JSON_REPINFO_VENDOR, repositoryInfo.getVendorName());
<a class="jxr_linenumber" name="205" href="#205">205</a>         result.put(JSON_REPINFO_PRODUCT, repositoryInfo.getProductName());
<a class="jxr_linenumber" name="206" href="#206">206</a>         result.put(JSON_REPINFO_PRODUCT_VERSION, repositoryInfo.getProductVersion());
<a class="jxr_linenumber" name="207" href="#207">207</a>         result.put(JSON_REPINFO_ROOT_FOLDER_ID, repositoryInfo.getRootFolderId());
<a class="jxr_linenumber" name="208" href="#208">208</a>         result.put(JSON_REPINFO_CAPABILITIES, convert(repositoryInfo.getCapabilities()));
<a class="jxr_linenumber" name="209" href="#209">209</a>         setIfNotNull(JSON_REPINFO_ACL_CAPABILITIES, convert(repositoryInfo.getAclCapabilities()), result);
<a class="jxr_linenumber" name="210" href="#210">210</a>         result.put(JSON_REPINFO_CHANGE_LOG_TOKEN, repositoryInfo.getLatestChangeLogToken());
<a class="jxr_linenumber" name="211" href="#211">211</a>         result.put(JSON_REPINFO_CMIS_VERSION_SUPPORTED, repositoryInfo.getCmisVersionSupported());
<a class="jxr_linenumber" name="212" href="#212">212</a>         setIfNotNull(JSON_REPINFO_THIN_CLIENT_URI, repositoryInfo.getThinClientUri(), result);
<a class="jxr_linenumber" name="213" href="#213">213</a>         setIfNotNull(JSON_REPINFO_CHANGES_INCOMPLETE, repositoryInfo.getChangesIncomplete(), result);
<a class="jxr_linenumber" name="214" href="#214">214</a> 
<a class="jxr_linenumber" name="215" href="#215">215</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="216" href="#216">216</a>         <strong class="jxr_keyword">if</strong> (repositoryInfo.getChangesOnType() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="217" href="#217">217</a>             <strong class="jxr_keyword">for</strong> (BaseTypeId type : repositoryInfo.getChangesOnType()) {
<a class="jxr_linenumber" name="218" href="#218">218</a>                 <strong class="jxr_keyword">if</strong> (type != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="219" href="#219">219</a>                     changesOnType.add(getJSONStringValue(type.value()));
<a class="jxr_linenumber" name="220" href="#220">220</a>                 }
<a class="jxr_linenumber" name="221" href="#221">221</a>             }
<a class="jxr_linenumber" name="222" href="#222">222</a>         }
<a class="jxr_linenumber" name="223" href="#223">223</a>         result.put(JSON_REPINFO_CHANGES_ON_TYPE, changesOnType);
<a class="jxr_linenumber" name="224" href="#224">224</a> 
<a class="jxr_linenumber" name="225" href="#225">225</a>         setIfNotNull(JSON_REPINFO_PRINCIPAL_ID_ANONYMOUS, repositoryInfo.getPrincipalIdAnonymous(), result);
<a class="jxr_linenumber" name="226" href="#226">226</a>         setIfNotNull(JSON_REPINFO_PRINCIPAL_ID_ANYONE, repositoryInfo.getPrincipalIdAnyone(), result);
<a class="jxr_linenumber" name="227" href="#227">227</a> 
<a class="jxr_linenumber" name="228" href="#228">228</a>         <strong class="jxr_keyword">if</strong> (isNotEmpty(repositoryInfo.getExtensionFeatures())) {
<a class="jxr_linenumber" name="229" href="#229">229</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="230" href="#230">230</a> 
<a class="jxr_linenumber" name="231" href="#231">231</a>             <strong class="jxr_keyword">for</strong> (ExtensionFeature feature : repositoryInfo.getExtensionFeatures()) {
<a class="jxr_linenumber" name="232" href="#232">232</a>                 extendedFeatures.add(convert(feature));
<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>             result.put(JSON_REPINFO_EXTENDED_FEATURES, extendedFeatures);
<a class="jxr_linenumber" name="236" href="#236">236</a>         }
<a class="jxr_linenumber" name="237" href="#237">237</a> 
<a class="jxr_linenumber" name="238" href="#238">238</a>         <strong class="jxr_keyword">if</strong> (addExtendedDatetimeExtensionFeature) {
<a class="jxr_linenumber" name="239" href="#239">239</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> extendedFeatures = (JSONArray) result.get(JSON_REPINFO_EXTENDED_FEATURES);
<a class="jxr_linenumber" name="240" href="#240">240</a>             <strong class="jxr_keyword">boolean</strong> addFeature = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="241" href="#241">241</a>             <strong class="jxr_keyword">if</strong> (extendedFeatures == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="242" href="#242">242</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="243" href="#243">243</a>                 result.put(JSON_REPINFO_EXTENDED_FEATURES, extendedFeatures);
<a class="jxr_linenumber" name="244" href="#244">244</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="245" href="#245">245</a>                 <strong class="jxr_keyword">for</strong> (Object ef : extendedFeatures) {
<a class="jxr_linenumber" name="246" href="#246">246</a>                     <strong class="jxr_keyword">if</strong> (ef instanceof ExtensionFeature) {
<a class="jxr_linenumber" name="247" href="#247">247</a>                         <strong class="jxr_keyword">if</strong> (ExtensionFeatures.EXTENDED_DATETIME_FORMAT.getId().equals(((ExtensionFeature) ef).getId())) {
<a class="jxr_linenumber" name="248" href="#248">248</a>                             addFeature = false;
<a class="jxr_linenumber" name="249" href="#249">249</a>                             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="250" href="#250">250</a>                         }
<a class="jxr_linenumber" name="251" href="#251">251</a>                     }
<a class="jxr_linenumber" name="252" href="#252">252</a>                 }
<a class="jxr_linenumber" name="253" href="#253">253</a>             }
<a class="jxr_linenumber" name="254" href="#254">254</a> 
<a class="jxr_linenumber" name="255" href="#255">255</a>             <strong class="jxr_keyword">if</strong> (addFeature) {
<a class="jxr_linenumber" name="256" href="#256">256</a>                 extendedFeatures.add(convert(ExtensionFeatures.EXTENDED_DATETIME_FORMAT));
<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 class="jxr_linenumber" name="260" href="#260">260</a>         result.put(JSON_REPINFO_REPOSITORY_URL, repositoryUrl);
<a class="jxr_linenumber" name="261" href="#261">261</a>         result.put(JSON_REPINFO_ROOT_FOLDER_URL, rootUrl);
<a class="jxr_linenumber" name="262" href="#262">262</a> 
<a class="jxr_linenumber" name="263" href="#263">263</a>         convertExtension(repositoryInfo, result);
<a class="jxr_linenumber" name="264" href="#264">264</a> 
<a class="jxr_linenumber" name="265" href="#265">265</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="266" href="#266">266</a>     }
<a class="jxr_linenumber" name="267" href="#267">267</a> 
<a class="jxr_linenumber" name="268" href="#268">268</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> convert(<strong class="jxr_keyword">final</strong> ExtensionFeature feature) {
<a class="jxr_linenumber" name="269" href="#269">269</a>         <strong class="jxr_keyword">if</strong> (feature == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="270" href="#270">270</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="271" href="#271">271</a>         }
<a class="jxr_linenumber" name="272" href="#272">272</a> 
<a class="jxr_linenumber" name="273" href="#273">273</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="274" href="#274">274</a> 
<a class="jxr_linenumber" name="275" href="#275">275</a>         setIfNotNull(JSON_FEATURE_ID, feature.getId(), jsonFeature);
<a class="jxr_linenumber" name="276" href="#276">276</a>         setIfNotNull(JSON_FEATURE_URL, feature.getUrl(), jsonFeature);
<a class="jxr_linenumber" name="277" href="#277">277</a>         setIfNotNull(JSON_FEATURE_COMMON_NAME, feature.getCommonName(), jsonFeature);
<a class="jxr_linenumber" name="278" href="#278">278</a>         setIfNotNull(JSON_FEATURE_VERSION_LABEL, feature.getVersionLabel(), jsonFeature);
<a class="jxr_linenumber" name="279" href="#279">279</a>         setIfNotNull(JSON_FEATURE_DESCRIPTION, feature.getDescription(), jsonFeature);
<a class="jxr_linenumber" name="280" href="#280">280</a> 
<a class="jxr_linenumber" name="281" href="#281">281</a>         <strong class="jxr_keyword">if</strong> (isNotEmpty(feature.getFeatureData())) {
<a class="jxr_linenumber" name="282" href="#282">282</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="283" href="#283">283</a>             data.putAll(feature.getFeatureData());
<a class="jxr_linenumber" name="284" href="#284">284</a>             jsonFeature.put(JSON_FEATURE_DATA, data);
<a class="jxr_linenumber" name="285" href="#285">285</a>         }
<a class="jxr_linenumber" name="286" href="#286">286</a> 
<a class="jxr_linenumber" name="287" href="#287">287</a>         convertExtension(feature, jsonFeature);
<a class="jxr_linenumber" name="288" href="#288">288</a> 
<a class="jxr_linenumber" name="289" href="#289">289</a>         <strong class="jxr_keyword">return</strong> jsonFeature;
<a class="jxr_linenumber" name="290" href="#290">290</a>     }
<a class="jxr_linenumber" name="291" href="#291">291</a> 
<a class="jxr_linenumber" name="292" href="#292">292</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="293" href="#293">293</a> <em class="jxr_javadoccomment">     * Converts a capabilities object.</em>
<a class="jxr_linenumber" name="294" href="#294">294</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="295" href="#295">295</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="296" href="#296">296</a>         <strong class="jxr_keyword">if</strong> (capabilities == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="297" href="#297">297</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="298" href="#298">298</a>         }
<a class="jxr_linenumber" name="299" href="#299">299</a> 
<a class="jxr_linenumber" name="300" href="#300">300</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="301" href="#301">301</a> 
<a class="jxr_linenumber" name="302" href="#302">302</a>         result.put(JSON_CAP_CONTENT_STREAM_UPDATABILITY,
<a class="jxr_linenumber" name="303" href="#303">303</a>                 getJSONEnumValue(capabilities.getContentStreamUpdatesCapability()));
<a class="jxr_linenumber" name="304" href="#304">304</a>         result.put(JSON_CAP_CHANGES, getJSONEnumValue(capabilities.getChangesCapability()));
<a class="jxr_linenumber" name="305" href="#305">305</a>         result.put(JSON_CAP_RENDITIONS, getJSONEnumValue(capabilities.getRenditionsCapability()));
<a class="jxr_linenumber" name="306" href="#306">306</a>         result.put(JSON_CAP_GET_DESCENDANTS, capabilities.isGetDescendantsSupported());
<a class="jxr_linenumber" name="307" href="#307">307</a>         result.put(JSON_CAP_GET_FOLDER_TREE, capabilities.isGetFolderTreeSupported());
<a class="jxr_linenumber" name="308" href="#308">308</a>         result.put(JSON_CAP_MULTIFILING, capabilities.isMultifilingSupported());
<a class="jxr_linenumber" name="309" href="#309">309</a>         result.put(JSON_CAP_UNFILING, capabilities.isUnfilingSupported());
<a class="jxr_linenumber" name="310" href="#310">310</a>         result.put(JSON_CAP_VERSION_SPECIFIC_FILING, capabilities.isVersionSpecificFilingSupported());
<a class="jxr_linenumber" name="311" href="#311">311</a>         result.put(JSON_CAP_PWC_SEARCHABLE, capabilities.isPwcSearchableSupported());
<a class="jxr_linenumber" name="312" href="#312">312</a>         result.put(JSON_CAP_PWC_UPDATABLE, capabilities.isPwcUpdatableSupported());
<a class="jxr_linenumber" name="313" href="#313">313</a>         result.put(JSON_CAP_ALL_VERSIONS_SEARCHABLE, capabilities.isAllVersionsSearchableSupported());
<a class="jxr_linenumber" name="314" href="#314">314</a>         result.put(JSON_CAP_ORDER_BY, getJSONEnumValue(capabilities.getOrderByCapability()));
<a class="jxr_linenumber" name="315" href="#315">315</a>         result.put(JSON_CAP_QUERY, getJSONEnumValue(capabilities.getQueryCapability()));
<a class="jxr_linenumber" name="316" href="#316">316</a>         result.put(JSON_CAP_JOIN, getJSONEnumValue(capabilities.getJoinCapability()));
<a class="jxr_linenumber" name="317" href="#317">317</a>         result.put(JSON_CAP_ACL, getJSONEnumValue(capabilities.getAclCapability()));
<a class="jxr_linenumber" name="318" href="#318">318</a> 
<a class="jxr_linenumber" name="319" href="#319">319</a>         <strong class="jxr_keyword">if</strong> (capabilities.getCreatablePropertyTypes() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="320" href="#320">320</a>             CreatablePropertyTypes creatablePropertyTypes = capabilities.getCreatablePropertyTypes();
<a class="jxr_linenumber" name="321" href="#321">321</a> 
<a class="jxr_linenumber" name="322" href="#322">322</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="323" href="#323">323</a> 
<a class="jxr_linenumber" name="324" href="#324">324</a>             <strong class="jxr_keyword">if</strong> (creatablePropertyTypes.canCreate() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="325" href="#325">325</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="326" href="#326">326</a>                 <strong class="jxr_keyword">for</strong> (PropertyType propType : creatablePropertyTypes.canCreate()) {
<a class="jxr_linenumber" name="327" href="#327">327</a>                     <strong class="jxr_keyword">if</strong> (propType != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="328" href="#328">328</a>                         canCreate.add(propType.value());
<a class="jxr_linenumber" name="329" href="#329">329</a>                     }
<a class="jxr_linenumber" name="330" href="#330">330</a>                 }
<a class="jxr_linenumber" name="331" href="#331">331</a>                 creatablePropertyTypesJson.put(JSON_CAP_CREATABLE_PROPERTY_TYPES_CANCREATE, canCreate);
<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(creatablePropertyTypes, creatablePropertyTypesJson);
<a class="jxr_linenumber" name="335" href="#335">335</a> 
<a class="jxr_linenumber" name="336" href="#336">336</a>             result.put(JSON_CAP_CREATABLE_PROPERTY_TYPES, creatablePropertyTypesJson);
<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>         <strong class="jxr_keyword">if</strong> (capabilities.getNewTypeSettableAttributes() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="340" href="#340">340</a>             NewTypeSettableAttributes newTypeSettableAttributes = capabilities.getNewTypeSettableAttributes();
<a class="jxr_linenumber" name="341" href="#341">341</a> 
<a class="jxr_linenumber" name="342" href="#342">342</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="343" href="#343">343</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_ID,
<a class="jxr_linenumber" name="344" href="#344">344</a>                     newTypeSettableAttributes.canSetId());
<a class="jxr_linenumber" name="345" href="#345">345</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_LOCALNAME,
<a class="jxr_linenumber" name="346" href="#346">346</a>                     newTypeSettableAttributes.canSetLocalName());
<a class="jxr_linenumber" name="347" href="#347">347</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_LOCALNAMESPACE,
<a class="jxr_linenumber" name="348" href="#348">348</a>                     newTypeSettableAttributes.canSetLocalNamespace());
<a class="jxr_linenumber" name="349" href="#349">349</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_DISPLAYNAME,
<a class="jxr_linenumber" name="350" href="#350">350</a>                     newTypeSettableAttributes.canSetDisplayName());
<a class="jxr_linenumber" name="351" href="#351">351</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_QUERYNAME,
<a class="jxr_linenumber" name="352" href="#352">352</a>                     newTypeSettableAttributes.canSetQueryName());
<a class="jxr_linenumber" name="353" href="#353">353</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_DESCRIPTION,
<a class="jxr_linenumber" name="354" href="#354">354</a>                     newTypeSettableAttributes.canSetDescription());
<a class="jxr_linenumber" name="355" href="#355">355</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_CREATEABLE,
<a class="jxr_linenumber" name="356" href="#356">356</a>                     newTypeSettableAttributes.canSetCreatable());
<a class="jxr_linenumber" name="357" href="#357">357</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_FILEABLE,
<a class="jxr_linenumber" name="358" href="#358">358</a>                     newTypeSettableAttributes.canSetFileable());
<a class="jxr_linenumber" name="359" href="#359">359</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_QUERYABLE,
<a class="jxr_linenumber" name="360" href="#360">360</a>                     newTypeSettableAttributes.canSetQueryable());
<a class="jxr_linenumber" name="361" href="#361">361</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_FULLTEXTINDEXED,
<a class="jxr_linenumber" name="362" href="#362">362</a>                     newTypeSettableAttributes.canSetFulltextIndexed());
<a class="jxr_linenumber" name="363" href="#363">363</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_INCLUDEDINSUPERTYTPEQUERY,
<a class="jxr_linenumber" name="364" href="#364">364</a>                     newTypeSettableAttributes.canSetIncludedInSupertypeQuery());
<a class="jxr_linenumber" name="365" href="#365">365</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_CONTROLABLEPOLICY,
<a class="jxr_linenumber" name="366" href="#366">366</a>                     newTypeSettableAttributes.canSetControllablePolicy());
<a class="jxr_linenumber" name="367" href="#367">367</a>             newTypeSettableAttributesJson.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_CONTROLABLEACL,
<a class="jxr_linenumber" name="368" href="#368">368</a>                     newTypeSettableAttributes.canSetControllableAcl());
<a class="jxr_linenumber" name="369" href="#369">369</a> 
<a class="jxr_linenumber" name="370" href="#370">370</a>             convertExtension(newTypeSettableAttributes, newTypeSettableAttributesJson);
<a class="jxr_linenumber" name="371" href="#371">371</a> 
<a class="jxr_linenumber" name="372" href="#372">372</a>             result.put(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES, newTypeSettableAttributesJson);
<a class="jxr_linenumber" name="373" href="#373">373</a>         }
<a class="jxr_linenumber" name="374" href="#374">374</a> 
<a class="jxr_linenumber" name="375" href="#375">375</a>         convertExtension(capabilities, result);
<a class="jxr_linenumber" name="376" href="#376">376</a> 
<a class="jxr_linenumber" name="377" href="#377">377</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="378" href="#378">378</a>     }
<a class="jxr_linenumber" name="379" href="#379">379</a> 
<a class="jxr_linenumber" name="380" href="#380">380</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="381" href="#381">381</a> <em class="jxr_javadoccomment">     * Converts an ACL capabilities object.</em>
<a class="jxr_linenumber" name="382" href="#382">382</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="383" href="#383">383</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="384" href="#384">384</a>         <strong class="jxr_keyword">if</strong> (capabilities == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="385" href="#385">385</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="386" href="#386">386</a>         }
<a class="jxr_linenumber" name="387" href="#387">387</a> 
<a class="jxr_linenumber" name="388" href="#388">388</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="389" href="#389">389</a> 
<a class="jxr_linenumber" name="390" href="#390">390</a>         result.put(JSON_ACLCAP_SUPPORTED_PERMISSIONS, getJSONEnumValue(capabilities.getSupportedPermissions()));
<a class="jxr_linenumber" name="391" href="#391">391</a>         result.put(JSON_ACLCAP_ACL_PROPAGATION, getJSONEnumValue(capabilities.getAclPropagation()));
<a class="jxr_linenumber" name="392" href="#392">392</a> 
<a class="jxr_linenumber" name="393" href="#393">393</a>         <em class="jxr_comment">// permissions</em>
<a class="jxr_linenumber" name="394" href="#394">394</a>         <strong class="jxr_keyword">if</strong> (capabilities.getPermissions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="395" href="#395">395</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="396" href="#396">396</a> 
<a class="jxr_linenumber" name="397" href="#397">397</a>             <strong class="jxr_keyword">for</strong> (PermissionDefinition permDef : capabilities.getPermissions()) {
<a class="jxr_linenumber" name="398" href="#398">398</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="399" href="#399">399</a>                 permission.put(JSON_ACLCAP_PERMISSION_PERMISSION, permDef.getId());
<a class="jxr_linenumber" name="400" href="#400">400</a>                 permission.put(JSON_ACLCAP_PERMISSION_DESCRIPTION, permDef.getDescription());
<a class="jxr_linenumber" name="401" href="#401">401</a> 
<a class="jxr_linenumber" name="402" href="#402">402</a>                 permissions.add(permission);
<a class="jxr_linenumber" name="403" href="#403">403</a>             }
<a class="jxr_linenumber" name="404" href="#404">404</a> 
<a class="jxr_linenumber" name="405" href="#405">405</a>             result.put(JSON_ACLCAP_PERMISSIONS, permissions);
<a class="jxr_linenumber" name="406" href="#406">406</a>         }
<a class="jxr_linenumber" name="407" href="#407">407</a> 
<a class="jxr_linenumber" name="408" href="#408">408</a>         <em class="jxr_comment">// permission mapping</em>
<a class="jxr_linenumber" name="409" href="#409">409</a>         <strong class="jxr_keyword">if</strong> (capabilities.getPermissionMapping() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="410" href="#410">410</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="411" href="#411">411</a> 
<a class="jxr_linenumber" name="412" href="#412">412</a>             <strong class="jxr_keyword">for</strong> (PermissionMapping permMap : capabilities.getPermissionMapping().values()) {
<a class="jxr_linenumber" name="413" href="#413">413</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="414" href="#414">414</a>                 <strong class="jxr_keyword">if</strong> (permMap.getPermissions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="415" href="#415">415</a>                     <strong class="jxr_keyword">for</strong> (String p : permMap.getPermissions()) {
<a class="jxr_linenumber" name="416" href="#416">416</a>                         mappingPermissions.add(p);
<a class="jxr_linenumber" name="417" href="#417">417</a>                     }
<a class="jxr_linenumber" name="418" href="#418">418</a>                 }
<a class="jxr_linenumber" name="419" href="#419">419</a> 
<a class="jxr_linenumber" name="420" href="#420">420</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="421" href="#421">421</a>                 mapping.put(JSON_ACLCAP_MAPPING_KEY, permMap.getKey());
<a class="jxr_linenumber" name="422" href="#422">422</a>                 mapping.put(JSON_ACLCAP_MAPPING_PERMISSION, mappingPermissions);
<a class="jxr_linenumber" name="423" href="#423">423</a> 
<a class="jxr_linenumber" name="424" href="#424">424</a>                 permissionMapping.add(mapping);
<a class="jxr_linenumber" name="425" href="#425">425</a>             }
<a class="jxr_linenumber" name="426" href="#426">426</a> 
<a class="jxr_linenumber" name="427" href="#427">427</a>             result.put(JSON_ACLCAP_PERMISSION_MAPPING, permissionMapping);
<a class="jxr_linenumber" name="428" href="#428">428</a>         }
<a class="jxr_linenumber" name="429" href="#429">429</a> 
<a class="jxr_linenumber" name="430" href="#430">430</a>         convertExtension(capabilities, result);
<a class="jxr_linenumber" name="431" href="#431">431</a> 
<a class="jxr_linenumber" name="432" href="#432">432</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="433" href="#433">433</a>     }
<a class="jxr_linenumber" name="434" href="#434">434</a> 
<a class="jxr_linenumber" name="435" href="#435">435</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="436" href="#436">436</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="437" href="#437">437</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="438" href="#438">438</a>         }
<a class="jxr_linenumber" name="439" href="#439">439</a> 
<a class="jxr_linenumber" name="440" href="#440">440</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="441" href="#441">441</a> 
<a class="jxr_linenumber" name="442" href="#442">442</a>         result.setId(getString(json, JSON_REPINFO_ID));
<a class="jxr_linenumber" name="443" href="#443">443</a>         result.setName(getString(json, JSON_REPINFO_NAME));
<a class="jxr_linenumber" name="444" href="#444">444</a>         result.setDescription(getString(json, JSON_REPINFO_DESCRIPTION));
<a class="jxr_linenumber" name="445" href="#445">445</a>         result.setVendorName(getString(json, JSON_REPINFO_VENDOR));
<a class="jxr_linenumber" name="446" href="#446">446</a>         result.setProductName(getString(json, JSON_REPINFO_PRODUCT));
<a class="jxr_linenumber" name="447" href="#447">447</a>         result.setProductVersion(getString(json, JSON_REPINFO_PRODUCT_VERSION));
<a class="jxr_linenumber" name="448" href="#448">448</a>         result.setRootFolder(getString(json, JSON_REPINFO_ROOT_FOLDER_ID));
<a class="jxr_linenumber" name="449" href="#449">449</a>         result.setRepositoryUrl(getString(json, JSON_REPINFO_REPOSITORY_URL));
<a class="jxr_linenumber" name="450" href="#450">450</a>         result.setRootUrl(getString(json, JSON_REPINFO_ROOT_FOLDER_URL));
<a class="jxr_linenumber" name="451" href="#451">451</a>         result.setCapabilities(convertRepositoryCapabilities(getMap(json.get(JSON_REPINFO_CAPABILITIES))));
<a class="jxr_linenumber" name="452" href="#452">452</a>         result.setAclCapabilities(convertAclCapabilities(getMap(json.get(JSON_REPINFO_ACL_CAPABILITIES))));
<a class="jxr_linenumber" name="453" href="#453">453</a>         result.setLatestChangeLogToken(getString(json, JSON_REPINFO_CHANGE_LOG_TOKEN));
<a class="jxr_linenumber" name="454" href="#454">454</a>         result.setCmisVersionSupported(getString(json, JSON_REPINFO_CMIS_VERSION_SUPPORTED));
<a class="jxr_linenumber" name="455" href="#455">455</a>         result.setThinClientUri(getString(json, JSON_REPINFO_THIN_CLIENT_URI));
<a class="jxr_linenumber" name="456" href="#456">456</a>         result.setChangesIncomplete(getBoolean(json, JSON_REPINFO_CHANGES_INCOMPLETE));
<a class="jxr_linenumber" name="457" href="#457">457</a> 
<a class="jxr_linenumber" name="458" href="#458">458</a>         List&lt;Object&gt; changesOnType = getList(json.get(JSON_REPINFO_CHANGES_ON_TYPE));
<a class="jxr_linenumber" name="459" href="#459">459</a>         <strong class="jxr_keyword">if</strong> (changesOnType != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="460" href="#460">460</a>             List&lt;BaseTypeId&gt; types = <strong class="jxr_keyword">new</strong> ArrayList&lt;BaseTypeId&gt;();
<a class="jxr_linenumber" name="461" href="#461">461</a>             <strong class="jxr_keyword">for</strong> (Object type : changesOnType) {
<a class="jxr_linenumber" name="462" href="#462">462</a>                 <strong class="jxr_keyword">if</strong> (type != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="463" href="#463">463</a>                     types.add(BaseTypeId.fromValue(type.toString()));
<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>             result.setChangesOnType(types);
<a class="jxr_linenumber" name="467" href="#467">467</a>         }
<a class="jxr_linenumber" name="468" href="#468">468</a> 
<a class="jxr_linenumber" name="469" href="#469">469</a>         result.setPrincipalAnonymous(getString(json, JSON_REPINFO_PRINCIPAL_ID_ANONYMOUS));
<a class="jxr_linenumber" name="470" href="#470">470</a>         result.setPrincipalAnyone(getString(json, JSON_REPINFO_PRINCIPAL_ID_ANYONE));
<a class="jxr_linenumber" name="471" href="#471">471</a> 
<a class="jxr_linenumber" name="472" href="#472">472</a>         List&lt;Object&gt; extendedFeatures = getList(json.get(JSON_REPINFO_EXTENDED_FEATURES));
<a class="jxr_linenumber" name="473" href="#473">473</a>         <strong class="jxr_keyword">if</strong> (extendedFeatures != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="474" href="#474">474</a>             List&lt;ExtensionFeature&gt; features = <strong class="jxr_keyword">new</strong> ArrayList&lt;ExtensionFeature&gt;();
<a class="jxr_linenumber" name="475" href="#475">475</a> 
<a class="jxr_linenumber" name="476" href="#476">476</a>             <strong class="jxr_keyword">for</strong> (Object extendedFeature : extendedFeatures) {
<a class="jxr_linenumber" name="477" href="#477">477</a>                 Map&lt;String, Object&gt; jsonFeature = getMap(extendedFeature);
<a class="jxr_linenumber" name="478" href="#478">478</a> 
<a class="jxr_linenumber" name="479" href="#479">479</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="480" href="#480">480</a>                 feature.setId(getString(jsonFeature, JSON_FEATURE_ID));
<a class="jxr_linenumber" name="481" href="#481">481</a>                 feature.setUrl(getString(jsonFeature, JSON_FEATURE_URL));
<a class="jxr_linenumber" name="482" href="#482">482</a>                 feature.setCommonName(getString(jsonFeature, JSON_FEATURE_COMMON_NAME));
<a class="jxr_linenumber" name="483" href="#483">483</a>                 feature.setVersionLabel(getString(jsonFeature, JSON_FEATURE_VERSION_LABEL));
<a class="jxr_linenumber" name="484" href="#484">484</a>                 feature.setDescription(getString(jsonFeature, JSON_FEATURE_DESCRIPTION));
<a class="jxr_linenumber" name="485" href="#485">485</a> 
<a class="jxr_linenumber" name="486" href="#486">486</a>                 Map&lt;String, Object&gt; data = getMap(jsonFeature.get(JSON_FEATURE_DATA));
<a class="jxr_linenumber" name="487" href="#487">487</a>                 <strong class="jxr_keyword">if</strong> (data != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="488" href="#488">488</a>                     LinkedHashMap&lt;String, String&gt; dataMap = <strong class="jxr_keyword">new</strong> LinkedHashMap&lt;String, String&gt;();
<a class="jxr_linenumber" name="489" href="#489">489</a>                     <strong class="jxr_keyword">for</strong> (Map.Entry&lt;String, Object&gt; e : data.entrySet()) {
<a class="jxr_linenumber" name="490" href="#490">490</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="491" href="#491">491</a>                     }
<a class="jxr_linenumber" name="492" href="#492">492</a> 
<a class="jxr_linenumber" name="493" href="#493">493</a>                     <strong class="jxr_keyword">if</strong> (!dataMap.isEmpty()) {
<a class="jxr_linenumber" name="494" href="#494">494</a>                         feature.setFeatureData(dataMap);
<a class="jxr_linenumber" name="495" href="#495">495</a>                     }
<a class="jxr_linenumber" name="496" href="#496">496</a>                 }
<a class="jxr_linenumber" name="497" href="#497">497</a> 
<a class="jxr_linenumber" name="498" href="#498">498</a>                 convertExtension(jsonFeature, feature, FEATURE_KEYS);
<a class="jxr_linenumber" name="499" href="#499">499</a> 
<a class="jxr_linenumber" name="500" href="#500">500</a>                 features.add(feature);
<a class="jxr_linenumber" name="501" href="#501">501</a>             }
<a class="jxr_linenumber" name="502" href="#502">502</a> 
<a class="jxr_linenumber" name="503" href="#503">503</a>             <strong class="jxr_keyword">if</strong> (!features.isEmpty()) {
<a class="jxr_linenumber" name="504" href="#504">504</a>                 result.setExtensionFeature(features);
<a class="jxr_linenumber" name="505" href="#505">505</a>             }
<a class="jxr_linenumber" name="506" href="#506">506</a>         }
<a class="jxr_linenumber" name="507" href="#507">507</a> 
<a class="jxr_linenumber" name="508" href="#508">508</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="509" href="#509">509</a>         convertExtension(json, result, REPINFO_KEYS);
<a class="jxr_linenumber" name="510" href="#510">510</a> 
<a class="jxr_linenumber" name="511" href="#511">511</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="512" href="#512">512</a>     }
<a class="jxr_linenumber" name="513" href="#513">513</a> 
<a class="jxr_linenumber" name="514" href="#514">514</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="515" href="#515">515</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="516" href="#516">516</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<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>         <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="520" href="#520">520</a> 
<a class="jxr_linenumber" name="521" href="#521">521</a>         result.setCapabilityContentStreamUpdates(getEnum(json, JSON_CAP_CONTENT_STREAM_UPDATABILITY,
<a class="jxr_linenumber" name="522" href="#522">522</a>                 CapabilityContentStreamUpdates.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="523" href="#523">523</a>         result.setCapabilityChanges(getEnum(json, JSON_CAP_CHANGES, CapabilityChanges.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="524" href="#524">524</a>         result.setCapabilityRendition(getEnum(json, JSON_CAP_RENDITIONS, CapabilityRenditions.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="525" href="#525">525</a>         result.setSupportsGetDescendants(getBoolean(json, JSON_CAP_GET_DESCENDANTS));
<a class="jxr_linenumber" name="526" href="#526">526</a>         result.setSupportsGetFolderTree(getBoolean(json, JSON_CAP_GET_FOLDER_TREE));
<a class="jxr_linenumber" name="527" href="#527">527</a>         result.setSupportsMultifiling(getBoolean(json, JSON_CAP_MULTIFILING));
<a class="jxr_linenumber" name="528" href="#528">528</a>         result.setSupportsUnfiling(getBoolean(json, JSON_CAP_UNFILING));
<a class="jxr_linenumber" name="529" href="#529">529</a>         result.setSupportsVersionSpecificFiling(getBoolean(json, JSON_CAP_VERSION_SPECIFIC_FILING));
<a class="jxr_linenumber" name="530" href="#530">530</a>         result.setIsPwcSearchable(getBoolean(json, JSON_CAP_PWC_SEARCHABLE));
<a class="jxr_linenumber" name="531" href="#531">531</a>         result.setIsPwcUpdatable(getBoolean(json, JSON_CAP_PWC_UPDATABLE));
<a class="jxr_linenumber" name="532" href="#532">532</a>         result.setAllVersionsSearchable(getBoolean(json, JSON_CAP_ALL_VERSIONS_SEARCHABLE));
<a class="jxr_linenumber" name="533" href="#533">533</a>         result.setCapabilityOrderBy(getEnum(json, JSON_CAP_ORDER_BY, CapabilityOrderBy.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="534" href="#534">534</a>         result.setCapabilityQuery(getEnum(json, JSON_CAP_QUERY, CapabilityQuery.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="535" href="#535">535</a>         result.setCapabilityJoin(getEnum(json, JSON_CAP_JOIN, CapabilityJoin.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="536" href="#536">536</a>         result.setCapabilityAcl(getEnum(json, JSON_CAP_ACL, CapabilityAcl.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="537" href="#537">537</a> 
<a class="jxr_linenumber" name="538" href="#538">538</a>         Map&lt;String, Object&gt; creatablePropertyTypesJson = getMap(json.get(JSON_CAP_CREATABLE_PROPERTY_TYPES));
<a class="jxr_linenumber" name="539" href="#539">539</a>         <strong class="jxr_keyword">if</strong> (creatablePropertyTypesJson != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="540" href="#540">540</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="541" href="#541">541</a> 
<a class="jxr_linenumber" name="542" href="#542">542</a>             List&lt;Object&gt; canCreateJson = getList(creatablePropertyTypesJson
<a class="jxr_linenumber" name="543" href="#543">543</a>                     .get(JSON_CAP_CREATABLE_PROPERTY_TYPES_CANCREATE));
<a class="jxr_linenumber" name="544" href="#544">544</a>             <strong class="jxr_keyword">if</strong> (canCreateJson != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="545" href="#545">545</a>                 Set&lt;PropertyType&gt; canCreate = EnumSet.noneOf(PropertyType.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="546" href="#546">546</a> 
<a class="jxr_linenumber" name="547" href="#547">547</a>                 <strong class="jxr_keyword">for</strong> (Object o : canCreateJson) {
<a class="jxr_linenumber" name="548" href="#548">548</a>                     <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="549" href="#549">549</a>                         <strong class="jxr_keyword">if</strong> (o != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="550" href="#550">550</a>                             canCreate.add(PropertyType.fromValue(o.toString()));
<a class="jxr_linenumber" name="551" href="#551">551</a>                         }
<a class="jxr_linenumber" name="552" href="#552">552</a>                     } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="553" href="#553">553</a>                         <em class="jxr_comment">// ignore</em>
<a class="jxr_linenumber" name="554" href="#554">554</a>                     }
<a class="jxr_linenumber" name="555" href="#555">555</a>                 }
<a class="jxr_linenumber" name="556" href="#556">556</a> 
<a class="jxr_linenumber" name="557" href="#557">557</a>                 creatablePropertyTypes.setCanCreate(canCreate);
<a class="jxr_linenumber" name="558" href="#558">558</a>             }
<a class="jxr_linenumber" name="559" href="#559">559</a> 
<a class="jxr_linenumber" name="560" href="#560">560</a>             convertExtension(creatablePropertyTypesJson, creatablePropertyTypes, CAP_CREATABLE_PROPERTY_TYPES_KEYS);
<a class="jxr_linenumber" name="561" href="#561">561</a> 
<a class="jxr_linenumber" name="562" href="#562">562</a>             result.setCreatablePropertyTypes(creatablePropertyTypes);
<a class="jxr_linenumber" name="563" href="#563">563</a>         }
<a class="jxr_linenumber" name="564" href="#564">564</a> 
<a class="jxr_linenumber" name="565" href="#565">565</a>         Map&lt;String, Object&gt; newTypeSettableAttributesJson = getMap(json.get(JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES));
<a class="jxr_linenumber" name="566" href="#566">566</a>         <strong class="jxr_keyword">if</strong> (newTypeSettableAttributesJson != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="567" href="#567">567</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="568" href="#568">568</a> 
<a class="jxr_linenumber" name="569" href="#569">569</a>             newTypeSettableAttributes.setCanSetId(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="570" href="#570">570</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_ID));
<a class="jxr_linenumber" name="571" href="#571">571</a>             newTypeSettableAttributes.setCanSetLocalName(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="572" href="#572">572</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_LOCALNAME));
<a class="jxr_linenumber" name="573" href="#573">573</a>             newTypeSettableAttributes.setCanSetLocalNamespace(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="574" href="#574">574</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_LOCALNAMESPACE));
<a class="jxr_linenumber" name="575" href="#575">575</a>             newTypeSettableAttributes.setCanSetDisplayName(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="576" href="#576">576</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_DISPLAYNAME));
<a class="jxr_linenumber" name="577" href="#577">577</a>             newTypeSettableAttributes.setCanSetQueryName(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="578" href="#578">578</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_QUERYNAME));
<a class="jxr_linenumber" name="579" href="#579">579</a>             newTypeSettableAttributes.setCanSetDescription(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="580" href="#580">580</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_DESCRIPTION));
<a class="jxr_linenumber" name="581" href="#581">581</a>             newTypeSettableAttributes.setCanSetCreatable(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="582" href="#582">582</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_CREATEABLE));
<a class="jxr_linenumber" name="583" href="#583">583</a>             newTypeSettableAttributes.setCanSetFileable(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="584" href="#584">584</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_FILEABLE));
<a class="jxr_linenumber" name="585" href="#585">585</a>             newTypeSettableAttributes.setCanSetQueryable(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="586" href="#586">586</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_QUERYABLE));
<a class="jxr_linenumber" name="587" href="#587">587</a>             newTypeSettableAttributes.setCanSetFulltextIndexed(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="588" href="#588">588</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_FULLTEXTINDEXED));
<a class="jxr_linenumber" name="589" href="#589">589</a>             newTypeSettableAttributes.setCanSetIncludedInSupertypeQuery(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="590" href="#590">590</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_INCLUDEDINSUPERTYTPEQUERY));
<a class="jxr_linenumber" name="591" href="#591">591</a>             newTypeSettableAttributes.setCanSetControllablePolicy(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="592" href="#592">592</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_CONTROLABLEPOLICY));
<a class="jxr_linenumber" name="593" href="#593">593</a>             newTypeSettableAttributes.setCanSetControllableAcl(getBoolean(newTypeSettableAttributesJson,
<a class="jxr_linenumber" name="594" href="#594">594</a>                     JSON_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_CONTROLABLEACL));
<a class="jxr_linenumber" name="595" href="#595">595</a> 
<a class="jxr_linenumber" name="596" href="#596">596</a>             convertExtension(newTypeSettableAttributesJson, newTypeSettableAttributes,
<a class="jxr_linenumber" name="597" href="#597">597</a>                     CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_KEYS);
<a class="jxr_linenumber" name="598" href="#598">598</a> 
<a class="jxr_linenumber" name="599" href="#599">599</a>             result.setNewTypeSettableAttributes(newTypeSettableAttributes);
<a class="jxr_linenumber" name="600" href="#600">600</a>         }
<a class="jxr_linenumber" name="601" href="#601">601</a> 
<a class="jxr_linenumber" name="602" href="#602">602</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="603" href="#603">603</a>         convertExtension(json, result, CAP_KEYS);
<a class="jxr_linenumber" name="604" href="#604">604</a> 
<a class="jxr_linenumber" name="605" href="#605">605</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="606" href="#606">606</a>     }
<a class="jxr_linenumber" name="607" href="#607">607</a> 
<a class="jxr_linenumber" name="608" href="#608">608</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="609" href="#609">609</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="610" href="#610">610</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="611" href="#611">611</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="612" href="#612">612</a>         }
<a class="jxr_linenumber" name="613" href="#613">613</a> 
<a class="jxr_linenumber" name="614" href="#614">614</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="615" href="#615">615</a> 
<a class="jxr_linenumber" name="616" href="#616">616</a>         result.setSupportedPermissions(getEnum(json, JSON_ACLCAP_SUPPORTED_PERMISSIONS, SupportedPermissions.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="617" href="#617">617</a>         result.setAclPropagation(getEnum(json, JSON_ACLCAP_ACL_PROPAGATION, AclPropagation.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="618" href="#618">618</a> 
<a class="jxr_linenumber" name="619" href="#619">619</a>         List&lt;Object&gt; permissions = getList(json.get(JSON_ACLCAP_PERMISSIONS));
<a class="jxr_linenumber" name="620" href="#620">620</a>         <strong class="jxr_keyword">if</strong> (permissions != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="621" href="#621">621</a>             List&lt;PermissionDefinition&gt; permissionDefinitionList = <strong class="jxr_keyword">new</strong> ArrayList&lt;PermissionDefinition&gt;();
<a class="jxr_linenumber" name="622" href="#622">622</a> 
<a class="jxr_linenumber" name="623" href="#623">623</a>             <strong class="jxr_keyword">for</strong> (Object permission : permissions) {
<a class="jxr_linenumber" name="624" href="#624">624</a>                 Map&lt;String, Object&gt; permissionMap = getMap(permission);
<a class="jxr_linenumber" name="625" href="#625">625</a>                 <strong class="jxr_keyword">if</strong> (permissionMap != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="626" href="#626">626</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="627" href="#627">627</a> 
<a class="jxr_linenumber" name="628" href="#628">628</a>                     permDef.setId(getString(permissionMap, JSON_ACLCAP_PERMISSION_PERMISSION));
<a class="jxr_linenumber" name="629" href="#629">629</a>                     permDef.setDescription(getString(permissionMap, JSON_ACLCAP_PERMISSION_DESCRIPTION));
<a class="jxr_linenumber" name="630" href="#630">630</a> 
<a class="jxr_linenumber" name="631" href="#631">631</a>                     convertExtension(permissionMap, permDef, ACLCAP_PERMISSION_KEYS);
<a class="jxr_linenumber" name="632" href="#632">632</a> 
<a class="jxr_linenumber" name="633" href="#633">633</a>                     permissionDefinitionList.add(permDef);
<a class="jxr_linenumber" name="634" href="#634">634</a>                 }
<a class="jxr_linenumber" name="635" href="#635">635</a>             }
<a class="jxr_linenumber" name="636" href="#636">636</a> 
<a class="jxr_linenumber" name="637" href="#637">637</a>             result.setPermissionDefinitionData(permissionDefinitionList);
<a class="jxr_linenumber" name="638" href="#638">638</a>         }
<a class="jxr_linenumber" name="639" href="#639">639</a> 
<a class="jxr_linenumber" name="640" href="#640">640</a>         List&lt;Object&gt; permissionMapping = getList(json.get(JSON_ACLCAP_PERMISSION_MAPPING));
<a class="jxr_linenumber" name="641" href="#641">641</a>         <strong class="jxr_keyword">if</strong> (permissionMapping != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="642" href="#642">642</a>             Map&lt;String, PermissionMapping&gt; permMap = <strong class="jxr_keyword">new</strong> HashMap&lt;String, PermissionMapping&gt;();
<a class="jxr_linenumber" name="643" href="#643">643</a> 
<a class="jxr_linenumber" name="644" href="#644">644</a>             <strong class="jxr_keyword">for</strong> (Object permission : permissionMapping) {
<a class="jxr_linenumber" name="645" href="#645">645</a>                 Map&lt;String, Object&gt; permissionMap = getMap(permission);
<a class="jxr_linenumber" name="646" href="#646">646</a>                 <strong class="jxr_keyword">if</strong> (permissionMap != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="647" href="#647">647</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="648" href="#648">648</a> 
<a class="jxr_linenumber" name="649" href="#649">649</a>                     String key = getString(permissionMap, JSON_ACLCAP_MAPPING_KEY);
<a class="jxr_linenumber" name="650" href="#650">650</a>                     mapping.setKey(key);
<a class="jxr_linenumber" name="651" href="#651">651</a> 
<a class="jxr_linenumber" name="652" href="#652">652</a>                     Object perms = permissionMap.get(JSON_ACLCAP_MAPPING_PERMISSION);
<a class="jxr_linenumber" name="653" href="#653">653</a>                     <strong class="jxr_keyword">if</strong> (perms instanceof List) {
<a class="jxr_linenumber" name="654" href="#654">654</a>                         List&lt;String&gt; permList = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a class="jxr_linenumber" name="655" href="#655">655</a> 
<a class="jxr_linenumber" name="656" href="#656">656</a>                         <strong class="jxr_keyword">for</strong> (Object perm : (List&lt;Object&gt;) perms) {
<a class="jxr_linenumber" name="657" href="#657">657</a>                             <strong class="jxr_keyword">if</strong> (perm != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="658" href="#658">658</a>                                 permList.add(perm.toString());
<a class="jxr_linenumber" name="659" href="#659">659</a>                             }
<a class="jxr_linenumber" name="660" href="#660">660</a>                         }
<a class="jxr_linenumber" name="661" href="#661">661</a> 
<a class="jxr_linenumber" name="662" href="#662">662</a>                         mapping.setPermissions(permList);
<a class="jxr_linenumber" name="663" href="#663">663</a>                     }
<a class="jxr_linenumber" name="664" href="#664">664</a> 
<a class="jxr_linenumber" name="665" href="#665">665</a>                     convertExtension(permissionMap, mapping, ACLCAP_MAPPING_KEYS);
<a class="jxr_linenumber" name="666" href="#666">666</a> 
<a class="jxr_linenumber" name="667" href="#667">667</a>                     permMap.put(key, mapping);
<a class="jxr_linenumber" name="668" href="#668">668</a>                 }
<a class="jxr_linenumber" name="669" href="#669">669</a>             }
<a class="jxr_linenumber" name="670" href="#670">670</a> 
<a class="jxr_linenumber" name="671" href="#671">671</a>             result.setPermissionMappingData(permMap);
<a class="jxr_linenumber" name="672" href="#672">672</a>         }
<a class="jxr_linenumber" name="673" href="#673">673</a> 
<a class="jxr_linenumber" name="674" href="#674">674</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="675" href="#675">675</a>         convertExtension(json, result, ACLCAP_KEYS);
<a class="jxr_linenumber" name="676" href="#676">676</a> 
<a class="jxr_linenumber" name="677" href="#677">677</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="678" href="#678">678</a>     }
<a class="jxr_linenumber" name="679" href="#679">679</a> 
<a class="jxr_linenumber" name="680" href="#680">680</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="681" href="#681">681</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="682" href="#682">682</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="683" href="#683">683</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="684" href="#684">684</a>         }
<a class="jxr_linenumber" name="685" href="#685">685</a> 
<a class="jxr_linenumber" name="686" href="#686">686</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="687" href="#687">687</a> 
<a class="jxr_linenumber" name="688" href="#688">688</a>         String id = getString(json, JSON_TYPE_ID);
<a class="jxr_linenumber" name="689" href="#689">689</a> 
<a class="jxr_linenumber" name="690" href="#690">690</a>         <em class="jxr_comment">// find base type</em>
<a class="jxr_linenumber" name="691" href="#691">691</a>         BaseTypeId baseType = getEnum(json, JSON_TYPE_BASE_ID, BaseTypeId.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="692" href="#692">692</a>         <strong class="jxr_keyword">if</strong> (baseType == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="693" href="#693">693</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Invalid base type: "</span> + id);
<a class="jxr_linenumber" name="694" href="#694">694</a>         }
<a class="jxr_linenumber" name="695" href="#695">695</a> 
<a class="jxr_linenumber" name="696" href="#696">696</a>         <strong class="jxr_keyword">switch</strong> (baseType) {
<a class="jxr_linenumber" name="697" href="#697">697</a>         <strong class="jxr_keyword">case</strong> CMIS_FOLDER:
<a class="jxr_linenumber" name="698" href="#698">698</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="699" href="#699">699</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="700" href="#700">700</a>         <strong class="jxr_keyword">case</strong> CMIS_DOCUMENT:
<a class="jxr_linenumber" name="701" href="#701">701</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="702" href="#702">702</a> 
<a class="jxr_linenumber" name="703" href="#703">703</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/DocumentTypeDefinitionImpl.html">DocumentTypeDefinitionImpl</a>) result).setContentStreamAllowed(getEnum(json,
<a class="jxr_linenumber" name="704" href="#704">704</a>                     JSON_TYPE_CONTENTSTREAM_ALLOWED, ContentStreamAllowed.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="705" href="#705">705</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="706" href="#706">706</a> 
<a class="jxr_linenumber" name="707" href="#707">707</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="708" href="#708">708</a>         <strong class="jxr_keyword">case</strong> CMIS_RELATIONSHIP:
<a class="jxr_linenumber" name="709" href="#709">709</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="710" href="#710">710</a> 
<a class="jxr_linenumber" name="711" href="#711">711</a>             Object allowedSourceTypes = json.get(JSON_TYPE_ALLOWED_SOURCE_TYPES);
<a class="jxr_linenumber" name="712" href="#712">712</a>             <strong class="jxr_keyword">if</strong> (allowedSourceTypes instanceof List) {
<a class="jxr_linenumber" name="713" href="#713">713</a>                 List&lt;String&gt; types = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a class="jxr_linenumber" name="714" href="#714">714</a>                 <strong class="jxr_keyword">for</strong> (Object type : (List&lt;Object&gt;) allowedSourceTypes) {
<a class="jxr_linenumber" name="715" href="#715">715</a>                     <strong class="jxr_keyword">if</strong> (type != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="716" href="#716">716</a>                         types.add(type.toString());
<a class="jxr_linenumber" name="717" href="#717">717</a>                     }
<a class="jxr_linenumber" name="718" href="#718">718</a>                 }
<a class="jxr_linenumber" name="719" href="#719">719</a> 
<a class="jxr_linenumber" name="720" href="#720">720</a>                 ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/RelationshipTypeDefinitionImpl.html">RelationshipTypeDefinitionImpl</a>) result).setAllowedSourceTypes(types);
<a class="jxr_linenumber" name="721" href="#721">721</a>             }
<a class="jxr_linenumber" name="722" href="#722">722</a> 
<a class="jxr_linenumber" name="723" href="#723">723</a>             Object allowedTargetTypes = json.get(JSON_TYPE_ALLOWED_TARGET_TYPES);
<a class="jxr_linenumber" name="724" href="#724">724</a>             <strong class="jxr_keyword">if</strong> (allowedTargetTypes instanceof List) {
<a class="jxr_linenumber" name="725" href="#725">725</a>                 List&lt;String&gt; types = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a class="jxr_linenumber" name="726" href="#726">726</a>                 <strong class="jxr_keyword">for</strong> (Object type : (List&lt;Object&gt;) allowedTargetTypes) {
<a class="jxr_linenumber" name="727" href="#727">727</a>                     <strong class="jxr_keyword">if</strong> (type != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="728" href="#728">728</a>                         types.add(type.toString());
<a class="jxr_linenumber" name="729" href="#729">729</a>                     }
<a class="jxr_linenumber" name="730" href="#730">730</a>                 }
<a class="jxr_linenumber" name="731" href="#731">731</a> 
<a class="jxr_linenumber" name="732" href="#732">732</a>                 ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/RelationshipTypeDefinitionImpl.html">RelationshipTypeDefinitionImpl</a>) result).setAllowedTargetTypes(types);
<a class="jxr_linenumber" name="733" href="#733">733</a>             }
<a class="jxr_linenumber" name="734" href="#734">734</a> 
<a class="jxr_linenumber" name="735" href="#735">735</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="736" href="#736">736</a>         <strong class="jxr_keyword">case</strong> CMIS_POLICY:
<a class="jxr_linenumber" name="737" href="#737">737</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="738" href="#738">738</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="739" href="#739">739</a>         <strong class="jxr_keyword">case</strong> CMIS_ITEM:
<a class="jxr_linenumber" name="740" href="#740">740</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="741" href="#741">741</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="742" href="#742">742</a>         <strong class="jxr_keyword">case</strong> CMIS_SECONDARY:
<a class="jxr_linenumber" name="743" href="#743">743</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="744" href="#744">744</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="745" href="#745">745</a>         <strong class="jxr_keyword">default</strong>:
<a class="jxr_linenumber" name="746" href="#746">746</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="747" href="#747">747</a>         }
<a class="jxr_linenumber" name="748" href="#748">748</a> 
<a class="jxr_linenumber" name="749" href="#749">749</a>         result.setBaseTypeId(baseType);
<a class="jxr_linenumber" name="750" href="#750">750</a>         result.setDescription(getString(json, JSON_TYPE_DESCRIPTION));
<a class="jxr_linenumber" name="751" href="#751">751</a>         result.setDisplayName(getString(json, JSON_TYPE_DISPLAYNAME));
<a class="jxr_linenumber" name="752" href="#752">752</a>         result.setId(id);
<a class="jxr_linenumber" name="753" href="#753">753</a>         result.setIsControllableAcl(getBoolean(json, JSON_TYPE_CONTROLABLE_ACL));
<a class="jxr_linenumber" name="754" href="#754">754</a>         result.setIsControllablePolicy(getBoolean(json, JSON_TYPE_CONTROLABLE_POLICY));
<a class="jxr_linenumber" name="755" href="#755">755</a>         result.setIsCreatable(getBoolean(json, JSON_TYPE_CREATABLE));
<a class="jxr_linenumber" name="756" href="#756">756</a>         result.setIsFileable(getBoolean(json, JSON_TYPE_FILEABLE));
<a class="jxr_linenumber" name="757" href="#757">757</a>         result.setIsFulltextIndexed(getBoolean(json, JSON_TYPE_FULLTEXT_INDEXED));
<a class="jxr_linenumber" name="758" href="#758">758</a>         result.setIsIncludedInSupertypeQuery(getBoolean(json, JSON_TYPE_INCLUDE_IN_SUPERTYPE_QUERY));
<a class="jxr_linenumber" name="759" href="#759">759</a>         result.setIsQueryable(getBoolean(json, JSON_TYPE_QUERYABLE));
<a class="jxr_linenumber" name="760" href="#760">760</a>         result.setLocalName(getString(json, JSON_TYPE_LOCALNAME));
<a class="jxr_linenumber" name="761" href="#761">761</a>         result.setLocalNamespace(getString(json, JSON_TYPE_LOCALNAMESPACE));
<a class="jxr_linenumber" name="762" href="#762">762</a>         result.setParentTypeId(getString(json, JSON_TYPE_PARENT_ID));
<a class="jxr_linenumber" name="763" href="#763">763</a>         result.setQueryName(getString(json, JSON_TYPE_QUERYNAME));
<a class="jxr_linenumber" name="764" href="#764">764</a> 
<a class="jxr_linenumber" name="765" href="#765">765</a>         Map&lt;String, Object&gt; typeMutabilityJson = getMap(json.get(JSON_TYPE_TYPE_MUTABILITY));
<a class="jxr_linenumber" name="766" href="#766">766</a>         <strong class="jxr_keyword">if</strong> (typeMutabilityJson != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="767" href="#767">767</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="768" href="#768">768</a> 
<a class="jxr_linenumber" name="769" href="#769">769</a>             typeMutability.setCanCreate(getBoolean(typeMutabilityJson, JSON_TYPE_TYPE_MUTABILITY_CREATE));
<a class="jxr_linenumber" name="770" href="#770">770</a>             typeMutability.setCanUpdate(getBoolean(typeMutabilityJson, JSON_TYPE_TYPE_MUTABILITY_UPDATE));
<a class="jxr_linenumber" name="771" href="#771">771</a>             typeMutability.setCanDelete(getBoolean(typeMutabilityJson, JSON_TYPE_TYPE_MUTABILITY_DELETE));
<a class="jxr_linenumber" name="772" href="#772">772</a> 
<a class="jxr_linenumber" name="773" href="#773">773</a>             convertExtension(typeMutabilityJson, typeMutability, JSON_TYPE_TYPE_MUTABILITY_KEYS);
<a class="jxr_linenumber" name="774" href="#774">774</a> 
<a class="jxr_linenumber" name="775" href="#775">775</a>             result.setTypeMutability(typeMutability);
<a class="jxr_linenumber" name="776" href="#776">776</a>         }
<a class="jxr_linenumber" name="777" href="#777">777</a> 
<a class="jxr_linenumber" name="778" href="#778">778</a>         Map&lt;String, Object&gt; propertyDefinitions = getMap(json.get(JSON_TYPE_PROPERTY_DEFINITIONS));
<a class="jxr_linenumber" name="779" href="#779">779</a>         <strong class="jxr_keyword">if</strong> (propertyDefinitions != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="780" href="#780">780</a>             <strong class="jxr_keyword">for</strong> (Object propDef : propertyDefinitions.values()) {
<a class="jxr_linenumber" name="781" href="#781">781</a>                 result.addPropertyDefinition(convertPropertyDefinition(getMap(propDef)));
<a class="jxr_linenumber" name="782" href="#782">782</a>             }
<a class="jxr_linenumber" name="783" href="#783">783</a>         }
<a class="jxr_linenumber" name="784" href="#784">784</a> 
<a class="jxr_linenumber" name="785" href="#785">785</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="786" href="#786">786</a>         convertExtension(json, result, TYPE_KEYS);
<a class="jxr_linenumber" name="787" href="#787">787</a> 
<a class="jxr_linenumber" name="788" href="#788">788</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="789" href="#789">789</a>     }
<a class="jxr_linenumber" name="790" href="#790">790</a> 
<a class="jxr_linenumber" name="791" href="#791">791</a>     @SuppressWarnings({ <span class="jxr_string">"unchecked"</span>, <span class="jxr_string">"rawtypes"</span> })
<a class="jxr_linenumber" name="792" href="#792">792</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="793" href="#793">793</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="794" href="#794">794</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="795" href="#795">795</a>         }
<a class="jxr_linenumber" name="796" href="#796">796</a> 
<a class="jxr_linenumber" name="797" href="#797">797</a>         AbstractPropertyDefinition&lt;?&gt; result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="798" href="#798">798</a> 
<a class="jxr_linenumber" name="799" href="#799">799</a>         String id = getString(json, JSON_PROPERTY_ID);
<a class="jxr_linenumber" name="800" href="#800">800</a> 
<a class="jxr_linenumber" name="801" href="#801">801</a>         <em class="jxr_comment">// find property type</em>
<a class="jxr_linenumber" name="802" href="#802">802</a>         PropertyType propertyType = getEnum(json, JSON_PROPERTY_TYPE_PROPERTY_TYPE, PropertyType.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="803" href="#803">803</a>         <strong class="jxr_keyword">if</strong> (propertyType == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="804" href="#804">804</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="805" href="#805">805</a>         }
<a class="jxr_linenumber" name="806" href="#806">806</a> 
<a class="jxr_linenumber" name="807" href="#807">807</a>         <em class="jxr_comment">// find</em>
<a class="jxr_linenumber" name="808" href="#808">808</a>         Cardinality cardinality = getEnum(json, JSON_PROPERTY_TYPE_CARDINALITY, Cardinality.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="809" href="#809">809</a>         <strong class="jxr_keyword">if</strong> (cardinality == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="810" href="#810">810</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="811" href="#811">811</a>         }
<a class="jxr_linenumber" name="812" href="#812">812</a> 
<a class="jxr_linenumber" name="813" href="#813">813</a>         <strong class="jxr_keyword">switch</strong> (propertyType) {
<a class="jxr_linenumber" name="814" href="#814">814</a>         <strong class="jxr_keyword">case</strong> STRING:
<a class="jxr_linenumber" name="815" href="#815">815</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="816" href="#816">816</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="817" href="#817">817</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyStringDefinitionImpl.html">PropertyStringDefinitionImpl</a>) result)
<a class="jxr_linenumber" name="818" href="#818">818</a>                     .setChoices(convertChoicesString(json.get(JSON_PROPERTY_TYPE_CHOICE)));
<a class="jxr_linenumber" name="819" href="#819">819</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="820" href="#820">820</a>         <strong class="jxr_keyword">case</strong> ID:
<a class="jxr_linenumber" name="821" href="#821">821</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="822" href="#822">822</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="823" href="#823">823</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="824" href="#824">824</a>         <strong class="jxr_keyword">case</strong> BOOLEAN:
<a class="jxr_linenumber" name="825" href="#825">825</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="826" href="#826">826</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyBooleanDefinitionImpl.html">PropertyBooleanDefinitionImpl</a>) result).setChoices(convertChoicesBoolean(json
<a class="jxr_linenumber" name="827" href="#827">827</a>                     .get(JSON_PROPERTY_TYPE_CHOICE)));
<a class="jxr_linenumber" name="828" href="#828">828</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="829" href="#829">829</a>         <strong class="jxr_keyword">case</strong> INTEGER:
<a class="jxr_linenumber" name="830" href="#830">830</a>             result = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIntegerDefinitionImpl.html">PropertyIntegerDefinitionImpl</a>();
<a class="jxr_linenumber" name="831" href="#831">831</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="832" href="#832">832</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="833" href="#833">833</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIntegerDefinitionImpl.html">PropertyIntegerDefinitionImpl</a>) result).setChoices(convertChoicesInteger(json
<a class="jxr_linenumber" name="834" href="#834">834</a>                     .get(JSON_PROPERTY_TYPE_CHOICE)));
<a class="jxr_linenumber" name="835" href="#835">835</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="836" href="#836">836</a>         <strong class="jxr_keyword">case</strong> DATETIME:
<a class="jxr_linenumber" name="837" href="#837">837</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="838" href="#838">838</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDateTimeDefinitionImpl.html">PropertyDateTimeDefinitionImpl</a>) result).setDateTimeResolution(getEnum(json,
<a class="jxr_linenumber" name="839" href="#839">839</a>                     JSON_PROPERTY_TYPE_RESOLUTION, DateTimeResolution.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="840" href="#840">840</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDateTimeDefinitionImpl.html">PropertyDateTimeDefinitionImpl</a>) result).setChoices(convertChoicesDateTime(json
<a class="jxr_linenumber" name="841" href="#841">841</a>                     .get(JSON_PROPERTY_TYPE_CHOICE)));
<a class="jxr_linenumber" name="842" href="#842">842</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="843" href="#843">843</a>         <strong class="jxr_keyword">case</strong> DECIMAL:
<a class="jxr_linenumber" name="844" href="#844">844</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="845" href="#845">845</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="846" href="#846">846</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="847" href="#847">847</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="848" href="#848">848</a>                     DecimalPrecision.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="849" href="#849">849</a>             ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDecimalDefinitionImpl.html">PropertyDecimalDefinitionImpl</a>) result).setChoices(convertChoicesDecimal(json
<a class="jxr_linenumber" name="850" href="#850">850</a>                     .get(JSON_PROPERTY_TYPE_CHOICE)));
<a class="jxr_linenumber" name="851" href="#851">851</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="852" href="#852">852</a>         <strong class="jxr_keyword">case</strong> HTML:
<a class="jxr_linenumber" name="853" href="#853">853</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="854" href="#854">854</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="855" href="#855">855</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="856" href="#856">856</a>         <strong class="jxr_keyword">case</strong> URI:
<a class="jxr_linenumber" name="857" href="#857">857</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="858" href="#858">858</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="859" href="#859">859</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="860" href="#860">860</a>         <strong class="jxr_keyword">default</strong>:
<a class="jxr_linenumber" name="861" href="#861">861</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="862" href="#862">862</a>         }
<a class="jxr_linenumber" name="863" href="#863">863</a> 
<a class="jxr_linenumber" name="864" href="#864">864</a>         <em class="jxr_comment">// default value</em>
<a class="jxr_linenumber" name="865" href="#865">865</a>         Object defaultValue = json.get(JSON_PROPERTY_TYPE_DEAULT_VALUE);
<a class="jxr_linenumber" name="866" href="#866">866</a>         <strong class="jxr_keyword">if</strong> (defaultValue != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="867" href="#867">867</a>             <strong class="jxr_keyword">if</strong> (defaultValue instanceof List) {
<a class="jxr_linenumber" name="868" href="#868">868</a>                 List values = <strong class="jxr_keyword">new</strong> ArrayList();
<a class="jxr_linenumber" name="869" href="#869">869</a>                 <strong class="jxr_keyword">for</strong> (Object value : (List) defaultValue) {
<a class="jxr_linenumber" name="870" href="#870">870</a>                     values.add(getCMISValue(value, propertyType));
<a class="jxr_linenumber" name="871" href="#871">871</a>                 }
<a class="jxr_linenumber" name="872" href="#872">872</a>                 result.setDefaultValue(values);
<a class="jxr_linenumber" name="873" href="#873">873</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="874" href="#874">874</a>                 result.setDefaultValue((List) Collections.singletonList(getCMISValue(defaultValue, propertyType)));
<a class="jxr_linenumber" name="875" href="#875">875</a>             }
<a class="jxr_linenumber" name="876" href="#876">876</a>         }
<a class="jxr_linenumber" name="877" href="#877">877</a> 
<a class="jxr_linenumber" name="878" href="#878">878</a>         <em class="jxr_comment">// generic</em>
<a class="jxr_linenumber" name="879" href="#879">879</a>         result.setId(id);
<a class="jxr_linenumber" name="880" href="#880">880</a>         result.setPropertyType(propertyType);
<a class="jxr_linenumber" name="881" href="#881">881</a>         result.setCardinality(cardinality);
<a class="jxr_linenumber" name="882" href="#882">882</a>         result.setLocalName(getString(json, JSON_PROPERTY_TYPE_LOCALNAME));
<a class="jxr_linenumber" name="883" href="#883">883</a>         result.setLocalNamespace(getString(json, JSON_PROPERTY_TYPE_LOCALNAMESPACE));
<a class="jxr_linenumber" name="884" href="#884">884</a>         result.setQueryName(getString(json, JSON_PROPERTY_TYPE_QUERYNAME));
<a class="jxr_linenumber" name="885" href="#885">885</a>         result.setDescription(getString(json, JSON_PROPERTY_TYPE_DESCRIPTION));
<a class="jxr_linenumber" name="886" href="#886">886</a>         result.setDisplayName(getString(json, JSON_PROPERTY_TYPE_DISPLAYNAME));
<a class="jxr_linenumber" name="887" href="#887">887</a>         result.setIsInherited(getBoolean(json, JSON_PROPERTY_TYPE_INHERITED));
<a class="jxr_linenumber" name="888" href="#888">888</a>         result.setIsOpenChoice(getBoolean(json, JSON_PROPERTY_TYPE_OPENCHOICE));
<a class="jxr_linenumber" name="889" href="#889">889</a>         result.setIsOrderable(getBoolean(json, JSON_PROPERTY_TYPE_ORDERABLE));
<a class="jxr_linenumber" name="890" href="#890">890</a>         result.setIsQueryable(getBoolean(json, JSON_PROPERTY_TYPE_QUERYABLE));
<a class="jxr_linenumber" name="891" href="#891">891</a>         result.setIsRequired(getBoolean(json, JSON_PROPERTY_TYPE_REQUIRED));
<a class="jxr_linenumber" name="892" href="#892">892</a>         result.setUpdatability(getEnum(json, JSON_PROPERTY_TYPE_UPDATABILITY, Updatability.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="893" href="#893">893</a> 
<a class="jxr_linenumber" name="894" href="#894">894</a>         <em class="jxr_comment">// handle extensions</em>
<a class="jxr_linenumber" name="895" href="#895">895</a>         convertExtension(json, result, PROPERTY_TYPE_KEYS);
<a class="jxr_linenumber" name="896" href="#896">896</a> 
<a class="jxr_linenumber" name="897" href="#897">897</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="898" href="#898">898</a>     }
<a class="jxr_linenumber" name="899" href="#899">899</a> 
<a class="jxr_linenumber" name="900" href="#900">900</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="901" href="#901">901</a> <em class="jxr_javadoccomment">     * Converts choices.</em>
<a class="jxr_linenumber" name="902" href="#902">902</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="903" href="#903">903</a>     @SuppressWarnings({ <span class="jxr_string">"rawtypes"</span> })
<a class="jxr_linenumber" name="904" href="#904">904</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="905" href="#905">905</a>         <strong class="jxr_keyword">if</strong> (!(choices instanceof List)) {
<a class="jxr_linenumber" name="906" href="#906">906</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="907" href="#907">907</a>         }
<a class="jxr_linenumber" name="908" href="#908">908</a> 
<a class="jxr_linenumber" name="909" href="#909">909</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="910" href="#910">910</a> 
<a class="jxr_linenumber" name="911" href="#911">911</a>         <strong class="jxr_keyword">for</strong> (Object obj : (List) choices) {
<a class="jxr_linenumber" name="912" href="#912">912</a>             Map&lt;String, Object&gt; choiceMap = getMap(obj);
<a class="jxr_linenumber" name="913" href="#913">913</a>             <strong class="jxr_keyword">if</strong> (choiceMap != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="914" href="#914">914</a>                 ChoiceImpl&lt;String&gt; choice = <strong class="jxr_keyword">new</strong> ChoiceImpl&lt;String&gt;();
<a class="jxr_linenumber" name="915" href="#915">915</a>                 choice.setDisplayName(getString(choiceMap, JSON_PROPERTY_TYPE_CHOICE_DISPLAYNAME));
<a class="jxr_linenumber" name="916" href="#916">916</a> 
<a class="jxr_linenumber" name="917" href="#917">917</a>                 Object choiceValue = choiceMap.get(JSON_PROPERTY_TYPE_CHOICE_VALUE);
<a class="jxr_linenumber" name="918" href="#918">918</a>                 List&lt;String&gt; values = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a class="jxr_linenumber" name="919" href="#919">919</a>                 <strong class="jxr_keyword">if</strong> (choiceValue instanceof List) {
<a class="jxr_linenumber" name="920" href="#920">920</a>                     <strong class="jxr_keyword">for</strong> (Object value : (List) choiceValue) {
<a class="jxr_linenumber" name="921" href="#921">921</a>                         values.add((String) getCMISValue(value, PropertyType.STRING));
<a class="jxr_linenumber" name="922" href="#922">922</a>                     }
<a class="jxr_linenumber" name="923" href="#923">923</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="924" href="#924">924</a>                     values.add((String) getCMISValue(choiceValue, PropertyType.STRING));
<a class="jxr_linenumber" name="925" href="#925">925</a>                 }
<a class="jxr_linenumber" name="926" href="#926">926</a>                 choice.setValue(values);
<a class="jxr_linenumber" name="927" href="#927">927</a> 
<a class="jxr_linenumber" name="928" href="#928">928</a>                 choice.setChoice(convertChoicesString(choiceMap.get(JSON_PROPERTY_TYPE_CHOICE_CHOICE)));
<a class="jxr_linenumber" name="929" href="#929">929</a> 
<a class="jxr_linenumber" name="930" href="#930">930</a>                 result.add(choice);
<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> 
<a class="jxr_linenumber" name="934" href="#934">934</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="935" href="#935">935</a>     }
<a class="jxr_linenumber" name="936" href="#936">936</a> 
<a class="jxr_linenumber" name="937" href="#937">937</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="938" href="#938">938</a> <em class="jxr_javadoccomment">     * Converts choices.</em>
<a class="jxr_linenumber" name="939" href="#939">939</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="940" href="#940">940</a>     @SuppressWarnings({ <span class="jxr_string">"rawtypes"</span> })
<a class="jxr_linenumber" name="941" href="#941">941</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="942" href="#942">942</a>         <strong class="jxr_keyword">if</strong> (!(choices instanceof List)) {
<a class="jxr_linenumber" name="943" href="#943">943</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="944" href="#944">944</a>         }
<a class="jxr_linenumber" name="945" href="#945">945</a> 
<a class="jxr_linenumber" name="946" href="#946">946</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="947" href="#947">947</a> 
<a class="jxr_linenumber" name="948" href="#948">948</a>         <strong class="jxr_keyword">for</strong> (Object obj : (List) choices) {
<a class="jxr_linenumber" name="949" href="#949">949</a>             Map&lt;String, Object&gt; choiceMap = getMap(obj);
<a class="jxr_linenumber" name="950" href="#950">950</a>             <strong class="jxr_keyword">if</strong> (choiceMap != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="951" href="#951">951</a>                 ChoiceImpl&lt;Boolean&gt; choice = <strong class="jxr_keyword">new</strong> ChoiceImpl&lt;Boolean&gt;();
<a class="jxr_linenumber" name="952" href="#952">952</a>                 choice.setDisplayName(getString(choiceMap, JSON_PROPERTY_TYPE_CHOICE_DISPLAYNAME));
<a class="jxr_linenumber" name="953" href="#953">953</a> 
<a class="jxr_linenumber" name="954" href="#954">954</a>                 Object choiceValue = choiceMap.get(JSON_PROPERTY_TYPE_CHOICE_VALUE);
<a class="jxr_linenumber" name="955" href="#955">955</a>                 List&lt;Boolean&gt; values = <strong class="jxr_keyword">new</strong> ArrayList&lt;Boolean&gt;();
<a class="jxr_linenumber" name="956" href="#956">956</a>                 <strong class="jxr_keyword">if</strong> (choiceValue instanceof List) {
<a class="jxr_linenumber" name="957" href="#957">957</a>                     <strong class="jxr_keyword">for</strong> (Object value : (List) choiceValue) {
<a class="jxr_linenumber" name="958" href="#958">958</a>                         values.add((Boolean) getCMISValue(value, PropertyType.BOOLEAN));
<a class="jxr_linenumber" name="959" href="#959">959</a>                     }
<a class="jxr_linenumber" name="960" href="#960">960</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="961" href="#961">961</a>                     values.add((Boolean) getCMISValue(choiceValue, PropertyType.BOOLEAN));
<a class="jxr_linenumber" name="962" href="#962">962</a>                 }
<a class="jxr_linenumber" name="963" href="#963">963</a>                 choice.setValue(values);
<a class="jxr_linenumber" name="964" href="#964">964</a> 
<a class="jxr_linenumber" name="965" href="#965">965</a>                 choice.setChoice(convertChoicesBoolean(choiceMap.get(JSON_PROPERTY_TYPE_CHOICE_CHOICE)));
<a class="jxr_linenumber" name="966" href="#966">966</a> 
<a class="jxr_linenumber" name="967" href="#967">967</a>                 result.add(choice);
<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> 
<a class="jxr_linenumber" name="971" href="#971">971</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="972" href="#972">972</a>     }
<a class="jxr_linenumber" name="973" href="#973">973</a> 
<a class="jxr_linenumber" name="974" href="#974">974</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="975" href="#975">975</a> <em class="jxr_javadoccomment">     * Converts choices.</em>
<a class="jxr_linenumber" name="976" href="#976">976</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="977" href="#977">977</a>     @SuppressWarnings({ <span class="jxr_string">"rawtypes"</span> })
<a class="jxr_linenumber" name="978" href="#978">978</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="979" href="#979">979</a>         <strong class="jxr_keyword">if</strong> (!(choices instanceof List)) {
<a class="jxr_linenumber" name="980" href="#980">980</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="981" href="#981">981</a>         }
<a class="jxr_linenumber" name="982" href="#982">982</a> 
<a class="jxr_linenumber" name="983" href="#983">983</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="984" href="#984">984</a> 
<a class="jxr_linenumber" name="985" href="#985">985</a>         <strong class="jxr_keyword">for</strong> (Object obj : (List) choices) {
<a class="jxr_linenumber" name="986" href="#986">986</a>             Map&lt;String, Object&gt; choiceMap = getMap(obj);
<a class="jxr_linenumber" name="987" href="#987">987</a>             <strong class="jxr_keyword">if</strong> (choiceMap != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="988" href="#988">988</a>                 ChoiceImpl&lt;BigInteger&gt; choice = <strong class="jxr_keyword">new</strong> ChoiceImpl&lt;BigInteger&gt;();
<a class="jxr_linenumber" name="989" href="#989">989</a>                 choice.setDisplayName(getString(choiceMap, JSON_PROPERTY_TYPE_CHOICE_DISPLAYNAME));
<a class="jxr_linenumber" name="990" href="#990">990</a> 
<a class="jxr_linenumber" name="991" href="#991">991</a>                 Object choiceValue = choiceMap.get(JSON_PROPERTY_TYPE_CHOICE_VALUE);
<a class="jxr_linenumber" name="992" href="#992">992</a>                 List&lt;BigInteger&gt; values = <strong class="jxr_keyword">new</strong> ArrayList&lt;BigInteger&gt;();
<a class="jxr_linenumber" name="993" href="#993">993</a>                 <strong class="jxr_keyword">if</strong> (choiceValue instanceof List) {
<a class="jxr_linenumber" name="994" href="#994">994</a>                     <strong class="jxr_keyword">for</strong> (Object value : (List) choiceValue) {
<a class="jxr_linenumber" name="995" href="#995">995</a>                         values.add((BigInteger) getCMISValue(value, PropertyType.INTEGER));
<a class="jxr_linenumber" name="996" href="#996">996</a>                     }
<a class="jxr_linenumber" name="997" href="#997">997</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="998" href="#998">998</a>                     values.add((BigInteger) getCMISValue(choiceValue, PropertyType.INTEGER));
<a class="jxr_linenumber" name="999" href="#999">999</a>                 }
<a class="jxr_linenumber" name="1000" href="#1000">1000</a>                 choice.setValue(values);
<a class="jxr_linenumber" name="1001" href="#1001">1001</a> 
<a class="jxr_linenumber" name="1002" href="#1002">1002</a>                 choice.setChoice(convertChoicesInteger(choiceMap.get(JSON_PROPERTY_TYPE_CHOICE_CHOICE)));
<a class="jxr_linenumber" name="1003" href="#1003">1003</a> 
<a class="jxr_linenumber" name="1004" href="#1004">1004</a>                 result.add(choice);
<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> 
<a class="jxr_linenumber" name="1008" href="#1008">1008</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1009" href="#1009">1009</a>     }
<a class="jxr_linenumber" name="1010" href="#1010">1010</a> 
<a class="jxr_linenumber" name="1011" href="#1011">1011</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1012" href="#1012">1012</a> <em class="jxr_javadoccomment">     * Converts choices.</em>
<a class="jxr_linenumber" name="1013" href="#1013">1013</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1014" href="#1014">1014</a>     @SuppressWarnings({ <span class="jxr_string">"rawtypes"</span> })
<a class="jxr_linenumber" name="1015" href="#1015">1015</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="1016" href="#1016">1016</a>         <strong class="jxr_keyword">if</strong> (!(choices instanceof List)) {
<a class="jxr_linenumber" name="1017" href="#1017">1017</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1018" href="#1018">1018</a>         }
<a class="jxr_linenumber" name="1019" href="#1019">1019</a> 
<a class="jxr_linenumber" name="1020" href="#1020">1020</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="1021" href="#1021">1021</a> 
<a class="jxr_linenumber" name="1022" href="#1022">1022</a>         <strong class="jxr_keyword">for</strong> (Object obj : (List) choices) {
<a class="jxr_linenumber" name="1023" href="#1023">1023</a>             Map&lt;String, Object&gt; choiceMap = getMap(obj);
<a class="jxr_linenumber" name="1024" href="#1024">1024</a>             <strong class="jxr_keyword">if</strong> (choiceMap != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1025" href="#1025">1025</a>                 ChoiceImpl&lt;BigDecimal&gt; choice = <strong class="jxr_keyword">new</strong> ChoiceImpl&lt;BigDecimal&gt;();
<a class="jxr_linenumber" name="1026" href="#1026">1026</a>                 choice.setDisplayName(getString(choiceMap, JSON_PROPERTY_TYPE_CHOICE_DISPLAYNAME));
<a class="jxr_linenumber" name="1027" href="#1027">1027</a> 
<a class="jxr_linenumber" name="1028" href="#1028">1028</a>                 Object choiceValue = choiceMap.get(JSON_PROPERTY_TYPE_CHOICE_VALUE);
<a class="jxr_linenumber" name="1029" href="#1029">1029</a>                 List&lt;BigDecimal&gt; values = <strong class="jxr_keyword">new</strong> ArrayList&lt;BigDecimal&gt;();
<a class="jxr_linenumber" name="1030" href="#1030">1030</a>                 <strong class="jxr_keyword">if</strong> (choiceValue instanceof List) {
<a class="jxr_linenumber" name="1031" href="#1031">1031</a>                     <strong class="jxr_keyword">for</strong> (Object value : (List) choiceValue) {
<a class="jxr_linenumber" name="1032" href="#1032">1032</a>                         values.add((BigDecimal) getCMISValue(value, PropertyType.DECIMAL));
<a class="jxr_linenumber" name="1033" href="#1033">1033</a>                     }
<a class="jxr_linenumber" name="1034" href="#1034">1034</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1035" href="#1035">1035</a>                     values.add((BigDecimal) getCMISValue(choiceValue, PropertyType.DECIMAL));
<a class="jxr_linenumber" name="1036" href="#1036">1036</a>                 }
<a class="jxr_linenumber" name="1037" href="#1037">1037</a>                 choice.setValue(values);
<a class="jxr_linenumber" name="1038" href="#1038">1038</a> 
<a class="jxr_linenumber" name="1039" href="#1039">1039</a>                 choice.setChoice(convertChoicesDecimal(choiceMap.get(JSON_PROPERTY_TYPE_CHOICE_CHOICE)));
<a class="jxr_linenumber" name="1040" href="#1040">1040</a> 
<a class="jxr_linenumber" name="1041" href="#1041">1041</a>                 result.add(choice);
<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> 
<a class="jxr_linenumber" name="1045" href="#1045">1045</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1046" href="#1046">1046</a>     }
<a class="jxr_linenumber" name="1047" href="#1047">1047</a> 
<a class="jxr_linenumber" name="1048" href="#1048">1048</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1049" href="#1049">1049</a> <em class="jxr_javadoccomment">     * Converts choices.</em>
<a class="jxr_linenumber" name="1050" href="#1050">1050</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1051" href="#1051">1051</a>     @SuppressWarnings({ <span class="jxr_string">"rawtypes"</span> })
<a class="jxr_linenumber" name="1052" href="#1052">1052</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="1053" href="#1053">1053</a>         <strong class="jxr_keyword">if</strong> (!(choices instanceof List)) {
<a class="jxr_linenumber" name="1054" href="#1054">1054</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1055" href="#1055">1055</a>         }
<a class="jxr_linenumber" name="1056" href="#1056">1056</a> 
<a class="jxr_linenumber" name="1057" href="#1057">1057</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="1058" href="#1058">1058</a> 
<a class="jxr_linenumber" name="1059" href="#1059">1059</a>         <strong class="jxr_keyword">for</strong> (Object obj : (List) choices) {
<a class="jxr_linenumber" name="1060" href="#1060">1060</a>             Map&lt;String, Object&gt; choiceMap = getMap(obj);
<a class="jxr_linenumber" name="1061" href="#1061">1061</a>             <strong class="jxr_keyword">if</strong> (choiceMap != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1062" href="#1062">1062</a>                 ChoiceImpl&lt;GregorianCalendar&gt; choice = <strong class="jxr_keyword">new</strong> ChoiceImpl&lt;GregorianCalendar&gt;();
<a class="jxr_linenumber" name="1063" href="#1063">1063</a>                 choice.setDisplayName(getString(choiceMap, JSON_PROPERTY_TYPE_CHOICE_DISPLAYNAME));
<a class="jxr_linenumber" name="1064" href="#1064">1064</a> 
<a class="jxr_linenumber" name="1065" href="#1065">1065</a>                 Object choiceValue = choiceMap.get(JSON_PROPERTY_TYPE_CHOICE_VALUE);
<a class="jxr_linenumber" name="1066" href="#1066">1066</a>                 List&lt;GregorianCalendar&gt; values = <strong class="jxr_keyword">new</strong> ArrayList&lt;GregorianCalendar&gt;();
<a class="jxr_linenumber" name="1067" href="#1067">1067</a>                 <strong class="jxr_keyword">if</strong> (choiceValue instanceof List) {
<a class="jxr_linenumber" name="1068" href="#1068">1068</a>                     <strong class="jxr_keyword">for</strong> (Object value : (List) choiceValue) {
<a class="jxr_linenumber" name="1069" href="#1069">1069</a>                         values.add((GregorianCalendar) getCMISValue(value, PropertyType.DATETIME));
<a class="jxr_linenumber" name="1070" href="#1070">1070</a>                     }
<a class="jxr_linenumber" name="1071" href="#1071">1071</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1072" href="#1072">1072</a>                     values.add((GregorianCalendar) getCMISValue(choiceValue, PropertyType.DATETIME));
<a class="jxr_linenumber" name="1073" href="#1073">1073</a>                 }
<a class="jxr_linenumber" name="1074" href="#1074">1074</a>                 choice.setValue(values);
<a class="jxr_linenumber" name="1075" href="#1075">1075</a> 
<a class="jxr_linenumber" name="1076" href="#1076">1076</a>                 choice.setChoice(convertChoicesDateTime(choiceMap.get(JSON_PROPERTY_TYPE_CHOICE_CHOICE)));
<a class="jxr_linenumber" name="1077" href="#1077">1077</a> 
<a class="jxr_linenumber" name="1078" href="#1078">1078</a>                 result.add(choice);
<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> 
<a class="jxr_linenumber" name="1082" href="#1082">1082</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1083" href="#1083">1083</a>     }
<a class="jxr_linenumber" name="1084" href="#1084">1084</a> 
<a class="jxr_linenumber" name="1085" href="#1085">1085</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1086" href="#1086">1086</a> <em class="jxr_javadoccomment">     * Converts an object.</em>
<a class="jxr_linenumber" name="1087" href="#1087">1087</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1088" href="#1088">1088</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="1089" href="#1089">1089</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, <strong class="jxr_keyword">final</strong> DateTimeFormat dateTimeFormat) {
<a class="jxr_linenumber" name="1090" href="#1090">1090</a>         <strong class="jxr_keyword">if</strong> (object == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1091" href="#1091">1091</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1092" href="#1092">1092</a>         }
<a class="jxr_linenumber" name="1093" href="#1093">1093</a> 
<a class="jxr_linenumber" name="1094" href="#1094">1094</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="1095" href="#1095">1095</a> 
<a class="jxr_linenumber" name="1096" href="#1096">1096</a>         <em class="jxr_comment">// properties</em>
<a class="jxr_linenumber" name="1097" href="#1097">1097</a>         <strong class="jxr_keyword">if</strong> (object.getProperties() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1098" href="#1098">1098</a>             <strong class="jxr_keyword">if</strong> (succinct) {
<a class="jxr_linenumber" name="1099" href="#1099">1099</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="1100" href="#1100">1100</a>                         dateTimeFormat);
<a class="jxr_linenumber" name="1101" href="#1101">1101</a>                 <strong class="jxr_keyword">if</strong> (properties != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1102" href="#1102">1102</a>                     result.put(JSON_OBJECT_SUCCINCT_PROPERTIES, properties);
<a class="jxr_linenumber" name="1103" href="#1103">1103</a>                 }
<a class="jxr_linenumber" name="1104" href="#1104">1104</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1105" href="#1105">1105</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="1106" href="#1106">1106</a>                         dateTimeFormat);
<a class="jxr_linenumber" name="1107" href="#1107">1107</a>                 <strong class="jxr_keyword">if</strong> (properties != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1108" href="#1108">1108</a>                     result.put(JSON_OBJECT_PROPERTIES, properties);
<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> 
<a class="jxr_linenumber" name="1112" href="#1112">1112</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="1113" href="#1113">1113</a>             convertExtension(object.getProperties(), propertiesExtension);
<a class="jxr_linenumber" name="1114" href="#1114">1114</a>             <strong class="jxr_keyword">if</strong> (!propertiesExtension.isEmpty()) {
<a class="jxr_linenumber" name="1115" href="#1115">1115</a>                 result.put(JSON_OBJECT_PROPERTIES_EXTENSION, propertiesExtension);
<a class="jxr_linenumber" name="1116" href="#1116">1116</a>             }
<a class="jxr_linenumber" name="1117" href="#1117">1117</a>         }
<a class="jxr_linenumber" name="1118" href="#1118">1118</a> 
<a class="jxr_linenumber" name="1119" href="#1119">1119</a>         <em class="jxr_comment">// allowable actions</em>
<a class="jxr_linenumber" name="1120" href="#1120">1120</a>         <strong class="jxr_keyword">if</strong> (object.getAllowableActions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1121" href="#1121">1121</a>             result.put(JSON_OBJECT_ALLOWABLE_ACTIONS, convert(object.getAllowableActions()));
<a class="jxr_linenumber" name="1122" href="#1122">1122</a>         }
<a class="jxr_linenumber" name="1123" href="#1123">1123</a> 
<a class="jxr_linenumber" name="1124" href="#1124">1124</a>         <em class="jxr_comment">// relationships</em>
<a class="jxr_linenumber" name="1125" href="#1125">1125</a>         <strong class="jxr_keyword">if</strong> (isNotEmpty(object.getRelationships())) {
<a class="jxr_linenumber" name="1126" href="#1126">1126</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="1127" href="#1127">1127</a> 
<a class="jxr_linenumber" name="1128" href="#1128">1128</a>             <strong class="jxr_keyword">for</strong> (ObjectData relationship : object.getRelationships()) {
<a class="jxr_linenumber" name="1129" href="#1129">1129</a>                 relationships.add(convert(relationship, typeCache, propertyMode, succinct, dateTimeFormat));
<a class="jxr_linenumber" name="1130" href="#1130">1130</a>             }
<a class="jxr_linenumber" name="1131" href="#1131">1131</a> 
<a class="jxr_linenumber" name="1132" href="#1132">1132</a>             result.put(JSON_OBJECT_RELATIONSHIPS, relationships);
<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>         <em class="jxr_comment">// change event info</em>
<a class="jxr_linenumber" name="1136" href="#1136">1136</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="1137" href="#1137">1137</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="1138" href="#1138">1138</a> 
<a class="jxr_linenumber" name="1139" href="#1139">1139</a>             ChangeEventInfo cei = object.getChangeEventInfo();
<a class="jxr_linenumber" name="1140" href="#1140">1140</a>             changeEventInfo.put(JSON_CHANGE_EVENT_TYPE, getJSONEnumValue(cei.getChangeType()));
<a class="jxr_linenumber" name="1141" href="#1141">1141</a>             changeEventInfo.put(JSON_CHANGE_EVENT_TIME, getJSONValue(cei.getChangeTime(), dateTimeFormat));
<a class="jxr_linenumber" name="1142" href="#1142">1142</a> 
<a class="jxr_linenumber" name="1143" href="#1143">1143</a>             convertExtension(object.getChangeEventInfo(), changeEventInfo);
<a class="jxr_linenumber" name="1144" href="#1144">1144</a> 
<a class="jxr_linenumber" name="1145" href="#1145">1145</a>             result.put(JSON_OBJECT_CHANGE_EVENT_INFO, changeEventInfo);
<a class="jxr_linenumber" name="1146" href="#1146">1146</a>         }
<a class="jxr_linenumber" name="1147" href="#1147">1147</a> 
<a class="jxr_linenumber" name="1148" href="#1148">1148</a>         <em class="jxr_comment">// ACL</em>
<a class="jxr_linenumber" name="1149" href="#1149">1149</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="1150" href="#1150">1150</a>             result.put(JSON_OBJECT_ACL, convert(object.getAcl()));
<a class="jxr_linenumber" name="1151" href="#1151">1151</a>         }
<a class="jxr_linenumber" name="1152" href="#1152">1152</a>         setIfNotNull(JSON_OBJECT_EXACT_ACL, object.isExactAcl(), result);
<a class="jxr_linenumber" name="1153" href="#1153">1153</a> 
<a class="jxr_linenumber" name="1154" href="#1154">1154</a>         <em class="jxr_comment">// policy ids</em>
<a class="jxr_linenumber" name="1155" href="#1155">1155</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="1156" href="#1156">1156</a>                 &amp;&amp; propertyMode != PropertyMode.QUERY) {
<a class="jxr_linenumber" name="1157" href="#1157">1157</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="1158" href="#1158">1158</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="1159" href="#1159">1159</a>             policyIds.put(JSON_OBJECT_POLICY_IDS_IDS, ids);
<a class="jxr_linenumber" name="1160" href="#1160">1160</a> 
<a class="jxr_linenumber" name="1161" href="#1161">1161</a>             <strong class="jxr_keyword">for</strong> (String pi : object.getPolicyIds().getPolicyIds()) {
<a class="jxr_linenumber" name="1162" href="#1162">1162</a>                 ids.add(pi);
<a class="jxr_linenumber" name="1163" href="#1163">1163</a>             }
<a class="jxr_linenumber" name="1164" href="#1164">1164</a> 
<a class="jxr_linenumber" name="1165" href="#1165">1165</a>             convertExtension(object.getPolicyIds(), policyIds);
<a class="jxr_linenumber" name="1166" href="#1166">1166</a> 
<a class="jxr_linenumber" name="1167" href="#1167">1167</a>             result.put(JSON_OBJECT_POLICY_IDS, policyIds);
<a class="jxr_linenumber" name="1168" href="#1168">1168</a>         }
<a class="jxr_linenumber" name="1169" href="#1169">1169</a> 
<a class="jxr_linenumber" name="1170" href="#1170">1170</a>         <em class="jxr_comment">// renditions</em>
<a class="jxr_linenumber" name="1171" href="#1171">1171</a>         <strong class="jxr_keyword">if</strong> (isNotEmpty(object.getRenditions())) {
<a class="jxr_linenumber" name="1172" href="#1172">1172</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="1173" href="#1173">1173</a> 
<a class="jxr_linenumber" name="1174" href="#1174">1174</a>             <strong class="jxr_keyword">for</strong> (RenditionData rendition : object.getRenditions()) {
<a class="jxr_linenumber" name="1175" href="#1175">1175</a>                 renditions.add(convert(rendition));
<a class="jxr_linenumber" name="1176" href="#1176">1176</a>             }
<a class="jxr_linenumber" name="1177" href="#1177">1177</a> 
<a class="jxr_linenumber" name="1178" href="#1178">1178</a>             result.put(JSON_OBJECT_RENDITIONS, renditions);
<a class="jxr_linenumber" name="1179" href="#1179">1179</a>         }
<a class="jxr_linenumber" name="1180" href="#1180">1180</a> 
<a class="jxr_linenumber" name="1181" href="#1181">1181</a>         convertExtension(object, result);
<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 bag of properties.</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> <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="1190" href="#1190">1190</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, <strong class="jxr_keyword">final</strong> DateTimeFormat dateTimeFormat) {
<a class="jxr_linenumber" name="1191" href="#1191">1191</a>         <strong class="jxr_keyword">if</strong> (properties == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1192" href="#1192">1192</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1193" href="#1193">1193</a>         }
<a class="jxr_linenumber" name="1194" href="#1194">1194</a> 
<a class="jxr_linenumber" name="1195" href="#1195">1195</a>         <em class="jxr_comment">// get the type</em>
<a class="jxr_linenumber" name="1196" href="#1196">1196</a>         TypeDefinition type = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1197" href="#1197">1197</a>         <strong class="jxr_keyword">if</strong> (typeCache != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1198" href="#1198">1198</a>             PropertyData&lt;?&gt; typeProp = properties.getProperties().get(PropertyIds.OBJECT_TYPE_ID);
<a class="jxr_linenumber" name="1199" href="#1199">1199</a>             <strong class="jxr_keyword">if</strong> (typeProp instanceof PropertyId) {
<a class="jxr_linenumber" name="1200" href="#1200">1200</a>                 String typeId = ((PropertyId) typeProp).getFirstValue();
<a class="jxr_linenumber" name="1201" href="#1201">1201</a>                 <strong class="jxr_keyword">if</strong> (typeId != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1202" href="#1202">1202</a>                     type = typeCache.getTypeDefinition(typeId);
<a class="jxr_linenumber" name="1203" href="#1203">1203</a>                 }
<a class="jxr_linenumber" name="1204" href="#1204">1204</a>             }
<a class="jxr_linenumber" name="1205" href="#1205">1205</a>         }
<a class="jxr_linenumber" name="1206" href="#1206">1206</a> 
<a class="jxr_linenumber" name="1207" href="#1207">1207</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="1208" href="#1208">1208</a> 
<a class="jxr_linenumber" name="1209" href="#1209">1209</a>         <strong class="jxr_keyword">for</strong> (PropertyData&lt;?&gt; property : properties.getPropertyList()) {
<a class="jxr_linenumber" name="1210" href="#1210">1210</a>             assert property != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1211" href="#1211">1211</a>             assert property.getId() != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1212" href="#1212">1212</a> 
<a class="jxr_linenumber" name="1213" href="#1213">1213</a>             PropertyDefinition&lt;?&gt; propDef = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1214" href="#1214">1214</a>             <strong class="jxr_keyword">if</strong> (property instanceof PropertyDataWithDefinition) {
<a class="jxr_linenumber" name="1215" href="#1215">1215</a>                 propDef = ((PropertyDataWithDefinition&lt;?&gt;) property).getPropertyDefinition();
<a class="jxr_linenumber" name="1216" href="#1216">1216</a>             }
<a class="jxr_linenumber" name="1217" href="#1217">1217</a>             <strong class="jxr_keyword">if</strong> (propDef == <strong class="jxr_keyword">null</strong> &amp;&amp; typeCache != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1218" href="#1218">1218</a>                 propDef = typeCache.getPropertyDefinition(property.getId());
<a class="jxr_linenumber" name="1219" href="#1219">1219</a>             }
<a class="jxr_linenumber" name="1220" href="#1220">1220</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="1221" href="#1221">1221</a>                 propDef = type.getPropertyDefinitions().get(property.getId());
<a class="jxr_linenumber" name="1222" href="#1222">1222</a>             }
<a class="jxr_linenumber" name="1223" href="#1223">1223</a>             <strong class="jxr_keyword">if</strong> (propDef == <strong class="jxr_keyword">null</strong> &amp;&amp; typeCache != <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="1224" href="#1224">1224</a>                 typeCache.getTypeDefinitionForObject(objectId);
<a class="jxr_linenumber" name="1225" href="#1225">1225</a>                 propDef = typeCache.getPropertyDefinition(property.getId());
<a class="jxr_linenumber" name="1226" href="#1226">1226</a>             }
<a class="jxr_linenumber" name="1227" href="#1227">1227</a> 
<a class="jxr_linenumber" name="1228" href="#1228">1228</a>             String propId = (propertyMode == PropertyMode.QUERY ? property.getQueryName() : property.getId());
<a class="jxr_linenumber" name="1229" href="#1229">1229</a>             <strong class="jxr_keyword">if</strong> (propId == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1230" href="#1230">1230</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"No query name or alias for property '"</span> + property.getId() + <span class="jxr_string">"'!"</span>);
<a class="jxr_linenumber" name="1231" href="#1231">1231</a>             }
<a class="jxr_linenumber" name="1232" href="#1232">1232</a>             result.put(propId, convert(property, propDef, succinct, dateTimeFormat));
<a class="jxr_linenumber" name="1233" href="#1233">1233</a>         }
<a class="jxr_linenumber" name="1234" href="#1234">1234</a> 
<a class="jxr_linenumber" name="1235" href="#1235">1235</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1236" href="#1236">1236</a>     }
<a class="jxr_linenumber" name="1237" href="#1237">1237</a> 
<a class="jxr_linenumber" name="1238" href="#1238">1238</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1239" href="#1239">1239</a> <em class="jxr_javadoccomment">     * Converts a property.</em>
<a class="jxr_linenumber" name="1240" href="#1240">1240</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1241" href="#1241">1241</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="1242" href="#1242">1242</a>             <strong class="jxr_keyword">final</strong> DateTimeFormat dateTimeFormat) {
<a class="jxr_linenumber" name="1243" href="#1243">1243</a>         <strong class="jxr_keyword">if</strong> (property == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1244" href="#1244">1244</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1245" href="#1245">1245</a>         }
<a class="jxr_linenumber" name="1246" href="#1246">1246</a> 
<a class="jxr_linenumber" name="1247" href="#1247">1247</a>         <strong class="jxr_keyword">if</strong> (succinct) {
<a class="jxr_linenumber" name="1248" href="#1248">1248</a>             Object result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1249" href="#1249">1249</a> 
<a class="jxr_linenumber" name="1250" href="#1250">1250</a>             <strong class="jxr_keyword">if</strong> (propDef != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1251" href="#1251">1251</a>                 <strong class="jxr_keyword">if</strong> (isNullOrEmpty(property.getValues())) {
<a class="jxr_linenumber" name="1252" href="#1252">1252</a>                     result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1253" href="#1253">1253</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propDef.getCardinality() == Cardinality.SINGLE) {
<a class="jxr_linenumber" name="1254" href="#1254">1254</a>                     result = getJSONValue(property.getValues().get(0), dateTimeFormat);
<a class="jxr_linenumber" name="1255" href="#1255">1255</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1256" href="#1256">1256</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="1257" href="#1257">1257</a> 
<a class="jxr_linenumber" name="1258" href="#1258">1258</a>                     <strong class="jxr_keyword">for</strong> (Object value : property.getValues()) {
<a class="jxr_linenumber" name="1259" href="#1259">1259</a>                         values.add(getJSONValue(value, dateTimeFormat));
<a class="jxr_linenumber" name="1260" href="#1260">1260</a>                     }
<a class="jxr_linenumber" name="1261" href="#1261">1261</a> 
<a class="jxr_linenumber" name="1262" href="#1262">1262</a>                     result = values;
<a class="jxr_linenumber" name="1263" href="#1263">1263</a>                 }
<a class="jxr_linenumber" name="1264" href="#1264">1264</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1265" href="#1265">1265</a>                 <strong class="jxr_keyword">if</strong> (isNullOrEmpty(property.getValues())) {
<a class="jxr_linenumber" name="1266" href="#1266">1266</a>                     result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1267" href="#1267">1267</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1268" href="#1268">1268</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="1269" href="#1269">1269</a> 
<a class="jxr_linenumber" name="1270" href="#1270">1270</a>                     <strong class="jxr_keyword">for</strong> (Object value : property.getValues()) {
<a class="jxr_linenumber" name="1271" href="#1271">1271</a>                         values.add(getJSONValue(value, dateTimeFormat));
<a class="jxr_linenumber" name="1272" href="#1272">1272</a>                     }
<a class="jxr_linenumber" name="1273" href="#1273">1273</a> 
<a class="jxr_linenumber" name="1274" href="#1274">1274</a>                     result = values;
<a class="jxr_linenumber" name="1275" href="#1275">1275</a>                 }
<a class="jxr_linenumber" name="1276" href="#1276">1276</a>             }
<a class="jxr_linenumber" name="1277" href="#1277">1277</a> 
<a class="jxr_linenumber" name="1278" href="#1278">1278</a>             <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1279" href="#1279">1279</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1280" href="#1280">1280</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="1281" href="#1281">1281</a> 
<a class="jxr_linenumber" name="1282" href="#1282">1282</a>             result.put(JSON_PROPERTY_ID, property.getId());
<a class="jxr_linenumber" name="1283" href="#1283">1283</a>             setIfNotNull(JSON_PROPERTY_LOCALNAME, property.getLocalName(), result);
<a class="jxr_linenumber" name="1284" href="#1284">1284</a>             setIfNotNull(JSON_PROPERTY_DISPLAYNAME, property.getDisplayName(), result);
<a class="jxr_linenumber" name="1285" href="#1285">1285</a>             setIfNotNull(JSON_PROPERTY_QUERYNAME, property.getQueryName(), result);
<a class="jxr_linenumber" name="1286" href="#1286">1286</a> 
<a class="jxr_linenumber" name="1287" href="#1287">1287</a>             <strong class="jxr_keyword">if</strong> (propDef != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1288" href="#1288">1288</a>                 result.put(JSON_PROPERTY_DATATYPE, getJSONEnumValue(propDef.getPropertyType()));
<a class="jxr_linenumber" name="1289" href="#1289">1289</a>                 result.put(JSON_PROPERTY_CARDINALITY, getJSONEnumValue(propDef.getCardinality()));
<a class="jxr_linenumber" name="1290" href="#1290">1290</a> 
<a class="jxr_linenumber" name="1291" href="#1291">1291</a>                 <strong class="jxr_keyword">if</strong> (isNullOrEmpty(property.getValues())) {
<a class="jxr_linenumber" name="1292" href="#1292">1292</a>                     result.put(JSON_PROPERTY_VALUE, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1293" href="#1293">1293</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propDef.getCardinality() == Cardinality.SINGLE) {
<a class="jxr_linenumber" name="1294" href="#1294">1294</a>                     result.put(JSON_PROPERTY_VALUE, getJSONValue(property.getValues().get(0), dateTimeFormat));
<a class="jxr_linenumber" name="1295" href="#1295">1295</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1296" href="#1296">1296</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="1297" href="#1297">1297</a> 
<a class="jxr_linenumber" name="1298" href="#1298">1298</a>                     <strong class="jxr_keyword">for</strong> (Object value : property.getValues()) {
<a class="jxr_linenumber" name="1299" href="#1299">1299</a>                         values.add(getJSONValue(value, dateTimeFormat));
<a class="jxr_linenumber" name="1300" href="#1300">1300</a>                     }
<a class="jxr_linenumber" name="1301" href="#1301">1301</a> 
<a class="jxr_linenumber" name="1302" href="#1302">1302</a>                     result.put(JSON_PROPERTY_VALUE, values);
<a class="jxr_linenumber" name="1303" href="#1303">1303</a>                 }
<a class="jxr_linenumber" name="1304" href="#1304">1304</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1305" href="#1305">1305</a>                 result.put(JSON_PROPERTY_DATATYPE, getJSONPropertyDataType(property));
<a class="jxr_linenumber" name="1306" href="#1306">1306</a> 
<a class="jxr_linenumber" name="1307" href="#1307">1307</a>                 <strong class="jxr_keyword">if</strong> (isNullOrEmpty(property.getValues())) {
<a class="jxr_linenumber" name="1308" href="#1308">1308</a>                     result.put(JSON_PROPERTY_VALUE, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="1309" href="#1309">1309</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1310" href="#1310">1310</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="1311" href="#1311">1311</a> 
<a class="jxr_linenumber" name="1312" href="#1312">1312</a>                     <strong class="jxr_keyword">for</strong> (Object value : property.getValues()) {
<a class="jxr_linenumber" name="1313" href="#1313">1313</a>                         values.add(getJSONValue(value, dateTimeFormat));
<a class="jxr_linenumber" name="1314" href="#1314">1314</a>                     }
<a class="jxr_linenumber" name="1315" href="#1315">1315</a> 
<a class="jxr_linenumber" name="1316" href="#1316">1316</a>                     result.put(JSON_PROPERTY_VALUE, values);
<a class="jxr_linenumber" name="1317" href="#1317">1317</a>                 }
<a class="jxr_linenumber" name="1318" href="#1318">1318</a>             }
<a class="jxr_linenumber" name="1319" href="#1319">1319</a> 
<a class="jxr_linenumber" name="1320" href="#1320">1320</a>             convertExtension(property, result);
<a class="jxr_linenumber" name="1321" href="#1321">1321</a> 
<a class="jxr_linenumber" name="1322" href="#1322">1322</a>             <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1323" href="#1323">1323</a>         }
<a class="jxr_linenumber" name="1324" href="#1324">1324</a>     }
<a class="jxr_linenumber" name="1325" href="#1325">1325</a> 
<a class="jxr_linenumber" name="1326" href="#1326">1326</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1327" href="#1327">1327</a> <em class="jxr_javadoccomment">     * Converts allowable actions.</em>
<a class="jxr_linenumber" name="1328" href="#1328">1328</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1329" href="#1329">1329</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="1330" href="#1330">1330</a>         <strong class="jxr_keyword">if</strong> (allowableActions == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1331" href="#1331">1331</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1332" href="#1332">1332</a>         }
<a class="jxr_linenumber" name="1333" href="#1333">1333</a> 
<a class="jxr_linenumber" name="1334" href="#1334">1334</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="1335" href="#1335">1335</a> 
<a class="jxr_linenumber" name="1336" href="#1336">1336</a>         Set&lt;Action&gt; actionSet = allowableActions.getAllowableActions();
<a class="jxr_linenumber" name="1337" href="#1337">1337</a>         <strong class="jxr_keyword">for</strong> (Action action : Action.values()) {
<a class="jxr_linenumber" name="1338" href="#1338">1338</a>             result.put(action.value(), actionSet.contains(action));
<a class="jxr_linenumber" name="1339" href="#1339">1339</a>         }
<a class="jxr_linenumber" name="1340" href="#1340">1340</a> 
<a class="jxr_linenumber" name="1341" href="#1341">1341</a>         convertExtension(allowableActions, result);
<a class="jxr_linenumber" name="1342" href="#1342">1342</a> 
<a class="jxr_linenumber" name="1343" href="#1343">1343</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1344" href="#1344">1344</a>     }
<a class="jxr_linenumber" name="1345" href="#1345">1345</a> 
<a class="jxr_linenumber" name="1346" href="#1346">1346</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1347" href="#1347">1347</a> <em class="jxr_javadoccomment">     * Converts an ACL.</em>
<a class="jxr_linenumber" name="1348" href="#1348">1348</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1349" href="#1349">1349</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="1350" href="#1350">1350</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="1351" href="#1351">1351</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<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>         <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="1355" href="#1355">1355</a> 
<a class="jxr_linenumber" name="1356" href="#1356">1356</a>         <strong class="jxr_keyword">for</strong> (Ace ace : acl.getAces()) {
<a class="jxr_linenumber" name="1357" href="#1357">1357</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="1358" href="#1358">1358</a>             <strong class="jxr_keyword">if</strong> (ace.getPermissions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1359" href="#1359">1359</a>                 <strong class="jxr_keyword">for</strong> (String p : ace.getPermissions()) {
<a class="jxr_linenumber" name="1360" href="#1360">1360</a>                     permissions.add(p);
<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 class="jxr_linenumber" name="1364" href="#1364">1364</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="1365" href="#1365">1365</a> 
<a class="jxr_linenumber" name="1366" href="#1366">1366</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a> principalObject = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONObject.html">JSONObject</a>();
<a class="jxr_linenumber" name="1367" href="#1367">1367</a>             principalObject.put(JSON_ACE_PRINCIPAL_ID, ace.getPrincipalId());
<a class="jxr_linenumber" name="1368" href="#1368">1368</a>             convertExtension(ace.getPrincipal(), principalObject);
<a class="jxr_linenumber" name="1369" href="#1369">1369</a>             aceObject.put(JSON_ACE_PRINCIPAL, principalObject);
<a class="jxr_linenumber" name="1370" href="#1370">1370</a> 
<a class="jxr_linenumber" name="1371" href="#1371">1371</a>             aceObject.put(JSON_ACE_PERMISSIONS, permissions);
<a class="jxr_linenumber" name="1372" href="#1372">1372</a>             aceObject.put(JSON_ACE_IS_DIRECT, ace.isDirect());
<a class="jxr_linenumber" name="1373" href="#1373">1373</a> 
<a class="jxr_linenumber" name="1374" href="#1374">1374</a>             convertExtension(ace, aceObject);
<a class="jxr_linenumber" name="1375" href="#1375">1375</a> 
<a class="jxr_linenumber" name="1376" href="#1376">1376</a>             aceObjects.add(aceObject);
<a class="jxr_linenumber" name="1377" href="#1377">1377</a>         }
<a class="jxr_linenumber" name="1378" href="#1378">1378</a> 
<a class="jxr_linenumber" name="1379" href="#1379">1379</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="1380" href="#1380">1380</a>         result.put(JSON_ACL_ACES, aceObjects);
<a class="jxr_linenumber" name="1381" href="#1381">1381</a>         setIfNotNull(JSON_ACL_IS_EXACT, acl.isExact(), result);
<a class="jxr_linenumber" name="1382" href="#1382">1382</a> 
<a class="jxr_linenumber" name="1383" href="#1383">1383</a>         convertExtension(acl, result);
<a class="jxr_linenumber" name="1384" href="#1384">1384</a> 
<a class="jxr_linenumber" name="1385" href="#1385">1385</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1386" href="#1386">1386</a>     }
<a class="jxr_linenumber" name="1387" href="#1387">1387</a> 
<a class="jxr_linenumber" name="1388" href="#1388">1388</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1389" href="#1389">1389</a> <em class="jxr_javadoccomment">     * Converts a rendition.</em>
<a class="jxr_linenumber" name="1390" href="#1390">1390</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1391" href="#1391">1391</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="1392" href="#1392">1392</a>         <strong class="jxr_keyword">if</strong> (rendition == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1393" href="#1393">1393</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1394" href="#1394">1394</a>         }
<a class="jxr_linenumber" name="1395" href="#1395">1395</a> 
<a class="jxr_linenumber" name="1396" href="#1396">1396</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="1397" href="#1397">1397</a> 
<a class="jxr_linenumber" name="1398" href="#1398">1398</a>         result.put(JSON_RENDITION_STREAM_ID, rendition.getStreamId());
<a class="jxr_linenumber" name="1399" href="#1399">1399</a>         result.put(JSON_RENDITION_MIMETYPE, rendition.getMimeType());
<a class="jxr_linenumber" name="1400" href="#1400">1400</a>         result.put(JSON_RENDITION_LENGTH, rendition.getBigLength());
<a class="jxr_linenumber" name="1401" href="#1401">1401</a>         result.put(JSON_RENDITION_KIND, rendition.getKind());
<a class="jxr_linenumber" name="1402" href="#1402">1402</a>         setIfNotNull(JSON_RENDITION_TITLE, rendition.getTitle(), result);
<a class="jxr_linenumber" name="1403" href="#1403">1403</a>         setIfNotNull(JSON_RENDITION_HEIGHT, rendition.getBigHeight(), result);
<a class="jxr_linenumber" name="1404" href="#1404">1404</a>         setIfNotNull(JSON_RENDITION_WIDTH, rendition.getBigWidth(), result);
<a class="jxr_linenumber" name="1405" href="#1405">1405</a>         setIfNotNull(JSON_RENDITION_DOCUMENT_ID, rendition.getRenditionDocumentId(), result);
<a class="jxr_linenumber" name="1406" href="#1406">1406</a> 
<a class="jxr_linenumber" name="1407" href="#1407">1407</a>         convertExtension(rendition, result);
<a class="jxr_linenumber" name="1408" href="#1408">1408</a> 
<a class="jxr_linenumber" name="1409" href="#1409">1409</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1410" href="#1410">1410</a>     }
<a class="jxr_linenumber" name="1411" href="#1411">1411</a> 
<a class="jxr_linenumber" name="1412" href="#1412">1412</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1413" href="#1413">1413</a> <em class="jxr_javadoccomment">     * Converts a query object list.</em>
<a class="jxr_linenumber" name="1414" href="#1414">1414</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1415" href="#1415">1415</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="1416" href="#1416">1416</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> succinct, <strong class="jxr_keyword">final</strong> DateTimeFormat dateTimeFormat) {
<a class="jxr_linenumber" name="1417" href="#1417">1417</a>         <strong class="jxr_keyword">if</strong> (list == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1418" href="#1418">1418</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1419" href="#1419">1419</a>         }
<a class="jxr_linenumber" name="1420" href="#1420">1420</a> 
<a class="jxr_linenumber" name="1421" href="#1421">1421</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="1422" href="#1422">1422</a> 
<a class="jxr_linenumber" name="1423" href="#1423">1423</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="1424" href="#1424">1424</a>         <strong class="jxr_keyword">if</strong> (list.getObjects() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1425" href="#1425">1425</a>             <strong class="jxr_keyword">for</strong> (ObjectData object : list.getObjects()) {
<a class="jxr_linenumber" name="1426" href="#1426">1426</a>                 objects.add(convert(object, typeCache, propertyMode, succinct, dateTimeFormat));
<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> 
<a class="jxr_linenumber" name="1430" href="#1430">1430</a>         <strong class="jxr_keyword">if</strong> (propertyMode == PropertyMode.QUERY) {
<a class="jxr_linenumber" name="1431" href="#1431">1431</a>             result.put(JSON_QUERYRESULTLIST_RESULTS, objects);
<a class="jxr_linenumber" name="1432" href="#1432">1432</a> 
<a class="jxr_linenumber" name="1433" href="#1433">1433</a>             setIfNotNull(JSON_QUERYRESULTLIST_HAS_MORE_ITEMS, list.hasMoreItems(), result);
<a class="jxr_linenumber" name="1434" href="#1434">1434</a>             setIfNotNull(JSON_QUERYRESULTLIST_NUM_ITEMS, list.getNumItems(), result);
<a class="jxr_linenumber" name="1435" href="#1435">1435</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1436" href="#1436">1436</a>             result.put(JSON_OBJECTLIST_OBJECTS, objects);
<a class="jxr_linenumber" name="1437" href="#1437">1437</a> 
<a class="jxr_linenumber" name="1438" href="#1438">1438</a>             setIfNotNull(JSON_OBJECTLIST_HAS_MORE_ITEMS, list.hasMoreItems(), result);
<a class="jxr_linenumber" name="1439" href="#1439">1439</a>             setIfNotNull(JSON_OBJECTLIST_NUM_ITEMS, list.getNumItems(), result);
<a class="jxr_linenumber" name="1440" href="#1440">1440</a>         }
<a class="jxr_linenumber" name="1441" href="#1441">1441</a> 
<a class="jxr_linenumber" name="1442" href="#1442">1442</a>         convertExtension(list, result);
<a class="jxr_linenumber" name="1443" href="#1443">1443</a> 
<a class="jxr_linenumber" name="1444" href="#1444">1444</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1445" href="#1445">1445</a>     }
<a class="jxr_linenumber" name="1446" href="#1446">1446</a> 
<a class="jxr_linenumber" name="1447" href="#1447">1447</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1448" href="#1448">1448</a> <em class="jxr_javadoccomment">     * Converts an object in a folder list.</em>
<a class="jxr_linenumber" name="1449" href="#1449">1449</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1450" href="#1450">1450</a>     <strong class="jxr_keyword">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="1451" href="#1451">1451</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> succinct, <strong class="jxr_keyword">final</strong> DateTimeFormat dateTimeFormat) {
<a class="jxr_linenumber" name="1452" href="#1452">1452</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="1453" href="#1453">1453</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1454" href="#1454">1454</a>         }
<a class="jxr_linenumber" name="1455" href="#1455">1455</a> 
<a class="jxr_linenumber" name="1456" href="#1456">1456</a>         <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="1457" href="#1457">1457</a>         result.put(JSON_OBJECTINFOLDER_OBJECT,
<a class="jxr_linenumber" name="1458" href="#1458">1458</a>                 convert(objectInFolder.getObject(), typeCache, PropertyMode.OBJECT, succinct, dateTimeFormat));
<a class="jxr_linenumber" name="1459" href="#1459">1459</a>         setIfNotNull(JSON_OBJECTINFOLDER_PATH_SEGMENT, objectInFolder.getPathSegment(), result);
<a class="jxr_linenumber" name="1460" href="#1460">1460</a> 
<a class="jxr_linenumber" name="1461" href="#1461">1461</a>         convertExtension(objectInFolder, result);
<a class="jxr_linenumber" name="1462" href="#1462">1462</a> 
<a class="jxr_linenumber" name="1463" href="#1463">1463</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1464" href="#1464">1464</a>     }
<a class="jxr_linenumber" name="1465" href="#1465">1465</a> 
<a class="jxr_linenumber" name="1466" href="#1466">1466</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1467" href="#1467">1467</a> <em class="jxr_javadoccomment">     * Converts a folder list.</em>
<a class="jxr_linenumber" name="1468" href="#1468">1468</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1469" href="#1469">1469</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="1470" href="#1470">1470</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> succinct, <strong class="jxr_keyword">final</strong> DateTimeFormat dateTimeFormat) {
<a class="jxr_linenumber" name="1471" href="#1471">1471</a>         <strong class="jxr_keyword">if</strong> (objectInFolderList == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1472" href="#1472">1472</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1473" href="#1473">1473</a>         }
<a class="jxr_linenumber" name="1474" href="#1474">1474</a> 
<a class="jxr_linenumber" name="1475" href="#1475">1475</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="1476" href="#1476">1476</a> 
<a class="jxr_linenumber" name="1477" href="#1477">1477</a>         <strong class="jxr_keyword">if</strong> (objectInFolderList.getObjects() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1478" href="#1478">1478</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="1479" href="#1479">1479</a> 
<a class="jxr_linenumber" name="1480" href="#1480">1480</a>             <strong class="jxr_keyword">for</strong> (ObjectInFolderData object : objectInFolderList.getObjects()) {
<a class="jxr_linenumber" name="1481" href="#1481">1481</a>                 objects.add(convert(object, typeCache, succinct, dateTimeFormat));
<a class="jxr_linenumber" name="1482" href="#1482">1482</a>             }
<a class="jxr_linenumber" name="1483" href="#1483">1483</a> 
<a class="jxr_linenumber" name="1484" href="#1484">1484</a>             result.put(JSON_OBJECTINFOLDERLIST_OBJECTS, objects);
<a class="jxr_linenumber" name="1485" href="#1485">1485</a>         }
<a class="jxr_linenumber" name="1486" href="#1486">1486</a> 
<a class="jxr_linenumber" name="1487" href="#1487">1487</a>         setIfNotNull(JSON_OBJECTINFOLDERLIST_HAS_MORE_ITEMS, objectInFolderList.hasMoreItems(), result);
<a class="jxr_linenumber" name="1488" href="#1488">1488</a>         setIfNotNull(JSON_OBJECTINFOLDERLIST_NUM_ITEMS, objectInFolderList.getNumItems(), result);
<a class="jxr_linenumber" name="1489" href="#1489">1489</a> 
<a class="jxr_linenumber" name="1490" href="#1490">1490</a>         convertExtension(objectInFolderList, result);
<a class="jxr_linenumber" name="1491" href="#1491">1491</a> 
<a class="jxr_linenumber" name="1492" href="#1492">1492</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1493" href="#1493">1493</a>     }
<a class="jxr_linenumber" name="1494" href="#1494">1494</a> 
<a class="jxr_linenumber" name="1495" href="#1495">1495</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1496" href="#1496">1496</a> <em class="jxr_javadoccomment">     * Converts a folder container.</em>
<a class="jxr_linenumber" name="1497" href="#1497">1497</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1498" href="#1498">1498</a>     <strong class="jxr_keyword">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="1499" href="#1499">1499</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> succinct, <strong class="jxr_keyword">final</strong> DateTimeFormat dateTimeFormat) {
<a class="jxr_linenumber" name="1500" href="#1500">1500</a>         <strong class="jxr_keyword">if</strong> (container == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1501" href="#1501">1501</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1502" href="#1502">1502</a>         }
<a class="jxr_linenumber" name="1503" href="#1503">1503</a> 
<a class="jxr_linenumber" name="1504" href="#1504">1504</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="1505" href="#1505">1505</a>         result.put(JSON_OBJECTINFOLDERCONTAINER_OBJECT,
<a class="jxr_linenumber" name="1506" href="#1506">1506</a>                 convert(container.getObject(), typeCache, succinct, dateTimeFormat));
<a class="jxr_linenumber" name="1507" href="#1507">1507</a> 
<a class="jxr_linenumber" name="1508" href="#1508">1508</a>         <strong class="jxr_keyword">if</strong> (isNotEmpty(container.getChildren())) {
<a class="jxr_linenumber" name="1509" href="#1509">1509</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="1510" href="#1510">1510</a>             <strong class="jxr_keyword">for</strong> (ObjectInFolderContainer descendant : container.getChildren()) {
<a class="jxr_linenumber" name="1511" href="#1511">1511</a>                 children.add(JSONConverter.convert(descendant, typeCache, succinct, dateTimeFormat));
<a class="jxr_linenumber" name="1512" href="#1512">1512</a>             }
<a class="jxr_linenumber" name="1513" href="#1513">1513</a> 
<a class="jxr_linenumber" name="1514" href="#1514">1514</a>             result.put(JSON_OBJECTINFOLDERCONTAINER_CHILDREN, children);
<a class="jxr_linenumber" name="1515" href="#1515">1515</a>         }
<a class="jxr_linenumber" name="1516" href="#1516">1516</a> 
<a class="jxr_linenumber" name="1517" href="#1517">1517</a>         convertExtension(container, result);
<a class="jxr_linenumber" name="1518" href="#1518">1518</a> 
<a class="jxr_linenumber" name="1519" href="#1519">1519</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1520" href="#1520">1520</a>     }
<a class="jxr_linenumber" name="1521" href="#1521">1521</a> 
<a class="jxr_linenumber" name="1522" href="#1522">1522</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1523" href="#1523">1523</a> <em class="jxr_javadoccomment">     * Converts an object parent.</em>
<a class="jxr_linenumber" name="1524" href="#1524">1524</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1525" href="#1525">1525</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="1526" href="#1526">1526</a>             <strong class="jxr_keyword">final</strong> DateTimeFormat dateTimeFormat) {
<a class="jxr_linenumber" name="1527" href="#1527">1527</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="1528" href="#1528">1528</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1529" href="#1529">1529</a>         }
<a class="jxr_linenumber" name="1530" href="#1530">1530</a> 
<a class="jxr_linenumber" name="1531" href="#1531">1531</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="1532" href="#1532">1532</a>         result.put(JSON_OBJECTPARENTS_OBJECT,
<a class="jxr_linenumber" name="1533" href="#1533">1533</a>                 convert(parent.getObject(), typeCache, PropertyMode.OBJECT, succinct, dateTimeFormat));
<a class="jxr_linenumber" name="1534" href="#1534">1534</a>         <strong class="jxr_keyword">if</strong> (parent.getRelativePathSegment() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1535" href="#1535">1535</a>             result.put(JSON_OBJECTPARENTS_RELATIVE_PATH_SEGMENT, parent.getRelativePathSegment());
<a class="jxr_linenumber" name="1536" href="#1536">1536</a>         }
<a class="jxr_linenumber" name="1537" href="#1537">1537</a> 
<a class="jxr_linenumber" name="1538" href="#1538">1538</a>         convertExtension(parent, result);
<a class="jxr_linenumber" name="1539" href="#1539">1539</a> 
<a class="jxr_linenumber" name="1540" href="#1540">1540</a>         <strong class="jxr_keyword">return</strong> result;
<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>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1544" href="#1544">1544</a> <em class="jxr_javadoccomment">     * Converts a type definition.</em>
<a class="jxr_linenumber" name="1545" href="#1545">1545</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1546" href="#1546">1546</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, <strong class="jxr_keyword">final</strong> DateTimeFormat dateTimeFormat) {
<a class="jxr_linenumber" name="1547" href="#1547">1547</a>         <strong class="jxr_keyword">if</strong> (type == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1548" href="#1548">1548</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1549" href="#1549">1549</a>         }
<a class="jxr_linenumber" name="1550" href="#1550">1550</a> 
<a class="jxr_linenumber" name="1551" href="#1551">1551</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="1552" href="#1552">1552</a>         result.put(JSON_TYPE_ID, type.getId());
<a class="jxr_linenumber" name="1553" href="#1553">1553</a>         result.put(JSON_TYPE_LOCALNAME, type.getLocalName());
<a class="jxr_linenumber" name="1554" href="#1554">1554</a>         result.put(JSON_TYPE_LOCALNAMESPACE, type.getLocalNamespace());
<a class="jxr_linenumber" name="1555" href="#1555">1555</a>         setIfNotNull(JSON_TYPE_DISPLAYNAME, type.getDisplayName(), result);
<a class="jxr_linenumber" name="1556" href="#1556">1556</a>         setIfNotNull(JSON_TYPE_QUERYNAME, type.getQueryName(), result);
<a class="jxr_linenumber" name="1557" href="#1557">1557</a>         setIfNotNull(JSON_TYPE_DESCRIPTION, type.getDescription(), result);
<a class="jxr_linenumber" name="1558" href="#1558">1558</a>         result.put(JSON_TYPE_BASE_ID, getJSONEnumValue(type.getBaseTypeId()));
<a class="jxr_linenumber" name="1559" href="#1559">1559</a>         setIfNotNull(JSON_TYPE_PARENT_ID, type.getParentTypeId(), result);
<a class="jxr_linenumber" name="1560" href="#1560">1560</a>         result.put(JSON_TYPE_CREATABLE, type.isCreatable());
<a class="jxr_linenumber" name="1561" href="#1561">1561</a>         result.put(JSON_TYPE_FILEABLE, type.isFileable());
<a class="jxr_linenumber" name="1562" href="#1562">1562</a>         result.put(JSON_TYPE_QUERYABLE, type.isQueryable());
<a class="jxr_linenumber" name="1563" href="#1563">1563</a>         result.put(JSON_TYPE_FULLTEXT_INDEXED, type.isFulltextIndexed());
<a class="jxr_linenumber" name="1564" href="#1564">1564</a>         result.put(JSON_TYPE_INCLUDE_IN_SUPERTYPE_QUERY, type.isIncludedInSupertypeQuery());
<a class="jxr_linenumber" name="1565" href="#1565">1565</a>         result.put(JSON_TYPE_CONTROLABLE_POLICY, type.isControllablePolicy());
<a class="jxr_linenumber" name="1566" href="#1566">1566</a>         result.put(JSON_TYPE_CONTROLABLE_ACL, type.isControllableAcl());
<a class="jxr_linenumber" name="1567" href="#1567">1567</a> 
<a class="jxr_linenumber" name="1568" href="#1568">1568</a>         <strong class="jxr_keyword">if</strong> (type.getTypeMutability() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1569" href="#1569">1569</a>             TypeMutability typeMutability = type.getTypeMutability();
<a class="jxr_linenumber" name="1570" href="#1570">1570</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="1571" href="#1571">1571</a> 
<a class="jxr_linenumber" name="1572" href="#1572">1572</a>             typeMutabilityJson.put(JSON_TYPE_TYPE_MUTABILITY_CREATE, typeMutability.canCreate());
<a class="jxr_linenumber" name="1573" href="#1573">1573</a>             typeMutabilityJson.put(JSON_TYPE_TYPE_MUTABILITY_UPDATE, typeMutability.canUpdate());
<a class="jxr_linenumber" name="1574" href="#1574">1574</a>             typeMutabilityJson.put(JSON_TYPE_TYPE_MUTABILITY_DELETE, typeMutability.canDelete());
<a class="jxr_linenumber" name="1575" href="#1575">1575</a> 
<a class="jxr_linenumber" name="1576" href="#1576">1576</a>             convertExtension(typeMutability, typeMutabilityJson);
<a class="jxr_linenumber" name="1577" href="#1577">1577</a> 
<a class="jxr_linenumber" name="1578" href="#1578">1578</a>             result.put(JSON_TYPE_TYPE_MUTABILITY, typeMutabilityJson);
<a class="jxr_linenumber" name="1579" href="#1579">1579</a>         }
<a class="jxr_linenumber" name="1580" href="#1580">1580</a> 
<a class="jxr_linenumber" name="1581" href="#1581">1581</a>         <strong class="jxr_keyword">if</strong> (type instanceof DocumentTypeDefinition) {
<a class="jxr_linenumber" name="1582" href="#1582">1582</a>             result.put(JSON_TYPE_VERSIONABLE, ((DocumentTypeDefinition) type).isVersionable());
<a class="jxr_linenumber" name="1583" href="#1583">1583</a>             result.put(JSON_TYPE_CONTENTSTREAM_ALLOWED,
<a class="jxr_linenumber" name="1584" href="#1584">1584</a>                     getJSONEnumValue(((DocumentTypeDefinition) type).getContentStreamAllowed()));
<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>         <strong class="jxr_keyword">if</strong> (type instanceof RelationshipTypeDefinition) {
<a class="jxr_linenumber" name="1588" href="#1588">1588</a>             result.put(JSON_TYPE_ALLOWED_SOURCE_TYPES,
<a class="jxr_linenumber" name="1589" href="#1589">1589</a>                     getJSONArrayFromList(((RelationshipTypeDefinition) type).getAllowedSourceTypeIds()));
<a class="jxr_linenumber" name="1590" href="#1590">1590</a>             result.put(JSON_TYPE_ALLOWED_TARGET_TYPES,
<a class="jxr_linenumber" name="1591" href="#1591">1591</a>                     getJSONArrayFromList(((RelationshipTypeDefinition) type).getAllowedTargetTypeIds()));
<a class="jxr_linenumber" name="1592" href="#1592">1592</a>         }
<a class="jxr_linenumber" name="1593" href="#1593">1593</a> 
<a class="jxr_linenumber" name="1594" href="#1594">1594</a>         <strong class="jxr_keyword">if</strong> (isNotEmpty(type.getPropertyDefinitions())) {
<a class="jxr_linenumber" name="1595" href="#1595">1595</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="1596" href="#1596">1596</a> 
<a class="jxr_linenumber" name="1597" href="#1597">1597</a>             <strong class="jxr_keyword">for</strong> (PropertyDefinition&lt;?&gt; pd : type.getPropertyDefinitions().values()) {
<a class="jxr_linenumber" name="1598" href="#1598">1598</a>                 propertyDefs.put(pd.getId(), convert(pd, dateTimeFormat));
<a class="jxr_linenumber" name="1599" href="#1599">1599</a>             }
<a class="jxr_linenumber" name="1600" href="#1600">1600</a> 
<a class="jxr_linenumber" name="1601" href="#1601">1601</a>             result.put(JSON_TYPE_PROPERTY_DEFINITIONS, propertyDefs);
<a class="jxr_linenumber" name="1602" href="#1602">1602</a>         }
<a class="jxr_linenumber" name="1603" href="#1603">1603</a> 
<a class="jxr_linenumber" name="1604" href="#1604">1604</a>         convertExtension(type, result);
<a class="jxr_linenumber" name="1605" href="#1605">1605</a> 
<a class="jxr_linenumber" name="1606" href="#1606">1606</a>         <strong class="jxr_keyword">return</strong> result;
<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_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1610" href="#1610">1610</a> <em class="jxr_javadoccomment">     * Converts a property type definition.</em>
<a class="jxr_linenumber" name="1611" href="#1611">1611</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1612" href="#1612">1612</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, <strong class="jxr_keyword">final</strong> DateTimeFormat dateTimeFormat) {
<a class="jxr_linenumber" name="1613" href="#1613">1613</a>         <strong class="jxr_keyword">if</strong> (propertyDefinition == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1614" href="#1614">1614</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1615" href="#1615">1615</a>         }
<a class="jxr_linenumber" name="1616" href="#1616">1616</a> 
<a class="jxr_linenumber" name="1617" href="#1617">1617</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="1618" href="#1618">1618</a> 
<a class="jxr_linenumber" name="1619" href="#1619">1619</a>         <em class="jxr_comment">// type specific</em>
<a class="jxr_linenumber" name="1620" href="#1620">1620</a>         <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof PropertyStringDefinition) {
<a class="jxr_linenumber" name="1621" href="#1621">1621</a>             setIfNotNull(JSON_PROPERTY_TYPE_MAX_LENGTH, ((PropertyStringDefinition) propertyDefinition).getMaxLength(),
<a class="jxr_linenumber" name="1622" href="#1622">1622</a>                     result);
<a class="jxr_linenumber" name="1623" href="#1623">1623</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof PropertyIdDefinition) {
<a class="jxr_linenumber" name="1624" href="#1624">1624</a>             <em class="jxr_comment">// nothing to do</em>
<a class="jxr_linenumber" name="1625" href="#1625">1625</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof PropertyIntegerDefinition) {
<a class="jxr_linenumber" name="1626" href="#1626">1626</a>             setIfNotNull(JSON_PROPERTY_TYPE_MIN_VALUE, ((PropertyIntegerDefinition) propertyDefinition).getMinValue(),
<a class="jxr_linenumber" name="1627" href="#1627">1627</a>                     result);
<a class="jxr_linenumber" name="1628" href="#1628">1628</a>             setIfNotNull(JSON_PROPERTY_TYPE_MAX_VALUE, ((PropertyIntegerDefinition) propertyDefinition).getMaxValue(),
<a class="jxr_linenumber" name="1629" href="#1629">1629</a>                     result);
<a class="jxr_linenumber" name="1630" href="#1630">1630</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof PropertyDecimalDefinition) {
<a class="jxr_linenumber" name="1631" href="#1631">1631</a>             setIfNotNull(JSON_PROPERTY_TYPE_MIN_VALUE, ((PropertyDecimalDefinition) propertyDefinition).getMinValue(),
<a class="jxr_linenumber" name="1632" href="#1632">1632</a>                     result);
<a class="jxr_linenumber" name="1633" href="#1633">1633</a>             setIfNotNull(JSON_PROPERTY_TYPE_MAX_VALUE, ((PropertyDecimalDefinition) propertyDefinition).getMaxValue(),
<a class="jxr_linenumber" name="1634" href="#1634">1634</a>                     result);
<a class="jxr_linenumber" name="1635" href="#1635">1635</a>             DecimalPrecision precision = ((PropertyDecimalDefinition) propertyDefinition).getPrecision();
<a class="jxr_linenumber" name="1636" href="#1636">1636</a>             <strong class="jxr_keyword">if</strong> (precision != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1637" href="#1637">1637</a>                 result.put(JSON_PROPERTY_TYPE_PRECISION, precision.value());
<a class="jxr_linenumber" name="1638" href="#1638">1638</a>             }
<a class="jxr_linenumber" name="1639" href="#1639">1639</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof PropertyBooleanDefinition) {
<a class="jxr_linenumber" name="1640" href="#1640">1640</a>             <em class="jxr_comment">// nothing to do</em>
<a class="jxr_linenumber" name="1641" href="#1641">1641</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof PropertyDateTimeDefinition) {
<a class="jxr_linenumber" name="1642" href="#1642">1642</a>             DateTimeResolution resolution = ((PropertyDateTimeDefinition) propertyDefinition).getDateTimeResolution();
<a class="jxr_linenumber" name="1643" href="#1643">1643</a>             <strong class="jxr_keyword">if</strong> (resolution != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1644" href="#1644">1644</a>                 result.put(JSON_PROPERTY_TYPE_RESOLUTION, resolution.value());
<a class="jxr_linenumber" name="1645" href="#1645">1645</a>             }
<a class="jxr_linenumber" name="1646" href="#1646">1646</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof PropertyHtmlDefinition) {
<a class="jxr_linenumber" name="1647" href="#1647">1647</a>             <em class="jxr_comment">// nothing to do</em>
<a class="jxr_linenumber" name="1648" href="#1648">1648</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyDefinition instanceof PropertyUriDefinition) {
<a class="jxr_linenumber" name="1649" href="#1649">1649</a>             <em class="jxr_comment">// nothing to do</em>
<a class="jxr_linenumber" name="1650" href="#1650">1650</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1651" href="#1651">1651</a>             assert false;
<a class="jxr_linenumber" name="1652" href="#1652">1652</a>         }
<a class="jxr_linenumber" name="1653" href="#1653">1653</a> 
<a class="jxr_linenumber" name="1654" href="#1654">1654</a>         <em class="jxr_comment">// default value</em>
<a class="jxr_linenumber" name="1655" href="#1655">1655</a>         <strong class="jxr_keyword">if</strong> (propertyDefinition.getDefaultValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1656" href="#1656">1656</a>             <strong class="jxr_keyword">if</strong> (propertyDefinition.getCardinality() == Cardinality.SINGLE) {
<a class="jxr_linenumber" name="1657" href="#1657">1657</a>                 <strong class="jxr_keyword">if</strong> (!propertyDefinition.getDefaultValue().isEmpty()) {
<a class="jxr_linenumber" name="1658" href="#1658">1658</a>                     result.put(JSON_PROPERTY_TYPE_DEAULT_VALUE,
<a class="jxr_linenumber" name="1659" href="#1659">1659</a>                             getJSONValue(propertyDefinition.getDefaultValue().get(0), dateTimeFormat));
<a class="jxr_linenumber" name="1660" href="#1660">1660</a>                 }
<a class="jxr_linenumber" name="1661" href="#1661">1661</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1662" href="#1662">1662</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="1663" href="#1663">1663</a>                 <strong class="jxr_keyword">for</strong> (Object value : propertyDefinition.getDefaultValue()) {
<a class="jxr_linenumber" name="1664" href="#1664">1664</a>                     values.add(getJSONValue(value, dateTimeFormat));
<a class="jxr_linenumber" name="1665" href="#1665">1665</a>                 }
<a class="jxr_linenumber" name="1666" href="#1666">1666</a>                 result.put(JSON_PROPERTY_TYPE_DEAULT_VALUE, values);
<a class="jxr_linenumber" name="1667" href="#1667">1667</a>             }
<a class="jxr_linenumber" name="1668" href="#1668">1668</a>         }
<a class="jxr_linenumber" name="1669" href="#1669">1669</a> 
<a class="jxr_linenumber" name="1670" href="#1670">1670</a>         <em class="jxr_comment">// choices</em>
<a class="jxr_linenumber" name="1671" href="#1671">1671</a>         <strong class="jxr_keyword">if</strong> (isNotEmpty(propertyDefinition.getChoices())) {
<a class="jxr_linenumber" name="1672" href="#1672">1672</a>             result.put(
<a class="jxr_linenumber" name="1673" href="#1673">1673</a>                     JSON_PROPERTY_TYPE_CHOICE,
<a class="jxr_linenumber" name="1674" href="#1674">1674</a>                     convertChoices(propertyDefinition.getChoices(), propertyDefinition.getCardinality(), dateTimeFormat));
<a class="jxr_linenumber" name="1675" href="#1675">1675</a>         }
<a class="jxr_linenumber" name="1676" href="#1676">1676</a> 
<a class="jxr_linenumber" name="1677" href="#1677">1677</a>         <em class="jxr_comment">// generic</em>
<a class="jxr_linenumber" name="1678" href="#1678">1678</a>         result.put(JSON_PROPERTY_TYPE_ID, propertyDefinition.getId());
<a class="jxr_linenumber" name="1679" href="#1679">1679</a>         result.put(JSON_PROPERTY_TYPE_LOCALNAME, propertyDefinition.getLocalName());
<a class="jxr_linenumber" name="1680" href="#1680">1680</a>         setIfNotNull(JSON_PROPERTY_TYPE_LOCALNAMESPACE, propertyDefinition.getLocalNamespace(), result);
<a class="jxr_linenumber" name="1681" href="#1681">1681</a>         setIfNotNull(JSON_PROPERTY_TYPE_DISPLAYNAME, propertyDefinition.getDisplayName(), result);
<a class="jxr_linenumber" name="1682" href="#1682">1682</a>         setIfNotNull(JSON_PROPERTY_TYPE_QUERYNAME, propertyDefinition.getQueryName(), result);
<a class="jxr_linenumber" name="1683" href="#1683">1683</a>         setIfNotNull(JSON_PROPERTY_TYPE_DESCRIPTION, propertyDefinition.getDescription(), result);
<a class="jxr_linenumber" name="1684" href="#1684">1684</a>         result.put(JSON_PROPERTY_TYPE_PROPERTY_TYPE, getJSONEnumValue(propertyDefinition.getPropertyType()));
<a class="jxr_linenumber" name="1685" href="#1685">1685</a>         result.put(JSON_PROPERTY_TYPE_CARDINALITY, getJSONEnumValue(propertyDefinition.getCardinality()));
<a class="jxr_linenumber" name="1686" href="#1686">1686</a>         result.put(JSON_PROPERTY_TYPE_UPDATABILITY, getJSONEnumValue(propertyDefinition.getUpdatability()));
<a class="jxr_linenumber" name="1687" href="#1687">1687</a>         setIfNotNull(JSON_PROPERTY_TYPE_INHERITED, propertyDefinition.isInherited(), result);
<a class="jxr_linenumber" name="1688" href="#1688">1688</a>         result.put(JSON_PROPERTY_TYPE_REQUIRED, propertyDefinition.isRequired());
<a class="jxr_linenumber" name="1689" href="#1689">1689</a>         result.put(JSON_PROPERTY_TYPE_QUERYABLE, propertyDefinition.isQueryable());
<a class="jxr_linenumber" name="1690" href="#1690">1690</a>         result.put(JSON_PROPERTY_TYPE_ORDERABLE, propertyDefinition.isOrderable());
<a class="jxr_linenumber" name="1691" href="#1691">1691</a>         setIfNotNull(JSON_PROPERTY_TYPE_OPENCHOICE, propertyDefinition.isOpenChoice(), result);
<a class="jxr_linenumber" name="1692" href="#1692">1692</a> 
<a class="jxr_linenumber" name="1693" href="#1693">1693</a>         convertExtension(propertyDefinition, result);
<a class="jxr_linenumber" name="1694" href="#1694">1694</a> 
<a class="jxr_linenumber" name="1695" href="#1695">1695</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1696" href="#1696">1696</a>     }
<a class="jxr_linenumber" name="1697" href="#1697">1697</a> 
<a class="jxr_linenumber" name="1698" href="#1698">1698</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1699" href="#1699">1699</a> <em class="jxr_javadoccomment">     * Converts choices.</em>
<a class="jxr_linenumber" name="1700" href="#1700">1700</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1701" href="#1701">1701</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="1702" href="#1702">1702</a>             <strong class="jxr_keyword">final</strong> DateTimeFormat dateTimeFormat) {
<a class="jxr_linenumber" name="1703" href="#1703">1703</a>         assert cardinality != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1704" href="#1704">1704</a> 
<a class="jxr_linenumber" name="1705" href="#1705">1705</a>         <strong class="jxr_keyword">if</strong> (choices == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1706" href="#1706">1706</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1707" href="#1707">1707</a>         }
<a class="jxr_linenumber" name="1708" href="#1708">1708</a> 
<a class="jxr_linenumber" name="1709" href="#1709">1709</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="1710" href="#1710">1710</a> 
<a class="jxr_linenumber" name="1711" href="#1711">1711</a>         <strong class="jxr_keyword">for</strong> (Choice&lt;?&gt; choice : choices) {
<a class="jxr_linenumber" name="1712" href="#1712">1712</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="1713" href="#1713">1713</a> 
<a class="jxr_linenumber" name="1714" href="#1714">1714</a>             jsonChoice.put(JSON_PROPERTY_TYPE_CHOICE_DISPLAYNAME, choice.getDisplayName());
<a class="jxr_linenumber" name="1715" href="#1715">1715</a> 
<a class="jxr_linenumber" name="1716" href="#1716">1716</a>             <strong class="jxr_keyword">if</strong> (cardinality == Cardinality.SINGLE) {
<a class="jxr_linenumber" name="1717" href="#1717">1717</a>                 <strong class="jxr_keyword">if</strong> (!choice.getValue().isEmpty()) {
<a class="jxr_linenumber" name="1718" href="#1718">1718</a>                     jsonChoice.put(JSON_PROPERTY_TYPE_CHOICE_VALUE,
<a class="jxr_linenumber" name="1719" href="#1719">1719</a>                             getJSONValue(choice.getValue().get(0), dateTimeFormat));
<a class="jxr_linenumber" name="1720" href="#1720">1720</a>                 }
<a class="jxr_linenumber" name="1721" href="#1721">1721</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1722" href="#1722">1722</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="1723" href="#1723">1723</a>                 <strong class="jxr_keyword">for</strong> (Object value : choice.getValue()) {
<a class="jxr_linenumber" name="1724" href="#1724">1724</a>                     values.add(getJSONValue(value, dateTimeFormat));
<a class="jxr_linenumber" name="1725" href="#1725">1725</a>                 }
<a class="jxr_linenumber" name="1726" href="#1726">1726</a>                 jsonChoice.put(JSON_PROPERTY_TYPE_CHOICE_VALUE, values);
<a class="jxr_linenumber" name="1727" href="#1727">1727</a>             }
<a class="jxr_linenumber" name="1728" href="#1728">1728</a> 
<a class="jxr_linenumber" name="1729" href="#1729">1729</a>             <strong class="jxr_keyword">if</strong> (isNotEmpty(choice.getChoice())) {
<a class="jxr_linenumber" name="1730" href="#1730">1730</a>                 jsonChoice.put(JSON_PROPERTY_TYPE_CHOICE_CHOICE,
<a class="jxr_linenumber" name="1731" href="#1731">1731</a>                         convertChoices(choice.getChoice(), cardinality, dateTimeFormat));
<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>             result.add(jsonChoice);
<a class="jxr_linenumber" name="1735" href="#1735">1735</a>         }
<a class="jxr_linenumber" name="1736" href="#1736">1736</a> 
<a class="jxr_linenumber" name="1737" href="#1737">1737</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1738" href="#1738">1738</a>     }
<a class="jxr_linenumber" name="1739" href="#1739">1739</a> 
<a class="jxr_linenumber" name="1740" href="#1740">1740</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1741" href="#1741">1741</a> <em class="jxr_javadoccomment">     * Converts a type definition list.</em>
<a class="jxr_linenumber" name="1742" href="#1742">1742</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1743" href="#1743">1743</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, <strong class="jxr_keyword">final</strong> DateTimeFormat dateTimeFormat) {
<a class="jxr_linenumber" name="1744" href="#1744">1744</a>         <strong class="jxr_keyword">if</strong> (list == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1745" href="#1745">1745</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1746" href="#1746">1746</a>         }
<a class="jxr_linenumber" name="1747" href="#1747">1747</a> 
<a class="jxr_linenumber" name="1748" href="#1748">1748</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="1749" href="#1749">1749</a> 
<a class="jxr_linenumber" name="1750" href="#1750">1750</a>         <strong class="jxr_keyword">if</strong> (list.getList() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1751" href="#1751">1751</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="1752" href="#1752">1752</a> 
<a class="jxr_linenumber" name="1753" href="#1753">1753</a>             <strong class="jxr_keyword">for</strong> (TypeDefinition type : list.getList()) {
<a class="jxr_linenumber" name="1754" href="#1754">1754</a>                 objects.add(convert(type, dateTimeFormat));
<a class="jxr_linenumber" name="1755" href="#1755">1755</a>             }
<a class="jxr_linenumber" name="1756" href="#1756">1756</a> 
<a class="jxr_linenumber" name="1757" href="#1757">1757</a>             result.put(JSON_TYPESLIST_TYPES, objects);
<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>         setIfNotNull(JSON_TYPESLIST_HAS_MORE_ITEMS, list.hasMoreItems(), result);
<a class="jxr_linenumber" name="1761" href="#1761">1761</a>         setIfNotNull(JSON_TYPESLIST_NUM_ITEMS, list.getNumItems(), result);
<a class="jxr_linenumber" name="1762" href="#1762">1762</a> 
<a class="jxr_linenumber" name="1763" href="#1763">1763</a>         convertExtension(list, result);
<a class="jxr_linenumber" name="1764" href="#1764">1764</a> 
<a class="jxr_linenumber" name="1765" href="#1765">1765</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1766" href="#1766">1766</a>     }
<a class="jxr_linenumber" name="1767" href="#1767">1767</a> 
<a class="jxr_linenumber" name="1768" href="#1768">1768</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1769" href="#1769">1769</a> <em class="jxr_javadoccomment">     * Converts a type definition list.</em>
<a class="jxr_linenumber" name="1770" href="#1770">1770</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1771" href="#1771">1771</a>     @SuppressWarnings({ <span class="jxr_string">"rawtypes"</span>, <span class="jxr_string">"unchecked"</span> })
<a class="jxr_linenumber" name="1772" href="#1772">1772</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="1773" href="#1773">1773</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1774" href="#1774">1774</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1775" href="#1775">1775</a>         }
<a class="jxr_linenumber" name="1776" href="#1776">1776</a> 
<a class="jxr_linenumber" name="1777" href="#1777">1777</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="1778" href="#1778">1778</a> 
<a class="jxr_linenumber" name="1779" href="#1779">1779</a>         Object typesList = json.get(JSON_TYPESLIST_TYPES);
<a class="jxr_linenumber" name="1780" href="#1780">1780</a>         List&lt;TypeDefinition&gt; types = <strong class="jxr_keyword">new</strong> ArrayList&lt;TypeDefinition&gt;();
<a class="jxr_linenumber" name="1781" href="#1781">1781</a> 
<a class="jxr_linenumber" name="1782" href="#1782">1782</a>         <strong class="jxr_keyword">if</strong> (typesList instanceof List) {
<a class="jxr_linenumber" name="1783" href="#1783">1783</a>             <strong class="jxr_keyword">for</strong> (Object type : (List) typesList) {
<a class="jxr_linenumber" name="1784" href="#1784">1784</a>                 <strong class="jxr_keyword">if</strong> (type instanceof Map) {
<a class="jxr_linenumber" name="1785" href="#1785">1785</a>                     types.add(convertTypeDefinition((Map&lt;String, Object&gt;) type));
<a class="jxr_linenumber" name="1786" href="#1786">1786</a>                 }
<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> 
<a class="jxr_linenumber" name="1790" href="#1790">1790</a>         result.setList(types);
<a class="jxr_linenumber" name="1791" href="#1791">1791</a>         result.setHasMoreItems(getBoolean(json, JSON_TYPESLIST_HAS_MORE_ITEMS));
<a class="jxr_linenumber" name="1792" href="#1792">1792</a>         result.setNumItems(getInteger(json, JSON_TYPESLIST_NUM_ITEMS));
<a class="jxr_linenumber" name="1793" href="#1793">1793</a> 
<a class="jxr_linenumber" name="1794" href="#1794">1794</a>         convertExtension(json, result, TYPESLIST_KEYS);
<a class="jxr_linenumber" name="1795" href="#1795">1795</a> 
<a class="jxr_linenumber" name="1796" href="#1796">1796</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1797" href="#1797">1797</a>     }
<a class="jxr_linenumber" name="1798" href="#1798">1798</a> 
<a class="jxr_linenumber" name="1799" href="#1799">1799</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1800" href="#1800">1800</a> <em class="jxr_javadoccomment">     * Converts a type definition container.</em>
<a class="jxr_linenumber" name="1801" href="#1801">1801</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1802" href="#1802">1802</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, <strong class="jxr_keyword">final</strong> DateTimeFormat dateTimeFormat) {
<a class="jxr_linenumber" name="1803" href="#1803">1803</a>         <strong class="jxr_keyword">if</strong> (container == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1804" href="#1804">1804</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1805" href="#1805">1805</a>         }
<a class="jxr_linenumber" name="1806" href="#1806">1806</a> 
<a class="jxr_linenumber" name="1807" href="#1807">1807</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="1808" href="#1808">1808</a>         result.put(JSON_TYPESCONTAINER_TYPE, convert(container.getTypeDefinition(), dateTimeFormat));
<a class="jxr_linenumber" name="1809" href="#1809">1809</a> 
<a class="jxr_linenumber" name="1810" href="#1810">1810</a>         <strong class="jxr_keyword">if</strong> (isNotEmpty(container.getChildren())) {
<a class="jxr_linenumber" name="1811" href="#1811">1811</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="1812" href="#1812">1812</a>             <strong class="jxr_keyword">for</strong> (TypeDefinitionContainer child : container.getChildren()) {
<a class="jxr_linenumber" name="1813" href="#1813">1813</a>                 children.add(convert(child, dateTimeFormat));
<a class="jxr_linenumber" name="1814" href="#1814">1814</a>             }
<a class="jxr_linenumber" name="1815" href="#1815">1815</a> 
<a class="jxr_linenumber" name="1816" href="#1816">1816</a>             result.put(JSON_TYPESCONTAINER_CHILDREN, children);
<a class="jxr_linenumber" name="1817" href="#1817">1817</a>         }
<a class="jxr_linenumber" name="1818" href="#1818">1818</a> 
<a class="jxr_linenumber" name="1819" href="#1819">1819</a>         convertExtension(container, result);
<a class="jxr_linenumber" name="1820" href="#1820">1820</a> 
<a class="jxr_linenumber" name="1821" href="#1821">1821</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1822" href="#1822">1822</a>     }
<a class="jxr_linenumber" name="1823" href="#1823">1823</a> 
<a class="jxr_linenumber" name="1824" href="#1824">1824</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1825" href="#1825">1825</a> <em class="jxr_javadoccomment">     * Converts a type definition list.</em>
<a class="jxr_linenumber" name="1826" href="#1826">1826</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1827" href="#1827">1827</a>     @SuppressWarnings({ <span class="jxr_string">"unchecked"</span> })
<a class="jxr_linenumber" name="1828" href="#1828">1828</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="1829" href="#1829">1829</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1830" href="#1830">1830</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1831" href="#1831">1831</a>         }
<a class="jxr_linenumber" name="1832" href="#1832">1832</a> 
<a class="jxr_linenumber" name="1833" href="#1833">1833</a>         <strong class="jxr_keyword">if</strong> (json.isEmpty()) {
<a class="jxr_linenumber" name="1834" href="#1834">1834</a>             <strong class="jxr_keyword">return</strong> Collections.emptyList();
<a class="jxr_linenumber" name="1835" href="#1835">1835</a>         }
<a class="jxr_linenumber" name="1836" href="#1836">1836</a> 
<a class="jxr_linenumber" name="1837" href="#1837">1837</a>         List&lt;TypeDefinitionContainer&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;TypeDefinitionContainer&gt;();
<a class="jxr_linenumber" name="1838" href="#1838">1838</a> 
<a class="jxr_linenumber" name="1839" href="#1839">1839</a>         <strong class="jxr_keyword">for</strong> (Object obj : json) {
<a class="jxr_linenumber" name="1840" href="#1840">1840</a>             <strong class="jxr_keyword">if</strong> (obj instanceof Map) {
<a class="jxr_linenumber" name="1841" href="#1841">1841</a>                 Map&lt;String, Object&gt; jsonContainer = (Map&lt;String, Object&gt;) obj;
<a class="jxr_linenumber" name="1842" href="#1842">1842</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="1843" href="#1843">1843</a> 
<a class="jxr_linenumber" name="1844" href="#1844">1844</a>                 container.setTypeDefinition(convertTypeDefinition(getMap(jsonContainer.get(JSON_TYPESCONTAINER_TYPE))));
<a class="jxr_linenumber" name="1845" href="#1845">1845</a> 
<a class="jxr_linenumber" name="1846" href="#1846">1846</a>                 Object children = jsonContainer.get(JSON_TYPESCONTAINER_CHILDREN);
<a class="jxr_linenumber" name="1847" href="#1847">1847</a>                 <strong class="jxr_keyword">if</strong> (children instanceof List) {
<a class="jxr_linenumber" name="1848" href="#1848">1848</a>                     container.setChildren(convertTypeDescendants((List&lt;Object&gt;) children));
<a class="jxr_linenumber" name="1849" href="#1849">1849</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1850" href="#1850">1850</a>                     container.setChildren(Collections.&lt;TypeDefinitionContainer&gt; emptyList());
<a class="jxr_linenumber" name="1851" href="#1851">1851</a>                 }
<a class="jxr_linenumber" name="1852" href="#1852">1852</a> 
<a class="jxr_linenumber" name="1853" href="#1853">1853</a>                 convertExtension(jsonContainer, container, TYPESCONTAINER_KEYS);
<a class="jxr_linenumber" name="1854" href="#1854">1854</a> 
<a class="jxr_linenumber" name="1855" href="#1855">1855</a>                 result.add(container);
<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> 
<a class="jxr_linenumber" name="1859" href="#1859">1859</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1860" href="#1860">1860</a>     }
<a class="jxr_linenumber" name="1861" href="#1861">1861</a> 
<a class="jxr_linenumber" name="1862" href="#1862">1862</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1863" href="#1863">1863</a> <em class="jxr_javadoccomment">     * Converts an object.</em>
<a class="jxr_linenumber" name="1864" href="#1864">1864</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1865" href="#1865">1865</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="1866" href="#1866">1866</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1867" href="#1867">1867</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1868" href="#1868">1868</a>         }
<a class="jxr_linenumber" name="1869" href="#1869">1869</a> 
<a class="jxr_linenumber" name="1870" href="#1870">1870</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="1871" href="#1871">1871</a> 
<a class="jxr_linenumber" name="1872" href="#1872">1872</a>         result.setAcl(convertAcl(getMap(json.get(JSON_OBJECT_ACL))));
<a class="jxr_linenumber" name="1873" href="#1873">1873</a>         result.setAllowableActions(convertAllowableActions(getMap(json.get(JSON_OBJECT_ALLOWABLE_ACTIONS))));
<a class="jxr_linenumber" name="1874" href="#1874">1874</a>         Map&lt;String, Object&gt; jsonChangeEventInfo = getMap(json.get(JSON_OBJECT_CHANGE_EVENT_INFO));
<a class="jxr_linenumber" name="1875" href="#1875">1875</a>         <strong class="jxr_keyword">if</strong> (jsonChangeEventInfo != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1876" href="#1876">1876</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="1877" href="#1877">1877</a> 
<a class="jxr_linenumber" name="1878" href="#1878">1878</a>             changeEventInfo.setChangeTime(getDateTime(jsonChangeEventInfo, JSON_CHANGE_EVENT_TIME));
<a class="jxr_linenumber" name="1879" href="#1879">1879</a>             changeEventInfo.setChangeType(getEnum(jsonChangeEventInfo, JSON_CHANGE_EVENT_TYPE, ChangeType.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="1880" href="#1880">1880</a> 
<a class="jxr_linenumber" name="1881" href="#1881">1881</a>             convertExtension(json, result, CHANGE_EVENT_KEYS);
<a class="jxr_linenumber" name="1882" href="#1882">1882</a> 
<a class="jxr_linenumber" name="1883" href="#1883">1883</a>             result.setChangeEventInfo(changeEventInfo);
<a class="jxr_linenumber" name="1884" href="#1884">1884</a>         }
<a class="jxr_linenumber" name="1885" href="#1885">1885</a>         result.setIsExactAcl(getBoolean(json, JSON_OBJECT_EXACT_ACL));
<a class="jxr_linenumber" name="1886" href="#1886">1886</a>         result.setPolicyIds(convertPolicyIds(getMap(json.get(JSON_OBJECT_POLICY_IDS))));
<a class="jxr_linenumber" name="1887" href="#1887">1887</a> 
<a class="jxr_linenumber" name="1888" href="#1888">1888</a>         Map&lt;String, Object&gt; propMap = getMap(json.get(JSON_OBJECT_SUCCINCT_PROPERTIES));
<a class="jxr_linenumber" name="1889" href="#1889">1889</a>         <strong class="jxr_keyword">if</strong> (propMap != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1890" href="#1890">1890</a>             result.setProperties(convertSuccinctProperties(propMap, getMap(json.get(JSON_OBJECT_PROPERTIES_EXTENSION)),
<a class="jxr_linenumber" name="1891" href="#1891">1891</a>                     typeCache));
<a class="jxr_linenumber" name="1892" href="#1892">1892</a>         }
<a class="jxr_linenumber" name="1893" href="#1893">1893</a>         propMap = getMap(json.get(JSON_OBJECT_PROPERTIES));
<a class="jxr_linenumber" name="1894" href="#1894">1894</a>         <strong class="jxr_keyword">if</strong> (propMap != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1895" href="#1895">1895</a>             result.setProperties(convertProperties(propMap, getMap(json.get(JSON_OBJECT_PROPERTIES_EXTENSION))));
<a class="jxr_linenumber" name="1896" href="#1896">1896</a>         }
<a class="jxr_linenumber" name="1897" href="#1897">1897</a> 
<a class="jxr_linenumber" name="1898" href="#1898">1898</a>         List&lt;Object&gt; jsonRelationships = getList(json.get(JSON_OBJECT_RELATIONSHIPS));
<a class="jxr_linenumber" name="1899" href="#1899">1899</a>         <strong class="jxr_keyword">if</strong> (jsonRelationships != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1900" href="#1900">1900</a>             result.setRelationships(convertObjects(jsonRelationships, typeCache));
<a class="jxr_linenumber" name="1901" href="#1901">1901</a>         }
<a class="jxr_linenumber" name="1902" href="#1902">1902</a>         List&lt;Object&gt; jsonRenditions = getList(json.get(JSON_OBJECT_RENDITIONS));
<a class="jxr_linenumber" name="1903" href="#1903">1903</a>         <strong class="jxr_keyword">if</strong> (jsonRenditions != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1904" href="#1904">1904</a>             result.setRenditions(convertRenditions(jsonRenditions));
<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>         convertExtension(json, result, OBJECT_KEYS);
<a class="jxr_linenumber" name="1908" href="#1908">1908</a> 
<a class="jxr_linenumber" name="1909" href="#1909">1909</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1910" href="#1910">1910</a>     }
<a class="jxr_linenumber" name="1911" href="#1911">1911</a> 
<a class="jxr_linenumber" name="1912" href="#1912">1912</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1913" href="#1913">1913</a> <em class="jxr_javadoccomment">     * Converts an object.</em>
<a class="jxr_linenumber" name="1914" href="#1914">1914</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1915" href="#1915">1915</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="1916" href="#1916">1916</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1917" href="#1917">1917</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1918" href="#1918">1918</a>         }
<a class="jxr_linenumber" name="1919" href="#1919">1919</a> 
<a class="jxr_linenumber" name="1920" href="#1920">1920</a>         List&lt;ObjectData&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;ObjectData&gt;();
<a class="jxr_linenumber" name="1921" href="#1921">1921</a>         <strong class="jxr_keyword">for</strong> (Object obj : json) {
<a class="jxr_linenumber" name="1922" href="#1922">1922</a>             ObjectData relationship = convertObject(getMap(obj), typeCache);
<a class="jxr_linenumber" name="1923" href="#1923">1923</a>             <strong class="jxr_keyword">if</strong> (relationship != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1924" href="#1924">1924</a>                 result.add(relationship);
<a class="jxr_linenumber" name="1925" href="#1925">1925</a>             }
<a class="jxr_linenumber" name="1926" href="#1926">1926</a>         }
<a class="jxr_linenumber" name="1927" href="#1927">1927</a> 
<a class="jxr_linenumber" name="1928" href="#1928">1928</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1929" href="#1929">1929</a>     }
<a class="jxr_linenumber" name="1930" href="#1930">1930</a> 
<a class="jxr_linenumber" name="1931" href="#1931">1931</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1932" href="#1932">1932</a> <em class="jxr_javadoccomment">     * Converts an ACL.</em>
<a class="jxr_linenumber" name="1933" href="#1933">1933</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1934" href="#1934">1934</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) {
<a class="jxr_linenumber" name="1935" href="#1935">1935</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1936" href="#1936">1936</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1937" href="#1937">1937</a>         }
<a class="jxr_linenumber" name="1938" href="#1938">1938</a> 
<a class="jxr_linenumber" name="1939" href="#1939">1939</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="1940" href="#1940">1940</a> 
<a class="jxr_linenumber" name="1941" href="#1941">1941</a>         List&lt;Ace&gt; aces = <strong class="jxr_keyword">new</strong> ArrayList&lt;Ace&gt;();
<a class="jxr_linenumber" name="1942" href="#1942">1942</a> 
<a class="jxr_linenumber" name="1943" href="#1943">1943</a>         List&lt;Object&gt; jsonAces = getList(json.get(JSON_ACL_ACES));
<a class="jxr_linenumber" name="1944" href="#1944">1944</a>         <strong class="jxr_keyword">if</strong> (jsonAces != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1945" href="#1945">1945</a>             <strong class="jxr_keyword">for</strong> (Object obj : jsonAces) {
<a class="jxr_linenumber" name="1946" href="#1946">1946</a>                 Map&lt;String, Object&gt; entry = getMap(obj);
<a class="jxr_linenumber" name="1947" href="#1947">1947</a>                 <strong class="jxr_keyword">if</strong> (entry != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1948" href="#1948">1948</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="1949" href="#1949">1949</a> 
<a class="jxr_linenumber" name="1950" href="#1950">1950</a>                     Boolean isDirect = getBoolean(entry, JSON_ACE_IS_DIRECT);
<a class="jxr_linenumber" name="1951" href="#1951">1951</a>                     ace.setDirect(isDirect != <strong class="jxr_keyword">null</strong> ? isDirect.booleanValue() : <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="1952" href="#1952">1952</a> 
<a class="jxr_linenumber" name="1953" href="#1953">1953</a>                     List&lt;Object&gt; jsonPermissions = getList(entry.get(JSON_ACE_PERMISSIONS));
<a class="jxr_linenumber" name="1954" href="#1954">1954</a>                     <strong class="jxr_keyword">if</strong> (jsonPermissions != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1955" href="#1955">1955</a>                         List&lt;String&gt; permissions = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a class="jxr_linenumber" name="1956" href="#1956">1956</a>                         <strong class="jxr_keyword">for</strong> (Object perm : jsonPermissions) {
<a class="jxr_linenumber" name="1957" href="#1957">1957</a>                             <strong class="jxr_keyword">if</strong> (perm != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1958" href="#1958">1958</a>                                 permissions.add(perm.toString());
<a class="jxr_linenumber" name="1959" href="#1959">1959</a>                             }
<a class="jxr_linenumber" name="1960" href="#1960">1960</a>                         }
<a class="jxr_linenumber" name="1961" href="#1961">1961</a>                         ace.setPermissions(permissions);
<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>                     Map&lt;String, Object&gt; jsonPrincipal = getMap(entry.get(JSON_ACE_PRINCIPAL));
<a class="jxr_linenumber" name="1965" href="#1965">1965</a>                     <strong class="jxr_keyword">if</strong> (jsonPrincipal != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1966" href="#1966">1966</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="1967" href="#1967">1967</a> 
<a class="jxr_linenumber" name="1968" href="#1968">1968</a>                         principal.setId(getString(jsonPrincipal, JSON_ACE_PRINCIPAL_ID));
<a class="jxr_linenumber" name="1969" href="#1969">1969</a> 
<a class="jxr_linenumber" name="1970" href="#1970">1970</a>                         convertExtension(jsonPrincipal, principal, PRINCIPAL_KEYS);
<a class="jxr_linenumber" name="1971" href="#1971">1971</a> 
<a class="jxr_linenumber" name="1972" href="#1972">1972</a>                         ace.setPrincipal(principal);
<a class="jxr_linenumber" name="1973" href="#1973">1973</a>                     }
<a class="jxr_linenumber" name="1974" href="#1974">1974</a> 
<a class="jxr_linenumber" name="1975" href="#1975">1975</a>                     convertExtension(entry, ace, ACE_KEYS);
<a class="jxr_linenumber" name="1976" href="#1976">1976</a> 
<a class="jxr_linenumber" name="1977" href="#1977">1977</a>                     aces.add(ace);
<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 class="jxr_linenumber" name="1981" href="#1981">1981</a> 
<a class="jxr_linenumber" name="1982" href="#1982">1982</a>         result.setAces(aces);
<a class="jxr_linenumber" name="1983" href="#1983">1983</a> 
<a class="jxr_linenumber" name="1984" href="#1984">1984</a>         result.setExact(getBoolean(json, JSON_ACL_IS_EXACT));
<a class="jxr_linenumber" name="1985" href="#1985">1985</a> 
<a class="jxr_linenumber" name="1986" href="#1986">1986</a>         convertExtension(json, result, ACL_KEYS);
<a class="jxr_linenumber" name="1987" href="#1987">1987</a> 
<a class="jxr_linenumber" name="1988" href="#1988">1988</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1989" href="#1989">1989</a>     }
<a class="jxr_linenumber" name="1990" href="#1990">1990</a> 
<a class="jxr_linenumber" name="1991" href="#1991">1991</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="1992" href="#1992">1992</a> <em class="jxr_javadoccomment">     * Converts allowable actions.</em>
<a class="jxr_linenumber" name="1993" href="#1993">1993</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="1994" href="#1994">1994</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="1995" href="#1995">1995</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1996" href="#1996">1996</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<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>         <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="2000" href="#2000">2000</a>         Set&lt;Action&gt; allowableActions = EnumSet.noneOf(Action.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="2001" href="#2001">2001</a> 
<a class="jxr_linenumber" name="2002" href="#2002">2002</a>         <strong class="jxr_keyword">for</strong> (Action action : Action.values()) {
<a class="jxr_linenumber" name="2003" href="#2003">2003</a>             Boolean value = getBoolean(json, action.value());
<a class="jxr_linenumber" name="2004" href="#2004">2004</a>             <strong class="jxr_keyword">if</strong> (value != <strong class="jxr_keyword">null</strong> &amp;&amp; value.booleanValue()) {
<a class="jxr_linenumber" name="2005" href="#2005">2005</a>                 allowableActions.add(action);
<a class="jxr_linenumber" name="2006" href="#2006">2006</a>             }
<a class="jxr_linenumber" name="2007" href="#2007">2007</a>         }
<a class="jxr_linenumber" name="2008" href="#2008">2008</a> 
<a class="jxr_linenumber" name="2009" href="#2009">2009</a>         result.setAllowableActions(allowableActions);
<a class="jxr_linenumber" name="2010" href="#2010">2010</a> 
<a class="jxr_linenumber" name="2011" href="#2011">2011</a>         convertExtension(json, result, ALLOWABLE_ACTIONS_KEYS);
<a class="jxr_linenumber" name="2012" href="#2012">2012</a> 
<a class="jxr_linenumber" name="2013" href="#2013">2013</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2014" href="#2014">2014</a>     }
<a class="jxr_linenumber" name="2015" href="#2015">2015</a> 
<a class="jxr_linenumber" name="2016" href="#2016">2016</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2017" href="#2017">2017</a> <em class="jxr_javadoccomment">     * Converts a list of policy ids.</em>
<a class="jxr_linenumber" name="2018" href="#2018">2018</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2019" href="#2019">2019</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="2020" href="#2020">2020</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2021" href="#2021">2021</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2022" href="#2022">2022</a>         }
<a class="jxr_linenumber" name="2023" href="#2023">2023</a> 
<a class="jxr_linenumber" name="2024" href="#2024">2024</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="2025" href="#2025">2025</a>         List&lt;String&gt; policyIds = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a class="jxr_linenumber" name="2026" href="#2026">2026</a> 
<a class="jxr_linenumber" name="2027" href="#2027">2027</a>         List&lt;Object&gt; ids = getList(json.get(JSON_OBJECT_POLICY_IDS_IDS));
<a class="jxr_linenumber" name="2028" href="#2028">2028</a> 
<a class="jxr_linenumber" name="2029" href="#2029">2029</a>         <strong class="jxr_keyword">if</strong> (ids != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2030" href="#2030">2030</a>             <strong class="jxr_keyword">for</strong> (Object obj : ids) {
<a class="jxr_linenumber" name="2031" href="#2031">2031</a>                 <strong class="jxr_keyword">if</strong> (obj instanceof String) {
<a class="jxr_linenumber" name="2032" href="#2032">2032</a>                     policyIds.add((String) obj);
<a class="jxr_linenumber" name="2033" href="#2033">2033</a>                 }
<a class="jxr_linenumber" name="2034" href="#2034">2034</a>             }
<a class="jxr_linenumber" name="2035" href="#2035">2035</a>         }
<a class="jxr_linenumber" name="2036" href="#2036">2036</a> 
<a class="jxr_linenumber" name="2037" href="#2037">2037</a>         convertExtension(json, result, POLICY_IDS_KEYS);
<a class="jxr_linenumber" name="2038" href="#2038">2038</a> 
<a class="jxr_linenumber" name="2039" href="#2039">2039</a>         result.setPolicyIds(policyIds);
<a class="jxr_linenumber" name="2040" href="#2040">2040</a> 
<a class="jxr_linenumber" name="2041" href="#2041">2041</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2042" href="#2042">2042</a>     }
<a class="jxr_linenumber" name="2043" href="#2043">2043</a> 
<a class="jxr_linenumber" name="2044" href="#2044">2044</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2045" href="#2045">2045</a> <em class="jxr_javadoccomment">     * Converts properties.</em>
<a class="jxr_linenumber" name="2046" href="#2046">2046</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2047" href="#2047">2047</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="2048" href="#2048">2048</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="2049" href="#2049">2049</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2050" href="#2050">2050</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<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>         <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="2054" href="#2054">2054</a> 
<a class="jxr_linenumber" name="2055" href="#2055">2055</a>         <strong class="jxr_keyword">for</strong> (Object jsonProperty : json.values()) {
<a class="jxr_linenumber" name="2056" href="#2056">2056</a>             Map&lt;String, Object&gt; jsonPropertyMap = getMap(jsonProperty);
<a class="jxr_linenumber" name="2057" href="#2057">2057</a>             <strong class="jxr_keyword">if</strong> (jsonPropertyMap != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2058" href="#2058">2058</a>                 AbstractPropertyData&lt;?&gt; property = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2059" href="#2059">2059</a> 
<a class="jxr_linenumber" name="2060" href="#2060">2060</a>                 String id = getString(jsonPropertyMap, JSON_PROPERTY_ID);
<a class="jxr_linenumber" name="2061" href="#2061">2061</a>                 String queryName = getString(jsonPropertyMap, JSON_PROPERTY_QUERYNAME);
<a class="jxr_linenumber" name="2062" href="#2062">2062</a>                 <strong class="jxr_keyword">if</strong> (id == <strong class="jxr_keyword">null</strong> &amp;&amp; queryName == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2063" href="#2063">2063</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(
<a class="jxr_linenumber" name="2064" href="#2064">2064</a>                             <span class="jxr_string">"Invalid property! Neither a property ID nor a query name is provided!"</span>);
<a class="jxr_linenumber" name="2065" href="#2065">2065</a>                 }
<a class="jxr_linenumber" name="2066" href="#2066">2066</a> 
<a class="jxr_linenumber" name="2067" href="#2067">2067</a>                 PropertyType propertyType = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2068" href="#2068">2068</a>                 <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="2069" href="#2069">2069</a>                     propertyType = PropertyType.fromValue(getString(jsonPropertyMap, JSON_PROPERTY_DATATYPE));
<a class="jxr_linenumber" name="2070" href="#2070">2070</a>                 } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="2071" href="#2071">2071</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Invalid property datatype: "</span> + id, e);
<a class="jxr_linenumber" name="2072" href="#2072">2072</a>                 }
<a class="jxr_linenumber" name="2073" href="#2073">2073</a> 
<a class="jxr_linenumber" name="2074" href="#2074">2074</a>                 Object value = jsonPropertyMap.get(JSON_PROPERTY_VALUE);
<a class="jxr_linenumber" name="2075" href="#2075">2075</a>                 List&lt;Object&gt; values = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2076" href="#2076">2076</a>                 <strong class="jxr_keyword">if</strong> (value instanceof List) {
<a class="jxr_linenumber" name="2077" href="#2077">2077</a>                     values = (List&lt;Object&gt;) value;
<a class="jxr_linenumber" name="2078" href="#2078">2078</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="2079" href="#2079">2079</a>                     values = Collections.singletonList(value);
<a class="jxr_linenumber" name="2080" href="#2080">2080</a>                 }
<a class="jxr_linenumber" name="2081" href="#2081">2081</a> 
<a class="jxr_linenumber" name="2082" href="#2082">2082</a>                 <strong class="jxr_keyword">switch</strong> (propertyType) {
<a class="jxr_linenumber" name="2083" href="#2083">2083</a>                 <strong class="jxr_keyword">case</strong> STRING:
<a class="jxr_linenumber" name="2084" href="#2084">2084</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="2085" href="#2085">2085</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyStringImpl.html">PropertyStringImpl</a>) property).setValues(copyStringValues(values));
<a class="jxr_linenumber" name="2086" href="#2086">2086</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2087" href="#2087">2087</a>                 <strong class="jxr_keyword">case</strong> ID:
<a class="jxr_linenumber" name="2088" href="#2088">2088</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="2089" href="#2089">2089</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIdImpl.html">PropertyIdImpl</a>) property).setValues(copyStringValues(values));
<a class="jxr_linenumber" name="2090" href="#2090">2090</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2091" href="#2091">2091</a>                 <strong class="jxr_keyword">case</strong> BOOLEAN:
<a class="jxr_linenumber" name="2092" href="#2092">2092</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="2093" href="#2093">2093</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyBooleanImpl.html">PropertyBooleanImpl</a>) property).setValues(copyBooleanValues(values));
<a class="jxr_linenumber" name="2094" href="#2094">2094</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2095" href="#2095">2095</a>                 <strong class="jxr_keyword">case</strong> INTEGER:
<a class="jxr_linenumber" name="2096" href="#2096">2096</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="2097" href="#2097">2097</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIntegerImpl.html">PropertyIntegerImpl</a>) property).setValues(copyIntegerValues(values));
<a class="jxr_linenumber" name="2098" href="#2098">2098</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2099" href="#2099">2099</a>                 <strong class="jxr_keyword">case</strong> DECIMAL:
<a class="jxr_linenumber" name="2100" href="#2100">2100</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="2101" href="#2101">2101</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDecimalImpl.html">PropertyDecimalImpl</a>) property).setValues(copyDecimalValues(values));
<a class="jxr_linenumber" name="2102" href="#2102">2102</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2103" href="#2103">2103</a>                 <strong class="jxr_keyword">case</strong> DATETIME:
<a class="jxr_linenumber" name="2104" href="#2104">2104</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="2105" href="#2105">2105</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDateTimeImpl.html">PropertyDateTimeImpl</a>) property).setValues(copyDateTimeValues(values));
<a class="jxr_linenumber" name="2106" href="#2106">2106</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2107" href="#2107">2107</a>                 <strong class="jxr_keyword">case</strong> HTML:
<a class="jxr_linenumber" name="2108" href="#2108">2108</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="2109" href="#2109">2109</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyHtmlImpl.html">PropertyHtmlImpl</a>) property).setValues(copyStringValues(values));
<a class="jxr_linenumber" name="2110" href="#2110">2110</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2111" href="#2111">2111</a>                 <strong class="jxr_keyword">case</strong> URI:
<a class="jxr_linenumber" name="2112" href="#2112">2112</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="2113" href="#2113">2113</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyUriImpl.html">PropertyUriImpl</a>) property).setValues(copyStringValues(values));
<a class="jxr_linenumber" name="2114" href="#2114">2114</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2115" href="#2115">2115</a>                 <strong class="jxr_keyword">default</strong>:
<a class="jxr_linenumber" name="2116" href="#2116">2116</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Unknown property data type!"</span>);
<a class="jxr_linenumber" name="2117" href="#2117">2117</a>                 }
<a class="jxr_linenumber" name="2118" href="#2118">2118</a> 
<a class="jxr_linenumber" name="2119" href="#2119">2119</a>                 property.setId(id);
<a class="jxr_linenumber" name="2120" href="#2120">2120</a>                 property.setDisplayName(getString(jsonPropertyMap, JSON_PROPERTY_DISPLAYNAME));
<a class="jxr_linenumber" name="2121" href="#2121">2121</a>                 property.setQueryName(queryName);
<a class="jxr_linenumber" name="2122" href="#2122">2122</a>                 property.setLocalName(getString(jsonPropertyMap, JSON_PROPERTY_LOCALNAME));
<a class="jxr_linenumber" name="2123" href="#2123">2123</a> 
<a class="jxr_linenumber" name="2124" href="#2124">2124</a>                 convertExtension(jsonPropertyMap, property, PROPERTY_KEYS);
<a class="jxr_linenumber" name="2125" href="#2125">2125</a> 
<a class="jxr_linenumber" name="2126" href="#2126">2126</a>                 result.addProperty(property);
<a class="jxr_linenumber" name="2127" href="#2127">2127</a>             }
<a class="jxr_linenumber" name="2128" href="#2128">2128</a>         }
<a class="jxr_linenumber" name="2129" href="#2129">2129</a> 
<a class="jxr_linenumber" name="2130" href="#2130">2130</a>         <strong class="jxr_keyword">if</strong> (extJson != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2131" href="#2131">2131</a>             convertExtension(extJson, result, Collections.&lt;String&gt; emptySet());
<a class="jxr_linenumber" name="2132" href="#2132">2132</a>         }
<a class="jxr_linenumber" name="2133" href="#2133">2133</a> 
<a class="jxr_linenumber" name="2134" href="#2134">2134</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2135" href="#2135">2135</a>     }
<a class="jxr_linenumber" name="2136" href="#2136">2136</a> 
<a class="jxr_linenumber" name="2137" href="#2137">2137</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2138" href="#2138">2138</a> <em class="jxr_javadoccomment">     * Converts properties.</em>
<a class="jxr_linenumber" name="2139" href="#2139">2139</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2140" href="#2140">2140</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="2141" href="#2141">2141</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="2142" href="#2142">2142</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="2143" href="#2143">2143</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2144" href="#2144">2144</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2145" href="#2145">2145</a>         }
<a class="jxr_linenumber" name="2146" href="#2146">2146</a> 
<a class="jxr_linenumber" name="2147" href="#2147">2147</a>         TypeDefinition typeDef = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2148" href="#2148">2148</a>         <strong class="jxr_keyword">if</strong> (json.get(PropertyIds.OBJECT_TYPE_ID) instanceof String) {
<a class="jxr_linenumber" name="2149" href="#2149">2149</a>             typeDef = typeCache.getTypeDefinition((String) json.get(PropertyIds.OBJECT_TYPE_ID));
<a class="jxr_linenumber" name="2150" href="#2150">2150</a>         }
<a class="jxr_linenumber" name="2151" href="#2151">2151</a> 
<a class="jxr_linenumber" name="2152" href="#2152">2152</a>         List&lt;Object&gt; secTypeIds = getList(json.get(PropertyIds.SECONDARY_OBJECT_TYPE_IDS));
<a class="jxr_linenumber" name="2153" href="#2153">2153</a>         List&lt;TypeDefinition&gt; secTypeDefs = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2154" href="#2154">2154</a>         <strong class="jxr_keyword">if</strong> (isNotEmpty(secTypeIds)) {
<a class="jxr_linenumber" name="2155" href="#2155">2155</a>             secTypeDefs = <strong class="jxr_keyword">new</strong> ArrayList&lt;TypeDefinition&gt;(secTypeIds.size());
<a class="jxr_linenumber" name="2156" href="#2156">2156</a>             <strong class="jxr_keyword">for</strong> (Object secTypeId : secTypeIds) {
<a class="jxr_linenumber" name="2157" href="#2157">2157</a>                 <strong class="jxr_keyword">if</strong> (secTypeId instanceof String) {
<a class="jxr_linenumber" name="2158" href="#2158">2158</a>                     secTypeDefs.add(typeCache.getTypeDefinition((String) secTypeId));
<a class="jxr_linenumber" name="2159" href="#2159">2159</a>                 }
<a class="jxr_linenumber" name="2160" href="#2160">2160</a>             }
<a class="jxr_linenumber" name="2161" href="#2161">2161</a>         }
<a class="jxr_linenumber" name="2162" href="#2162">2162</a> 
<a class="jxr_linenumber" name="2163" href="#2163">2163</a>         <a 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="2164" href="#2164">2164</a> 
<a class="jxr_linenumber" name="2165" href="#2165">2165</a>         <strong class="jxr_keyword">for</strong> (Map.Entry&lt;String, Object&gt; entry : json.entrySet()) {
<a class="jxr_linenumber" name="2166" href="#2166">2166</a>             String id = entry.getKey();
<a class="jxr_linenumber" name="2167" href="#2167">2167</a> 
<a class="jxr_linenumber" name="2168" href="#2168">2168</a>             PropertyDefinition&lt;?&gt; propDef = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2169" href="#2169">2169</a>             <strong class="jxr_keyword">if</strong> (typeDef != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2170" href="#2170">2170</a>                 propDef = typeDef.getPropertyDefinitions().get(id);
<a class="jxr_linenumber" name="2171" href="#2171">2171</a>             }
<a class="jxr_linenumber" name="2172" href="#2172">2172</a> 
<a class="jxr_linenumber" name="2173" href="#2173">2173</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="2174" href="#2174">2174</a>                 <strong class="jxr_keyword">for</strong> (TypeDefinition secTypeDef : secTypeDefs) {
<a class="jxr_linenumber" name="2175" href="#2175">2175</a>                     <strong class="jxr_keyword">if</strong> (secTypeDef != <strong class="jxr_keyword">null</strong> &amp;&amp; secTypeDef.getPropertyDefinitions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2176" href="#2176">2176</a>                         propDef = secTypeDef.getPropertyDefinitions().get(id);
<a class="jxr_linenumber" name="2177" href="#2177">2177</a>                         <strong class="jxr_keyword">if</strong> (propDef != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2178" href="#2178">2178</a>                             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2179" href="#2179">2179</a>                         }
<a class="jxr_linenumber" name="2180" href="#2180">2180</a>                     }
<a class="jxr_linenumber" name="2181" href="#2181">2181</a>                 }
<a class="jxr_linenumber" name="2182" href="#2182">2182</a>             }
<a class="jxr_linenumber" name="2183" href="#2183">2183</a> 
<a class="jxr_linenumber" name="2184" href="#2184">2184</a>             <strong class="jxr_keyword">if</strong> (propDef == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2185" href="#2185">2185</a>                 propDef = typeCache.getTypeDefinition(BaseTypeId.CMIS_DOCUMENT.value()).getPropertyDefinitions()
<a class="jxr_linenumber" name="2186" href="#2186">2186</a>                         .get(id);
<a class="jxr_linenumber" name="2187" href="#2187">2187</a>             }
<a class="jxr_linenumber" name="2188" href="#2188">2188</a> 
<a class="jxr_linenumber" name="2189" href="#2189">2189</a>             <strong class="jxr_keyword">if</strong> (propDef == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2190" href="#2190">2190</a>                 propDef = typeCache.getTypeDefinition(BaseTypeId.CMIS_FOLDER.value()).getPropertyDefinitions().get(id);
<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>             <strong class="jxr_keyword">if</strong> (propDef == <strong class="jxr_keyword">null</strong> &amp;&amp; typeDef != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2194" href="#2194">2194</a>                 TypeDefinition reloadedTypeDef = typeCache.reloadTypeDefinition(typeDef.getId());
<a class="jxr_linenumber" name="2195" href="#2195">2195</a>                 <strong class="jxr_keyword">if</strong> (reloadedTypeDef != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2196" href="#2196">2196</a>                     propDef = reloadedTypeDef.getPropertyDefinitions().get(id);
<a class="jxr_linenumber" name="2197" href="#2197">2197</a>                 }
<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">if</strong> (propDef == <strong class="jxr_keyword">null</strong> &amp;&amp; secTypeDefs != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2201" href="#2201">2201</a>                 <strong class="jxr_keyword">for</strong> (TypeDefinition secTypeDef : secTypeDefs) {
<a class="jxr_linenumber" name="2202" href="#2202">2202</a>                     TypeDefinition reloadedTypeDef = typeCache.reloadTypeDefinition(secTypeDef.getId());
<a class="jxr_linenumber" name="2203" href="#2203">2203</a>                     <strong class="jxr_keyword">if</strong> (reloadedTypeDef != <strong class="jxr_keyword">null</strong> &amp;&amp; reloadedTypeDef.getPropertyDefinitions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2204" href="#2204">2204</a>                         propDef = reloadedTypeDef.getPropertyDefinitions().get(id);
<a class="jxr_linenumber" name="2205" href="#2205">2205</a>                         <strong class="jxr_keyword">if</strong> (propDef != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2206" href="#2206">2206</a>                             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2207" href="#2207">2207</a>                         }
<a class="jxr_linenumber" name="2208" href="#2208">2208</a>                     }
<a class="jxr_linenumber" name="2209" href="#2209">2209</a>                 }
<a class="jxr_linenumber" name="2210" href="#2210">2210</a>             }
<a class="jxr_linenumber" name="2211" href="#2211">2211</a> 
<a class="jxr_linenumber" name="2212" href="#2212">2212</a>             List&lt;Object&gt; values = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2213" href="#2213">2213</a>             <strong class="jxr_keyword">if</strong> (entry.getValue() instanceof List) {
<a class="jxr_linenumber" name="2214" href="#2214">2214</a>                 values = (List&lt;Object&gt;) entry.getValue();
<a class="jxr_linenumber" name="2215" href="#2215">2215</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="2216" href="#2216">2216</a>                 values = Collections.singletonList(entry.getValue());
<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>             AbstractPropertyData&lt;?&gt; property = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2220" href="#2220">2220</a> 
<a class="jxr_linenumber" name="2221" href="#2221">2221</a>             <strong class="jxr_keyword">if</strong> (propDef != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2222" href="#2222">2222</a>                 <strong class="jxr_keyword">switch</strong> (propDef.getPropertyType()) {
<a class="jxr_linenumber" name="2223" href="#2223">2223</a>                 <strong class="jxr_keyword">case</strong> STRING:
<a class="jxr_linenumber" name="2224" href="#2224">2224</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="2225" href="#2225">2225</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyStringImpl.html">PropertyStringImpl</a>) property).setValues(copyStringValues(values));
<a class="jxr_linenumber" name="2226" href="#2226">2226</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2227" href="#2227">2227</a>                 <strong class="jxr_keyword">case</strong> ID:
<a class="jxr_linenumber" name="2228" href="#2228">2228</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="2229" href="#2229">2229</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIdImpl.html">PropertyIdImpl</a>) property).setValues(copyStringValues(values));
<a class="jxr_linenumber" name="2230" href="#2230">2230</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2231" href="#2231">2231</a>                 <strong class="jxr_keyword">case</strong> BOOLEAN:
<a class="jxr_linenumber" name="2232" href="#2232">2232</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="2233" href="#2233">2233</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyBooleanImpl.html">PropertyBooleanImpl</a>) property).setValues(copyBooleanValues(values));
<a class="jxr_linenumber" name="2234" href="#2234">2234</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2235" href="#2235">2235</a>                 <strong class="jxr_keyword">case</strong> INTEGER:
<a class="jxr_linenumber" name="2236" href="#2236">2236</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="2237" href="#2237">2237</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIntegerImpl.html">PropertyIntegerImpl</a>) property).setValues(copyIntegerValues(values));
<a class="jxr_linenumber" name="2238" href="#2238">2238</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2239" href="#2239">2239</a>                 <strong class="jxr_keyword">case</strong> DECIMAL:
<a class="jxr_linenumber" name="2240" href="#2240">2240</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="2241" href="#2241">2241</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDecimalImpl.html">PropertyDecimalImpl</a>) property).setValues(copyDecimalValues(values));
<a class="jxr_linenumber" name="2242" href="#2242">2242</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2243" href="#2243">2243</a>                 <strong class="jxr_keyword">case</strong> DATETIME:
<a class="jxr_linenumber" name="2244" href="#2244">2244</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="2245" href="#2245">2245</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDateTimeImpl.html">PropertyDateTimeImpl</a>) property).setValues(copyDateTimeValues(values));
<a class="jxr_linenumber" name="2246" href="#2246">2246</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2247" href="#2247">2247</a>                 <strong class="jxr_keyword">case</strong> HTML:
<a class="jxr_linenumber" name="2248" href="#2248">2248</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="2249" href="#2249">2249</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyHtmlImpl.html">PropertyHtmlImpl</a>) property).setValues(copyStringValues(values));
<a class="jxr_linenumber" name="2250" href="#2250">2250</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2251" href="#2251">2251</a>                 <strong class="jxr_keyword">case</strong> URI:
<a class="jxr_linenumber" name="2252" href="#2252">2252</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="2253" href="#2253">2253</a>                     ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyUriImpl.html">PropertyUriImpl</a>) property).setValues(copyStringValues(values));
<a class="jxr_linenumber" name="2254" href="#2254">2254</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="2255" href="#2255">2255</a>                 <strong class="jxr_keyword">default</strong>:
<a class="jxr_linenumber" name="2256" href="#2256">2256</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Unknown property type!"</span>);
<a class="jxr_linenumber" name="2257" href="#2257">2257</a>                 }
<a class="jxr_linenumber" name="2258" href="#2258">2258</a> 
<a class="jxr_linenumber" name="2259" href="#2259">2259</a>                 property.setId(id);
<a class="jxr_linenumber" name="2260" href="#2260">2260</a>                 property.setDisplayName(propDef.getDisplayName());
<a class="jxr_linenumber" name="2261" href="#2261">2261</a>                 property.setQueryName(propDef.getQueryName());
<a class="jxr_linenumber" name="2262" href="#2262">2262</a>                 property.setLocalName(propDef.getLocalName());
<a class="jxr_linenumber" name="2263" href="#2263">2263</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2264" href="#2264">2264</a>                 <em class="jxr_comment">// this else block should only be reached in rare circumstances</em>
<a class="jxr_linenumber" name="2265" href="#2265">2265</a>                 <em class="jxr_comment">// it may return incorrect types</em>
<a class="jxr_linenumber" name="2266" href="#2266">2266</a> 
<a class="jxr_linenumber" name="2267" href="#2267">2267</a>                 <strong class="jxr_keyword">if</strong> (values == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2268" href="#2268">2268</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="2269" href="#2269">2269</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="2270" href="#2270">2270</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2271" href="#2271">2271</a>                     Object firstValue = values.get(0);
<a class="jxr_linenumber" name="2272" href="#2272">2272</a>                     <strong class="jxr_keyword">if</strong> (firstValue instanceof Boolean) {
<a class="jxr_linenumber" name="2273" href="#2273">2273</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="2274" href="#2274">2274</a>                         ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyBooleanImpl.html">PropertyBooleanImpl</a>) property).setValues(copyBooleanValues(values));
<a class="jxr_linenumber" name="2275" href="#2275">2275</a>                     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (firstValue instanceof BigInteger) {
<a class="jxr_linenumber" name="2276" href="#2276">2276</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="2277" href="#2277">2277</a>                         ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyIntegerImpl.html">PropertyIntegerImpl</a>) property).setValues(copyIntegerValues(values));
<a class="jxr_linenumber" name="2278" href="#2278">2278</a>                     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (firstValue instanceof BigDecimal) {
<a class="jxr_linenumber" name="2279" href="#2279">2279</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="2280" href="#2280">2280</a>                         ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyDecimalImpl.html">PropertyDecimalImpl</a>) property).setValues(copyDecimalValues(values));
<a class="jxr_linenumber" name="2281" href="#2281">2281</a>                     } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2282" href="#2282">2282</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="2283" href="#2283">2283</a>                         ((<a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/dataobjects/PropertyStringImpl.html">PropertyStringImpl</a>) property).setValues(copyStringValues(values));
<a class="jxr_linenumber" name="2284" href="#2284">2284</a>                     }
<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>                 property.setId(id);
<a class="jxr_linenumber" name="2288" href="#2288">2288</a>                 property.setDisplayName(id);
<a class="jxr_linenumber" name="2289" href="#2289">2289</a>                 property.setQueryName(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2290" href="#2290">2290</a>                 property.setLocalName(<strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="2291" href="#2291">2291</a>             }
<a class="jxr_linenumber" name="2292" href="#2292">2292</a> 
<a class="jxr_linenumber" name="2293" href="#2293">2293</a>             result.addProperty(property);
<a class="jxr_linenumber" name="2294" href="#2294">2294</a>         }
<a class="jxr_linenumber" name="2295" href="#2295">2295</a> 
<a class="jxr_linenumber" name="2296" href="#2296">2296</a>         <strong class="jxr_keyword">if</strong> (extJson != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2297" href="#2297">2297</a>             convertExtension(extJson, result, Collections.&lt;String&gt; emptySet());
<a class="jxr_linenumber" name="2298" href="#2298">2298</a>         }
<a class="jxr_linenumber" name="2299" href="#2299">2299</a> 
<a class="jxr_linenumber" name="2300" href="#2300">2300</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2301" href="#2301">2301</a>     }
<a class="jxr_linenumber" name="2302" href="#2302">2302</a> 
<a class="jxr_linenumber" name="2303" href="#2303">2303</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="2304" href="#2304">2304</a>         List&lt;String&gt; result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2305" href="#2305">2305</a>         <strong class="jxr_keyword">if</strong> (source != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2306" href="#2306">2306</a>             result = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;(source.size());
<a class="jxr_linenumber" name="2307" href="#2307">2307</a>             <strong class="jxr_keyword">for</strong> (Object obj : source) {
<a class="jxr_linenumber" name="2308" href="#2308">2308</a>                 <strong class="jxr_keyword">if</strong> (obj instanceof String) {
<a class="jxr_linenumber" name="2309" href="#2309">2309</a>                     result.add(obj.toString());
<a class="jxr_linenumber" name="2310" href="#2310">2310</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2311" href="#2311">2311</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="2312" href="#2312">2312</a>                 }
<a class="jxr_linenumber" name="2313" href="#2313">2313</a>             }
<a class="jxr_linenumber" name="2314" href="#2314">2314</a>         }
<a class="jxr_linenumber" name="2315" href="#2315">2315</a> 
<a class="jxr_linenumber" name="2316" href="#2316">2316</a>         <strong class="jxr_keyword">return</strong> result;
<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>     <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="2320" href="#2320">2320</a>         List&lt;Boolean&gt; result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2321" href="#2321">2321</a>         <strong class="jxr_keyword">if</strong> (source != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2322" href="#2322">2322</a>             result = <strong class="jxr_keyword">new</strong> ArrayList&lt;Boolean&gt;(source.size());
<a class="jxr_linenumber" name="2323" href="#2323">2323</a>             <strong class="jxr_keyword">for</strong> (Object obj : source) {
<a class="jxr_linenumber" name="2324" href="#2324">2324</a>                 <strong class="jxr_keyword">if</strong> (obj instanceof Boolean) {
<a class="jxr_linenumber" name="2325" href="#2325">2325</a>                     result.add((Boolean) obj);
<a class="jxr_linenumber" name="2326" href="#2326">2326</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2327" href="#2327">2327</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="2328" href="#2328">2328</a>                 }
<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> 
<a class="jxr_linenumber" name="2332" href="#2332">2332</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2333" href="#2333">2333</a>     }
<a class="jxr_linenumber" name="2334" href="#2334">2334</a> 
<a class="jxr_linenumber" name="2335" href="#2335">2335</a>     <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="2336" href="#2336">2336</a>         List&lt;BigInteger&gt; result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2337" href="#2337">2337</a>         <strong class="jxr_keyword">if</strong> (source != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2338" href="#2338">2338</a>             result = <strong class="jxr_keyword">new</strong> ArrayList&lt;BigInteger&gt;(source.size());
<a class="jxr_linenumber" name="2339" href="#2339">2339</a>             <strong class="jxr_keyword">for</strong> (Object obj : source) {
<a class="jxr_linenumber" name="2340" href="#2340">2340</a>                 <strong class="jxr_keyword">if</strong> (obj instanceof BigInteger) {
<a class="jxr_linenumber" name="2341" href="#2341">2341</a>                     result.add((BigInteger) obj);
<a class="jxr_linenumber" name="2342" href="#2342">2342</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2343" href="#2343">2343</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="2344" href="#2344">2344</a>                 }
<a class="jxr_linenumber" name="2345" href="#2345">2345</a>             }
<a class="jxr_linenumber" name="2346" href="#2346">2346</a>         }
<a class="jxr_linenumber" name="2347" href="#2347">2347</a> 
<a class="jxr_linenumber" name="2348" href="#2348">2348</a>         <strong class="jxr_keyword">return</strong> result;
<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>     <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="2352" href="#2352">2352</a>         List&lt;BigDecimal&gt; result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2353" href="#2353">2353</a>         <strong class="jxr_keyword">if</strong> (source != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2354" href="#2354">2354</a>             result = <strong class="jxr_keyword">new</strong> ArrayList&lt;BigDecimal&gt;(source.size());
<a class="jxr_linenumber" name="2355" href="#2355">2355</a>             <strong class="jxr_keyword">for</strong> (Object obj : source) {
<a class="jxr_linenumber" name="2356" href="#2356">2356</a>                 <strong class="jxr_keyword">if</strong> (obj instanceof BigDecimal) {
<a class="jxr_linenumber" name="2357" href="#2357">2357</a>                     result.add((BigDecimal) obj);
<a class="jxr_linenumber" name="2358" href="#2358">2358</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (obj instanceof BigInteger) {
<a class="jxr_linenumber" name="2359" href="#2359">2359</a>                     result.add(<strong class="jxr_keyword">new</strong> BigDecimal((BigInteger) obj));
<a class="jxr_linenumber" name="2360" href="#2360">2360</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2361" href="#2361">2361</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="2362" href="#2362">2362</a>                 }
<a class="jxr_linenumber" name="2363" href="#2363">2363</a>             }
<a class="jxr_linenumber" name="2364" href="#2364">2364</a>         }
<a class="jxr_linenumber" name="2365" href="#2365">2365</a> 
<a class="jxr_linenumber" name="2366" href="#2366">2366</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2367" href="#2367">2367</a>     }
<a class="jxr_linenumber" name="2368" href="#2368">2368</a> 
<a class="jxr_linenumber" name="2369" href="#2369">2369</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="2370" href="#2370">2370</a>         List&lt;GregorianCalendar&gt; result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2371" href="#2371">2371</a>         <strong class="jxr_keyword">if</strong> (source != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2372" href="#2372">2372</a>             result = <strong class="jxr_keyword">new</strong> ArrayList&lt;GregorianCalendar&gt;(source.size());
<a class="jxr_linenumber" name="2373" href="#2373">2373</a>             <strong class="jxr_keyword">for</strong> (Object obj : source) {
<a class="jxr_linenumber" name="2374" href="#2374">2374</a>                 <strong class="jxr_keyword">if</strong> (obj instanceof Number) {
<a class="jxr_linenumber" name="2375" href="#2375">2375</a>                     GregorianCalendar cal = <strong class="jxr_keyword">new</strong> GregorianCalendar(TimeZone.getTimeZone(<span class="jxr_string">"GMT"</span>));
<a class="jxr_linenumber" name="2376" href="#2376">2376</a>                     cal.setTimeInMillis(((Number) obj).longValue());
<a class="jxr_linenumber" name="2377" href="#2377">2377</a>                     result.add(cal);
<a class="jxr_linenumber" name="2378" href="#2378">2378</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (obj instanceof String) {
<a class="jxr_linenumber" name="2379" href="#2379">2379</a>                     GregorianCalendar cal = DateTimeHelper.parseXmlDateTime((String) obj);
<a class="jxr_linenumber" name="2380" href="#2380">2380</a>                     <strong class="jxr_keyword">if</strong> (cal == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2381" href="#2381">2381</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="2382" href="#2382">2382</a>                     }
<a class="jxr_linenumber" name="2383" href="#2383">2383</a>                     result.add(cal);
<a class="jxr_linenumber" name="2384" href="#2384">2384</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2385" href="#2385">2385</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="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>         }
<a class="jxr_linenumber" name="2389" href="#2389">2389</a> 
<a class="jxr_linenumber" name="2390" href="#2390">2390</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2391" href="#2391">2391</a>     }
<a class="jxr_linenumber" name="2392" href="#2392">2392</a> 
<a class="jxr_linenumber" name="2393" href="#2393">2393</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2394" href="#2394">2394</a> <em class="jxr_javadoccomment">     * Converts a rendition.</em>
<a class="jxr_linenumber" name="2395" href="#2395">2395</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2396" href="#2396">2396</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="2397" href="#2397">2397</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2398" href="#2398">2398</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2399" href="#2399">2399</a>         }
<a class="jxr_linenumber" name="2400" href="#2400">2400</a> 
<a class="jxr_linenumber" name="2401" href="#2401">2401</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="2402" href="#2402">2402</a> 
<a class="jxr_linenumber" name="2403" href="#2403">2403</a>         result.setBigHeight(getInteger(json, JSON_RENDITION_HEIGHT));
<a class="jxr_linenumber" name="2404" href="#2404">2404</a>         result.setKind(getString(json, JSON_RENDITION_KIND));
<a class="jxr_linenumber" name="2405" href="#2405">2405</a>         result.setBigLength(getInteger(json, JSON_RENDITION_LENGTH));
<a class="jxr_linenumber" name="2406" href="#2406">2406</a>         result.setMimeType(getString(json, JSON_RENDITION_MIMETYPE));
<a class="jxr_linenumber" name="2407" href="#2407">2407</a>         result.setRenditionDocumentId(getString(json, JSON_RENDITION_DOCUMENT_ID));
<a class="jxr_linenumber" name="2408" href="#2408">2408</a>         result.setStreamId(getString(json, JSON_RENDITION_STREAM_ID));
<a class="jxr_linenumber" name="2409" href="#2409">2409</a>         result.setTitle(getString(json, JSON_RENDITION_TITLE));
<a class="jxr_linenumber" name="2410" href="#2410">2410</a>         result.setBigWidth(getInteger(json, JSON_RENDITION_WIDTH));
<a class="jxr_linenumber" name="2411" href="#2411">2411</a> 
<a class="jxr_linenumber" name="2412" href="#2412">2412</a>         convertExtension(json, result, RENDITION_KEYS);
<a class="jxr_linenumber" name="2413" href="#2413">2413</a> 
<a class="jxr_linenumber" name="2414" href="#2414">2414</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2415" href="#2415">2415</a>     }
<a class="jxr_linenumber" name="2416" href="#2416">2416</a> 
<a class="jxr_linenumber" name="2417" href="#2417">2417</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2418" href="#2418">2418</a> <em class="jxr_javadoccomment">     * Converts a list of renditions.</em>
<a class="jxr_linenumber" name="2419" href="#2419">2419</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2420" href="#2420">2420</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="2421" href="#2421">2421</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2422" href="#2422">2422</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2423" href="#2423">2423</a>         }
<a class="jxr_linenumber" name="2424" href="#2424">2424</a> 
<a class="jxr_linenumber" name="2425" href="#2425">2425</a>         List&lt;RenditionData&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;RenditionData&gt;();
<a class="jxr_linenumber" name="2426" href="#2426">2426</a> 
<a class="jxr_linenumber" name="2427" href="#2427">2427</a>         <strong class="jxr_keyword">for</strong> (Object obj : json) {
<a class="jxr_linenumber" name="2428" href="#2428">2428</a>             RenditionData rendition = convertRendition(getMap(obj));
<a class="jxr_linenumber" name="2429" href="#2429">2429</a>             <strong class="jxr_keyword">if</strong> (rendition != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2430" href="#2430">2430</a>                 result.add(rendition);
<a class="jxr_linenumber" name="2431" href="#2431">2431</a>             }
<a class="jxr_linenumber" name="2432" href="#2432">2432</a>         }
<a class="jxr_linenumber" name="2433" href="#2433">2433</a> 
<a class="jxr_linenumber" name="2434" href="#2434">2434</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2435" href="#2435">2435</a>     }
<a class="jxr_linenumber" name="2436" href="#2436">2436</a> 
<a class="jxr_linenumber" name="2437" href="#2437">2437</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2438" href="#2438">2438</a> <em class="jxr_javadoccomment">     * Converts a object list.</em>
<a class="jxr_linenumber" name="2439" href="#2439">2439</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2440" href="#2440">2440</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="2441" href="#2441">2441</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2442" href="#2442">2442</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2443" href="#2443">2443</a>         }
<a class="jxr_linenumber" name="2444" href="#2444">2444</a> 
<a class="jxr_linenumber" name="2445" href="#2445">2445</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="2446" href="#2446">2446</a> 
<a class="jxr_linenumber" name="2447" href="#2447">2447</a>         List&lt;Object&gt; jsonChildren = getList(json.get(JSON_OBJECTINFOLDERLIST_OBJECTS));
<a class="jxr_linenumber" name="2448" href="#2448">2448</a>         List&lt;ObjectInFolderData&gt; objects = <strong class="jxr_keyword">new</strong> ArrayList&lt;ObjectInFolderData&gt;();
<a class="jxr_linenumber" name="2449" href="#2449">2449</a> 
<a class="jxr_linenumber" name="2450" href="#2450">2450</a>         <strong class="jxr_keyword">if</strong> (jsonChildren != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2451" href="#2451">2451</a>             <strong class="jxr_keyword">for</strong> (Object obj : jsonChildren) {
<a class="jxr_linenumber" name="2452" href="#2452">2452</a>                 Map&lt;String, Object&gt; jsonObject = getMap(obj);
<a class="jxr_linenumber" name="2453" href="#2453">2453</a>                 <strong class="jxr_keyword">if</strong> (jsonObject != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2454" href="#2454">2454</a>                     objects.add(convertObjectInFolder(jsonObject, typeCache));
<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>         }
<a class="jxr_linenumber" name="2458" href="#2458">2458</a> 
<a class="jxr_linenumber" name="2459" href="#2459">2459</a>         result.setObjects(objects);
<a class="jxr_linenumber" name="2460" href="#2460">2460</a>         result.setHasMoreItems(getBoolean(json, JSON_OBJECTINFOLDERLIST_HAS_MORE_ITEMS));
<a class="jxr_linenumber" name="2461" href="#2461">2461</a>         result.setNumItems(getInteger(json, JSON_OBJECTINFOLDERLIST_NUM_ITEMS));
<a class="jxr_linenumber" name="2462" href="#2462">2462</a> 
<a class="jxr_linenumber" name="2463" href="#2463">2463</a>         convertExtension(json, result, OBJECTINFOLDERLIST_KEYS);
<a class="jxr_linenumber" name="2464" href="#2464">2464</a> 
<a class="jxr_linenumber" name="2465" href="#2465">2465</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2466" href="#2466">2466</a>     }
<a class="jxr_linenumber" name="2467" href="#2467">2467</a> 
<a class="jxr_linenumber" name="2468" href="#2468">2468</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2469" href="#2469">2469</a> <em class="jxr_javadoccomment">     * Converts an object in a folder.</em>
<a class="jxr_linenumber" name="2470" href="#2470">2470</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2471" href="#2471">2471</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="2472" href="#2472">2472</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2473" href="#2473">2473</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2474" href="#2474">2474</a>         }
<a class="jxr_linenumber" name="2475" href="#2475">2475</a> 
<a class="jxr_linenumber" name="2476" href="#2476">2476</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="2477" href="#2477">2477</a> 
<a class="jxr_linenumber" name="2478" href="#2478">2478</a>         result.setObject(convertObject(getMap(json.get(JSON_OBJECTINFOLDER_OBJECT)), typeCache));
<a class="jxr_linenumber" name="2479" href="#2479">2479</a>         result.setPathSegment(getString(json, JSON_OBJECTINFOLDER_PATH_SEGMENT));
<a class="jxr_linenumber" name="2480" href="#2480">2480</a> 
<a class="jxr_linenumber" name="2481" href="#2481">2481</a>         convertExtension(json, result, OBJECTINFOLDER_KEYS);
<a class="jxr_linenumber" name="2482" href="#2482">2482</a> 
<a class="jxr_linenumber" name="2483" href="#2483">2483</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2484" href="#2484">2484</a>     }
<a class="jxr_linenumber" name="2485" href="#2485">2485</a> 
<a class="jxr_linenumber" name="2486" href="#2486">2486</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2487" href="#2487">2487</a> <em class="jxr_javadoccomment">     * Converts a descendants tree.</em>
<a class="jxr_linenumber" name="2488" href="#2488">2488</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2489" href="#2489">2489</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="2490" href="#2490">2490</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2491" href="#2491">2491</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2492" href="#2492">2492</a>         }
<a class="jxr_linenumber" name="2493" href="#2493">2493</a> 
<a class="jxr_linenumber" name="2494" href="#2494">2494</a>         List&lt;ObjectInFolderContainer&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;ObjectInFolderContainer&gt;();
<a class="jxr_linenumber" name="2495" href="#2495">2495</a> 
<a class="jxr_linenumber" name="2496" href="#2496">2496</a>         <strong class="jxr_keyword">for</strong> (Object obj : json) {
<a class="jxr_linenumber" name="2497" href="#2497">2497</a>             Map&lt;String, Object&gt; desc = getMap(obj);
<a class="jxr_linenumber" name="2498" href="#2498">2498</a>             <strong class="jxr_keyword">if</strong> (desc != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2499" href="#2499">2499</a>                 result.add(convertDescendant(desc, typeCache));
<a class="jxr_linenumber" name="2500" href="#2500">2500</a>             }
<a class="jxr_linenumber" name="2501" href="#2501">2501</a>         }
<a class="jxr_linenumber" name="2502" href="#2502">2502</a> 
<a class="jxr_linenumber" name="2503" href="#2503">2503</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2504" href="#2504">2504</a>     }
<a class="jxr_linenumber" name="2505" href="#2505">2505</a> 
<a class="jxr_linenumber" name="2506" href="#2506">2506</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2507" href="#2507">2507</a> <em class="jxr_javadoccomment">     * Converts a descendant.</em>
<a class="jxr_linenumber" name="2508" href="#2508">2508</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2509" href="#2509">2509</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="2510" href="#2510">2510</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2511" href="#2511">2511</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2512" href="#2512">2512</a>         }
<a class="jxr_linenumber" name="2513" href="#2513">2513</a> 
<a class="jxr_linenumber" name="2514" href="#2514">2514</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="2515" href="#2515">2515</a> 
<a class="jxr_linenumber" name="2516" href="#2516">2516</a>         result.setObject(convertObjectInFolder(getMap(json.get(JSON_OBJECTINFOLDERCONTAINER_OBJECT)), typeCache));
<a class="jxr_linenumber" name="2517" href="#2517">2517</a> 
<a class="jxr_linenumber" name="2518" href="#2518">2518</a>         List&lt;ObjectInFolderContainer&gt; containerList = <strong class="jxr_keyword">new</strong> ArrayList&lt;ObjectInFolderContainer&gt;();
<a class="jxr_linenumber" name="2519" href="#2519">2519</a>         List&lt;Object&gt; jsonContainerList = getList(json.get(JSON_OBJECTINFOLDERCONTAINER_CHILDREN));
<a class="jxr_linenumber" name="2520" href="#2520">2520</a>         <strong class="jxr_keyword">if</strong> (jsonContainerList != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2521" href="#2521">2521</a>             <strong class="jxr_keyword">for</strong> (Object obj : jsonContainerList) {
<a class="jxr_linenumber" name="2522" href="#2522">2522</a>                 Map&lt;String, Object&gt; containerChild = getMap(obj);
<a class="jxr_linenumber" name="2523" href="#2523">2523</a>                 <strong class="jxr_keyword">if</strong> (containerChild != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2524" href="#2524">2524</a>                     containerList.add(convertDescendant(containerChild, typeCache));
<a class="jxr_linenumber" name="2525" href="#2525">2525</a>                 }
<a class="jxr_linenumber" name="2526" href="#2526">2526</a>             }
<a class="jxr_linenumber" name="2527" href="#2527">2527</a>         }
<a class="jxr_linenumber" name="2528" href="#2528">2528</a> 
<a class="jxr_linenumber" name="2529" href="#2529">2529</a>         result.setChildren(containerList);
<a class="jxr_linenumber" name="2530" href="#2530">2530</a> 
<a class="jxr_linenumber" name="2531" href="#2531">2531</a>         convertExtension(json, result, OBJECTINFOLDERCONTAINER_KEYS);
<a class="jxr_linenumber" name="2532" href="#2532">2532</a> 
<a class="jxr_linenumber" name="2533" href="#2533">2533</a>         <strong class="jxr_keyword">return</strong> result;
<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>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2537" href="#2537">2537</a> <em class="jxr_javadoccomment">     * Converts an object parents list.</em>
<a class="jxr_linenumber" name="2538" href="#2538">2538</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2539" href="#2539">2539</a>     <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="2540" href="#2540">2540</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2541" href="#2541">2541</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2542" href="#2542">2542</a>         }
<a class="jxr_linenumber" name="2543" href="#2543">2543</a> 
<a class="jxr_linenumber" name="2544" href="#2544">2544</a>         List&lt;ObjectParentData&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;ObjectParentData&gt;();
<a class="jxr_linenumber" name="2545" href="#2545">2545</a> 
<a class="jxr_linenumber" name="2546" href="#2546">2546</a>         <strong class="jxr_keyword">for</strong> (Object obj : json) {
<a class="jxr_linenumber" name="2547" href="#2547">2547</a>             Map&lt;String, Object&gt; jsonParent = getMap(obj);
<a class="jxr_linenumber" name="2548" href="#2548">2548</a>             <strong class="jxr_keyword">if</strong> (jsonParent != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2549" href="#2549">2549</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="2550" href="#2550">2550</a> 
<a class="jxr_linenumber" name="2551" href="#2551">2551</a>                 parent.setObject(convertObject(getMap(jsonParent.get(JSON_OBJECTPARENTS_OBJECT)), typeCache));
<a class="jxr_linenumber" name="2552" href="#2552">2552</a>                 parent.setRelativePathSegment(getString(jsonParent, JSON_OBJECTPARENTS_RELATIVE_PATH_SEGMENT));
<a class="jxr_linenumber" name="2553" href="#2553">2553</a> 
<a class="jxr_linenumber" name="2554" href="#2554">2554</a>                 convertExtension(jsonParent, parent, OBJECTPARENTS_KEYS);
<a class="jxr_linenumber" name="2555" href="#2555">2555</a> 
<a class="jxr_linenumber" name="2556" href="#2556">2556</a>                 result.add(parent);
<a class="jxr_linenumber" name="2557" href="#2557">2557</a>             }
<a class="jxr_linenumber" name="2558" href="#2558">2558</a>         }
<a class="jxr_linenumber" name="2559" href="#2559">2559</a> 
<a class="jxr_linenumber" name="2560" href="#2560">2560</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2561" href="#2561">2561</a>     }
<a class="jxr_linenumber" name="2562" href="#2562">2562</a> 
<a class="jxr_linenumber" name="2563" href="#2563">2563</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2564" href="#2564">2564</a> <em class="jxr_javadoccomment">     * Converts a object list.</em>
<a class="jxr_linenumber" name="2565" href="#2565">2565</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2566" href="#2566">2566</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="2567" href="#2567">2567</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> isQueryResult) {
<a class="jxr_linenumber" name="2568" href="#2568">2568</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2569" href="#2569">2569</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2570" href="#2570">2570</a>         }
<a class="jxr_linenumber" name="2571" href="#2571">2571</a> 
<a class="jxr_linenumber" name="2572" href="#2572">2572</a>         <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="2573" href="#2573">2573</a> 
<a class="jxr_linenumber" name="2574" href="#2574">2574</a>         List&lt;Object&gt; jsonChildren = getList(json.get(isQueryResult ? JSON_QUERYRESULTLIST_RESULTS
<a class="jxr_linenumber" name="2575" href="#2575">2575</a>                 : JSON_OBJECTLIST_OBJECTS));
<a class="jxr_linenumber" name="2576" href="#2576">2576</a>         List&lt;ObjectData&gt; objects = <strong class="jxr_keyword">new</strong> ArrayList&lt;ObjectData&gt;();
<a class="jxr_linenumber" name="2577" href="#2577">2577</a> 
<a class="jxr_linenumber" name="2578" href="#2578">2578</a>         <strong class="jxr_keyword">if</strong> (jsonChildren != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2579" href="#2579">2579</a>             <strong class="jxr_keyword">for</strong> (Object obj : jsonChildren) {
<a class="jxr_linenumber" name="2580" href="#2580">2580</a>                 Map&lt;String, Object&gt; jsonObject = getMap(obj);
<a class="jxr_linenumber" name="2581" href="#2581">2581</a>                 <strong class="jxr_keyword">if</strong> (jsonObject != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2582" href="#2582">2582</a>                     objects.add(convertObject(jsonObject, typeCache));
<a class="jxr_linenumber" name="2583" href="#2583">2583</a>                 }
<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> 
<a class="jxr_linenumber" name="2587" href="#2587">2587</a>         result.setObjects(objects);
<a class="jxr_linenumber" name="2588" href="#2588">2588</a> 
<a class="jxr_linenumber" name="2589" href="#2589">2589</a>         <strong class="jxr_keyword">if</strong> (isQueryResult) {
<a class="jxr_linenumber" name="2590" href="#2590">2590</a>             result.setHasMoreItems(getBoolean(json, JSON_QUERYRESULTLIST_HAS_MORE_ITEMS));
<a class="jxr_linenumber" name="2591" href="#2591">2591</a>             result.setNumItems(getInteger(json, JSON_QUERYRESULTLIST_NUM_ITEMS));
<a class="jxr_linenumber" name="2592" href="#2592">2592</a>             convertExtension(json, result, QUERYRESULTLIST_KEYS);
<a class="jxr_linenumber" name="2593" href="#2593">2593</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2594" href="#2594">2594</a>             result.setHasMoreItems(getBoolean(json, JSON_OBJECTLIST_HAS_MORE_ITEMS));
<a class="jxr_linenumber" name="2595" href="#2595">2595</a>             result.setNumItems(getInteger(json, JSON_OBJECTLIST_NUM_ITEMS));
<a class="jxr_linenumber" name="2596" href="#2596">2596</a>             convertExtension(json, result, OBJECTLIST_KEYS);
<a class="jxr_linenumber" name="2597" href="#2597">2597</a>         }
<a class="jxr_linenumber" name="2598" href="#2598">2598</a> 
<a class="jxr_linenumber" name="2599" href="#2599">2599</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2600" href="#2600">2600</a>     }
<a class="jxr_linenumber" name="2601" href="#2601">2601</a> 
<a class="jxr_linenumber" name="2602" href="#2602">2602</a>     <em class="jxr_comment">// -----------------------------------------------------------------</em>
<a class="jxr_linenumber" name="2603" href="#2603">2603</a> 
<a class="jxr_linenumber" name="2604" href="#2604">2604</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2605" href="#2605">2605</a> <em class="jxr_javadoccomment">     * Converts FailedToDelete ids.</em>
<a class="jxr_linenumber" name="2606" href="#2606">2606</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2607" href="#2607">2607</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="2608" href="#2608">2608</a>         <strong class="jxr_keyword">if</strong> (ftd == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2609" href="#2609">2609</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</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>         <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="2613" href="#2613">2613</a> 
<a class="jxr_linenumber" name="2614" href="#2614">2614</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="2615" href="#2615">2615</a>         <strong class="jxr_keyword">if</strong> (ftd.getIds() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2616" href="#2616">2616</a>             <strong class="jxr_keyword">for</strong> (String id : ftd.getIds()) {
<a class="jxr_linenumber" name="2617" href="#2617">2617</a>                 ids.add(id);
<a class="jxr_linenumber" name="2618" href="#2618">2618</a>             }
<a class="jxr_linenumber" name="2619" href="#2619">2619</a>         }
<a class="jxr_linenumber" name="2620" href="#2620">2620</a> 
<a class="jxr_linenumber" name="2621" href="#2621">2621</a>         result.put(JSON_FAILEDTODELETE_ID, ids);
<a class="jxr_linenumber" name="2622" href="#2622">2622</a> 
<a class="jxr_linenumber" name="2623" href="#2623">2623</a>         convertExtension(ftd, result);
<a class="jxr_linenumber" name="2624" href="#2624">2624</a> 
<a class="jxr_linenumber" name="2625" href="#2625">2625</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2626" href="#2626">2626</a>     }
<a class="jxr_linenumber" name="2627" href="#2627">2627</a> 
<a class="jxr_linenumber" name="2628" href="#2628">2628</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2629" href="#2629">2629</a> <em class="jxr_javadoccomment">     * Converts FailedToDelete ids.</em>
<a class="jxr_linenumber" name="2630" href="#2630">2630</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2631" href="#2631">2631</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="2632" href="#2632">2632</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2633" href="#2633">2633</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2634" href="#2634">2634</a>         }
<a class="jxr_linenumber" name="2635" href="#2635">2635</a> 
<a class="jxr_linenumber" name="2636" href="#2636">2636</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="2637" href="#2637">2637</a> 
<a class="jxr_linenumber" name="2638" href="#2638">2638</a>         List&lt;String&gt; ids = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a class="jxr_linenumber" name="2639" href="#2639">2639</a>         List&lt;Object&gt; jsonIds = getList(json.get(JSON_FAILEDTODELETE_ID));
<a class="jxr_linenumber" name="2640" href="#2640">2640</a> 
<a class="jxr_linenumber" name="2641" href="#2641">2641</a>         <strong class="jxr_keyword">if</strong> (jsonIds != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2642" href="#2642">2642</a>             <strong class="jxr_keyword">for</strong> (Object obj : jsonIds) {
<a class="jxr_linenumber" name="2643" href="#2643">2643</a>                 <strong class="jxr_keyword">if</strong> (obj != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2644" href="#2644">2644</a>                     ids.add(obj.toString());
<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>         }
<a class="jxr_linenumber" name="2648" href="#2648">2648</a> 
<a class="jxr_linenumber" name="2649" href="#2649">2649</a>         result.setIds(ids);
<a class="jxr_linenumber" name="2650" href="#2650">2650</a> 
<a class="jxr_linenumber" name="2651" href="#2651">2651</a>         convertExtension(json, result, FAILEDTODELETE_KEYS);
<a class="jxr_linenumber" name="2652" href="#2652">2652</a> 
<a class="jxr_linenumber" name="2653" href="#2653">2653</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2654" href="#2654">2654</a>     }
<a class="jxr_linenumber" name="2655" href="#2655">2655</a> 
<a class="jxr_linenumber" name="2656" href="#2656">2656</a>     <em class="jxr_comment">// -----------------------------------------------------------------</em>
<a class="jxr_linenumber" name="2657" href="#2657">2657</a> 
<a class="jxr_linenumber" name="2658" href="#2658">2658</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2659" href="#2659">2659</a> <em class="jxr_javadoccomment">     * Converts bulk update data.</em>
<a class="jxr_linenumber" name="2660" href="#2660">2660</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2661" href="#2661">2661</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="2662" href="#2662">2662</a>         <strong class="jxr_keyword">if</strong> (oc == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2663" href="#2663">2663</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2664" href="#2664">2664</a>         }
<a class="jxr_linenumber" name="2665" href="#2665">2665</a> 
<a class="jxr_linenumber" name="2666" href="#2666">2666</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="2667" href="#2667">2667</a> 
<a class="jxr_linenumber" name="2668" href="#2668">2668</a>         setIfNotNull(JSON_BULK_UPDATE_ID, oc.getId(), result);
<a class="jxr_linenumber" name="2669" href="#2669">2669</a>         setIfNotNull(JSON_BULK_UPDATE_NEW_ID, oc.getNewId(), result);
<a class="jxr_linenumber" name="2670" href="#2670">2670</a>         setIfNotNull(JSON_BULK_UPDATE_CHANGE_TOKEN, oc.getChangeToken(), result);
<a class="jxr_linenumber" name="2671" href="#2671">2671</a> 
<a class="jxr_linenumber" name="2672" href="#2672">2672</a>         convertExtension(oc, result);
<a class="jxr_linenumber" name="2673" href="#2673">2673</a> 
<a class="jxr_linenumber" name="2674" href="#2674">2674</a>         <strong class="jxr_keyword">return</strong> result;
<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>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2678" href="#2678">2678</a> <em class="jxr_javadoccomment">     * Converts bulk update data lists.</em>
<a class="jxr_linenumber" name="2679" href="#2679">2679</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2680" href="#2680">2680</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="2681" href="#2681">2681</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2682" href="#2682">2682</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2683" href="#2683">2683</a>         }
<a class="jxr_linenumber" name="2684" href="#2684">2684</a> 
<a class="jxr_linenumber" name="2685" href="#2685">2685</a>         List&lt;BulkUpdateObjectIdAndChangeToken&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;BulkUpdateObjectIdAndChangeToken&gt;();
<a class="jxr_linenumber" name="2686" href="#2686">2686</a> 
<a class="jxr_linenumber" name="2687" href="#2687">2687</a>         <strong class="jxr_keyword">for</strong> (Object ocJson : json) {
<a class="jxr_linenumber" name="2688" href="#2688">2688</a>             BulkUpdateObjectIdAndChangeToken oc = convertBulkUpdate(getMap(ocJson));
<a class="jxr_linenumber" name="2689" href="#2689">2689</a>             <strong class="jxr_keyword">if</strong> (oc != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2690" href="#2690">2690</a>                 result.add(oc);
<a class="jxr_linenumber" name="2691" href="#2691">2691</a>             }
<a class="jxr_linenumber" name="2692" href="#2692">2692</a>         }
<a class="jxr_linenumber" name="2693" href="#2693">2693</a> 
<a class="jxr_linenumber" name="2694" href="#2694">2694</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2695" href="#2695">2695</a>     }
<a class="jxr_linenumber" name="2696" href="#2696">2696</a> 
<a class="jxr_linenumber" name="2697" href="#2697">2697</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2698" href="#2698">2698</a> <em class="jxr_javadoccomment">     * Converts bulk update data.</em>
<a class="jxr_linenumber" name="2699" href="#2699">2699</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="2700" href="#2700">2700</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="2701" href="#2701">2701</a>         <strong class="jxr_keyword">if</strong> (json == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2702" href="#2702">2702</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2703" href="#2703">2703</a>         }
<a class="jxr_linenumber" name="2704" href="#2704">2704</a> 
<a class="jxr_linenumber" name="2705" href="#2705">2705</a>         String id = getString(json, JSON_BULK_UPDATE_ID);
<a class="jxr_linenumber" name="2706" href="#2706">2706</a>         String newId = getString(json, JSON_BULK_UPDATE_NEW_ID);
<a class="jxr_linenumber" name="2707" href="#2707">2707</a>         String changeToken = getString(json, JSON_BULK_UPDATE_CHANGE_TOKEN);
<a class="jxr_linenumber" name="2708" href="#2708">2708</a> 
<a class="jxr_linenumber" name="2709" href="#2709">2709</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="2710" href="#2710">2710</a> 
<a class="jxr_linenumber" name="2711" href="#2711">2711</a>         convertExtension(json, result, BULK_UPDATE_KEYS);
<a class="jxr_linenumber" name="2712" href="#2712">2712</a> 
<a class="jxr_linenumber" name="2713" href="#2713">2713</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2714" href="#2714">2714</a>     }
<a class="jxr_linenumber" name="2715" href="#2715">2715</a> 
<a class="jxr_linenumber" name="2716" href="#2716">2716</a>     <em class="jxr_comment">// -----------------------------------------------------------------</em>
<a class="jxr_linenumber" name="2717" href="#2717">2717</a> 
<a class="jxr_linenumber" name="2718" href="#2718">2718</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="2719" href="#2719">2719</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="2720" href="#2720">2720</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="2721" href="#2721">2721</a>         }
<a class="jxr_linenumber" name="2722" href="#2722">2722</a> 
<a class="jxr_linenumber" name="2723" href="#2723">2723</a>         <strong class="jxr_keyword">for</strong> (CmisExtensionElement ext : source.getExtensions()) {
<a class="jxr_linenumber" name="2724" href="#2724">2724</a>             addExtensionToTarget(ext, target);
<a class="jxr_linenumber" name="2725" href="#2725">2725</a>         }
<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">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="2729" href="#2729">2729</a>         <strong class="jxr_keyword">if</strong> (extensionList == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2730" href="#2730">2730</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2731" href="#2731">2731</a>         }
<a class="jxr_linenumber" name="2732" href="#2732">2732</a> 
<a class="jxr_linenumber" name="2733" href="#2733">2733</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="2734" href="#2734">2734</a> 
<a class="jxr_linenumber" name="2735" href="#2735">2735</a>         <strong class="jxr_keyword">for</strong> (CmisExtensionElement ext : extensionList) {
<a class="jxr_linenumber" name="2736" href="#2736">2736</a>             addExtensionToTarget(ext, result);
<a class="jxr_linenumber" name="2737" href="#2737">2737</a>         }
<a class="jxr_linenumber" name="2738" href="#2738">2738</a> 
<a class="jxr_linenumber" name="2739" href="#2739">2739</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2740" href="#2740">2740</a>     }
<a class="jxr_linenumber" name="2741" href="#2741">2741</a> 
<a class="jxr_linenumber" name="2742" href="#2742">2742</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> addExtensionToTarget(<strong class="jxr_keyword">final</strong> CmisExtensionElement ext, <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="2743" href="#2743">2743</a>         <strong class="jxr_keyword">if</strong> (ext == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2744" href="#2744">2744</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="2745" href="#2745">2745</a>         }
<a class="jxr_linenumber" name="2746" href="#2746">2746</a> 
<a class="jxr_linenumber" name="2747" href="#2747">2747</a>         Object value = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2748" href="#2748">2748</a> 
<a class="jxr_linenumber" name="2749" href="#2749">2749</a>         <strong class="jxr_keyword">if</strong> (isNotEmpty(ext.getChildren())) {
<a class="jxr_linenumber" name="2750" href="#2750">2750</a>             value = convertExtensionList(ext.getChildren());
<a class="jxr_linenumber" name="2751" href="#2751">2751</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2752" href="#2752">2752</a>             value = ext.getValue();
<a class="jxr_linenumber" name="2753" href="#2753">2753</a>         }
<a class="jxr_linenumber" name="2754" href="#2754">2754</a> 
<a class="jxr_linenumber" name="2755" href="#2755">2755</a>         <strong class="jxr_keyword">if</strong> (!target.containsKey(ext.getName())) {
<a class="jxr_linenumber" name="2756" href="#2756">2756</a>             target.put(ext.getName(), value);
<a class="jxr_linenumber" name="2757" href="#2757">2757</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2758" href="#2758">2758</a>             Object extValue = target.get(ext.getName());
<a class="jxr_linenumber" name="2759" href="#2759">2759</a> 
<a class="jxr_linenumber" name="2760" href="#2760">2760</a>             <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a> array;
<a class="jxr_linenumber" name="2761" href="#2761">2761</a>             <strong class="jxr_keyword">if</strong> (extValue instanceof JSONArray) {
<a class="jxr_linenumber" name="2762" href="#2762">2762</a>                 array = (JSONArray) extValue;
<a class="jxr_linenumber" name="2763" href="#2763">2763</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2764" href="#2764">2764</a>                 array = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/json/JSONArray.html">JSONArray</a>();
<a class="jxr_linenumber" name="2765" href="#2765">2765</a>                 array.add(extValue);
<a class="jxr_linenumber" name="2766" href="#2766">2766</a>             }
<a class="jxr_linenumber" name="2767" href="#2767">2767</a> 
<a class="jxr_linenumber" name="2768" href="#2768">2768</a>             array.add(value);
<a class="jxr_linenumber" name="2769" href="#2769">2769</a> 
<a class="jxr_linenumber" name="2770" href="#2770">2770</a>             target.put(ext.getName(), array);
<a class="jxr_linenumber" name="2771" href="#2771">2771</a>         }
<a class="jxr_linenumber" name="2772" href="#2772">2772</a>     }
<a class="jxr_linenumber" name="2773" href="#2773">2773</a> 
<a class="jxr_linenumber" name="2774" href="#2774">2774</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="2775" href="#2775">2775</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="2776" href="#2776">2776</a>             <strong class="jxr_keyword">final</strong> Set&lt;String&gt; cmisKeys) {
<a class="jxr_linenumber" name="2777" href="#2777">2777</a>         <strong class="jxr_keyword">if</strong> (source == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2778" href="#2778">2778</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="2779" href="#2779">2779</a>         }
<a class="jxr_linenumber" name="2780" href="#2780">2780</a> 
<a class="jxr_linenumber" name="2781" href="#2781">2781</a>         List&lt;CmisExtensionElement&gt; extensions = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2782" href="#2782">2782</a> 
<a class="jxr_linenumber" name="2783" href="#2783">2783</a>         <strong class="jxr_keyword">for</strong> (Map.Entry&lt;String, Object&gt; element : source.entrySet()) {
<a class="jxr_linenumber" name="2784" href="#2784">2784</a>             <strong class="jxr_keyword">if</strong> (cmisKeys.contains(element.getKey())) {
<a class="jxr_linenumber" name="2785" href="#2785">2785</a>                 <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="2786" href="#2786">2786</a>             }
<a class="jxr_linenumber" name="2787" href="#2787">2787</a> 
<a class="jxr_linenumber" name="2788" href="#2788">2788</a>             <strong class="jxr_keyword">if</strong> (extensions == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2789" href="#2789">2789</a>                 extensions = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisExtensionElement&gt;();
<a class="jxr_linenumber" name="2790" href="#2790">2790</a>             }
<a class="jxr_linenumber" name="2791" href="#2791">2791</a> 
<a class="jxr_linenumber" name="2792" href="#2792">2792</a>             <strong class="jxr_keyword">if</strong> (element.getValue() instanceof Map) {
<a class="jxr_linenumber" name="2793" href="#2793">2793</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="2794" href="#2794">2794</a>                         convertExtension((Map&lt;String, Object&gt;) element.getValue())));
<a class="jxr_linenumber" name="2795" href="#2795">2795</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (element.getValue() instanceof List) {
<a class="jxr_linenumber" name="2796" href="#2796">2796</a>                 extensions.addAll(convertExtension(element.getKey(), (List&lt;Object&gt;) element.getValue()));
<a class="jxr_linenumber" name="2797" href="#2797">2797</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2798" href="#2798">2798</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="2799" href="#2799">2799</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="2800" href="#2800">2800</a>             }
<a class="jxr_linenumber" name="2801" href="#2801">2801</a>         }
<a class="jxr_linenumber" name="2802" href="#2802">2802</a> 
<a class="jxr_linenumber" name="2803" href="#2803">2803</a>         target.setExtensions(extensions);
<a class="jxr_linenumber" name="2804" href="#2804">2804</a>     }
<a class="jxr_linenumber" name="2805" href="#2805">2805</a> 
<a class="jxr_linenumber" name="2806" href="#2806">2806</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="2807" href="#2807">2807</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="2808" href="#2808">2808</a>         <strong class="jxr_keyword">if</strong> (map == <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>         List&lt;CmisExtensionElement&gt; extensions = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisExtensionElement&gt;();
<a class="jxr_linenumber" name="2813" href="#2813">2813</a> 
<a class="jxr_linenumber" name="2814" href="#2814">2814</a>         <strong class="jxr_keyword">for</strong> (Map.Entry&lt;String, Object&gt; element : map.entrySet()) {
<a class="jxr_linenumber" name="2815" href="#2815">2815</a>             <strong class="jxr_keyword">if</strong> (element.getValue() instanceof Map) {
<a class="jxr_linenumber" name="2816" href="#2816">2816</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="2817" href="#2817">2817</a>                         convertExtension((Map&lt;String, Object&gt;) element.getValue())));
<a class="jxr_linenumber" name="2818" href="#2818">2818</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (element.getValue() instanceof List) {
<a class="jxr_linenumber" name="2819" href="#2819">2819</a>                 extensions.addAll(convertExtension(element.getKey(), (List&lt;Object&gt;) element.getValue()));
<a class="jxr_linenumber" name="2820" href="#2820">2820</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2821" href="#2821">2821</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="2822" href="#2822">2822</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="2823" href="#2823">2823</a>             }
<a class="jxr_linenumber" name="2824" href="#2824">2824</a>         }
<a class="jxr_linenumber" name="2825" href="#2825">2825</a> 
<a class="jxr_linenumber" name="2826" href="#2826">2826</a>         <strong class="jxr_keyword">return</strong> extensions;
<a class="jxr_linenumber" name="2827" href="#2827">2827</a>     }
<a class="jxr_linenumber" name="2828" href="#2828">2828</a> 
<a class="jxr_linenumber" name="2829" href="#2829">2829</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="2830" href="#2830">2830</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> List&lt;CmisExtensionElement&gt; convertExtension(<strong class="jxr_keyword">final</strong> String name, <strong class="jxr_keyword">final</strong> List&lt;Object&gt; list) {
<a class="jxr_linenumber" name="2831" href="#2831">2831</a>         <strong class="jxr_keyword">if</strong> (list == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2832" href="#2832">2832</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2833" href="#2833">2833</a>         }
<a class="jxr_linenumber" name="2834" href="#2834">2834</a> 
<a class="jxr_linenumber" name="2835" href="#2835">2835</a>         List&lt;CmisExtensionElement&gt; extensions = <strong class="jxr_keyword">new</strong> ArrayList&lt;CmisExtensionElement&gt;();
<a class="jxr_linenumber" name="2836" href="#2836">2836</a> 
<a class="jxr_linenumber" name="2837" href="#2837">2837</a>         <strong class="jxr_keyword">for</strong> (Object element : list) {
<a class="jxr_linenumber" name="2838" href="#2838">2838</a>             <strong class="jxr_keyword">if</strong> (element instanceof Map) {
<a class="jxr_linenumber" name="2839" href="#2839">2839</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>, name, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="2840" href="#2840">2840</a>                         convertExtension((Map&lt;String, Object&gt;) element)));
<a class="jxr_linenumber" name="2841" href="#2841">2841</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (element instanceof List) {
<a class="jxr_linenumber" name="2842" href="#2842">2842</a>                 extensions.addAll(convertExtension(name, (List&lt;Object&gt;) element));
<a class="jxr_linenumber" name="2843" href="#2843">2843</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2844" href="#2844">2844</a>                 String value = (element == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">null</strong> : element.toString());
<a class="jxr_linenumber" name="2845" href="#2845">2845</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>, name, <strong class="jxr_keyword">null</strong>, value));
<a class="jxr_linenumber" name="2846" href="#2846">2846</a>             }
<a class="jxr_linenumber" name="2847" href="#2847">2847</a>         }
<a class="jxr_linenumber" name="2848" href="#2848">2848</a> 
<a class="jxr_linenumber" name="2849" href="#2849">2849</a>         <strong class="jxr_keyword">return</strong> extensions;
<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>     <em class="jxr_comment">// -----------------------------------------------------------------</em>
<a class="jxr_linenumber" name="2853" href="#2853">2853</a> 
<a class="jxr_linenumber" name="2854" href="#2854">2854</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="2855" href="#2855">2855</a>         <strong class="jxr_keyword">if</strong> (obj == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2856" href="#2856">2856</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2857" href="#2857">2857</a>         }
<a class="jxr_linenumber" name="2858" href="#2858">2858</a> 
<a class="jxr_linenumber" name="2859" href="#2859">2859</a>         <strong class="jxr_keyword">return</strong> obj.toString();
<a class="jxr_linenumber" name="2860" href="#2860">2860</a>     }
<a class="jxr_linenumber" name="2861" href="#2861">2861</a> 
<a class="jxr_linenumber" name="2862" href="#2862">2862</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Object getJSONValue(<strong class="jxr_keyword">final</strong> Object value, <strong class="jxr_keyword">final</strong> DateTimeFormat dateTimeFormat) {
<a class="jxr_linenumber" name="2863" href="#2863">2863</a>         <strong class="jxr_keyword">if</strong> (value instanceof GregorianCalendar) {
<a class="jxr_linenumber" name="2864" href="#2864">2864</a>             <strong class="jxr_keyword">if</strong> (dateTimeFormat == DateTimeFormat.EXTENDED) {
<a class="jxr_linenumber" name="2865" href="#2865">2865</a>                 <strong class="jxr_keyword">return</strong> DateTimeHelper.formatXmlDateTime((GregorianCalendar) value);
<a class="jxr_linenumber" name="2866" href="#2866">2866</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2867" href="#2867">2867</a>                 <strong class="jxr_keyword">return</strong> ((GregorianCalendar) value).getTimeInMillis();
<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> 
<a class="jxr_linenumber" name="2871" href="#2871">2871</a>         <strong class="jxr_keyword">return</strong> value;
<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 getJSONEnumValue(<strong class="jxr_keyword">final</strong> Object obj) {
<a class="jxr_linenumber" name="2875" href="#2875">2875</a>         <strong class="jxr_keyword">if</strong> (obj == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2876" href="#2876">2876</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<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">try</strong> {
<a class="jxr_linenumber" name="2880" href="#2880">2880</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="2881" href="#2881">2881</a>             <strong class="jxr_keyword">return</strong> (String) m.invoke(obj, <strong class="jxr_keyword">new</strong> Object[0]);
<a class="jxr_linenumber" name="2882" href="#2882">2882</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a class="jxr_linenumber" name="2883" href="#2883">2883</a>             <strong class="jxr_keyword">if</strong> (e instanceof IllegalArgumentException) {
<a class="jxr_linenumber" name="2884" href="#2884">2884</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2885" href="#2885">2885</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="2886" href="#2886">2886</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="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>     }
<a class="jxr_linenumber" name="2890" href="#2890">2890</a> 
<a class="jxr_linenumber" name="2891" href="#2891">2891</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="2892" href="#2892">2892</a>         <strong class="jxr_keyword">if</strong> (value == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2893" href="#2893">2893</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2894" href="#2894">2894</a>         }
<a class="jxr_linenumber" name="2895" href="#2895">2895</a> 
<a class="jxr_linenumber" name="2896" href="#2896">2896</a>         <strong class="jxr_keyword">switch</strong> (propertyType) {
<a class="jxr_linenumber" name="2897" href="#2897">2897</a>         <strong class="jxr_keyword">case</strong> STRING:
<a class="jxr_linenumber" name="2898" href="#2898">2898</a>         <strong class="jxr_keyword">case</strong> ID:
<a class="jxr_linenumber" name="2899" href="#2899">2899</a>         <strong class="jxr_keyword">case</strong> HTML:
<a class="jxr_linenumber" name="2900" href="#2900">2900</a>         <strong class="jxr_keyword">case</strong> URI:
<a class="jxr_linenumber" name="2901" href="#2901">2901</a>             <strong class="jxr_keyword">if</strong> (value instanceof String) {
<a class="jxr_linenumber" name="2902" href="#2902">2902</a>                 <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="2903" href="#2903">2903</a>             }
<a class="jxr_linenumber" name="2904" href="#2904">2904</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="2905" href="#2905">2905</a>         <strong class="jxr_keyword">case</strong> BOOLEAN:
<a class="jxr_linenumber" name="2906" href="#2906">2906</a>             <strong class="jxr_keyword">if</strong> (value instanceof Boolean) {
<a class="jxr_linenumber" name="2907" href="#2907">2907</a>                 <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="2908" href="#2908">2908</a>             }
<a class="jxr_linenumber" name="2909" href="#2909">2909</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="2910" href="#2910">2910</a>         <strong class="jxr_keyword">case</strong> INTEGER:
<a class="jxr_linenumber" name="2911" href="#2911">2911</a>             <strong class="jxr_keyword">if</strong> (value instanceof BigInteger) {
<a class="jxr_linenumber" name="2912" href="#2912">2912</a>                 <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="2913" href="#2913">2913</a>             }
<a class="jxr_linenumber" name="2914" href="#2914">2914</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="2915" href="#2915">2915</a>         <strong class="jxr_keyword">case</strong> DECIMAL:
<a class="jxr_linenumber" name="2916" href="#2916">2916</a>             <strong class="jxr_keyword">if</strong> (value instanceof BigDecimal) {
<a class="jxr_linenumber" name="2917" href="#2917">2917</a>                 <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="2918" href="#2918">2918</a>             }
<a class="jxr_linenumber" name="2919" href="#2919">2919</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="2920" href="#2920">2920</a>         <strong class="jxr_keyword">case</strong> DATETIME:
<a class="jxr_linenumber" name="2921" href="#2921">2921</a>             <strong class="jxr_keyword">if</strong> (value instanceof Number) {
<a class="jxr_linenumber" name="2922" href="#2922">2922</a>                 GregorianCalendar cal = <strong class="jxr_keyword">new</strong> GregorianCalendar(TimeZone.getTimeZone(<span class="jxr_string">"GMT"</span>));
<a class="jxr_linenumber" name="2923" href="#2923">2923</a>                 cal.setTimeInMillis(((Number) value).longValue());
<a class="jxr_linenumber" name="2924" href="#2924">2924</a>                 <strong class="jxr_keyword">return</strong> cal;
<a class="jxr_linenumber" name="2925" href="#2925">2925</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (value instanceof String) {
<a class="jxr_linenumber" name="2926" href="#2926">2926</a>                 GregorianCalendar cal = DateTimeHelper.parseXmlDateTime((String) value);
<a class="jxr_linenumber" name="2927" href="#2927">2927</a>                 <strong class="jxr_keyword">if</strong> (cal == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2928" href="#2928">2928</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="2929" href="#2929">2929</a>                 }
<a class="jxr_linenumber" name="2930" href="#2930">2930</a>                 <strong class="jxr_keyword">return</strong> cal;
<a class="jxr_linenumber" name="2931" href="#2931">2931</a>             }
<a class="jxr_linenumber" name="2932" href="#2932">2932</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="2933" href="#2933">2933</a>         <strong class="jxr_keyword">default</strong>:
<a class="jxr_linenumber" name="2934" href="#2934">2934</a>         }
<a class="jxr_linenumber" name="2935" href="#2935">2935</a> 
<a class="jxr_linenumber" name="2936" href="#2936">2936</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="2937" href="#2937">2937</a>     }
<a class="jxr_linenumber" name="2938" href="#2938">2938</a> 
<a class="jxr_linenumber" name="2939" href="#2939">2939</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="2940" href="#2940">2940</a>         <strong class="jxr_keyword">if</strong> (list == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2941" href="#2941">2941</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2942" href="#2942">2942</a>         }
<a class="jxr_linenumber" name="2943" href="#2943">2943</a> 
<a class="jxr_linenumber" name="2944" href="#2944">2944</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="2945" href="#2945">2945</a>         result.addAll(list);
<a class="jxr_linenumber" name="2946" href="#2946">2946</a> 
<a class="jxr_linenumber" name="2947" href="#2947">2947</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2948" href="#2948">2948</a>     }
<a class="jxr_linenumber" name="2949" href="#2949">2949</a> 
<a class="jxr_linenumber" name="2950" href="#2950">2950</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="2951" href="#2951">2951</a>         <strong class="jxr_keyword">if</strong> (property instanceof PropertyBoolean) {
<a class="jxr_linenumber" name="2952" href="#2952">2952</a>             <strong class="jxr_keyword">return</strong> PropertyType.BOOLEAN.value();
<a class="jxr_linenumber" name="2953" href="#2953">2953</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof PropertyId) {
<a class="jxr_linenumber" name="2954" href="#2954">2954</a>             <strong class="jxr_keyword">return</strong> PropertyType.ID.value();
<a class="jxr_linenumber" name="2955" href="#2955">2955</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof PropertyInteger) {
<a class="jxr_linenumber" name="2956" href="#2956">2956</a>             <strong class="jxr_keyword">return</strong> PropertyType.INTEGER.value();
<a class="jxr_linenumber" name="2957" href="#2957">2957</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof PropertyDateTime) {
<a class="jxr_linenumber" name="2958" href="#2958">2958</a>             <strong class="jxr_keyword">return</strong> PropertyType.DATETIME.value();
<a class="jxr_linenumber" name="2959" href="#2959">2959</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof PropertyDecimal) {
<a class="jxr_linenumber" name="2960" href="#2960">2960</a>             <strong class="jxr_keyword">return</strong> PropertyType.DECIMAL.value();
<a class="jxr_linenumber" name="2961" href="#2961">2961</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof PropertyHtml) {
<a class="jxr_linenumber" name="2962" href="#2962">2962</a>             <strong class="jxr_keyword">return</strong> PropertyType.HTML.value();
<a class="jxr_linenumber" name="2963" href="#2963">2963</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof PropertyString) {
<a class="jxr_linenumber" name="2964" href="#2964">2964</a>             <strong class="jxr_keyword">return</strong> PropertyType.STRING.value();
<a class="jxr_linenumber" name="2965" href="#2965">2965</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (property instanceof PropertyUri) {
<a class="jxr_linenumber" name="2966" href="#2966">2966</a>             <strong class="jxr_keyword">return</strong> PropertyType.URI.value();
<a class="jxr_linenumber" name="2967" href="#2967">2967</a>         }
<a class="jxr_linenumber" name="2968" href="#2968">2968</a> 
<a class="jxr_linenumber" name="2969" href="#2969">2969</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2970" href="#2970">2970</a>     }
<a class="jxr_linenumber" name="2971" href="#2971">2971</a> 
<a class="jxr_linenumber" name="2972" href="#2972">2972</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="2973" href="#2973">2973</a>         <strong class="jxr_keyword">if</strong> (obj != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2974" href="#2974">2974</a>             json.put(name, obj);
<a class="jxr_linenumber" name="2975" href="#2975">2975</a>         }
<a class="jxr_linenumber" name="2976" href="#2976">2976</a>     }
<a class="jxr_linenumber" name="2977" href="#2977">2977</a> 
<a class="jxr_linenumber" name="2978" href="#2978">2978</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="2979" href="#2979">2979</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="2980" href="#2980">2980</a>         <strong class="jxr_keyword">if</strong> (o == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2981" href="#2981">2981</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2982" href="#2982">2982</a>         }
<a class="jxr_linenumber" name="2983" href="#2983">2983</a> 
<a class="jxr_linenumber" name="2984" href="#2984">2984</a>         <strong class="jxr_keyword">if</strong> (o instanceof Map) {
<a class="jxr_linenumber" name="2985" href="#2985">2985</a>             <strong class="jxr_keyword">return</strong> (Map&lt;String, Object&gt;) o;
<a class="jxr_linenumber" name="2986" href="#2986">2986</a>         }
<a class="jxr_linenumber" name="2987" href="#2987">2987</a> 
<a class="jxr_linenumber" name="2988" href="#2988">2988</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="2989" href="#2989">2989</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="2990" href="#2990">2990</a>     }
<a class="jxr_linenumber" name="2991" href="#2991">2991</a> 
<a class="jxr_linenumber" name="2992" href="#2992">2992</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="2993" href="#2993">2993</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="2994" href="#2994">2994</a>         <strong class="jxr_keyword">if</strong> (o == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="2995" href="#2995">2995</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="2996" href="#2996">2996</a>         }
<a class="jxr_linenumber" name="2997" href="#2997">2997</a> 
<a class="jxr_linenumber" name="2998" href="#2998">2998</a>         <strong class="jxr_keyword">if</strong> (o instanceof List) {
<a class="jxr_linenumber" name="2999" href="#2999">2999</a>             <strong class="jxr_keyword">return</strong> (List&lt;Object&gt;) o;
<a class="jxr_linenumber" name="3000" href="#3000">3000</a>         }
<a class="jxr_linenumber" name="3001" href="#3001">3001</a> 
<a class="jxr_linenumber" name="3002" href="#3002">3002</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="3003" href="#3003">3003</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="3004" href="#3004">3004</a>     }
<a class="jxr_linenumber" name="3005" href="#3005">3005</a> 
<a class="jxr_linenumber" name="3006" href="#3006">3006</a>     <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="3007" href="#3007">3007</a>         Object obj = json.get(key);
<a class="jxr_linenumber" name="3008" href="#3008">3008</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="3009" href="#3009">3009</a>     }
<a class="jxr_linenumber" name="3010" href="#3010">3010</a> 
<a class="jxr_linenumber" name="3011" href="#3011">3011</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="3012" href="#3012">3012</a>         Object obj = json.get(key);
<a class="jxr_linenumber" name="3013" href="#3013">3013</a> 
<a class="jxr_linenumber" name="3014" href="#3014">3014</a>         <strong class="jxr_keyword">if</strong> (obj instanceof Boolean) {
<a class="jxr_linenumber" name="3015" href="#3015">3015</a>             <strong class="jxr_keyword">return</strong> (Boolean) obj;
<a class="jxr_linenumber" name="3016" href="#3016">3016</a>         }
<a class="jxr_linenumber" name="3017" href="#3017">3017</a> 
<a class="jxr_linenumber" name="3018" href="#3018">3018</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="3019" href="#3019">3019</a>     }
<a class="jxr_linenumber" name="3020" href="#3020">3020</a> 
<a class="jxr_linenumber" name="3021" href="#3021">3021</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="3022" href="#3022">3022</a>         Object obj = json.get(key);
<a class="jxr_linenumber" name="3023" href="#3023">3023</a> 
<a class="jxr_linenumber" name="3024" href="#3024">3024</a>         <strong class="jxr_keyword">if</strong> (obj instanceof BigInteger) {
<a class="jxr_linenumber" name="3025" href="#3025">3025</a>             <strong class="jxr_keyword">return</strong> (BigInteger) obj;
<a class="jxr_linenumber" name="3026" href="#3026">3026</a>         }
<a class="jxr_linenumber" name="3027" href="#3027">3027</a> 
<a class="jxr_linenumber" name="3028" href="#3028">3028</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="3029" href="#3029">3029</a>     }
<a class="jxr_linenumber" name="3030" href="#3030">3030</a> 
<a class="jxr_linenumber" name="3031" href="#3031">3031</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="3032" href="#3032">3032</a>         Object obj = json.get(key);
<a class="jxr_linenumber" name="3033" href="#3033">3033</a> 
<a class="jxr_linenumber" name="3034" href="#3034">3034</a>         <strong class="jxr_keyword">if</strong> (obj instanceof BigDecimal) {
<a class="jxr_linenumber" name="3035" href="#3035">3035</a>             <strong class="jxr_keyword">return</strong> (BigDecimal) obj;
<a class="jxr_linenumber" name="3036" href="#3036">3036</a>         }
<a class="jxr_linenumber" name="3037" href="#3037">3037</a> 
<a class="jxr_linenumber" name="3038" href="#3038">3038</a>         <strong class="jxr_keyword">if</strong> (obj instanceof BigInteger) {
<a class="jxr_linenumber" name="3039" href="#3039">3039</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> BigDecimal((BigInteger) obj);
<a class="jxr_linenumber" name="3040" href="#3040">3040</a>         }
<a class="jxr_linenumber" name="3041" href="#3041">3041</a> 
<a class="jxr_linenumber" name="3042" href="#3042">3042</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="3043" href="#3043">3043</a>     }
<a class="jxr_linenumber" name="3044" href="#3044">3044</a> 
<a class="jxr_linenumber" name="3045" href="#3045">3045</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="3046" href="#3046">3046</a>         Object obj = json.get(key);
<a class="jxr_linenumber" name="3047" href="#3047">3047</a> 
<a class="jxr_linenumber" name="3048" href="#3048">3048</a>         <strong class="jxr_keyword">if</strong> (obj instanceof Number) {
<a class="jxr_linenumber" name="3049" href="#3049">3049</a>             GregorianCalendar cal = <strong class="jxr_keyword">new</strong> GregorianCalendar(TimeZone.getTimeZone(<span class="jxr_string">"GMT"</span>));
<a class="jxr_linenumber" name="3050" href="#3050">3050</a>             cal.setTimeInMillis(((Number) obj).longValue());
<a class="jxr_linenumber" name="3051" href="#3051">3051</a>             <strong class="jxr_keyword">return</strong> cal;
<a class="jxr_linenumber" name="3052" href="#3052">3052</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (obj instanceof String) {
<a class="jxr_linenumber" name="3053" href="#3053">3053</a>             <strong class="jxr_keyword">return</strong> DateTimeHelper.parseXmlDateTime((String) obj);
<a class="jxr_linenumber" name="3054" href="#3054">3054</a>         }
<a class="jxr_linenumber" name="3055" href="#3055">3055</a> 
<a class="jxr_linenumber" name="3056" href="#3056">3056</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="3057" href="#3057">3057</a>     }
<a class="jxr_linenumber" name="3058" href="#3058">3058</a> 
<a class="jxr_linenumber" name="3059" href="#3059">3059</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="3060" href="#3060">3060</a>         <strong class="jxr_keyword">return</strong> CmisEnumHelper.fromValue(getString(json, key), clazz);
<a class="jxr_linenumber" name="3061" href="#3061">3061</a>     }
<a class="jxr_linenumber" name="3062" href="#3062">3062</a> 
<a class="jxr_linenumber" name="3063" href="#3063">3063</a>     <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="3064" href="#3064">3064</a>             <strong class="jxr_keyword">final</strong> Class&lt;T&gt; clazz) {
<a class="jxr_linenumber" name="3065" href="#3065">3065</a>         <strong class="jxr_keyword">return</strong> CmisEnumHelper.fromValue(getInteger(json, key), clazz);
<a class="jxr_linenumber" name="3066" href="#3066">3066</a>     }
<a class="jxr_linenumber" name="3067" href="#3067">3067</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

