<!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>XMLConverter 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/XMLConverter.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.XMLConstants.*;
<a class="jxr_linenumber" name="22" href="#22">22</a>  
<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.math.BigDecimal;
<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.math.BigInteger;
<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.GregorianCalendar;
<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedList;
<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
<a class="jxr_linenumber" name="32" href="#32">32</a>  
<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> javax.xml.namespace.QName;
<a class="jxr_linenumber" name="34" href="#34">34</a>  
<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Ace;
<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Acl;
<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.AclCapabilities;
<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.AllowableActions;
<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.BulkUpdateObjectIdAndChangeToken;
<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ChangeEventInfo;
<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.CmisExtensionElement;
<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.CreatablePropertyTypes;
<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ExtensionFeature;
<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ExtensionsData;
<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.NewTypeSettableAttributes;
<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectData;
<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PermissionMapping;
<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PolicyIdList;
<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Principal;
<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Properties;
<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyBoolean;
<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyData;
<a class="jxr_linenumber" name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyDateTime;
<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyDecimal;
<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyHtml;
<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyId;
<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyInteger;
<a class="jxr_linenumber" name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyString;
<a class="jxr_linenumber" name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyUri;
<a class="jxr_linenumber" name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.RenditionData;
<a class="jxr_linenumber" name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.RepositoryCapabilities;
<a class="jxr_linenumber" name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
<a class="jxr_linenumber" name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.Choice;
<a class="jxr_linenumber" name="64" href="#64">64</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.DocumentTypeDefinition;
<a class="jxr_linenumber" name="65" href="#65">65</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PermissionDefinition;
<a class="jxr_linenumber" name="66" href="#66">66</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyBooleanDefinition;
<a class="jxr_linenumber" name="67" href="#67">67</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyDateTimeDefinition;
<a class="jxr_linenumber" name="68" href="#68">68</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyDecimalDefinition;
<a class="jxr_linenumber" name="69" href="#69">69</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition;
<a class="jxr_linenumber" name="70" href="#70">70</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyHtmlDefinition;
<a class="jxr_linenumber" name="71" href="#71">71</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyIdDefinition;
<a class="jxr_linenumber" name="72" href="#72">72</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyIntegerDefinition;
<a class="jxr_linenumber" name="73" href="#73">73</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyStringDefinition;
<a class="jxr_linenumber" name="74" href="#74">74</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyUriDefinition;
<a class="jxr_linenumber" name="75" href="#75">75</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.RelationshipTypeDefinition;
<a class="jxr_linenumber" name="76" href="#76">76</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
<a class="jxr_linenumber" name="77" href="#77">77</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeMutability;
<a class="jxr_linenumber" name="78" href="#78">78</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.AclPropagation;
<a class="jxr_linenumber" name="79" href="#79">79</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Action;
<a class="jxr_linenumber" name="80" href="#80">80</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
<a class="jxr_linenumber" name="81" href="#81">81</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityAcl;
<a class="jxr_linenumber" name="82" href="#82">82</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityChanges;
<a class="jxr_linenumber" name="83" href="#83">83</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityContentStreamUpdates;
<a class="jxr_linenumber" name="84" href="#84">84</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityJoin;
<a class="jxr_linenumber" name="85" href="#85">85</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityOrderBy;
<a class="jxr_linenumber" name="86" href="#86">86</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityQuery;
<a class="jxr_linenumber" name="87" href="#87">87</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityRenditions;
<a class="jxr_linenumber" name="88" href="#88">88</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Cardinality;
<a class="jxr_linenumber" name="89" href="#89">89</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.ChangeType;
<a class="jxr_linenumber" name="90" href="#90">90</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CmisVersion;
<a class="jxr_linenumber" name="91" href="#91">91</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.ContentStreamAllowed;
<a class="jxr_linenumber" name="92" href="#92">92</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.DateTimeResolution;
<a class="jxr_linenumber" name="93" href="#93">93</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.DecimalPrecision;
<a class="jxr_linenumber" name="94" href="#94">94</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
<a class="jxr_linenumber" name="95" href="#95">95</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.PropertyType;
<a class="jxr_linenumber" name="96" href="#96">96</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.SupportedPermissions;
<a class="jxr_linenumber" name="97" href="#97">97</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Updatability;
<a class="jxr_linenumber" name="98" href="#98">98</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
<a class="jxr_linenumber" name="99" href="#99">99</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException;
<a class="jxr_linenumber" name="100" href="#100">100</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AbstractPropertyData;
<a class="jxr_linenumber" name="101" href="#101">101</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AbstractPropertyDefinition;
<a class="jxr_linenumber" name="102" href="#102">102</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AbstractTypeDefinition;
<a class="jxr_linenumber" name="103" href="#103">103</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AccessControlEntryImpl;
<a class="jxr_linenumber" name="104" href="#104">104</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AccessControlListImpl;
<a class="jxr_linenumber" name="105" href="#105">105</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AccessControlPrincipalDataImpl;
<a class="jxr_linenumber" name="106" href="#106">106</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AclCapabilitiesDataImpl;
<a class="jxr_linenumber" name="107" href="#107">107</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AllowableActionsImpl;
<a class="jxr_linenumber" name="108" href="#108">108</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.BulkUpdateImpl;
<a class="jxr_linenumber" name="109" href="#109">109</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.BulkUpdateObjectIdAndChangeTokenImpl;
<a class="jxr_linenumber" name="110" href="#110">110</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ChangeEventInfoDataImpl;
<a class="jxr_linenumber" name="111" href="#111">111</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ChoiceImpl;
<a class="jxr_linenumber" name="112" href="#112">112</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.CreatablePropertyTypesImpl;
<a class="jxr_linenumber" name="113" href="#113">113</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.DocumentTypeDefinitionImpl;
<a class="jxr_linenumber" name="114" href="#114">114</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ExtensionFeatureImpl;
<a class="jxr_linenumber" name="115" href="#115">115</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.FolderTypeDefinitionImpl;
<a class="jxr_linenumber" name="116" href="#116">116</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ItemTypeDefinitionImpl;
<a class="jxr_linenumber" name="117" href="#117">117</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.NewTypeSettableAttributesImpl;
<a class="jxr_linenumber" name="118" href="#118">118</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectDataImpl;
<a class="jxr_linenumber" name="119" href="#119">119</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PermissionDefinitionDataImpl;
<a class="jxr_linenumber" name="120" href="#120">120</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PermissionMappingDataImpl;
<a class="jxr_linenumber" name="121" href="#121">121</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PolicyIdListImpl;
<a class="jxr_linenumber" name="122" href="#122">122</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PolicyTypeDefinitionImpl;
<a class="jxr_linenumber" name="123" href="#123">123</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertiesImpl;
<a class="jxr_linenumber" name="124" href="#124">124</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyBooleanDefinitionImpl;
<a class="jxr_linenumber" name="125" href="#125">125</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyBooleanImpl;
<a class="jxr_linenumber" name="126" href="#126">126</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDateTimeDefinitionImpl;
<a class="jxr_linenumber" name="127" href="#127">127</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDateTimeImpl;
<a class="jxr_linenumber" name="128" href="#128">128</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDecimalDefinitionImpl;
<a class="jxr_linenumber" name="129" href="#129">129</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDecimalImpl;
<a class="jxr_linenumber" name="130" href="#130">130</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyHtmlDefinitionImpl;
<a class="jxr_linenumber" name="131" href="#131">131</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyHtmlImpl;
<a class="jxr_linenumber" name="132" href="#132">132</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIdDefinitionImpl;
<a class="jxr_linenumber" name="133" href="#133">133</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIdImpl;
<a class="jxr_linenumber" name="134" href="#134">134</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIntegerDefinitionImpl;
<a class="jxr_linenumber" name="135" href="#135">135</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIntegerImpl;
<a class="jxr_linenumber" name="136" href="#136">136</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyStringDefinitionImpl;
<a class="jxr_linenumber" name="137" href="#137">137</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyStringImpl;
<a class="jxr_linenumber" name="138" href="#138">138</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyUriDefinitionImpl;
<a class="jxr_linenumber" name="139" href="#139">139</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyUriImpl;
<a class="jxr_linenumber" name="140" href="#140">140</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.QueryTypeImpl;
<a class="jxr_linenumber" name="141" href="#141">141</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.RelationshipTypeDefinitionImpl;
<a class="jxr_linenumber" name="142" href="#142">142</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.RenditionDataImpl;
<a class="jxr_linenumber" name="143" href="#143">143</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.RepositoryCapabilitiesImpl;
<a class="jxr_linenumber" name="144" href="#144">144</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.RepositoryInfoImpl;
<a class="jxr_linenumber" name="145" href="#145">145</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.SecondaryTypeDefinitionImpl;
<a class="jxr_linenumber" name="146" href="#146">146</a> <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.TypeMutabilityImpl;
<a class="jxr_linenumber" name="147" href="#147">147</a> <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
<a class="jxr_linenumber" name="148" href="#148">148</a> <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
<a class="jxr_linenumber" name="149" href="#149">149</a> <strong class="jxr_keyword">import</strong> org.xmlpull.v1.XmlPullParser;
<a class="jxr_linenumber" name="150" href="#150">150</a> <strong class="jxr_keyword">import</strong> org.xmlpull.v1.XmlPullParserException;
<a class="jxr_linenumber" name="151" href="#151">151</a> <strong class="jxr_keyword">import</strong> org.xmlpull.v1.XmlSerializer;
<a class="jxr_linenumber" name="152" href="#152">152</a> 
<a class="jxr_linenumber" name="153" href="#153">153</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/XMLConverter.html">XMLConverter</a> {
<a class="jxr_linenumber" name="154" href="#154">154</a> 
<a class="jxr_linenumber" name="155" href="#155">155</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Logger LOG = LoggerFactory.getLogger(XMLConverter.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="156" href="#156">156</a> 
<a class="jxr_linenumber" name="157" href="#157">157</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/chemistry/opencmis/commons/impl/XMLConverter.html">XMLConverter</a>() {
<a class="jxr_linenumber" name="158" href="#158">158</a>     }
<a class="jxr_linenumber" name="159" href="#159">159</a> 
<a class="jxr_linenumber" name="160" href="#160">160</a>     <em class="jxr_comment">// ---------------</em>
<a class="jxr_linenumber" name="161" href="#161">161</a>     <em class="jxr_comment">// --- writers ---</em>
<a class="jxr_linenumber" name="162" href="#162">162</a>     <em class="jxr_comment">// ---------------</em>
<a class="jxr_linenumber" name="163" href="#163">163</a> 
<a class="jxr_linenumber" name="164" href="#164">164</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> writeRepositoryInfo(XmlSerializer writer, CmisVersion cmisVersion, String namespace,
<a class="jxr_linenumber" name="165" href="#165">165</a>             RepositoryInfo source) <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="166" href="#166">166</a>         <strong class="jxr_keyword">if</strong> (source == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="167" href="#167">167</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="168" href="#168">168</a>         }
<a class="jxr_linenumber" name="169" href="#169">169</a> 
<a class="jxr_linenumber" name="170" href="#170">170</a>         writer.startTag(namespace, TAG_REPOSITORY_INFO);
<a class="jxr_linenumber" name="171" href="#171">171</a> 
<a class="jxr_linenumber" name="172" href="#172">172</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_REPINFO_ID, source.getId());
<a class="jxr_linenumber" name="173" href="#173">173</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_REPINFO_NAME, source.getName());
<a class="jxr_linenumber" name="174" href="#174">174</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_REPINFO_DESCRIPTION, source.getDescription());
<a class="jxr_linenumber" name="175" href="#175">175</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_REPINFO_VENDOR, source.getVendorName());
<a class="jxr_linenumber" name="176" href="#176">176</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_REPINFO_PRODUCT, source.getProductName());
<a class="jxr_linenumber" name="177" href="#177">177</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_REPINFO_PRODUCT_VERSION, source.getProductVersion());
<a class="jxr_linenumber" name="178" href="#178">178</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_REPINFO_ROOT_FOLDER_ID, source.getRootFolderId());
<a class="jxr_linenumber" name="179" href="#179">179</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_REPINFO_CHANGE_LOG_TOKEN,
<a class="jxr_linenumber" name="180" href="#180">180</a>                 source.getLatestChangeLogToken());
<a class="jxr_linenumber" name="181" href="#181">181</a>         writeRepositoryCapabilities(writer, cmisVersion, source.getCapabilities());
<a class="jxr_linenumber" name="182" href="#182">182</a>         writeAclCapabilities(writer, cmisVersion, source.getAclCapabilities());
<a class="jxr_linenumber" name="183" href="#183">183</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_REPINFO_CMIS_VERSION_SUPPORTED,
<a class="jxr_linenumber" name="184" href="#184">184</a>                 source.getCmisVersionSupported());
<a class="jxr_linenumber" name="185" href="#185">185</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_REPINFO_THIN_CLIENT_URI, source.getThinClientUri());
<a class="jxr_linenumber" name="186" href="#186">186</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_REPINFO_CHANGES_INCOMPLETE,
<a class="jxr_linenumber" name="187" href="#187">187</a>                 source.getChangesIncomplete());
<a class="jxr_linenumber" name="188" href="#188">188</a>         <strong class="jxr_keyword">if</strong> (source.getChangesOnType() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="189" href="#189">189</a>             <strong class="jxr_keyword">for</strong> (BaseTypeId baseType : source.getChangesOnType()) {
<a class="jxr_linenumber" name="190" href="#190">190</a>                 <strong class="jxr_keyword">if</strong> (cmisVersion == CmisVersion.CMIS_1_0 &amp;&amp; baseType == BaseTypeId.CMIS_ITEM) {
<a class="jxr_linenumber" name="191" href="#191">191</a>                     LOG.warn(<span class="jxr_string">"Receiver only understands CMIS 1.0 but the Changes On Type list in the Repository info contains the base type Item. "</span>
<a class="jxr_linenumber" name="192" href="#192">192</a>                             + <span class="jxr_string">"The Item base type has been removed from the list."</span>);
<a class="jxr_linenumber" name="193" href="#193">193</a>                     <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="194" href="#194">194</a>                 }
<a class="jxr_linenumber" name="195" href="#195">195</a>                 XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_REPINFO_CHANGES_ON_TYPE, baseType);
<a class="jxr_linenumber" name="196" href="#196">196</a>             }
<a class="jxr_linenumber" name="197" href="#197">197</a>         }
<a class="jxr_linenumber" name="198" href="#198">198</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_REPINFO_PRINCIPAL_ID_ANONYMOUS,
<a class="jxr_linenumber" name="199" href="#199">199</a>                 source.getPrincipalIdAnonymous());
<a class="jxr_linenumber" name="200" href="#200">200</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_REPINFO_PRINCIPAL_ID_ANYONE,
<a class="jxr_linenumber" name="201" href="#201">201</a>                 source.getPrincipalIdAnyone());
<a class="jxr_linenumber" name="202" href="#202">202</a>         <strong class="jxr_keyword">if</strong> (cmisVersion != CmisVersion.CMIS_1_0 &amp;&amp; source.getExtensionFeatures() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="203" href="#203">203</a>             <strong class="jxr_keyword">for</strong> (ExtensionFeature feature : source.getExtensionFeatures()) {
<a class="jxr_linenumber" name="204" href="#204">204</a>                 writeExtendedFeatures(writer, cmisVersion, feature);
<a class="jxr_linenumber" name="205" href="#205">205</a>             }
<a class="jxr_linenumber" name="206" href="#206">206</a>         }
<a class="jxr_linenumber" name="207" href="#207">207</a> 
<a class="jxr_linenumber" name="208" href="#208">208</a>         writeExtensions(writer, source);
<a class="jxr_linenumber" name="209" href="#209">209</a>         writer.endTag(namespace, TAG_REPOSITORY_INFO);
<a class="jxr_linenumber" name="210" href="#210">210</a>     }
<a class="jxr_linenumber" name="211" href="#211">211</a> 
<a class="jxr_linenumber" name="212" href="#212">212</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> writeRepositoryCapabilities(XmlSerializer writer, CmisVersion cmisVersion,
<a class="jxr_linenumber" name="213" href="#213">213</a>             RepositoryCapabilities source) <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="214" href="#214">214</a>         <strong class="jxr_keyword">if</strong> (source == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="215" href="#215">215</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="216" href="#216">216</a>         }
<a class="jxr_linenumber" name="217" href="#217">217</a> 
<a class="jxr_linenumber" name="218" href="#218">218</a>         writer.startTag(NAMESPACE_CMIS, TAG_REPINFO_CAPABILITIES);
<a class="jxr_linenumber" name="219" href="#219">219</a> 
<a class="jxr_linenumber" name="220" href="#220">220</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CAP_ACL, source.getAclCapability());
<a class="jxr_linenumber" name="221" href="#221">221</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CAP_ALL_VERSIONS_SEARCHABLE,
<a class="jxr_linenumber" name="222" href="#222">222</a>                 source.isAllVersionsSearchableSupported());
<a class="jxr_linenumber" name="223" href="#223">223</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CAP_CHANGES, source.getChangesCapability());
<a class="jxr_linenumber" name="224" href="#224">224</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CAP_CONTENT_STREAM_UPDATABILITY,
<a class="jxr_linenumber" name="225" href="#225">225</a>                 source.getContentStreamUpdatesCapability());
<a class="jxr_linenumber" name="226" href="#226">226</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CAP_GET_DESCENDANTS, source.isGetDescendantsSupported());
<a class="jxr_linenumber" name="227" href="#227">227</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CAP_GET_FOLDER_TREE, source.isGetFolderTreeSupported());
<a class="jxr_linenumber" name="228" href="#228">228</a>         <strong class="jxr_keyword">if</strong> (cmisVersion != CmisVersion.CMIS_1_0) {
<a class="jxr_linenumber" name="229" href="#229">229</a>             XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CAP_ORDER_BY, source.getOrderByCapability());
<a class="jxr_linenumber" name="230" href="#230">230</a>         }
<a class="jxr_linenumber" name="231" href="#231">231</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CAP_MULTIFILING, source.isMultifilingSupported());
<a class="jxr_linenumber" name="232" href="#232">232</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CAP_PWC_SEARCHABLE, source.isPwcSearchableSupported());
<a class="jxr_linenumber" name="233" href="#233">233</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CAP_PWC_UPDATABLE, source.isPwcUpdatableSupported());
<a class="jxr_linenumber" name="234" href="#234">234</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CAP_QUERY, source.getQueryCapability());
<a class="jxr_linenumber" name="235" href="#235">235</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CAP_RENDITIONS, source.getRenditionsCapability());
<a class="jxr_linenumber" name="236" href="#236">236</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CAP_UNFILING, source.isUnfilingSupported());
<a class="jxr_linenumber" name="237" href="#237">237</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CAP_VERSION_SPECIFIC_FILING,
<a class="jxr_linenumber" name="238" href="#238">238</a>                 source.isVersionSpecificFilingSupported());
<a class="jxr_linenumber" name="239" href="#239">239</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CAP_JOIN, source.getJoinCapability());
<a class="jxr_linenumber" name="240" href="#240">240</a>         <strong class="jxr_keyword">if</strong> (cmisVersion != CmisVersion.CMIS_1_0) {
<a class="jxr_linenumber" name="241" href="#241">241</a>             <strong class="jxr_keyword">if</strong> (source.getCreatablePropertyTypes() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="242" href="#242">242</a>                 CreatablePropertyTypes creatablePropertyTypes = source.getCreatablePropertyTypes();
<a class="jxr_linenumber" name="243" href="#243">243</a> 
<a class="jxr_linenumber" name="244" href="#244">244</a>                 writer.startTag(NAMESPACE_CMIS, TAG_CAP_CREATABLE_PROPERTY_TYPES);
<a class="jxr_linenumber" name="245" href="#245">245</a> 
<a class="jxr_linenumber" name="246" href="#246">246</a>                 <strong class="jxr_keyword">if</strong> (creatablePropertyTypes.canCreate() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="247" href="#247">247</a>                     <strong class="jxr_keyword">for</strong> (PropertyType pt : creatablePropertyTypes.canCreate()) {
<a class="jxr_linenumber" name="248" href="#248">248</a>                         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CAP_CREATABLE_PROPERTY_TYPES_CANCREATE,
<a class="jxr_linenumber" name="249" href="#249">249</a>                                 pt);
<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>                 writeExtensions(writer, creatablePropertyTypes);
<a class="jxr_linenumber" name="254" href="#254">254</a>                 writer.endTag(NAMESPACE_CMIS, TAG_CAP_CREATABLE_PROPERTY_TYPES);
<a class="jxr_linenumber" name="255" href="#255">255</a>             }
<a class="jxr_linenumber" name="256" href="#256">256</a>             <strong class="jxr_keyword">if</strong> (source.getNewTypeSettableAttributes() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="257" href="#257">257</a>                 NewTypeSettableAttributes newTypeSettableAttributes = source.getNewTypeSettableAttributes();
<a class="jxr_linenumber" name="258" href="#258">258</a> 
<a class="jxr_linenumber" name="259" href="#259">259</a>                 writer.startTag(NAMESPACE_CMIS, TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES);
<a class="jxr_linenumber" name="260" href="#260">260</a> 
<a class="jxr_linenumber" name="261" href="#261">261</a>                 XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_ID,
<a class="jxr_linenumber" name="262" href="#262">262</a>                         newTypeSettableAttributes.canSetId());
<a class="jxr_linenumber" name="263" href="#263">263</a>                 XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_LOCALNAME,
<a class="jxr_linenumber" name="264" href="#264">264</a>                         newTypeSettableAttributes.canSetLocalName());
<a class="jxr_linenumber" name="265" href="#265">265</a>                 XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS,
<a class="jxr_linenumber" name="266" href="#266">266</a>                         TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_LOCALNAMESPACE,
<a class="jxr_linenumber" name="267" href="#267">267</a>                         newTypeSettableAttributes.canSetLocalNamespace());
<a class="jxr_linenumber" name="268" href="#268">268</a>                 XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_DISPLAYNAME,
<a class="jxr_linenumber" name="269" href="#269">269</a>                         newTypeSettableAttributes.canSetDisplayName());
<a class="jxr_linenumber" name="270" href="#270">270</a>                 XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_QUERYNAME,
<a class="jxr_linenumber" name="271" href="#271">271</a>                         newTypeSettableAttributes.canSetQueryName());
<a class="jxr_linenumber" name="272" href="#272">272</a>                 XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_DESCRIPTION,
<a class="jxr_linenumber" name="273" href="#273">273</a>                         newTypeSettableAttributes.canSetDescription());
<a class="jxr_linenumber" name="274" href="#274">274</a>                 XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_CREATEABLE,
<a class="jxr_linenumber" name="275" href="#275">275</a>                         newTypeSettableAttributes.canSetCreatable());
<a class="jxr_linenumber" name="276" href="#276">276</a>                 XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_FILEABLE,
<a class="jxr_linenumber" name="277" href="#277">277</a>                         newTypeSettableAttributes.canSetFileable());
<a class="jxr_linenumber" name="278" href="#278">278</a>                 XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_QUERYABLE,
<a class="jxr_linenumber" name="279" href="#279">279</a>                         newTypeSettableAttributes.canSetQueryable());
<a class="jxr_linenumber" name="280" href="#280">280</a>                 XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS,
<a class="jxr_linenumber" name="281" href="#281">281</a>                         TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_FULLTEXTINDEXED,
<a class="jxr_linenumber" name="282" href="#282">282</a>                         newTypeSettableAttributes.canSetFulltextIndexed());
<a class="jxr_linenumber" name="283" href="#283">283</a>                 XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS,
<a class="jxr_linenumber" name="284" href="#284">284</a>                         TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_INCLUDEDINSUPERTYTPEQUERY,
<a class="jxr_linenumber" name="285" href="#285">285</a>                         newTypeSettableAttributes.canSetIncludedInSupertypeQuery());
<a class="jxr_linenumber" name="286" href="#286">286</a>                 XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS,
<a class="jxr_linenumber" name="287" href="#287">287</a>                         TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_CONTROLABLEPOLICY,
<a class="jxr_linenumber" name="288" href="#288">288</a>                         newTypeSettableAttributes.canSetControllablePolicy());
<a class="jxr_linenumber" name="289" href="#289">289</a>                 XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS,
<a class="jxr_linenumber" name="290" href="#290">290</a>                         TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_CONTROLABLEACL,
<a class="jxr_linenumber" name="291" href="#291">291</a>                         newTypeSettableAttributes.canSetControllableAcl());
<a class="jxr_linenumber" name="292" href="#292">292</a> 
<a class="jxr_linenumber" name="293" href="#293">293</a>                 writeExtensions(writer, newTypeSettableAttributes);
<a class="jxr_linenumber" name="294" href="#294">294</a>                 writer.endTag(NAMESPACE_CMIS, TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES);
<a class="jxr_linenumber" name="295" href="#295">295</a>             }
<a class="jxr_linenumber" name="296" href="#296">296</a>         }
<a class="jxr_linenumber" name="297" href="#297">297</a> 
<a class="jxr_linenumber" name="298" href="#298">298</a>         writeExtensions(writer, source);
<a class="jxr_linenumber" name="299" href="#299">299</a>         writer.endTag(NAMESPACE_CMIS, TAG_REPINFO_CAPABILITIES);
<a class="jxr_linenumber" name="300" href="#300">300</a>     }
<a class="jxr_linenumber" name="301" href="#301">301</a> 
<a class="jxr_linenumber" name="302" href="#302">302</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> writeAclCapabilities(XmlSerializer writer, CmisVersion cmisVersion, AclCapabilities source)
<a class="jxr_linenumber" name="303" href="#303">303</a>             <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="304" href="#304">304</a>         <strong class="jxr_keyword">if</strong> (source == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="305" href="#305">305</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="306" href="#306">306</a>         }
<a class="jxr_linenumber" name="307" href="#307">307</a> 
<a class="jxr_linenumber" name="308" href="#308">308</a>         writer.startTag(NAMESPACE_CMIS, TAG_REPINFO_ACL_CAPABILITIES);
<a class="jxr_linenumber" name="309" href="#309">309</a> 
<a class="jxr_linenumber" name="310" href="#310">310</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_ACLCAP_SUPPORTED_PERMISSIONS,
<a class="jxr_linenumber" name="311" href="#311">311</a>                 source.getSupportedPermissions());
<a class="jxr_linenumber" name="312" href="#312">312</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_ACLCAP_ACL_PROPAGATION, source.getAclPropagation());
<a class="jxr_linenumber" name="313" href="#313">313</a>         <strong class="jxr_keyword">if</strong> (source.getPermissions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="314" href="#314">314</a>             <strong class="jxr_keyword">for</strong> (PermissionDefinition pd : source.getPermissions()) {
<a class="jxr_linenumber" name="315" href="#315">315</a>                 writer.startTag(NAMESPACE_CMIS, TAG_ACLCAP_PERMISSIONS);
<a class="jxr_linenumber" name="316" href="#316">316</a> 
<a class="jxr_linenumber" name="317" href="#317">317</a>                 XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_ACLCAP_PERMISSION_PERMISSION, pd.getId());
<a class="jxr_linenumber" name="318" href="#318">318</a>                 XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_ACLCAP_PERMISSION_DESCRIPTION,
<a class="jxr_linenumber" name="319" href="#319">319</a>                         pd.getDescription());
<a class="jxr_linenumber" name="320" href="#320">320</a> 
<a class="jxr_linenumber" name="321" href="#321">321</a>                 writeExtensions(writer, pd);
<a class="jxr_linenumber" name="322" href="#322">322</a>                 writer.endTag(NAMESPACE_CMIS, TAG_ACLCAP_PERMISSIONS);
<a class="jxr_linenumber" name="323" href="#323">323</a>             }
<a class="jxr_linenumber" name="324" href="#324">324</a>         }
<a class="jxr_linenumber" name="325" href="#325">325</a>         <strong class="jxr_keyword">if</strong> (source.getPermissionMapping() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="326" href="#326">326</a>             <strong class="jxr_keyword">for</strong> (PermissionMapping pm : source.getPermissionMapping().values()) {
<a class="jxr_linenumber" name="327" href="#327">327</a>                 writer.startTag(NAMESPACE_CMIS, TAG_ACLCAP_PERMISSION_MAPPING);
<a class="jxr_linenumber" name="328" href="#328">328</a> 
<a class="jxr_linenumber" name="329" href="#329">329</a>                 XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_ACLCAP_MAPPING_KEY, pm.getKey());
<a class="jxr_linenumber" name="330" href="#330">330</a>                 <strong class="jxr_keyword">if</strong> (pm.getPermissions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="331" href="#331">331</a>                     <strong class="jxr_keyword">for</strong> (String perm : pm.getPermissions()) {
<a class="jxr_linenumber" name="332" href="#332">332</a>                         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_ACLCAP_MAPPING_PERMISSION, perm);
<a class="jxr_linenumber" name="333" href="#333">333</a>                     }
<a class="jxr_linenumber" name="334" href="#334">334</a>                 }
<a class="jxr_linenumber" name="335" href="#335">335</a> 
<a class="jxr_linenumber" name="336" href="#336">336</a>                 writeExtensions(writer, pm);
<a class="jxr_linenumber" name="337" href="#337">337</a>                 writer.endTag(NAMESPACE_CMIS, TAG_ACLCAP_PERMISSION_MAPPING);
<a class="jxr_linenumber" name="338" href="#338">338</a>             }
<a class="jxr_linenumber" name="339" href="#339">339</a>         }
<a class="jxr_linenumber" name="340" href="#340">340</a> 
<a class="jxr_linenumber" name="341" href="#341">341</a>         writeExtensions(writer, source);
<a class="jxr_linenumber" name="342" href="#342">342</a>         writer.endTag(NAMESPACE_CMIS, TAG_REPINFO_ACL_CAPABILITIES);
<a class="jxr_linenumber" name="343" href="#343">343</a>     }
<a class="jxr_linenumber" name="344" href="#344">344</a> 
<a class="jxr_linenumber" name="345" href="#345">345</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> writeExtendedFeatures(XmlSerializer writer, CmisVersion cmisVersion, ExtensionFeature source)
<a class="jxr_linenumber" name="346" href="#346">346</a>             <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="347" href="#347">347</a>         <strong class="jxr_keyword">if</strong> (source == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="348" href="#348">348</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="349" href="#349">349</a>         }
<a class="jxr_linenumber" name="350" href="#350">350</a> 
<a class="jxr_linenumber" name="351" href="#351">351</a>         writer.startTag(NAMESPACE_CMIS, TAG_REPINFO_EXTENDED_FEATURES);
<a class="jxr_linenumber" name="352" href="#352">352</a> 
<a class="jxr_linenumber" name="353" href="#353">353</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_FEATURE_ID, source.getId());
<a class="jxr_linenumber" name="354" href="#354">354</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_FEATURE_URL, source.getUrl());
<a class="jxr_linenumber" name="355" href="#355">355</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_FEATURE_COMMON_NAME, source.getCommonName());
<a class="jxr_linenumber" name="356" href="#356">356</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_FEATURE_VERSION_LABEL, source.getVersionLabel());
<a class="jxr_linenumber" name="357" href="#357">357</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_FEATURE_DESCRIPTION, source.getDescription());
<a class="jxr_linenumber" name="358" href="#358">358</a>         <strong class="jxr_keyword">if</strong> (source.getFeatureData() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="359" href="#359">359</a>             <strong class="jxr_keyword">for</strong> (Map.Entry&lt;String, String&gt; data : source.getFeatureData().entrySet()) {
<a class="jxr_linenumber" name="360" href="#360">360</a>                 writer.startTag(NAMESPACE_CMIS, TAG_FEATURE_DATA);
<a class="jxr_linenumber" name="361" href="#361">361</a> 
<a class="jxr_linenumber" name="362" href="#362">362</a>                 XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_FEATURE_DATA_KEY, data.getKey());
<a class="jxr_linenumber" name="363" href="#363">363</a>                 XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_FEATURE_DATA_VALUE, data.getValue());
<a class="jxr_linenumber" name="364" href="#364">364</a> 
<a class="jxr_linenumber" name="365" href="#365">365</a>                 writer.endTag(NAMESPACE_CMIS, TAG_FEATURE_DATA);
<a class="jxr_linenumber" name="366" href="#366">366</a>             }
<a class="jxr_linenumber" name="367" href="#367">367</a>         }
<a class="jxr_linenumber" name="368" href="#368">368</a> 
<a class="jxr_linenumber" name="369" href="#369">369</a>         writeExtensions(writer, source);
<a class="jxr_linenumber" name="370" href="#370">370</a>         writer.endTag(NAMESPACE_CMIS, TAG_REPINFO_EXTENDED_FEATURES);
<a class="jxr_linenumber" name="371" href="#371">371</a>     }
<a class="jxr_linenumber" name="372" href="#372">372</a> 
<a class="jxr_linenumber" name="373" href="#373">373</a>     <em class="jxr_comment">// --------------------------</em>
<a class="jxr_linenumber" name="374" href="#374">374</a>     <em class="jxr_comment">// --- definition writers ---</em>
<a class="jxr_linenumber" name="375" href="#375">375</a>     <em class="jxr_comment">// --------------------------</em>
<a class="jxr_linenumber" name="376" href="#376">376</a> 
<a class="jxr_linenumber" name="377" href="#377">377</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> writeTypeDefinition(XmlSerializer writer, CmisVersion cmisVersion, String namespace,
<a class="jxr_linenumber" name="378" href="#378">378</a>             TypeDefinition source) <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="379" href="#379">379</a>         <strong class="jxr_keyword">if</strong> (source == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="380" href="#380">380</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="381" href="#381">381</a>         }
<a class="jxr_linenumber" name="382" href="#382">382</a> 
<a class="jxr_linenumber" name="383" href="#383">383</a>         <strong class="jxr_keyword">if</strong> (cmisVersion == CmisVersion.CMIS_1_0) {
<a class="jxr_linenumber" name="384" href="#384">384</a>             <strong class="jxr_keyword">if</strong> (source.getBaseTypeId() == BaseTypeId.CMIS_ITEM) {
<a class="jxr_linenumber" name="385" href="#385">385</a>                 LOG.warn(<span class="jxr_string">"Receiver only understands CMIS 1.0. It may not able to handle an Item type definition."</span>);
<a class="jxr_linenumber" name="386" href="#386">386</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (source.getBaseTypeId() == BaseTypeId.CMIS_SECONDARY) {
<a class="jxr_linenumber" name="387" href="#387">387</a>                 LOG.warn(<span class="jxr_string">"Receiver only understands CMIS 1.0. It may not able to handle a Secondary type definition."</span>);
<a class="jxr_linenumber" name="388" href="#388">388</a>             }
<a class="jxr_linenumber" name="389" href="#389">389</a>         }
<a class="jxr_linenumber" name="390" href="#390">390</a> 
<a class="jxr_linenumber" name="391" href="#391">391</a>         writer.setPrefix(PREFIX_XSI, NAMESPACE_XSI);
<a class="jxr_linenumber" name="392" href="#392">392</a>         writer.startTag(namespace, TAG_TYPE);
<a class="jxr_linenumber" name="393" href="#393">393</a>         writer.attribute(<span class="jxr_string">""</span>, XMLConstants.PREFIX_XSI, XMLConstants.NAMESPACE_XSI);
<a class="jxr_linenumber" name="394" href="#394">394</a> 
<a class="jxr_linenumber" name="395" href="#395">395</a>         <strong class="jxr_keyword">if</strong> (source.getBaseTypeId() == BaseTypeId.CMIS_DOCUMENT) {
<a class="jxr_linenumber" name="396" href="#396">396</a>             writer.attribute(NAMESPACE_XSI, <span class="jxr_string">"type"</span>, PREFIX_CMIS + <span class="jxr_string">":"</span> + ATTR_DOCUMENT_TYPE);
<a class="jxr_linenumber" name="397" href="#397">397</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (source.getBaseTypeId() == BaseTypeId.CMIS_FOLDER) {
<a class="jxr_linenumber" name="398" href="#398">398</a>             writer.attribute(NAMESPACE_XSI, <span class="jxr_string">"type"</span>, PREFIX_CMIS + <span class="jxr_string">":"</span> + ATTR_FOLDER_TYPE);
<a class="jxr_linenumber" name="399" href="#399">399</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (source.getBaseTypeId() == BaseTypeId.CMIS_RELATIONSHIP) {
<a class="jxr_linenumber" name="400" href="#400">400</a>             writer.attribute(NAMESPACE_XSI, <span class="jxr_string">"type"</span>, PREFIX_CMIS + <span class="jxr_string">":"</span> + ATTR_RELATIONSHIP_TYPE);
<a class="jxr_linenumber" name="401" href="#401">401</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (source.getBaseTypeId() == BaseTypeId.CMIS_POLICY) {
<a class="jxr_linenumber" name="402" href="#402">402</a>             writer.attribute(NAMESPACE_XSI, <span class="jxr_string">"type"</span>, PREFIX_CMIS + <span class="jxr_string">":"</span> + ATTR_POLICY_TYPE);
<a class="jxr_linenumber" name="403" href="#403">403</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (source.getBaseTypeId() == BaseTypeId.CMIS_ITEM) {
<a class="jxr_linenumber" name="404" href="#404">404</a>             writer.attribute(NAMESPACE_XSI, <span class="jxr_string">"type"</span>, PREFIX_CMIS + <span class="jxr_string">":"</span> + ATTR_ITEM_TYPE);
<a class="jxr_linenumber" name="405" href="#405">405</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (source.getBaseTypeId() == BaseTypeId.CMIS_SECONDARY) {
<a class="jxr_linenumber" name="406" href="#406">406</a>             writer.attribute(NAMESPACE_XSI, <span class="jxr_string">"type"</span>, PREFIX_CMIS + <span class="jxr_string">":"</span> + ATTR_SECONDARY_TYPE);
<a class="jxr_linenumber" name="407" href="#407">407</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="408" href="#408">408</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Type definition has no base type id!"</span>);
<a class="jxr_linenumber" name="409" href="#409">409</a>         }
<a class="jxr_linenumber" name="410" href="#410">410</a> 
<a class="jxr_linenumber" name="411" href="#411">411</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_TYPE_ID, source.getId());
<a class="jxr_linenumber" name="412" href="#412">412</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_TYPE_LOCALNAME, source.getLocalName());
<a class="jxr_linenumber" name="413" href="#413">413</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_TYPE_LOCALNAMESPACE, source.getLocalNamespace());
<a class="jxr_linenumber" name="414" href="#414">414</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_TYPE_DISPLAYNAME, source.getDisplayName());
<a class="jxr_linenumber" name="415" href="#415">415</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_TYPE_QUERYNAME, source.getQueryName());
<a class="jxr_linenumber" name="416" href="#416">416</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_TYPE_DESCRIPTION, source.getDescription());
<a class="jxr_linenumber" name="417" href="#417">417</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_TYPE_BASE_ID, source.getBaseTypeId());
<a class="jxr_linenumber" name="418" href="#418">418</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_TYPE_PARENT_ID, source.getParentTypeId());
<a class="jxr_linenumber" name="419" href="#419">419</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_TYPE_CREATABLE, source.isCreatable());
<a class="jxr_linenumber" name="420" href="#420">420</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_TYPE_FILEABLE, source.isFileable());
<a class="jxr_linenumber" name="421" href="#421">421</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_TYPE_QUERYABLE, source.isQueryable());
<a class="jxr_linenumber" name="422" href="#422">422</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_TYPE_FULLTEXT_INDEXED, source.isFulltextIndexed());
<a class="jxr_linenumber" name="423" href="#423">423</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_TYPE_INCLUDE_IN_SUPERTYPE_QUERY,
<a class="jxr_linenumber" name="424" href="#424">424</a>                 source.isIncludedInSupertypeQuery());
<a class="jxr_linenumber" name="425" href="#425">425</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_TYPE_CONTROLABLE_POLICY, source.isControllablePolicy());
<a class="jxr_linenumber" name="426" href="#426">426</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_TYPE_CONTROLABLE_ACL, source.isControllableAcl());
<a class="jxr_linenumber" name="427" href="#427">427</a>         <strong class="jxr_keyword">if</strong> (cmisVersion != CmisVersion.CMIS_1_0 &amp;&amp; source.getTypeMutability() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="428" href="#428">428</a>             TypeMutability tm = source.getTypeMutability();
<a class="jxr_linenumber" name="429" href="#429">429</a> 
<a class="jxr_linenumber" name="430" href="#430">430</a>             writer.startTag(NAMESPACE_CMIS, TAG_TYPE_TYPE_MUTABILITY);
<a class="jxr_linenumber" name="431" href="#431">431</a> 
<a class="jxr_linenumber" name="432" href="#432">432</a>             XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_TYPE_TYPE_MUTABILITY_CREATE, tm.canCreate());
<a class="jxr_linenumber" name="433" href="#433">433</a>             XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_TYPE_TYPE_MUTABILITY_UPDATE, tm.canUpdate());
<a class="jxr_linenumber" name="434" href="#434">434</a>             XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_TYPE_TYPE_MUTABILITY_DELETE, tm.canDelete());
<a class="jxr_linenumber" name="435" href="#435">435</a> 
<a class="jxr_linenumber" name="436" href="#436">436</a>             writeExtensions(writer, tm);
<a class="jxr_linenumber" name="437" href="#437">437</a>             writer.endTag(NAMESPACE_CMIS, TAG_TYPE_TYPE_MUTABILITY);
<a class="jxr_linenumber" name="438" href="#438">438</a>         }
<a class="jxr_linenumber" name="439" href="#439">439</a>         <strong class="jxr_keyword">if</strong> (source.getPropertyDefinitions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="440" href="#440">440</a>             <strong class="jxr_keyword">for</strong> (PropertyDefinition&lt;?&gt; pd : source.getPropertyDefinitions().values()) {
<a class="jxr_linenumber" name="441" href="#441">441</a>                 writePropertyDefinition(writer, cmisVersion, pd);
<a class="jxr_linenumber" name="442" href="#442">442</a>             }
<a class="jxr_linenumber" name="443" href="#443">443</a>         }
<a class="jxr_linenumber" name="444" href="#444">444</a> 
<a class="jxr_linenumber" name="445" href="#445">445</a>         <strong class="jxr_keyword">if</strong> (source instanceof DocumentTypeDefinition) {
<a class="jxr_linenumber" name="446" href="#446">446</a>             DocumentTypeDefinition docDef = (DocumentTypeDefinition) source;
<a class="jxr_linenumber" name="447" href="#447">447</a>             XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_TYPE_VERSIONABLE, docDef.isVersionable());
<a class="jxr_linenumber" name="448" href="#448">448</a>             XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_TYPE_CONTENTSTREAM_ALLOWED,
<a class="jxr_linenumber" name="449" href="#449">449</a>                     docDef.getContentStreamAllowed());
<a class="jxr_linenumber" name="450" href="#450">450</a>         }
<a class="jxr_linenumber" name="451" href="#451">451</a> 
<a class="jxr_linenumber" name="452" href="#452">452</a>         <strong class="jxr_keyword">if</strong> (source instanceof RelationshipTypeDefinition) {
<a class="jxr_linenumber" name="453" href="#453">453</a>             RelationshipTypeDefinition relDef = (RelationshipTypeDefinition) source;
<a class="jxr_linenumber" name="454" href="#454">454</a>             <strong class="jxr_keyword">if</strong> (relDef.getAllowedSourceTypeIds() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="455" href="#455">455</a>                 <strong class="jxr_keyword">for</strong> (String id : relDef.getAllowedSourceTypeIds()) {
<a class="jxr_linenumber" name="456" href="#456">456</a>                     <strong class="jxr_keyword">if</strong> (id != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="457" href="#457">457</a>                         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_TYPE_ALLOWED_SOURCE_TYPES, id);
<a class="jxr_linenumber" name="458" href="#458">458</a>                     }
<a class="jxr_linenumber" name="459" href="#459">459</a>                 }
<a class="jxr_linenumber" name="460" href="#460">460</a>             }
<a class="jxr_linenumber" name="461" href="#461">461</a>             <strong class="jxr_keyword">if</strong> (relDef.getAllowedTargetTypeIds() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="462" href="#462">462</a>                 <strong class="jxr_keyword">for</strong> (String id : relDef.getAllowedTargetTypeIds()) {
<a class="jxr_linenumber" name="463" href="#463">463</a>                     <strong class="jxr_keyword">if</strong> (id != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="464" href="#464">464</a>                         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_TYPE_ALLOWED_TARGET_TYPES, id);
<a class="jxr_linenumber" name="465" href="#465">465</a>                     }
<a class="jxr_linenumber" name="466" href="#466">466</a>                 }
<a class="jxr_linenumber" name="467" href="#467">467</a>             }
<a class="jxr_linenumber" name="468" href="#468">468</a>         }
<a class="jxr_linenumber" name="469" href="#469">469</a> 
<a class="jxr_linenumber" name="470" href="#470">470</a>         writeExtensions(writer, source);
<a class="jxr_linenumber" name="471" href="#471">471</a>         writer.endTag(namespace, TAG_TYPE);
<a class="jxr_linenumber" name="472" href="#472">472</a>     }
<a class="jxr_linenumber" name="473" href="#473">473</a> 
<a class="jxr_linenumber" name="474" href="#474">474</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> writePropertyDefinition(XmlSerializer writer, CmisVersion cmisVersion,
<a class="jxr_linenumber" name="475" href="#475">475</a>             PropertyDefinition&lt;?&gt; source) <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="476" href="#476">476</a>         <strong class="jxr_keyword">if</strong> (source == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="477" href="#477">477</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="478" href="#478">478</a>         }
<a class="jxr_linenumber" name="479" href="#479">479</a> 
<a class="jxr_linenumber" name="480" href="#480">480</a>         <strong class="jxr_keyword">if</strong> (source.getPropertyType() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="481" href="#481">481</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Property type for property definition '"</span> + source.getId() + <span class="jxr_string">"' is not set!"</span>);
<a class="jxr_linenumber" name="482" href="#482">482</a>         }
<a class="jxr_linenumber" name="483" href="#483">483</a> 
<a class="jxr_linenumber" name="484" href="#484">484</a>         String tagName = <span class="jxr_string">""</span>;
<a class="jxr_linenumber" name="485" href="#485">485</a>         <strong class="jxr_keyword">switch</strong> (source.getPropertyType()) {
<a class="jxr_linenumber" name="486" href="#486">486</a>         <strong class="jxr_keyword">case</strong> STRING:
<a class="jxr_linenumber" name="487" href="#487">487</a>             tagName = TAG_TYPE_PROP_DEF_STRING;
<a class="jxr_linenumber" name="488" href="#488">488</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="489" href="#489">489</a>         <strong class="jxr_keyword">case</strong> ID:
<a class="jxr_linenumber" name="490" href="#490">490</a>             tagName = TAG_TYPE_PROP_DEF_ID;
<a class="jxr_linenumber" name="491" href="#491">491</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="492" href="#492">492</a>         <strong class="jxr_keyword">case</strong> INTEGER:
<a class="jxr_linenumber" name="493" href="#493">493</a>             tagName = TAG_TYPE_PROP_DEF_INTEGER;
<a class="jxr_linenumber" name="494" href="#494">494</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="495" href="#495">495</a>         <strong class="jxr_keyword">case</strong> BOOLEAN:
<a class="jxr_linenumber" name="496" href="#496">496</a>             tagName = TAG_TYPE_PROP_DEF_BOOLEAN;
<a class="jxr_linenumber" name="497" href="#497">497</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="498" href="#498">498</a>         <strong class="jxr_keyword">case</strong> DATETIME:
<a class="jxr_linenumber" name="499" href="#499">499</a>             tagName = TAG_TYPE_PROP_DEF_DATETIME;
<a class="jxr_linenumber" name="500" href="#500">500</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="501" href="#501">501</a>         <strong class="jxr_keyword">case</strong> DECIMAL:
<a class="jxr_linenumber" name="502" href="#502">502</a>             tagName = TAG_TYPE_PROP_DEF_DECIMAL;
<a class="jxr_linenumber" name="503" href="#503">503</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="504" href="#504">504</a>         <strong class="jxr_keyword">case</strong> HTML:
<a class="jxr_linenumber" name="505" href="#505">505</a>             tagName = TAG_TYPE_PROP_DEF_HTML;
<a class="jxr_linenumber" name="506" href="#506">506</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="507" href="#507">507</a>         <strong class="jxr_keyword">case</strong> URI:
<a class="jxr_linenumber" name="508" href="#508">508</a>             tagName = TAG_TYPE_PROP_DEF_URI;
<a class="jxr_linenumber" name="509" href="#509">509</a>             <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="510" href="#510">510</a>         <strong class="jxr_keyword">default</strong>:
<a class="jxr_linenumber" name="511" href="#511">511</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Property defintion has no property type!"</span>);
<a class="jxr_linenumber" name="512" href="#512">512</a>         }
<a class="jxr_linenumber" name="513" href="#513">513</a>         writer.startTag(NAMESPACE_CMIS, tagName);
<a class="jxr_linenumber" name="514" href="#514">514</a> 
<a class="jxr_linenumber" name="515" href="#515">515</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_ID, source.getId());
<a class="jxr_linenumber" name="516" href="#516">516</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_LOCALNAME, source.getLocalName());
<a class="jxr_linenumber" name="517" href="#517">517</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_LOCALNAMESPACE,
<a class="jxr_linenumber" name="518" href="#518">518</a>                 source.getLocalNamespace());
<a class="jxr_linenumber" name="519" href="#519">519</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_DISPLAYNAME, source.getDisplayName());
<a class="jxr_linenumber" name="520" href="#520">520</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_QUERYNAME, source.getQueryName());
<a class="jxr_linenumber" name="521" href="#521">521</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_DESCRIPTION, source.getDescription());
<a class="jxr_linenumber" name="522" href="#522">522</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_PROPERTY_TYPE, source.getPropertyType());
<a class="jxr_linenumber" name="523" href="#523">523</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_CARDINALITY, source.getCardinality());
<a class="jxr_linenumber" name="524" href="#524">524</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_UPDATABILITY, source.getUpdatability());
<a class="jxr_linenumber" name="525" href="#525">525</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_INHERITED, source.isInherited());
<a class="jxr_linenumber" name="526" href="#526">526</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_REQUIRED, source.isRequired());
<a class="jxr_linenumber" name="527" href="#527">527</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_QUERYABLE, source.isQueryable());
<a class="jxr_linenumber" name="528" href="#528">528</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_ORDERABLE, source.isOrderable());
<a class="jxr_linenumber" name="529" href="#529">529</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_OPENCHOICE, source.isOpenChoice());
<a class="jxr_linenumber" name="530" href="#530">530</a> 
<a class="jxr_linenumber" name="531" href="#531">531</a>         <strong class="jxr_keyword">if</strong> (source instanceof PropertyStringDefinition) {
<a class="jxr_linenumber" name="532" href="#532">532</a>             PropertyStringDefinition def = (PropertyStringDefinition) source;
<a class="jxr_linenumber" name="533" href="#533">533</a> 
<a class="jxr_linenumber" name="534" href="#534">534</a>             <strong class="jxr_keyword">if</strong> (def.getDefaultValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="535" href="#535">535</a>                 writeProperty(writer, <strong class="jxr_keyword">new</strong> PropertyStringImpl((String) <strong class="jxr_keyword">null</strong>, def.getDefaultValue()), <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="536" href="#536">536</a>             }
<a class="jxr_linenumber" name="537" href="#537">537</a> 
<a class="jxr_linenumber" name="538" href="#538">538</a>             XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_MAX_LENGTH, def.getMaxLength());
<a class="jxr_linenumber" name="539" href="#539">539</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (source instanceof PropertyIdDefinition) {
<a class="jxr_linenumber" name="540" href="#540">540</a>             PropertyIdDefinition def = (PropertyIdDefinition) source;
<a class="jxr_linenumber" name="541" href="#541">541</a> 
<a class="jxr_linenumber" name="542" href="#542">542</a>             <strong class="jxr_keyword">if</strong> (def.getDefaultValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="543" href="#543">543</a>                 writeProperty(writer, <strong class="jxr_keyword">new</strong> PropertyIdImpl((String) <strong class="jxr_keyword">null</strong>, def.getDefaultValue()), <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="544" href="#544">544</a>             }
<a class="jxr_linenumber" name="545" href="#545">545</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (source instanceof PropertyIntegerDefinition) {
<a class="jxr_linenumber" name="546" href="#546">546</a>             PropertyIntegerDefinition def = (PropertyIntegerDefinition) source;
<a class="jxr_linenumber" name="547" href="#547">547</a> 
<a class="jxr_linenumber" name="548" href="#548">548</a>             <strong class="jxr_keyword">if</strong> (def.getDefaultValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="549" href="#549">549</a>                 writeProperty(writer, <strong class="jxr_keyword">new</strong> PropertyIntegerImpl((String) <strong class="jxr_keyword">null</strong>, def.getDefaultValue()), <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="550" href="#550">550</a>             }
<a class="jxr_linenumber" name="551" href="#551">551</a> 
<a class="jxr_linenumber" name="552" href="#552">552</a>             XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_MAX_VALUE, def.getMaxValue());
<a class="jxr_linenumber" name="553" href="#553">553</a>             XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_MIN_VALUE, def.getMinValue());
<a class="jxr_linenumber" name="554" href="#554">554</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (source instanceof PropertyBooleanDefinition) {
<a class="jxr_linenumber" name="555" href="#555">555</a>             PropertyBooleanDefinition def = (PropertyBooleanDefinition) source;
<a class="jxr_linenumber" name="556" href="#556">556</a> 
<a class="jxr_linenumber" name="557" href="#557">557</a>             <strong class="jxr_keyword">if</strong> (def.getDefaultValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="558" href="#558">558</a>                 writeProperty(writer, <strong class="jxr_keyword">new</strong> PropertyBooleanImpl((String) <strong class="jxr_keyword">null</strong>, def.getDefaultValue()), <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="559" href="#559">559</a>             }
<a class="jxr_linenumber" name="560" href="#560">560</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (source instanceof PropertyDateTimeDefinition) {
<a class="jxr_linenumber" name="561" href="#561">561</a>             PropertyDateTimeDefinition def = (PropertyDateTimeDefinition) source;
<a class="jxr_linenumber" name="562" href="#562">562</a> 
<a class="jxr_linenumber" name="563" href="#563">563</a>             <strong class="jxr_keyword">if</strong> (def.getDefaultValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="564" href="#564">564</a>                 writeProperty(writer, <strong class="jxr_keyword">new</strong> PropertyDateTimeImpl((String) <strong class="jxr_keyword">null</strong>, def.getDefaultValue()), <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="565" href="#565">565</a>             }
<a class="jxr_linenumber" name="566" href="#566">566</a> 
<a class="jxr_linenumber" name="567" href="#567">567</a>             XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_RESOLUTION,
<a class="jxr_linenumber" name="568" href="#568">568</a>                     def.getDateTimeResolution());
<a class="jxr_linenumber" name="569" href="#569">569</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (source instanceof PropertyDecimalDefinition) {
<a class="jxr_linenumber" name="570" href="#570">570</a>             PropertyDecimalDefinition def = (PropertyDecimalDefinition) source;
<a class="jxr_linenumber" name="571" href="#571">571</a> 
<a class="jxr_linenumber" name="572" href="#572">572</a>             <strong class="jxr_keyword">if</strong> (def.getDefaultValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="573" href="#573">573</a>                 writeProperty(writer, <strong class="jxr_keyword">new</strong> PropertyDecimalImpl((String) <strong class="jxr_keyword">null</strong>, def.getDefaultValue()), <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="574" href="#574">574</a>             }
<a class="jxr_linenumber" name="575" href="#575">575</a> 
<a class="jxr_linenumber" name="576" href="#576">576</a>             XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_MAX_VALUE, def.getMaxValue());
<a class="jxr_linenumber" name="577" href="#577">577</a>             XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_MIN_VALUE, def.getMinValue());
<a class="jxr_linenumber" name="578" href="#578">578</a>             XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_PRECISION, def.getPrecision());
<a class="jxr_linenumber" name="579" href="#579">579</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (source instanceof PropertyHtmlDefinition) {
<a class="jxr_linenumber" name="580" href="#580">580</a>             PropertyHtmlDefinition def = (PropertyHtmlDefinition) source;
<a class="jxr_linenumber" name="581" href="#581">581</a> 
<a class="jxr_linenumber" name="582" href="#582">582</a>             <strong class="jxr_keyword">if</strong> (def.getDefaultValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="583" href="#583">583</a>                 writeProperty(writer, <strong class="jxr_keyword">new</strong> PropertyHtmlImpl((String) <strong class="jxr_keyword">null</strong>, def.getDefaultValue()), <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="584" href="#584">584</a>             }
<a class="jxr_linenumber" name="585" href="#585">585</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (source instanceof PropertyUriDefinition) {
<a class="jxr_linenumber" name="586" href="#586">586</a>             PropertyUriDefinition def = (PropertyUriDefinition) source;
<a class="jxr_linenumber" name="587" href="#587">587</a> 
<a class="jxr_linenumber" name="588" href="#588">588</a>             <strong class="jxr_keyword">if</strong> (def.getDefaultValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="589" href="#589">589</a>                 writeProperty(writer, <strong class="jxr_keyword">new</strong> PropertyUriImpl((String) <strong class="jxr_keyword">null</strong>, def.getDefaultValue()), <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="590" href="#590">590</a>             }
<a class="jxr_linenumber" name="591" href="#591">591</a>         }
<a class="jxr_linenumber" name="592" href="#592">592</a> 
<a class="jxr_linenumber" name="593" href="#593">593</a>         <strong class="jxr_keyword">if</strong> (source.getChoices() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="594" href="#594">594</a>             <strong class="jxr_keyword">for</strong> (Choice&lt;?&gt; c : source.getChoices()) {
<a class="jxr_linenumber" name="595" href="#595">595</a>                 <strong class="jxr_keyword">if</strong> (c != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="596" href="#596">596</a>                     writeChoice(writer, source.getPropertyType(), c);
<a class="jxr_linenumber" name="597" href="#597">597</a>                 }
<a class="jxr_linenumber" name="598" href="#598">598</a>             }
<a class="jxr_linenumber" name="599" href="#599">599</a>         }
<a class="jxr_linenumber" name="600" href="#600">600</a> 
<a class="jxr_linenumber" name="601" href="#601">601</a>         writeExtensions(writer, source);
<a class="jxr_linenumber" name="602" href="#602">602</a>         writer.endTag(NAMESPACE_CMIS, tagName);
<a class="jxr_linenumber" name="603" href="#603">603</a>     }
<a class="jxr_linenumber" name="604" href="#604">604</a> 
<a class="jxr_linenumber" name="605" href="#605">605</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="606" href="#606">606</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> writeChoice(XmlSerializer writer, PropertyType propType, Choice&lt;?&gt; source) <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="607" href="#607">607</a>         <strong class="jxr_keyword">if</strong> (source == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="608" href="#608">608</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="609" href="#609">609</a>         }
<a class="jxr_linenumber" name="610" href="#610">610</a> 
<a class="jxr_linenumber" name="611" href="#611">611</a>         writer.startTag(NAMESPACE_CMIS, TAG_PROPERTY_TYPE_CHOICE);
<a class="jxr_linenumber" name="612" href="#612">612</a> 
<a class="jxr_linenumber" name="613" href="#613">613</a>         <strong class="jxr_keyword">if</strong> (source.getDisplayName() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="614" href="#614">614</a>             writer.attribute(<span class="jxr_string">""</span>, ATTR_PROPERTY_TYPE_CHOICE_DISPLAYNAME, source.getDisplayName());
<a class="jxr_linenumber" name="615" href="#615">615</a>         }
<a class="jxr_linenumber" name="616" href="#616">616</a> 
<a class="jxr_linenumber" name="617" href="#617">617</a>         <strong class="jxr_keyword">if</strong> (source.getValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="618" href="#618">618</a>             <strong class="jxr_keyword">switch</strong> (propType) {
<a class="jxr_linenumber" name="619" href="#619">619</a>             <strong class="jxr_keyword">case</strong> STRING:
<a class="jxr_linenumber" name="620" href="#620">620</a>             <strong class="jxr_keyword">case</strong> ID:
<a class="jxr_linenumber" name="621" href="#621">621</a>             <strong class="jxr_keyword">case</strong> HTML:
<a class="jxr_linenumber" name="622" href="#622">622</a>             <strong class="jxr_keyword">case</strong> URI:
<a class="jxr_linenumber" name="623" href="#623">623</a>                 <strong class="jxr_keyword">for</strong> (String value : (List&lt;String&gt;) source.getValue()) {
<a class="jxr_linenumber" name="624" href="#624">624</a>                     XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_CHOICE_VALUE, value);
<a class="jxr_linenumber" name="625" href="#625">625</a>                 }
<a class="jxr_linenumber" name="626" href="#626">626</a>                 <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="627" href="#627">627</a>             <strong class="jxr_keyword">case</strong> INTEGER:
<a class="jxr_linenumber" name="628" href="#628">628</a>                 <strong class="jxr_keyword">for</strong> (BigInteger value : (List&lt;BigInteger&gt;) source.getValue()) {
<a class="jxr_linenumber" name="629" href="#629">629</a>                     XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_CHOICE_VALUE, value);
<a class="jxr_linenumber" name="630" href="#630">630</a>                 }
<a class="jxr_linenumber" name="631" href="#631">631</a>                 <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="632" href="#632">632</a>             <strong class="jxr_keyword">case</strong> BOOLEAN:
<a class="jxr_linenumber" name="633" href="#633">633</a>                 <strong class="jxr_keyword">for</strong> (Boolean value : (List&lt;Boolean&gt;) source.getValue()) {
<a class="jxr_linenumber" name="634" href="#634">634</a>                     XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_CHOICE_VALUE, value);
<a class="jxr_linenumber" name="635" href="#635">635</a>                 }
<a class="jxr_linenumber" name="636" href="#636">636</a>                 <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="637" href="#637">637</a>             <strong class="jxr_keyword">case</strong> DATETIME:
<a class="jxr_linenumber" name="638" href="#638">638</a>                 <strong class="jxr_keyword">for</strong> (GregorianCalendar value : (List&lt;GregorianCalendar&gt;) source.getValue()) {
<a class="jxr_linenumber" name="639" href="#639">639</a>                     XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_CHOICE_VALUE, value);
<a class="jxr_linenumber" name="640" href="#640">640</a>                 }
<a class="jxr_linenumber" name="641" href="#641">641</a>                 <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="642" href="#642">642</a>             <strong class="jxr_keyword">case</strong> DECIMAL:
<a class="jxr_linenumber" name="643" href="#643">643</a>                 <strong class="jxr_keyword">for</strong> (BigDecimal value : (List&lt;BigDecimal&gt;) source.getValue()) {
<a class="jxr_linenumber" name="644" href="#644">644</a>                     XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_TYPE_CHOICE_VALUE, value);
<a class="jxr_linenumber" name="645" href="#645">645</a>                 }
<a class="jxr_linenumber" name="646" href="#646">646</a>                 <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="647" href="#647">647</a>             <strong class="jxr_keyword">default</strong>:
<a class="jxr_linenumber" name="648" href="#648">648</a>             }
<a class="jxr_linenumber" name="649" href="#649">649</a>         }
<a class="jxr_linenumber" name="650" href="#650">650</a> 
<a class="jxr_linenumber" name="651" href="#651">651</a>         <strong class="jxr_keyword">if</strong> (source.getChoice() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="652" href="#652">652</a>             <strong class="jxr_keyword">for</strong> (Choice&lt;?&gt; c : source.getChoice()) {
<a class="jxr_linenumber" name="653" href="#653">653</a>                 <strong class="jxr_keyword">if</strong> (c != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="654" href="#654">654</a>                     writeChoice(writer, propType, c);
<a class="jxr_linenumber" name="655" href="#655">655</a>                 }
<a class="jxr_linenumber" name="656" href="#656">656</a>             }
<a class="jxr_linenumber" name="657" href="#657">657</a>         }
<a class="jxr_linenumber" name="658" href="#658">658</a> 
<a class="jxr_linenumber" name="659" href="#659">659</a>         writer.endTag(NAMESPACE_CMIS, TAG_PROPERTY_TYPE_CHOICE);
<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>     <em class="jxr_comment">// -----------------------</em>
<a class="jxr_linenumber" name="663" href="#663">663</a>     <em class="jxr_comment">// --- object writers ---</em>
<a class="jxr_linenumber" name="664" href="#664">664</a>     <em class="jxr_comment">// -----------------------</em>
<a class="jxr_linenumber" name="665" href="#665">665</a> 
<a class="jxr_linenumber" name="666" href="#666">666</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> writeObject(XmlSerializer writer, CmisVersion cmisVersion, String namespace, ObjectData source)
<a class="jxr_linenumber" name="667" href="#667">667</a>             <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="668" href="#668">668</a>         writeObject(writer, cmisVersion, false, TAG_OBJECT, namespace, source);
<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>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> writeObject(XmlSerializer writer, CmisVersion cmisVersion, <strong class="jxr_keyword">boolean</strong> root, String name,
<a class="jxr_linenumber" name="672" href="#672">672</a>             String namespace, ObjectData source) <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="673" href="#673">673</a> 
<a class="jxr_linenumber" name="674" href="#674">674</a>         <strong class="jxr_keyword">if</strong> (source == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="675" href="#675">675</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="676" href="#676">676</a>         }
<a class="jxr_linenumber" name="677" href="#677">677</a> 
<a class="jxr_linenumber" name="678" href="#678">678</a>         <strong class="jxr_keyword">if</strong> (cmisVersion == CmisVersion.CMIS_1_0) {
<a class="jxr_linenumber" name="679" href="#679">679</a>             <strong class="jxr_keyword">if</strong> (source.getBaseTypeId() == BaseTypeId.CMIS_ITEM) {
<a class="jxr_linenumber" name="680" href="#680">680</a>                 LOG.warn(<span class="jxr_string">"Receiver only understands CMIS 1.0. It may not be able to handle an Item object."</span>);
<a class="jxr_linenumber" name="681" href="#681">681</a>             }
<a class="jxr_linenumber" name="682" href="#682">682</a>         }
<a class="jxr_linenumber" name="683" href="#683">683</a> 
<a class="jxr_linenumber" name="684" href="#684">684</a>         <strong class="jxr_keyword">if</strong> (root) {
<a class="jxr_linenumber" name="685" href="#685">685</a>             writer.startTag(NAMESPACE_CMIS, name);
<a class="jxr_linenumber" name="686" href="#686">686</a>             writer.attribute(<span class="jxr_string">""</span>, PREFIX_CMIS, NAMESPACE_CMIS);
<a class="jxr_linenumber" name="687" href="#687">687</a>             namespace = NAMESPACE_CMIS;
<a class="jxr_linenumber" name="688" href="#688">688</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="689" href="#689">689</a>             writer.startTag(namespace, name);
<a class="jxr_linenumber" name="690" href="#690">690</a>         }
<a class="jxr_linenumber" name="691" href="#691">691</a> 
<a class="jxr_linenumber" name="692" href="#692">692</a>         <strong class="jxr_keyword">if</strong> (source.getProperties() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="693" href="#693">693</a>             Properties properties = source.getProperties();
<a class="jxr_linenumber" name="694" href="#694">694</a> 
<a class="jxr_linenumber" name="695" href="#695">695</a>             writer.startTag(NAMESPACE_CMIS, TAG_OBJECT_PROPERTIES);
<a class="jxr_linenumber" name="696" href="#696">696</a> 
<a class="jxr_linenumber" name="697" href="#697">697</a>             <strong class="jxr_keyword">if</strong> (properties.getPropertyList() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="698" href="#698">698</a>                 <strong class="jxr_keyword">for</strong> (PropertyData&lt;?&gt; property : properties.getPropertyList()) {
<a class="jxr_linenumber" name="699" href="#699">699</a>                     writeProperty(writer, property, false);
<a class="jxr_linenumber" name="700" href="#700">700</a>                 }
<a class="jxr_linenumber" name="701" href="#701">701</a>             }
<a class="jxr_linenumber" name="702" href="#702">702</a> 
<a class="jxr_linenumber" name="703" href="#703">703</a>             writeExtensions(writer, properties);
<a class="jxr_linenumber" name="704" href="#704">704</a>             writer.endTag(NAMESPACE_CMIS, TAG_OBJECT_PROPERTIES);
<a class="jxr_linenumber" name="705" href="#705">705</a>         }
<a class="jxr_linenumber" name="706" href="#706">706</a>         <strong class="jxr_keyword">if</strong> (source.getAllowableActions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="707" href="#707">707</a>             writeAllowableActions(writer, cmisVersion, false, source.getAllowableActions());
<a class="jxr_linenumber" name="708" href="#708">708</a>         }
<a class="jxr_linenumber" name="709" href="#709">709</a>         <strong class="jxr_keyword">if</strong> (source.getRelationships() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="710" href="#710">710</a>             <strong class="jxr_keyword">for</strong> (ObjectData rel : source.getRelationships()) {
<a class="jxr_linenumber" name="711" href="#711">711</a>                 <strong class="jxr_keyword">if</strong> (rel != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="712" href="#712">712</a>                     writeObject(writer, cmisVersion, false, TAG_OBJECT_RELATIONSHIP, NAMESPACE_CMIS, rel);
<a class="jxr_linenumber" name="713" href="#713">713</a>                 }
<a class="jxr_linenumber" name="714" href="#714">714</a>             }
<a class="jxr_linenumber" name="715" href="#715">715</a>         }
<a class="jxr_linenumber" name="716" href="#716">716</a>         <strong class="jxr_keyword">if</strong> (source.getChangeEventInfo() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="717" href="#717">717</a>             ChangeEventInfo info = source.getChangeEventInfo();
<a class="jxr_linenumber" name="718" href="#718">718</a> 
<a class="jxr_linenumber" name="719" href="#719">719</a>             writer.startTag(NAMESPACE_CMIS, TAG_OBJECT_CHANGE_EVENT_INFO);
<a class="jxr_linenumber" name="720" href="#720">720</a> 
<a class="jxr_linenumber" name="721" href="#721">721</a>             XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CHANGE_EVENT_TYPE, info.getChangeType());
<a class="jxr_linenumber" name="722" href="#722">722</a>             XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_CHANGE_EVENT_TIME, info.getChangeTime());
<a class="jxr_linenumber" name="723" href="#723">723</a> 
<a class="jxr_linenumber" name="724" href="#724">724</a>             writeExtensions(writer, info);
<a class="jxr_linenumber" name="725" href="#725">725</a>             writer.endTag(NAMESPACE_CMIS, TAG_OBJECT_CHANGE_EVENT_INFO);
<a class="jxr_linenumber" name="726" href="#726">726</a>         }
<a class="jxr_linenumber" name="727" href="#727">727</a>         <strong class="jxr_keyword">if</strong> (source.getAcl() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="728" href="#728">728</a>             writeAcl(writer, cmisVersion, false, source.getAcl());
<a class="jxr_linenumber" name="729" href="#729">729</a>         }
<a class="jxr_linenumber" name="730" href="#730">730</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_OBJECT_EXACT_ACL, source.isExactAcl());
<a class="jxr_linenumber" name="731" href="#731">731</a>         <strong class="jxr_keyword">if</strong> (source.getPolicyIds() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="732" href="#732">732</a>             PolicyIdList pids = source.getPolicyIds();
<a class="jxr_linenumber" name="733" href="#733">733</a> 
<a class="jxr_linenumber" name="734" href="#734">734</a>             writer.startTag(NAMESPACE_CMIS, TAG_OBJECT_POLICY_IDS);
<a class="jxr_linenumber" name="735" href="#735">735</a> 
<a class="jxr_linenumber" name="736" href="#736">736</a>             <strong class="jxr_keyword">if</strong> (pids.getPolicyIds() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="737" href="#737">737</a>                 <strong class="jxr_keyword">for</strong> (String id : pids.getPolicyIds()) {
<a class="jxr_linenumber" name="738" href="#738">738</a>                     <strong class="jxr_keyword">if</strong> (id != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="739" href="#739">739</a>                         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_POLICY_ID, id);
<a class="jxr_linenumber" name="740" href="#740">740</a>                     }
<a class="jxr_linenumber" name="741" href="#741">741</a>                 }
<a class="jxr_linenumber" name="742" href="#742">742</a>             }
<a class="jxr_linenumber" name="743" href="#743">743</a> 
<a class="jxr_linenumber" name="744" href="#744">744</a>             writeExtensions(writer, pids);
<a class="jxr_linenumber" name="745" href="#745">745</a>             writer.endTag(NAMESPACE_CMIS, TAG_OBJECT_POLICY_IDS);
<a class="jxr_linenumber" name="746" href="#746">746</a>         }
<a class="jxr_linenumber" name="747" href="#747">747</a>         <strong class="jxr_keyword">if</strong> (source.getRenditions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="748" href="#748">748</a>             <strong class="jxr_keyword">for</strong> (RenditionData rend : source.getRenditions()) {
<a class="jxr_linenumber" name="749" href="#749">749</a>                 <strong class="jxr_keyword">if</strong> (rend != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="750" href="#750">750</a>                     writer.startTag(NAMESPACE_CMIS, TAG_OBJECT_RENDITION);
<a class="jxr_linenumber" name="751" href="#751">751</a> 
<a class="jxr_linenumber" name="752" href="#752">752</a>                     XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_RENDITION_STREAM_ID, rend.getStreamId());
<a class="jxr_linenumber" name="753" href="#753">753</a>                     XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_RENDITION_MIMETYPE, rend.getMimeType());
<a class="jxr_linenumber" name="754" href="#754">754</a>                     XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_RENDITION_LENGTH, rend.getBigLength());
<a class="jxr_linenumber" name="755" href="#755">755</a>                     XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_RENDITION_KIND, rend.getKind());
<a class="jxr_linenumber" name="756" href="#756">756</a>                     XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_RENDITION_TITLE, rend.getTitle());
<a class="jxr_linenumber" name="757" href="#757">757</a>                     XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_RENDITION_HEIGHT, rend.getBigHeight());
<a class="jxr_linenumber" name="758" href="#758">758</a>                     XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_RENDITION_WIDTH, rend.getBigWidth());
<a class="jxr_linenumber" name="759" href="#759">759</a>                     XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_RENDITION_DOCUMENT_ID,
<a class="jxr_linenumber" name="760" href="#760">760</a>                             rend.getRenditionDocumentId());
<a class="jxr_linenumber" name="761" href="#761">761</a> 
<a class="jxr_linenumber" name="762" href="#762">762</a>                     writeExtensions(writer, rend);
<a class="jxr_linenumber" name="763" href="#763">763</a>                     writer.endTag(NAMESPACE_CMIS, TAG_OBJECT_RENDITION);
<a class="jxr_linenumber" name="764" href="#764">764</a>                 }
<a class="jxr_linenumber" name="765" href="#765">765</a>             }
<a class="jxr_linenumber" name="766" href="#766">766</a>         }
<a class="jxr_linenumber" name="767" href="#767">767</a> 
<a class="jxr_linenumber" name="768" href="#768">768</a>         writeExtensions(writer, source);
<a class="jxr_linenumber" name="769" href="#769">769</a>         writer.endTag(namespace, name);
<a class="jxr_linenumber" name="770" href="#770">770</a>     }
<a class="jxr_linenumber" name="771" href="#771">771</a> 
<a class="jxr_linenumber" name="772" href="#772">772</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="773" href="#773">773</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> writeProperty(XmlSerializer writer, PropertyData&lt;?&gt; source, <strong class="jxr_keyword">boolean</strong> isDefaultValue)
<a class="jxr_linenumber" name="774" href="#774">774</a>             <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="775" href="#775">775</a>         <strong class="jxr_keyword">if</strong> (source == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="776" href="#776">776</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="777" href="#777">777</a>         }
<a class="jxr_linenumber" name="778" href="#778">778</a> 
<a class="jxr_linenumber" name="779" href="#779">779</a>         String tagName = TAG_PROPERTY_TYPE_DEAULT_VALUE;
<a class="jxr_linenumber" name="780" href="#780">780</a>         <strong class="jxr_keyword">if</strong> (isDefaultValue) {
<a class="jxr_linenumber" name="781" href="#781">781</a>             tagName = TAG_PROPERTY_TYPE_DEAULT_VALUE;
<a class="jxr_linenumber" name="782" href="#782">782</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="783" href="#783">783</a>             <strong class="jxr_keyword">if</strong> (source instanceof PropertyString) {
<a class="jxr_linenumber" name="784" href="#784">784</a>                 tagName = TAG_PROP_STRING;
<a class="jxr_linenumber" name="785" href="#785">785</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (source instanceof PropertyId) {
<a class="jxr_linenumber" name="786" href="#786">786</a>                 tagName = TAG_PROP_ID;
<a class="jxr_linenumber" name="787" href="#787">787</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (source instanceof PropertyInteger) {
<a class="jxr_linenumber" name="788" href="#788">788</a>                 tagName = TAG_PROP_INTEGER;
<a class="jxr_linenumber" name="789" href="#789">789</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (source instanceof PropertyBoolean) {
<a class="jxr_linenumber" name="790" href="#790">790</a>                 tagName = TAG_PROP_BOOLEAN;
<a class="jxr_linenumber" name="791" href="#791">791</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (source instanceof PropertyDateTime) {
<a class="jxr_linenumber" name="792" href="#792">792</a>                 tagName = TAG_PROP_DATETIME;
<a class="jxr_linenumber" name="793" href="#793">793</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (source instanceof PropertyDecimal) {
<a class="jxr_linenumber" name="794" href="#794">794</a>                 tagName = TAG_PROP_DECIMAL;
<a class="jxr_linenumber" name="795" href="#795">795</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (source instanceof PropertyHtml) {
<a class="jxr_linenumber" name="796" href="#796">796</a>                 tagName = TAG_PROP_HTML;
<a class="jxr_linenumber" name="797" href="#797">797</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (source instanceof PropertyUri) {
<a class="jxr_linenumber" name="798" href="#798">798</a>                 tagName = TAG_PROP_URI;
<a class="jxr_linenumber" name="799" href="#799">799</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="800" href="#800">800</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Invalid property!"</span>);
<a class="jxr_linenumber" name="801" href="#801">801</a>             }
<a class="jxr_linenumber" name="802" href="#802">802</a>         }
<a class="jxr_linenumber" name="803" href="#803">803</a> 
<a class="jxr_linenumber" name="804" href="#804">804</a>         writer.startTag(NAMESPACE_CMIS, tagName);
<a class="jxr_linenumber" name="805" href="#805">805</a> 
<a class="jxr_linenumber" name="806" href="#806">806</a>         <strong class="jxr_keyword">if</strong> (source.getId() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="807" href="#807">807</a>             writer.attribute(<strong class="jxr_keyword">null</strong>, ATTR_PROPERTY_ID, source.getId());
<a class="jxr_linenumber" name="808" href="#808">808</a>         }
<a class="jxr_linenumber" name="809" href="#809">809</a>         <strong class="jxr_keyword">if</strong> (source.getDisplayName() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="810" href="#810">810</a>             writer.attribute(<strong class="jxr_keyword">null</strong>, ATTR_PROPERTY_DISPLAYNAME, source.getDisplayName());
<a class="jxr_linenumber" name="811" href="#811">811</a>         }
<a class="jxr_linenumber" name="812" href="#812">812</a>         <strong class="jxr_keyword">if</strong> (source.getLocalName() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="813" href="#813">813</a>             writer.attribute(<strong class="jxr_keyword">null</strong>, ATTR_PROPERTY_LOCALNAME, source.getLocalName());
<a class="jxr_linenumber" name="814" href="#814">814</a>         }
<a class="jxr_linenumber" name="815" href="#815">815</a>         <strong class="jxr_keyword">if</strong> (source.getQueryName() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="816" href="#816">816</a>             writer.attribute(<strong class="jxr_keyword">null</strong>, ATTR_PROPERTY_QUERYNAME, source.getQueryName());
<a class="jxr_linenumber" name="817" href="#817">817</a>         }
<a class="jxr_linenumber" name="818" href="#818">818</a> 
<a class="jxr_linenumber" name="819" href="#819">819</a>         <strong class="jxr_keyword">if</strong> ((source instanceof PropertyString) || (source instanceof PropertyId) || (source instanceof PropertyHtml)
<a class="jxr_linenumber" name="820" href="#820">820</a>                 || (source instanceof PropertyUri)) {
<a class="jxr_linenumber" name="821" href="#821">821</a>             List&lt;String&gt; values = (List&lt;String&gt;) source.getValues();
<a class="jxr_linenumber" name="822" href="#822">822</a>             <strong class="jxr_keyword">if</strong> (values != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="823" href="#823">823</a>                 <strong class="jxr_keyword">for</strong> (String value : values) {
<a class="jxr_linenumber" name="824" href="#824">824</a>                     XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_VALUE, value);
<a class="jxr_linenumber" name="825" href="#825">825</a>                 }
<a class="jxr_linenumber" name="826" href="#826">826</a>             }
<a class="jxr_linenumber" name="827" href="#827">827</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (source instanceof PropertyInteger) {
<a class="jxr_linenumber" name="828" href="#828">828</a>             List&lt;BigInteger&gt; values = ((PropertyInteger) source).getValues();
<a class="jxr_linenumber" name="829" href="#829">829</a>             <strong class="jxr_keyword">if</strong> (values != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="830" href="#830">830</a>                 <strong class="jxr_keyword">for</strong> (BigInteger value : values) {
<a class="jxr_linenumber" name="831" href="#831">831</a>                     XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_VALUE, value);
<a class="jxr_linenumber" name="832" href="#832">832</a>                 }
<a class="jxr_linenumber" name="833" href="#833">833</a>             }
<a class="jxr_linenumber" name="834" href="#834">834</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (source instanceof PropertyBoolean) {
<a class="jxr_linenumber" name="835" href="#835">835</a>             List&lt;Boolean&gt; values = ((PropertyBoolean) source).getValues();
<a class="jxr_linenumber" name="836" href="#836">836</a>             <strong class="jxr_keyword">if</strong> (values != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="837" href="#837">837</a>                 <strong class="jxr_keyword">for</strong> (Boolean value : values) {
<a class="jxr_linenumber" name="838" href="#838">838</a>                     XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_VALUE, value);
<a class="jxr_linenumber" name="839" href="#839">839</a>                 }
<a class="jxr_linenumber" name="840" href="#840">840</a>             }
<a class="jxr_linenumber" name="841" href="#841">841</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (source instanceof PropertyDateTime) {
<a class="jxr_linenumber" name="842" href="#842">842</a>             List&lt;GregorianCalendar&gt; values = ((PropertyDateTime) source).getValues();
<a class="jxr_linenumber" name="843" href="#843">843</a>             <strong class="jxr_keyword">if</strong> (values != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="844" href="#844">844</a>                 <strong class="jxr_keyword">for</strong> (GregorianCalendar value : values) {
<a class="jxr_linenumber" name="845" href="#845">845</a>                     XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_VALUE, value);
<a class="jxr_linenumber" name="846" href="#846">846</a>                 }
<a class="jxr_linenumber" name="847" href="#847">847</a>             }
<a class="jxr_linenumber" name="848" href="#848">848</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (source instanceof PropertyDecimal) {
<a class="jxr_linenumber" name="849" href="#849">849</a>             List&lt;BigDecimal&gt; values = ((PropertyDecimal) source).getValues();
<a class="jxr_linenumber" name="850" href="#850">850</a>             <strong class="jxr_keyword">if</strong> (values != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="851" href="#851">851</a>                 <strong class="jxr_keyword">for</strong> (BigDecimal value : values) {
<a class="jxr_linenumber" name="852" href="#852">852</a>                     XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_PROPERTY_VALUE, value);
<a class="jxr_linenumber" name="853" href="#853">853</a>                 }
<a class="jxr_linenumber" name="854" href="#854">854</a>             }
<a class="jxr_linenumber" name="855" href="#855">855</a>         }
<a class="jxr_linenumber" name="856" href="#856">856</a> 
<a class="jxr_linenumber" name="857" href="#857">857</a>         writeExtensions(writer, source);
<a class="jxr_linenumber" name="858" href="#858">858</a>         writer.endTag(NAMESPACE_CMIS, tagName);
<a class="jxr_linenumber" name="859" href="#859">859</a>     }
<a class="jxr_linenumber" name="860" href="#860">860</a> 
<a class="jxr_linenumber" name="861" href="#861">861</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> writeAllowableActions(XmlSerializer writer, CmisVersion cmisVersion, <strong class="jxr_keyword">boolean</strong> root,
<a class="jxr_linenumber" name="862" href="#862">862</a>             AllowableActions source) <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="863" href="#863">863</a>         <strong class="jxr_keyword">if</strong> (source == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="864" href="#864">864</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="865" href="#865">865</a>         }
<a class="jxr_linenumber" name="866" href="#866">866</a> 
<a class="jxr_linenumber" name="867" href="#867">867</a>         <strong class="jxr_keyword">if</strong> (root) {
<a class="jxr_linenumber" name="868" href="#868">868</a>             writer.startTag(NAMESPACE_CMIS, <span class="jxr_string">"allowableActions"</span>);
<a class="jxr_linenumber" name="869" href="#869">869</a>             writer.attribute(<span class="jxr_string">""</span>, PREFIX_CMIS, NAMESPACE_CMIS);
<a class="jxr_linenumber" name="870" href="#870">870</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="871" href="#871">871</a>             writer.startTag(NAMESPACE_CMIS, TAG_OBJECT_ALLOWABLE_ACTIONS);
<a class="jxr_linenumber" name="872" href="#872">872</a>         }
<a class="jxr_linenumber" name="873" href="#873">873</a> 
<a class="jxr_linenumber" name="874" href="#874">874</a>         <strong class="jxr_keyword">if</strong> (source.getAllowableActions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="875" href="#875">875</a>             <strong class="jxr_keyword">for</strong> (Action action : Action.values()) {
<a class="jxr_linenumber" name="876" href="#876">876</a>                 <strong class="jxr_keyword">if</strong> (source.getAllowableActions().contains(action)) {
<a class="jxr_linenumber" name="877" href="#877">877</a>                     <strong class="jxr_keyword">if</strong> (action == Action.CAN_CREATE_ITEM &amp;&amp; cmisVersion == CmisVersion.CMIS_1_0) {
<a class="jxr_linenumber" name="878" href="#878">878</a>                         LOG.warn(<span class="jxr_string">"Receiver only understands CMIS 1.0 but the Allowable Actions contain the canCreateItem action. "</span>
<a class="jxr_linenumber" name="879" href="#879">879</a>                                 + <span class="jxr_string">"The canCreateItem action has been removed from the Allowable Actions."</span>);
<a class="jxr_linenumber" name="880" href="#880">880</a>                         <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="881" href="#881">881</a>                     }
<a class="jxr_linenumber" name="882" href="#882">882</a>                     XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, action.value(), Boolean.TRUE);
<a class="jxr_linenumber" name="883" href="#883">883</a>                 }
<a class="jxr_linenumber" name="884" href="#884">884</a>             }
<a class="jxr_linenumber" name="885" href="#885">885</a>         }
<a class="jxr_linenumber" name="886" href="#886">886</a> 
<a class="jxr_linenumber" name="887" href="#887">887</a>         writeExtensions(writer, source);
<a class="jxr_linenumber" name="888" href="#888">888</a>         writer.endTag(NAMESPACE_CMIS, TAG_OBJECT_ALLOWABLE_ACTIONS);
<a class="jxr_linenumber" name="889" href="#889">889</a>     }
<a class="jxr_linenumber" name="890" href="#890">890</a> 
<a class="jxr_linenumber" name="891" href="#891">891</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> writeAcl(XmlSerializer writer, CmisVersion cmisVersion, <strong class="jxr_keyword">boolean</strong> root, Acl source)
<a class="jxr_linenumber" name="892" href="#892">892</a>             <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="893" href="#893">893</a>         <strong class="jxr_keyword">if</strong> (source == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="894" href="#894">894</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="895" href="#895">895</a>         }
<a class="jxr_linenumber" name="896" href="#896">896</a> 
<a class="jxr_linenumber" name="897" href="#897">897</a>         <strong class="jxr_keyword">if</strong> (root) {
<a class="jxr_linenumber" name="898" href="#898">898</a>             writer.startTag(NAMESPACE_CMIS, <span class="jxr_string">"acl"</span>);
<a class="jxr_linenumber" name="899" href="#899">899</a>             writer.attribute(<span class="jxr_string">""</span>, PREFIX_CMIS, NAMESPACE_CMIS);
<a class="jxr_linenumber" name="900" href="#900">900</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="901" href="#901">901</a>             writer.startTag(NAMESPACE_CMIS, TAG_OBJECT_ACL);
<a class="jxr_linenumber" name="902" href="#902">902</a>         }
<a class="jxr_linenumber" name="903" href="#903">903</a> 
<a class="jxr_linenumber" name="904" href="#904">904</a>         <strong class="jxr_keyword">if</strong> (source.getAces() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="905" href="#905">905</a>             <strong class="jxr_keyword">for</strong> (Ace ace : source.getAces()) {
<a class="jxr_linenumber" name="906" href="#906">906</a>                 <strong class="jxr_keyword">if</strong> (ace != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="907" href="#907">907</a>                     writer.startTag(NAMESPACE_CMIS, TAG_ACL_PERMISSISONS);
<a class="jxr_linenumber" name="908" href="#908">908</a> 
<a class="jxr_linenumber" name="909" href="#909">909</a>                     <strong class="jxr_keyword">if</strong> (ace.getPrincipal() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="910" href="#910">910</a>                         Principal principal = ace.getPrincipal();
<a class="jxr_linenumber" name="911" href="#911">911</a> 
<a class="jxr_linenumber" name="912" href="#912">912</a>                         writer.startTag(NAMESPACE_CMIS, TAG_ACE_PRINCIPAL);
<a class="jxr_linenumber" name="913" href="#913">913</a> 
<a class="jxr_linenumber" name="914" href="#914">914</a>                         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_ACE_PRINCIPAL_ID, principal.getId());
<a class="jxr_linenumber" name="915" href="#915">915</a> 
<a class="jxr_linenumber" name="916" href="#916">916</a>                         writeExtensions(writer, principal);
<a class="jxr_linenumber" name="917" href="#917">917</a>                         writer.endTag(NAMESPACE_CMIS, TAG_ACE_PRINCIPAL);
<a class="jxr_linenumber" name="918" href="#918">918</a>                     }
<a class="jxr_linenumber" name="919" href="#919">919</a>                     <strong class="jxr_keyword">if</strong> (ace.getPermissions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="920" href="#920">920</a>                         <strong class="jxr_keyword">for</strong> (String perm : ace.getPermissions()) {
<a class="jxr_linenumber" name="921" href="#921">921</a>                             XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_ACE_PERMISSIONS, perm);
<a class="jxr_linenumber" name="922" href="#922">922</a>                         }
<a class="jxr_linenumber" name="923" href="#923">923</a>                     }
<a class="jxr_linenumber" name="924" href="#924">924</a>                     XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_ACE_IS_DIRECT, ace.isDirect());
<a class="jxr_linenumber" name="925" href="#925">925</a> 
<a class="jxr_linenumber" name="926" href="#926">926</a>                     writeExtensions(writer, ace);
<a class="jxr_linenumber" name="927" href="#927">927</a>                     writer.endTag(NAMESPACE_CMIS, TAG_ACL_PERMISSISONS);
<a class="jxr_linenumber" name="928" href="#928">928</a>                 }
<a class="jxr_linenumber" name="929" href="#929">929</a>             }
<a class="jxr_linenumber" name="930" href="#930">930</a>         }
<a class="jxr_linenumber" name="931" href="#931">931</a> 
<a class="jxr_linenumber" name="932" href="#932">932</a>         writeExtensions(writer, source);
<a class="jxr_linenumber" name="933" href="#933">933</a>         writer.endTag(NAMESPACE_CMIS, TAG_OBJECT_ACL);
<a class="jxr_linenumber" name="934" href="#934">934</a>     }
<a class="jxr_linenumber" name="935" href="#935">935</a> 
<a class="jxr_linenumber" name="936" href="#936">936</a>     <em class="jxr_comment">// -------------</em>
<a class="jxr_linenumber" name="937" href="#937">937</a>     <em class="jxr_comment">// --- query ---</em>
<a class="jxr_linenumber" name="938" href="#938">938</a>     <em class="jxr_comment">// -------------</em>
<a class="jxr_linenumber" name="939" href="#939">939</a> 
<a class="jxr_linenumber" name="940" href="#940">940</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> writeQuery(XmlSerializer writer, CmisVersion cmisVersion, QueryTypeImpl source)
<a class="jxr_linenumber" name="941" href="#941">941</a>             <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="942" href="#942">942</a>         <strong class="jxr_keyword">if</strong> (source == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="943" href="#943">943</a>             <strong class="jxr_keyword">return</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>         writer.startTag(NAMESPACE_CMIS, TAG_QUERY);
<a class="jxr_linenumber" name="947" href="#947">947</a>         writer.attribute(<strong class="jxr_keyword">null</strong>, XMLConstants.PREFIX_CMIS, XMLConstants.NAMESPACE_CMIS);
<a class="jxr_linenumber" name="948" href="#948">948</a> 
<a class="jxr_linenumber" name="949" href="#949">949</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_QUERY_STATEMENT, source.getStatement());
<a class="jxr_linenumber" name="950" href="#950">950</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_QUERY_SEARCHALLVERSIONS, source.getSearchAllVersions());
<a class="jxr_linenumber" name="951" href="#951">951</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_QUERY_INCLUDEALLOWABLEACTIONS,
<a class="jxr_linenumber" name="952" href="#952">952</a>                 source.getIncludeAllowableActions());
<a class="jxr_linenumber" name="953" href="#953">953</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_QUERY_INCLUDERELATIONSHIPS,
<a class="jxr_linenumber" name="954" href="#954">954</a>                 source.getIncludeRelationships());
<a class="jxr_linenumber" name="955" href="#955">955</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_QUERY_RENDITIONFILTER, source.getRenditionFilter());
<a class="jxr_linenumber" name="956" href="#956">956</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_QUERY_MAXITEMS, source.getMaxItems());
<a class="jxr_linenumber" name="957" href="#957">957</a>         XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_QUERY_SKIPCOUNT, source.getSkipCount());
<a class="jxr_linenumber" name="958" href="#958">958</a> 
<a class="jxr_linenumber" name="959" href="#959">959</a>         writeExtensions(writer, source);
<a class="jxr_linenumber" name="960" href="#960">960</a>         writer.endTag(NAMESPACE_CMIS, TAG_QUERY);
<a class="jxr_linenumber" name="961" href="#961">961</a>     }
<a class="jxr_linenumber" name="962" href="#962">962</a> 
<a class="jxr_linenumber" name="963" href="#963">963</a>     <em class="jxr_comment">// -------------------</em>
<a class="jxr_linenumber" name="964" href="#964">964</a>     <em class="jxr_comment">// --- bulk update ---</em>
<a class="jxr_linenumber" name="965" href="#965">965</a>     <em class="jxr_comment">// -------------------</em>
<a class="jxr_linenumber" name="966" href="#966">966</a> 
<a class="jxr_linenumber" name="967" href="#967">967</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> writeBulkUpdate(XmlSerializer writer, String namespace, BulkUpdateImpl bulkUpdate)
<a class="jxr_linenumber" name="968" href="#968">968</a>             <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="969" href="#969">969</a>         <strong class="jxr_keyword">if</strong> (bulkUpdate == <strong class="jxr_keyword">null</strong> || bulkUpdate.getObjectIdAndChangeToken() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="970" href="#970">970</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="971" href="#971">971</a>         }
<a class="jxr_linenumber" name="972" href="#972">972</a> 
<a class="jxr_linenumber" name="973" href="#973">973</a>         writer.startTag(namespace, TAG_BULK_UPDATE);
<a class="jxr_linenumber" name="974" href="#974">974</a> 
<a class="jxr_linenumber" name="975" href="#975">975</a>         <strong class="jxr_keyword">for</strong> (BulkUpdateObjectIdAndChangeToken idAndToken : bulkUpdate.getObjectIdAndChangeToken()) {
<a class="jxr_linenumber" name="976" href="#976">976</a>             <strong class="jxr_keyword">if</strong> (idAndToken == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="977" href="#977">977</a>                 <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="978" href="#978">978</a>             }
<a class="jxr_linenumber" name="979" href="#979">979</a> 
<a class="jxr_linenumber" name="980" href="#980">980</a>             writer.startTag(NAMESPACE_CMIS, TAG_BULK_UPDATE_ID_AND_TOKEN);
<a class="jxr_linenumber" name="981" href="#981">981</a> 
<a class="jxr_linenumber" name="982" href="#982">982</a>             XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_IDANDTOKEN_ID, idAndToken.getId());
<a class="jxr_linenumber" name="983" href="#983">983</a>             XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_IDANDTOKEN_CHANGETOKEN, idAndToken.getChangeToken());
<a class="jxr_linenumber" name="984" href="#984">984</a> 
<a class="jxr_linenumber" name="985" href="#985">985</a>             writeExtensions(writer, idAndToken);
<a class="jxr_linenumber" name="986" href="#986">986</a>             writer.endTag(NAMESPACE_CMIS, TAG_BULK_UPDATE_ID_AND_TOKEN);
<a class="jxr_linenumber" name="987" href="#987">987</a>         }
<a class="jxr_linenumber" name="988" href="#988">988</a> 
<a class="jxr_linenumber" name="989" href="#989">989</a>         <strong class="jxr_keyword">if</strong> (bulkUpdate.getProperties() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="990" href="#990">990</a>             Properties properties = bulkUpdate.getProperties();
<a class="jxr_linenumber" name="991" href="#991">991</a>             writer.startTag(NAMESPACE_CMIS, TAG_BULK_UPDATE_PROPERTIES);
<a class="jxr_linenumber" name="992" href="#992">992</a> 
<a class="jxr_linenumber" name="993" href="#993">993</a>             <strong class="jxr_keyword">if</strong> (properties.getPropertyList() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="994" href="#994">994</a>                 <strong class="jxr_keyword">for</strong> (PropertyData&lt;?&gt; property : properties.getPropertyList()) {
<a class="jxr_linenumber" name="995" href="#995">995</a>                     writeProperty(writer, property, false);
<a class="jxr_linenumber" name="996" href="#996">996</a>                 }
<a class="jxr_linenumber" name="997" href="#997">997</a>             }
<a class="jxr_linenumber" name="998" href="#998">998</a> 
<a class="jxr_linenumber" name="999" href="#999">999</a>             writeExtensions(writer, properties);
<a class="jxr_linenumber" name="1000" href="#1000">1000</a>             writer.endTag(NAMESPACE_CMIS, TAG_BULK_UPDATE_PROPERTIES);
<a class="jxr_linenumber" name="1001" href="#1001">1001</a>         }
<a class="jxr_linenumber" name="1002" href="#1002">1002</a> 
<a class="jxr_linenumber" name="1003" href="#1003">1003</a>         <strong class="jxr_keyword">if</strong> (bulkUpdate.getAddSecondaryTypeIds() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1004" href="#1004">1004</a>             <strong class="jxr_keyword">for</strong> (String id : bulkUpdate.getAddSecondaryTypeIds()) {
<a class="jxr_linenumber" name="1005" href="#1005">1005</a>                 XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_BULK_UPDATE_ADD_SECONDARY_TYPES, id);
<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> 
<a class="jxr_linenumber" name="1009" href="#1009">1009</a>         <strong class="jxr_keyword">if</strong> (bulkUpdate.getRemoveSecondaryTypeIds() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1010" href="#1010">1010</a>             <strong class="jxr_keyword">for</strong> (String id : bulkUpdate.getRemoveSecondaryTypeIds()) {
<a class="jxr_linenumber" name="1011" href="#1011">1011</a>                 XMLUtils.write(writer, PREFIX_CMIS, NAMESPACE_CMIS, TAG_BULK_UPDATE_REMOVE_SECONDARY_TYPES, id);
<a class="jxr_linenumber" name="1012" href="#1012">1012</a>             }
<a class="jxr_linenumber" name="1013" href="#1013">1013</a>         }
<a class="jxr_linenumber" name="1014" href="#1014">1014</a> 
<a class="jxr_linenumber" name="1015" href="#1015">1015</a>         writer.endTag(namespace, TAG_BULK_UPDATE);
<a class="jxr_linenumber" name="1016" href="#1016">1016</a>     }
<a class="jxr_linenumber" name="1017" href="#1017">1017</a> 
<a class="jxr_linenumber" name="1018" href="#1018">1018</a>     <em class="jxr_comment">// -------------------------</em>
<a class="jxr_linenumber" name="1019" href="#1019">1019</a>     <em class="jxr_comment">// --- extension writers ---</em>
<a class="jxr_linenumber" name="1020" href="#1020">1020</a>     <em class="jxr_comment">// -------------------------</em>
<a class="jxr_linenumber" name="1021" href="#1021">1021</a> 
<a class="jxr_linenumber" name="1022" href="#1022">1022</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> writeExtensions(XmlSerializer writer, ExtensionsData source) <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="1023" href="#1023">1023</a>         <strong class="jxr_keyword">if</strong> (source == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1024" href="#1024">1024</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="1025" href="#1025">1025</a>         }
<a class="jxr_linenumber" name="1026" href="#1026">1026</a> 
<a class="jxr_linenumber" name="1027" href="#1027">1027</a>         LinkedList&lt;String&gt; ns = <strong class="jxr_keyword">new</strong> LinkedList&lt;String&gt;();
<a class="jxr_linenumber" name="1028" href="#1028">1028</a> 
<a class="jxr_linenumber" name="1029" href="#1029">1029</a>         <strong class="jxr_keyword">if</strong> (source.getExtensions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1030" href="#1030">1030</a>             <strong class="jxr_keyword">for</strong> (CmisExtensionElement element : source.getExtensions()) {
<a class="jxr_linenumber" name="1031" href="#1031">1031</a>                 <strong class="jxr_keyword">if</strong> (element == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1032" href="#1032">1032</a>                     <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="1033" href="#1033">1033</a>                 }
<a class="jxr_linenumber" name="1034" href="#1034">1034</a> 
<a class="jxr_linenumber" name="1035" href="#1035">1035</a>                 writeExtensionElement(writer, element, ns);
<a class="jxr_linenumber" name="1036" href="#1036">1036</a>             }
<a class="jxr_linenumber" name="1037" href="#1037">1037</a>         }
<a class="jxr_linenumber" name="1038" href="#1038">1038</a>     }
<a class="jxr_linenumber" name="1039" href="#1039">1039</a> 
<a class="jxr_linenumber" name="1040" href="#1040">1040</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> writeExtensionElement(XmlSerializer writer, CmisExtensionElement source, LinkedList&lt;String&gt; ns)
<a class="jxr_linenumber" name="1041" href="#1041">1041</a>             <strong class="jxr_keyword">throws</strong> IOException {
<a class="jxr_linenumber" name="1042" href="#1042">1042</a>         <strong class="jxr_keyword">if</strong> (source == <strong class="jxr_keyword">null</strong> || source.getName() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1043" href="#1043">1043</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="1044" href="#1044">1044</a>         }
<a class="jxr_linenumber" name="1045" href="#1045">1045</a> 
<a class="jxr_linenumber" name="1046" href="#1046">1046</a>         String namespace = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1047" href="#1047">1047</a>         <em class="jxr_comment">// boolean addedNamespace = false;</em>
<a class="jxr_linenumber" name="1048" href="#1048">1048</a> 
<a class="jxr_linenumber" name="1049" href="#1049">1049</a>         <strong class="jxr_keyword">if</strong> (source.getNamespace() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1050" href="#1050">1050</a>             <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="1051" href="#1051">1051</a> <em class="jxr_comment">             * String prefix = writer.getPrefix(source.getNamespace(), false);</em>
<a class="jxr_linenumber" name="1052" href="#1052">1052</a> <em class="jxr_comment">             * if (prefix == null) { int p = ns.indexOf(source.getNamespace());</em>
<a class="jxr_linenumber" name="1053" href="#1053">1053</a> <em class="jxr_comment">             * </em>
<a class="jxr_linenumber" name="1054" href="#1054">1054</a> <em class="jxr_comment">             * if (p == -1) { prefix = "e" + (ns.size() + 1);</em>
<a class="jxr_linenumber" name="1055" href="#1055">1055</a> <em class="jxr_comment">             * ns.add(source.getNamespace()); addedNamespace = true; } else {</em>
<a class="jxr_linenumber" name="1056" href="#1056">1056</a> <em class="jxr_comment">             * prefix = "e" + (p + 1); } }</em>
<a class="jxr_linenumber" name="1057" href="#1057">1057</a> <em class="jxr_comment">             */</em>
<a class="jxr_linenumber" name="1058" href="#1058">1058</a> 
<a class="jxr_linenumber" name="1059" href="#1059">1059</a>             namespace = source.getNamespace();
<a class="jxr_linenumber" name="1060" href="#1060">1060</a>             writer.startTag(source.getNamespace(), source.getName());
<a class="jxr_linenumber" name="1061" href="#1061">1061</a> 
<a class="jxr_linenumber" name="1062" href="#1062">1062</a>             <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="1063" href="#1063">1063</a> <em class="jxr_comment">             * if (addedNamespace) { writer.attribute("", prefix,</em>
<a class="jxr_linenumber" name="1064" href="#1064">1064</a> <em class="jxr_comment">             * source.getNamespace()); }</em>
<a class="jxr_linenumber" name="1065" href="#1065">1065</a> <em class="jxr_comment">             */</em>
<a class="jxr_linenumber" name="1066" href="#1066">1066</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1067" href="#1067">1067</a>             writer.startTag(<strong class="jxr_keyword">null</strong>, source.getName());
<a class="jxr_linenumber" name="1068" href="#1068">1068</a>         }
<a class="jxr_linenumber" name="1069" href="#1069">1069</a> 
<a class="jxr_linenumber" name="1070" href="#1070">1070</a>         <strong class="jxr_keyword">if</strong> (source.getAttributes() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1071" href="#1071">1071</a>             <strong class="jxr_keyword">for</strong> (Map.Entry&lt;String, String&gt; attr : source.getAttributes().entrySet()) {
<a class="jxr_linenumber" name="1072" href="#1072">1072</a>                 writer.attribute(<strong class="jxr_keyword">null</strong>, attr.getKey(), attr.getValue());
<a class="jxr_linenumber" name="1073" href="#1073">1073</a>             }
<a class="jxr_linenumber" name="1074" href="#1074">1074</a>         }
<a class="jxr_linenumber" name="1075" href="#1075">1075</a> 
<a class="jxr_linenumber" name="1076" href="#1076">1076</a>         <strong class="jxr_keyword">if</strong> (source.getValue() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1077" href="#1077">1077</a>             writer.text(source.getValue());
<a class="jxr_linenumber" name="1078" href="#1078">1078</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="1079" href="#1079">1079</a>             <strong class="jxr_keyword">if</strong> (source.getChildren() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1080" href="#1080">1080</a>                 <strong class="jxr_keyword">for</strong> (CmisExtensionElement child : source.getChildren()) {
<a class="jxr_linenumber" name="1081" href="#1081">1081</a>                     writeExtensionElement(writer, child, ns);
<a class="jxr_linenumber" name="1082" href="#1082">1082</a>                 }
<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> 
<a class="jxr_linenumber" name="1086" href="#1086">1086</a>         writer.endTag(namespace, source.getName());
<a class="jxr_linenumber" name="1087" href="#1087">1087</a> 
<a class="jxr_linenumber" name="1088" href="#1088">1088</a>         <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="1089" href="#1089">1089</a> <em class="jxr_comment">         * if (addedNamespace) { ns.removeLast(); }</em>
<a class="jxr_linenumber" name="1090" href="#1090">1090</a> <em class="jxr_comment">         */</em>
<a class="jxr_linenumber" name="1091" href="#1091">1091</a>     }
<a class="jxr_linenumber" name="1092" href="#1092">1092</a> 
<a class="jxr_linenumber" name="1093" href="#1093">1093</a>     <em class="jxr_comment">// ---------------</em>
<a class="jxr_linenumber" name="1094" href="#1094">1094</a>     <em class="jxr_comment">// --- parsers ---</em>
<a class="jxr_linenumber" name="1095" href="#1095">1095</a>     <em class="jxr_comment">// ---------------</em>
<a class="jxr_linenumber" name="1096" href="#1096">1096</a> 
<a class="jxr_linenumber" name="1097" href="#1097">1097</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> RepositoryInfo convertRepositoryInfo(XmlPullParser parser) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1098" href="#1098">1098</a>         <strong class="jxr_keyword">return</strong> REPOSITORY_INFO_PARSER.walk(parser);
<a class="jxr_linenumber" name="1099" href="#1099">1099</a>     }
<a class="jxr_linenumber" name="1100" href="#1100">1100</a> 
<a class="jxr_linenumber" name="1101" href="#1101">1101</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> TypeDefinition convertTypeDefinition(XmlPullParser parser) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1102" href="#1102">1102</a>         <strong class="jxr_keyword">return</strong> TYPE_DEF_PARSER.walk(parser);
<a class="jxr_linenumber" name="1103" href="#1103">1103</a>     }
<a class="jxr_linenumber" name="1104" href="#1104">1104</a> 
<a class="jxr_linenumber" name="1105" href="#1105">1105</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ObjectData convertObject(XmlPullParser parser) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1106" href="#1106">1106</a>         <strong class="jxr_keyword">return</strong> OBJECT_PARSER.walk(parser);
<a class="jxr_linenumber" name="1107" href="#1107">1107</a>     }
<a class="jxr_linenumber" name="1108" href="#1108">1108</a> 
<a class="jxr_linenumber" name="1109" href="#1109">1109</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> QueryTypeImpl convertQuery(XmlPullParser parser) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1110" href="#1110">1110</a>         <strong class="jxr_keyword">return</strong> QUERY_PARSER.walk(parser);
<a class="jxr_linenumber" name="1111" href="#1111">1111</a>     }
<a class="jxr_linenumber" name="1112" href="#1112">1112</a> 
<a class="jxr_linenumber" name="1113" href="#1113">1113</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> AllowableActions convertAllowableActions(XmlPullParser parser) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1114" href="#1114">1114</a>         <strong class="jxr_keyword">return</strong> ALLOWABLE_ACTIONS_PARSER.walk(parser);
<a class="jxr_linenumber" name="1115" href="#1115">1115</a>     }
<a class="jxr_linenumber" name="1116" href="#1116">1116</a> 
<a class="jxr_linenumber" name="1117" href="#1117">1117</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Acl convertAcl(XmlPullParser parser) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1118" href="#1118">1118</a>         <strong class="jxr_keyword">return</strong> ACL_PARSER.walk(parser);
<a class="jxr_linenumber" name="1119" href="#1119">1119</a>     }
<a class="jxr_linenumber" name="1120" href="#1120">1120</a> 
<a class="jxr_linenumber" name="1121" href="#1121">1121</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> BulkUpdateImpl convertBulkUpdate(XmlPullParser parser) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1122" href="#1122">1122</a>         <strong class="jxr_keyword">return</strong> BULK_UPDATE_PARSER.walk(parser);
<a class="jxr_linenumber" name="1123" href="#1123">1123</a>     }
<a class="jxr_linenumber" name="1124" href="#1124">1124</a> 
<a class="jxr_linenumber" name="1125" href="#1125">1125</a>     <em class="jxr_comment">// ------------------------------</em>
<a class="jxr_linenumber" name="1126" href="#1126">1126</a>     <em class="jxr_comment">// --- repository info parser ---</em>
<a class="jxr_linenumber" name="1127" href="#1127">1127</a>     <em class="jxr_comment">// ------------------------------</em>
<a class="jxr_linenumber" name="1128" href="#1128">1128</a> 
<a class="jxr_linenumber" name="1129" href="#1129">1129</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> XMLWalker&lt;RepositoryInfoImpl&gt; REPOSITORY_INFO_PARSER = <strong class="jxr_keyword">new</strong> XMLWalker&lt;RepositoryInfoImpl&gt;() {
<a class="jxr_linenumber" name="1130" href="#1130">1130</a>         @Override
<a class="jxr_linenumber" name="1131" href="#1131">1131</a>         <strong class="jxr_keyword">protected</strong> RepositoryInfoImpl prepareTarget(XmlPullParser parser, QName name) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1132" href="#1132">1132</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> RepositoryInfoImpl();
<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>         @Override
<a class="jxr_linenumber" name="1136" href="#1136">1136</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, RepositoryInfoImpl target)
<a class="jxr_linenumber" name="1137" href="#1137">1137</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1138" href="#1138">1138</a> 
<a class="jxr_linenumber" name="1139" href="#1139">1139</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="1140" href="#1140">1140</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_REPINFO_ID)) {
<a class="jxr_linenumber" name="1141" href="#1141">1141</a>                     target.setId(readText(parser));
<a class="jxr_linenumber" name="1142" href="#1142">1142</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1143" href="#1143">1143</a>                 }
<a class="jxr_linenumber" name="1144" href="#1144">1144</a> 
<a class="jxr_linenumber" name="1145" href="#1145">1145</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_REPINFO_NAME)) {
<a class="jxr_linenumber" name="1146" href="#1146">1146</a>                     target.setName(readText(parser));
<a class="jxr_linenumber" name="1147" href="#1147">1147</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1148" href="#1148">1148</a>                 }
<a class="jxr_linenumber" name="1149" href="#1149">1149</a> 
<a class="jxr_linenumber" name="1150" href="#1150">1150</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_REPINFO_DESCRIPTION)) {
<a class="jxr_linenumber" name="1151" href="#1151">1151</a>                     target.setDescription(readText(parser));
<a class="jxr_linenumber" name="1152" href="#1152">1152</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1153" href="#1153">1153</a>                 }
<a class="jxr_linenumber" name="1154" href="#1154">1154</a> 
<a class="jxr_linenumber" name="1155" href="#1155">1155</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_REPINFO_VENDOR)) {
<a class="jxr_linenumber" name="1156" href="#1156">1156</a>                     target.setVendorName(readText(parser));
<a class="jxr_linenumber" name="1157" href="#1157">1157</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1158" href="#1158">1158</a>                 }
<a class="jxr_linenumber" name="1159" href="#1159">1159</a> 
<a class="jxr_linenumber" name="1160" href="#1160">1160</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_REPINFO_PRODUCT)) {
<a class="jxr_linenumber" name="1161" href="#1161">1161</a>                     target.setProductName(readText(parser));
<a class="jxr_linenumber" name="1162" href="#1162">1162</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<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>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_REPINFO_PRODUCT_VERSION)) {
<a class="jxr_linenumber" name="1166" href="#1166">1166</a>                     target.setProductVersion(readText(parser));
<a class="jxr_linenumber" name="1167" href="#1167">1167</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<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>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_REPINFO_ROOT_FOLDER_ID)) {
<a class="jxr_linenumber" name="1171" href="#1171">1171</a>                     target.setRootFolder(readText(parser));
<a class="jxr_linenumber" name="1172" href="#1172">1172</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1173" href="#1173">1173</a>                 }
<a class="jxr_linenumber" name="1174" href="#1174">1174</a> 
<a class="jxr_linenumber" name="1175" href="#1175">1175</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_REPINFO_CHANGE_LOG_TOKEN)) {
<a class="jxr_linenumber" name="1176" href="#1176">1176</a>                     target.setLatestChangeLogToken(readText(parser));
<a class="jxr_linenumber" name="1177" href="#1177">1177</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1178" href="#1178">1178</a>                 }
<a class="jxr_linenumber" name="1179" href="#1179">1179</a> 
<a class="jxr_linenumber" name="1180" href="#1180">1180</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_REPINFO_CAPABILITIES)) {
<a class="jxr_linenumber" name="1181" href="#1181">1181</a>                     target.setCapabilities(CAPABILITIES_PARSER.walk(parser));
<a class="jxr_linenumber" name="1182" href="#1182">1182</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1183" href="#1183">1183</a>                 }
<a class="jxr_linenumber" name="1184" href="#1184">1184</a> 
<a class="jxr_linenumber" name="1185" href="#1185">1185</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_REPINFO_ACL_CAPABILITIES)) {
<a class="jxr_linenumber" name="1186" href="#1186">1186</a>                     target.setAclCapabilities(ACL_CAPABILITIES_PARSER.walk(parser));
<a class="jxr_linenumber" name="1187" href="#1187">1187</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1188" href="#1188">1188</a>                 }
<a class="jxr_linenumber" name="1189" href="#1189">1189</a> 
<a class="jxr_linenumber" name="1190" href="#1190">1190</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_REPINFO_CMIS_VERSION_SUPPORTED)) {
<a class="jxr_linenumber" name="1191" href="#1191">1191</a>                     target.setCmisVersionSupported(readText(parser));
<a class="jxr_linenumber" name="1192" href="#1192">1192</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</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>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_REPINFO_THIN_CLIENT_URI)) {
<a class="jxr_linenumber" name="1196" href="#1196">1196</a>                     target.setThinClientUri(readText(parser));
<a class="jxr_linenumber" name="1197" href="#1197">1197</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1198" href="#1198">1198</a>                 }
<a class="jxr_linenumber" name="1199" href="#1199">1199</a> 
<a class="jxr_linenumber" name="1200" href="#1200">1200</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_REPINFO_CHANGES_INCOMPLETE)) {
<a class="jxr_linenumber" name="1201" href="#1201">1201</a>                     target.setChangesIncomplete(readBoolean(parser));
<a class="jxr_linenumber" name="1202" href="#1202">1202</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<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>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_REPINFO_CHANGES_ON_TYPE)) {
<a class="jxr_linenumber" name="1206" href="#1206">1206</a>                     target.setChangesOnType(addToList(target.getChangesOnType(), readEnum(parser, BaseTypeId.<strong class="jxr_keyword">class</strong>)));
<a class="jxr_linenumber" name="1207" href="#1207">1207</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1208" href="#1208">1208</a>                 }
<a class="jxr_linenumber" name="1209" href="#1209">1209</a> 
<a class="jxr_linenumber" name="1210" href="#1210">1210</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_REPINFO_PRINCIPAL_ID_ANONYMOUS)) {
<a class="jxr_linenumber" name="1211" href="#1211">1211</a>                     target.setPrincipalAnonymous(readText(parser));
<a class="jxr_linenumber" name="1212" href="#1212">1212</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1213" href="#1213">1213</a>                 }
<a class="jxr_linenumber" name="1214" href="#1214">1214</a> 
<a class="jxr_linenumber" name="1215" href="#1215">1215</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_REPINFO_PRINCIPAL_ID_ANYONE)) {
<a class="jxr_linenumber" name="1216" href="#1216">1216</a>                     target.setPrincipalAnyone(readText(parser));
<a class="jxr_linenumber" name="1217" href="#1217">1217</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1218" href="#1218">1218</a>                 }
<a class="jxr_linenumber" name="1219" href="#1219">1219</a> 
<a class="jxr_linenumber" name="1220" href="#1220">1220</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_REPINFO_EXTENDED_FEATURES)) {
<a class="jxr_linenumber" name="1221" href="#1221">1221</a>                     target.setExtensionFeature(addToList(target.getExtensionFeatures(),
<a class="jxr_linenumber" name="1222" href="#1222">1222</a>                             EXTENDED_FEATURES_PARSER.walk(parser)));
<a class="jxr_linenumber" name="1223" href="#1223">1223</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1224" href="#1224">1224</a>                 }
<a class="jxr_linenumber" name="1225" href="#1225">1225</a>             }
<a class="jxr_linenumber" name="1226" href="#1226">1226</a> 
<a class="jxr_linenumber" name="1227" href="#1227">1227</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="1228" href="#1228">1228</a>         }
<a class="jxr_linenumber" name="1229" href="#1229">1229</a>     };
<a class="jxr_linenumber" name="1230" href="#1230">1230</a> 
<a class="jxr_linenumber" name="1231" href="#1231">1231</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> XMLWalker&lt;RepositoryCapabilitiesImpl&gt; CAPABILITIES_PARSER = <strong class="jxr_keyword">new</strong> XMLWalker&lt;RepositoryCapabilitiesImpl&gt;() {
<a class="jxr_linenumber" name="1232" href="#1232">1232</a>         @Override
<a class="jxr_linenumber" name="1233" href="#1233">1233</a>         <strong class="jxr_keyword">protected</strong> RepositoryCapabilitiesImpl prepareTarget(XmlPullParser parser, QName name)
<a class="jxr_linenumber" name="1234" href="#1234">1234</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1235" href="#1235">1235</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> RepositoryCapabilitiesImpl();
<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>         @Override
<a class="jxr_linenumber" name="1239" href="#1239">1239</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, RepositoryCapabilitiesImpl target)
<a class="jxr_linenumber" name="1240" href="#1240">1240</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1241" href="#1241">1241</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="1242" href="#1242">1242</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_ACL)) {
<a class="jxr_linenumber" name="1243" href="#1243">1243</a>                     target.setCapabilityAcl(readEnum(parser, CapabilityAcl.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="1244" href="#1244">1244</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</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> (isTag(name, TAG_CAP_ALL_VERSIONS_SEARCHABLE)) {
<a class="jxr_linenumber" name="1248" href="#1248">1248</a>                     target.setAllVersionsSearchable(readBoolean(parser));
<a class="jxr_linenumber" name="1249" href="#1249">1249</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1250" href="#1250">1250</a>                 }
<a class="jxr_linenumber" name="1251" href="#1251">1251</a> 
<a class="jxr_linenumber" name="1252" href="#1252">1252</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_CHANGES)) {
<a class="jxr_linenumber" name="1253" href="#1253">1253</a>                     target.setCapabilityChanges(readEnum(parser, CapabilityChanges.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="1254" href="#1254">1254</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1255" href="#1255">1255</a>                 }
<a class="jxr_linenumber" name="1256" href="#1256">1256</a> 
<a class="jxr_linenumber" name="1257" href="#1257">1257</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_CONTENT_STREAM_UPDATABILITY)) {
<a class="jxr_linenumber" name="1258" href="#1258">1258</a>                     target.setCapabilityContentStreamUpdates(readEnum(parser, CapabilityContentStreamUpdates.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="1259" href="#1259">1259</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<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>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_GET_DESCENDANTS)) {
<a class="jxr_linenumber" name="1263" href="#1263">1263</a>                     target.setSupportsGetDescendants(readBoolean(parser));
<a class="jxr_linenumber" name="1264" href="#1264">1264</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1265" href="#1265">1265</a>                 }
<a class="jxr_linenumber" name="1266" href="#1266">1266</a> 
<a class="jxr_linenumber" name="1267" href="#1267">1267</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_GET_FOLDER_TREE)) {
<a class="jxr_linenumber" name="1268" href="#1268">1268</a>                     target.setSupportsGetFolderTree(readBoolean(parser));
<a class="jxr_linenumber" name="1269" href="#1269">1269</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1270" href="#1270">1270</a>                 }
<a class="jxr_linenumber" name="1271" href="#1271">1271</a> 
<a class="jxr_linenumber" name="1272" href="#1272">1272</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_ORDER_BY)) {
<a class="jxr_linenumber" name="1273" href="#1273">1273</a>                     target.setCapabilityOrderBy(readEnum(parser, CapabilityOrderBy.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="1274" href="#1274">1274</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<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>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_MULTIFILING)) {
<a class="jxr_linenumber" name="1278" href="#1278">1278</a>                     target.setSupportsMultifiling(readBoolean(parser));
<a class="jxr_linenumber" name="1279" href="#1279">1279</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1280" href="#1280">1280</a>                 }
<a class="jxr_linenumber" name="1281" href="#1281">1281</a> 
<a class="jxr_linenumber" name="1282" href="#1282">1282</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_PWC_SEARCHABLE)) {
<a class="jxr_linenumber" name="1283" href="#1283">1283</a>                     target.setIsPwcSearchable(readBoolean(parser));
<a class="jxr_linenumber" name="1284" href="#1284">1284</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1285" href="#1285">1285</a>                 }
<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> (isTag(name, TAG_CAP_PWC_UPDATABLE)) {
<a class="jxr_linenumber" name="1288" href="#1288">1288</a>                     target.setIsPwcUpdatable(readBoolean(parser));
<a class="jxr_linenumber" name="1289" href="#1289">1289</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1290" href="#1290">1290</a>                 }
<a class="jxr_linenumber" name="1291" href="#1291">1291</a> 
<a class="jxr_linenumber" name="1292" href="#1292">1292</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_QUERY)) {
<a class="jxr_linenumber" name="1293" href="#1293">1293</a>                     target.setCapabilityQuery(readEnum(parser, CapabilityQuery.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="1294" href="#1294">1294</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1295" href="#1295">1295</a>                 }
<a class="jxr_linenumber" name="1296" href="#1296">1296</a> 
<a class="jxr_linenumber" name="1297" href="#1297">1297</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_RENDITIONS)) {
<a class="jxr_linenumber" name="1298" href="#1298">1298</a>                     target.setCapabilityRendition(readEnum(parser, CapabilityRenditions.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="1299" href="#1299">1299</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<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>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_UNFILING)) {
<a class="jxr_linenumber" name="1303" href="#1303">1303</a>                     target.setSupportsUnfiling(readBoolean(parser));
<a class="jxr_linenumber" name="1304" href="#1304">1304</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1305" href="#1305">1305</a>                 }
<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> (isTag(name, TAG_CAP_VERSION_SPECIFIC_FILING)) {
<a class="jxr_linenumber" name="1308" href="#1308">1308</a>                     target.setSupportsVersionSpecificFiling(readBoolean(parser));
<a class="jxr_linenumber" name="1309" href="#1309">1309</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1310" href="#1310">1310</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">if</strong> (isTag(name, TAG_CAP_JOIN)) {
<a class="jxr_linenumber" name="1313" href="#1313">1313</a>                     target.setCapabilityJoin(readEnum(parser, CapabilityJoin.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="1314" href="#1314">1314</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1315" href="#1315">1315</a>                 }
<a class="jxr_linenumber" name="1316" href="#1316">1316</a> 
<a class="jxr_linenumber" name="1317" href="#1317">1317</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_CREATABLE_PROPERTY_TYPES)) {
<a class="jxr_linenumber" name="1318" href="#1318">1318</a>                     target.setCreatablePropertyTypes(CREATABLE_PROPERTY_TYPES_PARSER.walk(parser));
<a class="jxr_linenumber" name="1319" href="#1319">1319</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1320" href="#1320">1320</a>                 }
<a class="jxr_linenumber" name="1321" href="#1321">1321</a> 
<a class="jxr_linenumber" name="1322" href="#1322">1322</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES)) {
<a class="jxr_linenumber" name="1323" href="#1323">1323</a>                     target.setNewTypeSettableAttributes(NEW_TYPES_SETTABLE_ATTRIBUTES_PARSER.walk(parser));
<a class="jxr_linenumber" name="1324" href="#1324">1324</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1325" href="#1325">1325</a>                 }
<a class="jxr_linenumber" name="1326" href="#1326">1326</a>             }
<a class="jxr_linenumber" name="1327" href="#1327">1327</a> 
<a class="jxr_linenumber" name="1328" href="#1328">1328</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="1329" href="#1329">1329</a>         }
<a class="jxr_linenumber" name="1330" href="#1330">1330</a>     };
<a class="jxr_linenumber" name="1331" href="#1331">1331</a> 
<a class="jxr_linenumber" name="1332" href="#1332">1332</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> XMLWalker&lt;CreatablePropertyTypesImpl&gt; CREATABLE_PROPERTY_TYPES_PARSER = <strong class="jxr_keyword">new</strong> XMLWalker&lt;CreatablePropertyTypesImpl&gt;() {
<a class="jxr_linenumber" name="1333" href="#1333">1333</a>         @Override
<a class="jxr_linenumber" name="1334" href="#1334">1334</a>         <strong class="jxr_keyword">protected</strong> CreatablePropertyTypesImpl prepareTarget(XmlPullParser parser, QName name)
<a class="jxr_linenumber" name="1335" href="#1335">1335</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1336" href="#1336">1336</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> CreatablePropertyTypesImpl();
<a class="jxr_linenumber" name="1337" href="#1337">1337</a>         }
<a class="jxr_linenumber" name="1338" href="#1338">1338</a> 
<a class="jxr_linenumber" name="1339" href="#1339">1339</a>         @Override
<a class="jxr_linenumber" name="1340" href="#1340">1340</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, CreatablePropertyTypesImpl target)
<a class="jxr_linenumber" name="1341" href="#1341">1341</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1342" href="#1342">1342</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="1343" href="#1343">1343</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_CREATABLE_PROPERTY_TYPES_CANCREATE)) {
<a class="jxr_linenumber" name="1344" href="#1344">1344</a>                     target.canCreate().add(readEnum(parser, PropertyType.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="1345" href="#1345">1345</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1346" href="#1346">1346</a>                 }
<a class="jxr_linenumber" name="1347" href="#1347">1347</a>             }
<a class="jxr_linenumber" name="1348" href="#1348">1348</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="1349" href="#1349">1349</a>         }
<a class="jxr_linenumber" name="1350" href="#1350">1350</a>     };
<a class="jxr_linenumber" name="1351" href="#1351">1351</a> 
<a class="jxr_linenumber" name="1352" href="#1352">1352</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> XMLWalker&lt;NewTypeSettableAttributesImpl&gt; NEW_TYPES_SETTABLE_ATTRIBUTES_PARSER = <strong class="jxr_keyword">new</strong> XMLWalker&lt;NewTypeSettableAttributesImpl&gt;() {
<a class="jxr_linenumber" name="1353" href="#1353">1353</a>         @Override
<a class="jxr_linenumber" name="1354" href="#1354">1354</a>         <strong class="jxr_keyword">protected</strong> NewTypeSettableAttributesImpl prepareTarget(XmlPullParser parser, QName name)
<a class="jxr_linenumber" name="1355" href="#1355">1355</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1356" href="#1356">1356</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> NewTypeSettableAttributesImpl();
<a class="jxr_linenumber" name="1357" href="#1357">1357</a>         }
<a class="jxr_linenumber" name="1358" href="#1358">1358</a> 
<a class="jxr_linenumber" name="1359" href="#1359">1359</a>         @Override
<a class="jxr_linenumber" name="1360" href="#1360">1360</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, NewTypeSettableAttributesImpl target)
<a class="jxr_linenumber" name="1361" href="#1361">1361</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1362" href="#1362">1362</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="1363" href="#1363">1363</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_ID)) {
<a class="jxr_linenumber" name="1364" href="#1364">1364</a>                     target.setCanSetId(readBoolean(parser));
<a class="jxr_linenumber" name="1365" href="#1365">1365</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1366" href="#1366">1366</a>                 }
<a class="jxr_linenumber" name="1367" href="#1367">1367</a> 
<a class="jxr_linenumber" name="1368" href="#1368">1368</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_LOCALNAME)) {
<a class="jxr_linenumber" name="1369" href="#1369">1369</a>                     target.setCanSetLocalName(readBoolean(parser));
<a class="jxr_linenumber" name="1370" href="#1370">1370</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1371" href="#1371">1371</a>                 }
<a class="jxr_linenumber" name="1372" href="#1372">1372</a> 
<a class="jxr_linenumber" name="1373" href="#1373">1373</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_LOCALNAMESPACE)) {
<a class="jxr_linenumber" name="1374" href="#1374">1374</a>                     target.setCanSetLocalNamespace(readBoolean(parser));
<a class="jxr_linenumber" name="1375" href="#1375">1375</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1376" href="#1376">1376</a>                 }
<a class="jxr_linenumber" name="1377" href="#1377">1377</a> 
<a class="jxr_linenumber" name="1378" href="#1378">1378</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_DISPLAYNAME)) {
<a class="jxr_linenumber" name="1379" href="#1379">1379</a>                     target.setCanSetDisplayName(readBoolean(parser));
<a class="jxr_linenumber" name="1380" href="#1380">1380</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1381" href="#1381">1381</a>                 }
<a class="jxr_linenumber" name="1382" href="#1382">1382</a> 
<a class="jxr_linenumber" name="1383" href="#1383">1383</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_QUERYNAME)) {
<a class="jxr_linenumber" name="1384" href="#1384">1384</a>                     target.setCanSetQueryName(readBoolean(parser));
<a class="jxr_linenumber" name="1385" href="#1385">1385</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<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>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_DESCRIPTION)) {
<a class="jxr_linenumber" name="1389" href="#1389">1389</a>                     target.setCanSetDescription(readBoolean(parser));
<a class="jxr_linenumber" name="1390" href="#1390">1390</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1391" href="#1391">1391</a>                 }
<a class="jxr_linenumber" name="1392" href="#1392">1392</a> 
<a class="jxr_linenumber" name="1393" href="#1393">1393</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_CREATEABLE)) {
<a class="jxr_linenumber" name="1394" href="#1394">1394</a>                     target.setCanSetCreatable(readBoolean(parser));
<a class="jxr_linenumber" name="1395" href="#1395">1395</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1396" href="#1396">1396</a>                 }
<a class="jxr_linenumber" name="1397" href="#1397">1397</a> 
<a class="jxr_linenumber" name="1398" href="#1398">1398</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_FILEABLE)) {
<a class="jxr_linenumber" name="1399" href="#1399">1399</a>                     target.setCanSetFileable(readBoolean(parser));
<a class="jxr_linenumber" name="1400" href="#1400">1400</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1401" href="#1401">1401</a>                 }
<a class="jxr_linenumber" name="1402" href="#1402">1402</a> 
<a class="jxr_linenumber" name="1403" href="#1403">1403</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_QUERYABLE)) {
<a class="jxr_linenumber" name="1404" href="#1404">1404</a>                     target.setCanSetQueryable(readBoolean(parser));
<a class="jxr_linenumber" name="1405" href="#1405">1405</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1406" href="#1406">1406</a>                 }
<a class="jxr_linenumber" name="1407" href="#1407">1407</a> 
<a class="jxr_linenumber" name="1408" href="#1408">1408</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_FULLTEXTINDEXED)) {
<a class="jxr_linenumber" name="1409" href="#1409">1409</a>                     target.setCanSetFulltextIndexed(readBoolean(parser));
<a class="jxr_linenumber" name="1410" href="#1410">1410</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1411" href="#1411">1411</a>                 }
<a class="jxr_linenumber" name="1412" href="#1412">1412</a> 
<a class="jxr_linenumber" name="1413" href="#1413">1413</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_INCLUDEDINSUPERTYTPEQUERY)) {
<a class="jxr_linenumber" name="1414" href="#1414">1414</a>                     target.setCanSetIncludedInSupertypeQuery(readBoolean(parser));
<a class="jxr_linenumber" name="1415" href="#1415">1415</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1416" href="#1416">1416</a>                 }
<a class="jxr_linenumber" name="1417" href="#1417">1417</a> 
<a class="jxr_linenumber" name="1418" href="#1418">1418</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_CONTROLABLEPOLICY)) {
<a class="jxr_linenumber" name="1419" href="#1419">1419</a>                     target.setCanSetControllablePolicy(readBoolean(parser));
<a class="jxr_linenumber" name="1420" href="#1420">1420</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1421" href="#1421">1421</a>                 }
<a class="jxr_linenumber" name="1422" href="#1422">1422</a> 
<a class="jxr_linenumber" name="1423" href="#1423">1423</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CAP_NEW_TYPE_SETTABLE_ATTRIBUTES_CONTROLABLEACL)) {
<a class="jxr_linenumber" name="1424" href="#1424">1424</a>                     target.setCanSetControllableAcl(readBoolean(parser));
<a class="jxr_linenumber" name="1425" href="#1425">1425</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1426" href="#1426">1426</a>                 }
<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>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="1430" href="#1430">1430</a>         }
<a class="jxr_linenumber" name="1431" href="#1431">1431</a>     };
<a class="jxr_linenumber" name="1432" href="#1432">1432</a> 
<a class="jxr_linenumber" name="1433" href="#1433">1433</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> XMLWalker&lt;AclCapabilitiesDataImpl&gt; ACL_CAPABILITIES_PARSER = <strong class="jxr_keyword">new</strong> XMLWalker&lt;AclCapabilitiesDataImpl&gt;() {
<a class="jxr_linenumber" name="1434" href="#1434">1434</a>         @Override
<a class="jxr_linenumber" name="1435" href="#1435">1435</a>         <strong class="jxr_keyword">protected</strong> AclCapabilitiesDataImpl prepareTarget(XmlPullParser parser, QName name) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1436" href="#1436">1436</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> AclCapabilitiesDataImpl();
<a class="jxr_linenumber" name="1437" href="#1437">1437</a>         }
<a class="jxr_linenumber" name="1438" href="#1438">1438</a> 
<a class="jxr_linenumber" name="1439" href="#1439">1439</a>         @Override
<a class="jxr_linenumber" name="1440" href="#1440">1440</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, AclCapabilitiesDataImpl target)
<a class="jxr_linenumber" name="1441" href="#1441">1441</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1442" href="#1442">1442</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="1443" href="#1443">1443</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_ACLCAP_SUPPORTED_PERMISSIONS)) {
<a class="jxr_linenumber" name="1444" href="#1444">1444</a>                     target.setSupportedPermissions(readEnum(parser, SupportedPermissions.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="1445" href="#1445">1445</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1446" href="#1446">1446</a>                 }
<a class="jxr_linenumber" name="1447" href="#1447">1447</a> 
<a class="jxr_linenumber" name="1448" href="#1448">1448</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_ACLCAP_ACL_PROPAGATION)) {
<a class="jxr_linenumber" name="1449" href="#1449">1449</a>                     target.setAclPropagation(readEnum(parser, AclPropagation.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="1450" href="#1450">1450</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1451" href="#1451">1451</a>                 }
<a class="jxr_linenumber" name="1452" href="#1452">1452</a> 
<a class="jxr_linenumber" name="1453" href="#1453">1453</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_ACLCAP_PERMISSIONS)) {
<a class="jxr_linenumber" name="1454" href="#1454">1454</a>                     target.setPermissionDefinitionData(addToList(target.getPermissions(),
<a class="jxr_linenumber" name="1455" href="#1455">1455</a>                             PERMISSION_DEFINITION_PARSER.walk(parser)));
<a class="jxr_linenumber" name="1456" href="#1456">1456</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1457" href="#1457">1457</a>                 }
<a class="jxr_linenumber" name="1458" href="#1458">1458</a> 
<a class="jxr_linenumber" name="1459" href="#1459">1459</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_ACLCAP_PERMISSION_MAPPING)) {
<a class="jxr_linenumber" name="1460" href="#1460">1460</a>                     PermissionMapping pm = PERMISSION_MAPPING_PARSER.walk(parser);
<a class="jxr_linenumber" name="1461" href="#1461">1461</a> 
<a class="jxr_linenumber" name="1462" href="#1462">1462</a>                     Map&lt;String, PermissionMapping&gt; mapping = target.getPermissionMapping();
<a class="jxr_linenumber" name="1463" href="#1463">1463</a>                     mapping.put(pm.getKey(), pm);
<a class="jxr_linenumber" name="1464" href="#1464">1464</a> 
<a class="jxr_linenumber" name="1465" href="#1465">1465</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1466" href="#1466">1466</a>                 }
<a class="jxr_linenumber" name="1467" href="#1467">1467</a>             }
<a class="jxr_linenumber" name="1468" href="#1468">1468</a> 
<a class="jxr_linenumber" name="1469" href="#1469">1469</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="1470" href="#1470">1470</a>         }
<a class="jxr_linenumber" name="1471" href="#1471">1471</a>     };
<a class="jxr_linenumber" name="1472" href="#1472">1472</a> 
<a class="jxr_linenumber" name="1473" href="#1473">1473</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> XMLWalker&lt;PermissionDefinitionDataImpl&gt; PERMISSION_DEFINITION_PARSER = <strong class="jxr_keyword">new</strong> XMLWalker&lt;PermissionDefinitionDataImpl&gt;() {
<a class="jxr_linenumber" name="1474" href="#1474">1474</a>         @Override
<a class="jxr_linenumber" name="1475" href="#1475">1475</a>         <strong class="jxr_keyword">protected</strong> PermissionDefinitionDataImpl prepareTarget(XmlPullParser parser, QName name)
<a class="jxr_linenumber" name="1476" href="#1476">1476</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1477" href="#1477">1477</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> PermissionDefinitionDataImpl();
<a class="jxr_linenumber" name="1478" href="#1478">1478</a>         }
<a class="jxr_linenumber" name="1479" href="#1479">1479</a> 
<a class="jxr_linenumber" name="1480" href="#1480">1480</a>         @Override
<a class="jxr_linenumber" name="1481" href="#1481">1481</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, PermissionDefinitionDataImpl target)
<a class="jxr_linenumber" name="1482" href="#1482">1482</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1483" href="#1483">1483</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="1484" href="#1484">1484</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_ACLCAP_PERMISSION_PERMISSION)) {
<a class="jxr_linenumber" name="1485" href="#1485">1485</a>                     target.setId(readText(parser));
<a class="jxr_linenumber" name="1486" href="#1486">1486</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1487" href="#1487">1487</a>                 }
<a class="jxr_linenumber" name="1488" href="#1488">1488</a> 
<a class="jxr_linenumber" name="1489" href="#1489">1489</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_ACLCAP_PERMISSION_DESCRIPTION)) {
<a class="jxr_linenumber" name="1490" href="#1490">1490</a>                     target.setDescription(readText(parser));
<a class="jxr_linenumber" name="1491" href="#1491">1491</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1492" href="#1492">1492</a>                 }
<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>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="1496" href="#1496">1496</a>         }
<a class="jxr_linenumber" name="1497" href="#1497">1497</a>     };
<a class="jxr_linenumber" name="1498" href="#1498">1498</a> 
<a class="jxr_linenumber" name="1499" href="#1499">1499</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> XMLWalker&lt;PermissionMappingDataImpl&gt; PERMISSION_MAPPING_PARSER = <strong class="jxr_keyword">new</strong> XMLWalker&lt;PermissionMappingDataImpl&gt;() {
<a class="jxr_linenumber" name="1500" href="#1500">1500</a>         @Override
<a class="jxr_linenumber" name="1501" href="#1501">1501</a>         <strong class="jxr_keyword">protected</strong> PermissionMappingDataImpl prepareTarget(XmlPullParser parser, QName name)
<a class="jxr_linenumber" name="1502" href="#1502">1502</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1503" href="#1503">1503</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> PermissionMappingDataImpl();
<a class="jxr_linenumber" name="1504" href="#1504">1504</a>         }
<a class="jxr_linenumber" name="1505" href="#1505">1505</a> 
<a class="jxr_linenumber" name="1506" href="#1506">1506</a>         @Override
<a class="jxr_linenumber" name="1507" href="#1507">1507</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, PermissionMappingDataImpl target)
<a class="jxr_linenumber" name="1508" href="#1508">1508</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1509" href="#1509">1509</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="1510" href="#1510">1510</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_ACLCAP_MAPPING_KEY)) {
<a class="jxr_linenumber" name="1511" href="#1511">1511</a>                     target.setKey(readText(parser));
<a class="jxr_linenumber" name="1512" href="#1512">1512</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1513" href="#1513">1513</a>                 }
<a class="jxr_linenumber" name="1514" href="#1514">1514</a> 
<a class="jxr_linenumber" name="1515" href="#1515">1515</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_ACLCAP_MAPPING_PERMISSION)) {
<a class="jxr_linenumber" name="1516" href="#1516">1516</a>                     target.setPermissions(addToList(target.getPermissions(), readText(parser)));
<a class="jxr_linenumber" name="1517" href="#1517">1517</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1518" href="#1518">1518</a>                 }
<a class="jxr_linenumber" name="1519" href="#1519">1519</a>             }
<a class="jxr_linenumber" name="1520" href="#1520">1520</a> 
<a class="jxr_linenumber" name="1521" href="#1521">1521</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="1522" href="#1522">1522</a>         }
<a class="jxr_linenumber" name="1523" href="#1523">1523</a>     };
<a class="jxr_linenumber" name="1524" href="#1524">1524</a> 
<a class="jxr_linenumber" name="1525" href="#1525">1525</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> XMLWalker&lt;ExtensionFeatureImpl&gt; EXTENDED_FEATURES_PARSER = <strong class="jxr_keyword">new</strong> XMLWalker&lt;ExtensionFeatureImpl&gt;() {
<a class="jxr_linenumber" name="1526" href="#1526">1526</a>         @Override
<a class="jxr_linenumber" name="1527" href="#1527">1527</a>         <strong class="jxr_keyword">protected</strong> ExtensionFeatureImpl prepareTarget(XmlPullParser parser, QName name) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1528" href="#1528">1528</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ExtensionFeatureImpl();
<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>         @Override
<a class="jxr_linenumber" name="1532" href="#1532">1532</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, ExtensionFeatureImpl target)
<a class="jxr_linenumber" name="1533" href="#1533">1533</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1534" href="#1534">1534</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="1535" href="#1535">1535</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_FEATURE_ID)) {
<a class="jxr_linenumber" name="1536" href="#1536">1536</a>                     target.setId(readText(parser));
<a class="jxr_linenumber" name="1537" href="#1537">1537</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1538" href="#1538">1538</a>                 }
<a class="jxr_linenumber" name="1539" href="#1539">1539</a> 
<a class="jxr_linenumber" name="1540" href="#1540">1540</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_FEATURE_URL)) {
<a class="jxr_linenumber" name="1541" href="#1541">1541</a>                     target.setUrl(readText(parser));
<a class="jxr_linenumber" name="1542" href="#1542">1542</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1543" href="#1543">1543</a>                 }
<a class="jxr_linenumber" name="1544" href="#1544">1544</a> 
<a class="jxr_linenumber" name="1545" href="#1545">1545</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_FEATURE_COMMON_NAME)) {
<a class="jxr_linenumber" name="1546" href="#1546">1546</a>                     target.setCommonName(readText(parser));
<a class="jxr_linenumber" name="1547" href="#1547">1547</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1548" href="#1548">1548</a>                 }
<a class="jxr_linenumber" name="1549" href="#1549">1549</a> 
<a class="jxr_linenumber" name="1550" href="#1550">1550</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_FEATURE_VERSION_LABEL)) {
<a class="jxr_linenumber" name="1551" href="#1551">1551</a>                     target.setVersionLabel(readText(parser));
<a class="jxr_linenumber" name="1552" href="#1552">1552</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1553" href="#1553">1553</a>                 }
<a class="jxr_linenumber" name="1554" href="#1554">1554</a> 
<a class="jxr_linenumber" name="1555" href="#1555">1555</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_FEATURE_DESCRIPTION)) {
<a class="jxr_linenumber" name="1556" href="#1556">1556</a>                     target.setDescription(readText(parser));
<a class="jxr_linenumber" name="1557" href="#1557">1557</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1558" href="#1558">1558</a>                 }
<a class="jxr_linenumber" name="1559" href="#1559">1559</a> 
<a class="jxr_linenumber" name="1560" href="#1560">1560</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_FEATURE_DATA)) {
<a class="jxr_linenumber" name="1561" href="#1561">1561</a>                     String[] data = FEATURE_DATA_PARSER.walk(parser);
<a class="jxr_linenumber" name="1562" href="#1562">1562</a> 
<a class="jxr_linenumber" name="1563" href="#1563">1563</a>                     Map&lt;String, String&gt; featureData = target.getFeatureData();
<a class="jxr_linenumber" name="1564" href="#1564">1564</a>                     featureData.put(data[0], data[1]);
<a class="jxr_linenumber" name="1565" href="#1565">1565</a> 
<a class="jxr_linenumber" name="1566" href="#1566">1566</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1567" href="#1567">1567</a>                 }
<a class="jxr_linenumber" name="1568" href="#1568">1568</a>             }
<a class="jxr_linenumber" name="1569" href="#1569">1569</a> 
<a class="jxr_linenumber" name="1570" href="#1570">1570</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="1571" href="#1571">1571</a>         }
<a class="jxr_linenumber" name="1572" href="#1572">1572</a>     };
<a class="jxr_linenumber" name="1573" href="#1573">1573</a> 
<a class="jxr_linenumber" name="1574" href="#1574">1574</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> XMLWalker&lt;String[]&gt; FEATURE_DATA_PARSER = <strong class="jxr_keyword">new</strong> XMLWalker&lt;String[]&gt;() {
<a class="jxr_linenumber" name="1575" href="#1575">1575</a>         @Override
<a class="jxr_linenumber" name="1576" href="#1576">1576</a>         <strong class="jxr_keyword">protected</strong> String[] prepareTarget(XmlPullParser parser, QName name) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1577" href="#1577">1577</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> String[2];
<a class="jxr_linenumber" name="1578" href="#1578">1578</a>         }
<a class="jxr_linenumber" name="1579" href="#1579">1579</a> 
<a class="jxr_linenumber" name="1580" href="#1580">1580</a>         @Override
<a class="jxr_linenumber" name="1581" href="#1581">1581</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, String[] target) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1582" href="#1582">1582</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="1583" href="#1583">1583</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_FEATURE_DATA_KEY)) {
<a class="jxr_linenumber" name="1584" href="#1584">1584</a>                     target[0] = readText(parser);
<a class="jxr_linenumber" name="1585" href="#1585">1585</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1586" href="#1586">1586</a>                 }
<a class="jxr_linenumber" name="1587" href="#1587">1587</a> 
<a class="jxr_linenumber" name="1588" href="#1588">1588</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_FEATURE_DATA_VALUE)) {
<a class="jxr_linenumber" name="1589" href="#1589">1589</a>                     target[1] = readText(parser);
<a class="jxr_linenumber" name="1590" href="#1590">1590</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1591" href="#1591">1591</a>                 }
<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">return</strong> false;
<a class="jxr_linenumber" name="1595" href="#1595">1595</a>         }
<a class="jxr_linenumber" name="1596" href="#1596">1596</a>     };
<a class="jxr_linenumber" name="1597" href="#1597">1597</a> 
<a class="jxr_linenumber" name="1598" href="#1598">1598</a>     <em class="jxr_comment">// --------------------------</em>
<a class="jxr_linenumber" name="1599" href="#1599">1599</a>     <em class="jxr_comment">// --- definition parsers ---</em>
<a class="jxr_linenumber" name="1600" href="#1600">1600</a>     <em class="jxr_comment">// --------------------------</em>
<a class="jxr_linenumber" name="1601" href="#1601">1601</a> 
<a class="jxr_linenumber" name="1602" href="#1602">1602</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> XMLWalker&lt;AbstractTypeDefinition&gt; TYPE_DEF_PARSER = <strong class="jxr_keyword">new</strong> XMLWalker&lt;AbstractTypeDefinition&gt;() {
<a class="jxr_linenumber" name="1603" href="#1603">1603</a>         @Override
<a class="jxr_linenumber" name="1604" href="#1604">1604</a>         <strong class="jxr_keyword">protected</strong> AbstractTypeDefinition prepareTarget(XmlPullParser parser, QName name) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1605" href="#1605">1605</a> 
<a class="jxr_linenumber" name="1606" href="#1606">1606</a>             AbstractTypeDefinition result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1607" href="#1607">1607</a> 
<a class="jxr_linenumber" name="1608" href="#1608">1608</a>             String typeAttr = parser.getAttributeValue(NAMESPACE_XSI, <span class="jxr_string">"type"</span>);
<a class="jxr_linenumber" name="1609" href="#1609">1609</a>             <strong class="jxr_keyword">if</strong> (typeAttr != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1610" href="#1610">1610</a>                 <strong class="jxr_keyword">if</strong> (typeAttr.endsWith(ATTR_DOCUMENT_TYPE)) {
<a class="jxr_linenumber" name="1611" href="#1611">1611</a>                     result = <strong class="jxr_keyword">new</strong> DocumentTypeDefinitionImpl();
<a class="jxr_linenumber" name="1612" href="#1612">1612</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (typeAttr.endsWith(ATTR_FOLDER_TYPE)) {
<a class="jxr_linenumber" name="1613" href="#1613">1613</a>                     result = <strong class="jxr_keyword">new</strong> FolderTypeDefinitionImpl();
<a class="jxr_linenumber" name="1614" href="#1614">1614</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (typeAttr.endsWith(ATTR_RELATIONSHIP_TYPE)) {
<a class="jxr_linenumber" name="1615" href="#1615">1615</a>                     result = <strong class="jxr_keyword">new</strong> RelationshipTypeDefinitionImpl();
<a class="jxr_linenumber" name="1616" href="#1616">1616</a>                     ((RelationshipTypeDefinitionImpl) result).setAllowedSourceTypes(<strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;());
<a class="jxr_linenumber" name="1617" href="#1617">1617</a>                     ((RelationshipTypeDefinitionImpl) result).setAllowedTargetTypes(<strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;());
<a class="jxr_linenumber" name="1618" href="#1618">1618</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (typeAttr.endsWith(ATTR_POLICY_TYPE)) {
<a class="jxr_linenumber" name="1619" href="#1619">1619</a>                     result = <strong class="jxr_keyword">new</strong> PolicyTypeDefinitionImpl();
<a class="jxr_linenumber" name="1620" href="#1620">1620</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (typeAttr.endsWith(ATTR_ITEM_TYPE)) {
<a class="jxr_linenumber" name="1621" href="#1621">1621</a>                     result = <strong class="jxr_keyword">new</strong> ItemTypeDefinitionImpl();
<a class="jxr_linenumber" name="1622" href="#1622">1622</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (typeAttr.endsWith(ATTR_SECONDARY_TYPE)) {
<a class="jxr_linenumber" name="1623" href="#1623">1623</a>                     result = <strong class="jxr_keyword">new</strong> SecondaryTypeDefinitionImpl();
<a class="jxr_linenumber" name="1624" href="#1624">1624</a>                 }
<a class="jxr_linenumber" name="1625" href="#1625">1625</a>             }
<a class="jxr_linenumber" name="1626" href="#1626">1626</a> 
<a class="jxr_linenumber" name="1627" href="#1627">1627</a>             <strong class="jxr_keyword">if</strong> (result == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1628" href="#1628">1628</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Cannot read type definition!"</span>);
<a class="jxr_linenumber" name="1629" href="#1629">1629</a>             }
<a class="jxr_linenumber" name="1630" href="#1630">1630</a> 
<a class="jxr_linenumber" name="1631" href="#1631">1631</a>             <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1632" href="#1632">1632</a>         }
<a class="jxr_linenumber" name="1633" href="#1633">1633</a> 
<a class="jxr_linenumber" name="1634" href="#1634">1634</a>         @Override
<a class="jxr_linenumber" name="1635" href="#1635">1635</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, AbstractTypeDefinition target)
<a class="jxr_linenumber" name="1636" href="#1636">1636</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1637" href="#1637">1637</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="1638" href="#1638">1638</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_ID)) {
<a class="jxr_linenumber" name="1639" href="#1639">1639</a>                     target.setId(readText(parser));
<a class="jxr_linenumber" name="1640" href="#1640">1640</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1641" href="#1641">1641</a>                 }
<a class="jxr_linenumber" name="1642" href="#1642">1642</a> 
<a class="jxr_linenumber" name="1643" href="#1643">1643</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_LOCALNAME)) {
<a class="jxr_linenumber" name="1644" href="#1644">1644</a>                     target.setLocalName(readText(parser));
<a class="jxr_linenumber" name="1645" href="#1645">1645</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1646" href="#1646">1646</a>                 }
<a class="jxr_linenumber" name="1647" href="#1647">1647</a> 
<a class="jxr_linenumber" name="1648" href="#1648">1648</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_LOCALNAMESPACE)) {
<a class="jxr_linenumber" name="1649" href="#1649">1649</a>                     target.setLocalNamespace(readText(parser));
<a class="jxr_linenumber" name="1650" href="#1650">1650</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1651" href="#1651">1651</a>                 }
<a class="jxr_linenumber" name="1652" href="#1652">1652</a> 
<a class="jxr_linenumber" name="1653" href="#1653">1653</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_DISPLAYNAME)) {
<a class="jxr_linenumber" name="1654" href="#1654">1654</a>                     target.setDisplayName(readText(parser));
<a class="jxr_linenumber" name="1655" href="#1655">1655</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1656" href="#1656">1656</a>                 }
<a class="jxr_linenumber" name="1657" href="#1657">1657</a> 
<a class="jxr_linenumber" name="1658" href="#1658">1658</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_QUERYNAME)) {
<a class="jxr_linenumber" name="1659" href="#1659">1659</a>                     target.setQueryName(readText(parser));
<a class="jxr_linenumber" name="1660" href="#1660">1660</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1661" href="#1661">1661</a>                 }
<a class="jxr_linenumber" name="1662" href="#1662">1662</a> 
<a class="jxr_linenumber" name="1663" href="#1663">1663</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_DESCRIPTION)) {
<a class="jxr_linenumber" name="1664" href="#1664">1664</a>                     target.setDescription(readText(parser));
<a class="jxr_linenumber" name="1665" href="#1665">1665</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1666" href="#1666">1666</a>                 }
<a class="jxr_linenumber" name="1667" href="#1667">1667</a> 
<a class="jxr_linenumber" name="1668" href="#1668">1668</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_BASE_ID)) {
<a class="jxr_linenumber" name="1669" href="#1669">1669</a>                     BaseTypeId baseType = readEnum(parser, BaseTypeId.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="1670" href="#1670">1670</a>                     <strong class="jxr_keyword">if</strong> (baseType == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1671" href="#1671">1671</a>                         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Invalid base type!"</span>);
<a class="jxr_linenumber" name="1672" href="#1672">1672</a>                     }
<a class="jxr_linenumber" name="1673" href="#1673">1673</a> 
<a class="jxr_linenumber" name="1674" href="#1674">1674</a>                     target.setBaseTypeId(baseType);
<a class="jxr_linenumber" name="1675" href="#1675">1675</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1676" href="#1676">1676</a>                 }
<a class="jxr_linenumber" name="1677" href="#1677">1677</a> 
<a class="jxr_linenumber" name="1678" href="#1678">1678</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_PARENT_ID)) {
<a class="jxr_linenumber" name="1679" href="#1679">1679</a>                     target.setParentTypeId(readText(parser));
<a class="jxr_linenumber" name="1680" href="#1680">1680</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1681" href="#1681">1681</a>                 }
<a class="jxr_linenumber" name="1682" href="#1682">1682</a> 
<a class="jxr_linenumber" name="1683" href="#1683">1683</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_CREATABLE)) {
<a class="jxr_linenumber" name="1684" href="#1684">1684</a>                     target.setIsCreatable(readBoolean(parser));
<a class="jxr_linenumber" name="1685" href="#1685">1685</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1686" href="#1686">1686</a>                 }
<a class="jxr_linenumber" name="1687" href="#1687">1687</a> 
<a class="jxr_linenumber" name="1688" href="#1688">1688</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_FILEABLE)) {
<a class="jxr_linenumber" name="1689" href="#1689">1689</a>                     target.setIsFileable(readBoolean(parser));
<a class="jxr_linenumber" name="1690" href="#1690">1690</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1691" href="#1691">1691</a>                 }
<a class="jxr_linenumber" name="1692" href="#1692">1692</a> 
<a class="jxr_linenumber" name="1693" href="#1693">1693</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_QUERYABLE)) {
<a class="jxr_linenumber" name="1694" href="#1694">1694</a>                     target.setIsQueryable(readBoolean(parser));
<a class="jxr_linenumber" name="1695" href="#1695">1695</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<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>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_FULLTEXT_INDEXED)) {
<a class="jxr_linenumber" name="1699" href="#1699">1699</a>                     target.setIsFulltextIndexed(readBoolean(parser));
<a class="jxr_linenumber" name="1700" href="#1700">1700</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1701" href="#1701">1701</a>                 }
<a class="jxr_linenumber" name="1702" href="#1702">1702</a> 
<a class="jxr_linenumber" name="1703" href="#1703">1703</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_INCLUDE_IN_SUPERTYPE_QUERY)) {
<a class="jxr_linenumber" name="1704" href="#1704">1704</a>                     target.setIsIncludedInSupertypeQuery(readBoolean(parser));
<a class="jxr_linenumber" name="1705" href="#1705">1705</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1706" href="#1706">1706</a>                 }
<a class="jxr_linenumber" name="1707" href="#1707">1707</a> 
<a class="jxr_linenumber" name="1708" href="#1708">1708</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_CONTROLABLE_POLICY)) {
<a class="jxr_linenumber" name="1709" href="#1709">1709</a>                     target.setIsControllablePolicy(readBoolean(parser));
<a class="jxr_linenumber" name="1710" href="#1710">1710</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1711" href="#1711">1711</a>                 }
<a class="jxr_linenumber" name="1712" href="#1712">1712</a> 
<a class="jxr_linenumber" name="1713" href="#1713">1713</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_CONTROLABLE_ACL)) {
<a class="jxr_linenumber" name="1714" href="#1714">1714</a>                     target.setIsControllableAcl(readBoolean(parser));
<a class="jxr_linenumber" name="1715" href="#1715">1715</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1716" href="#1716">1716</a>                 }
<a class="jxr_linenumber" name="1717" href="#1717">1717</a> 
<a class="jxr_linenumber" name="1718" href="#1718">1718</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_TYPE_MUTABILITY)) {
<a class="jxr_linenumber" name="1719" href="#1719">1719</a>                     target.setTypeMutability(TYPE_MUTABILITY_PARSER.walk(parser));
<a class="jxr_linenumber" name="1720" href="#1720">1720</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1721" href="#1721">1721</a>                 }
<a class="jxr_linenumber" name="1722" href="#1722">1722</a> 
<a class="jxr_linenumber" name="1723" href="#1723">1723</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_PROP_DEF_STRING) || isTag(name, TAG_TYPE_PROP_DEF_ID)
<a class="jxr_linenumber" name="1724" href="#1724">1724</a>                         || isTag(name, TAG_TYPE_PROP_DEF_BOOLEAN) || isTag(name, TAG_TYPE_PROP_DEF_INTEGER)
<a class="jxr_linenumber" name="1725" href="#1725">1725</a>                         || isTag(name, TAG_TYPE_PROP_DEF_DATETIME) || isTag(name, TAG_TYPE_PROP_DEF_DECIMAL)
<a class="jxr_linenumber" name="1726" href="#1726">1726</a>                         || isTag(name, TAG_TYPE_PROP_DEF_HTML) || isTag(name, TAG_TYPE_PROP_DEF_URI)) {
<a class="jxr_linenumber" name="1727" href="#1727">1727</a>                     target.addPropertyDefinition(PROPERTY_TYPE_PARSER.walk(parser));
<a class="jxr_linenumber" name="1728" href="#1728">1728</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1729" href="#1729">1729</a>                 }
<a class="jxr_linenumber" name="1730" href="#1730">1730</a> 
<a class="jxr_linenumber" name="1731" href="#1731">1731</a>                 <strong class="jxr_keyword">if</strong> (target instanceof DocumentTypeDefinitionImpl) {
<a class="jxr_linenumber" name="1732" href="#1732">1732</a>                     <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_VERSIONABLE)) {
<a class="jxr_linenumber" name="1733" href="#1733">1733</a>                         ((DocumentTypeDefinitionImpl) target).setIsVersionable(readBoolean(parser));
<a class="jxr_linenumber" name="1734" href="#1734">1734</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<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">if</strong> (isTag(name, TAG_TYPE_CONTENTSTREAM_ALLOWED)) {
<a class="jxr_linenumber" name="1738" href="#1738">1738</a>                         ((DocumentTypeDefinitionImpl) target).setContentStreamAllowed(readEnum(parser,
<a class="jxr_linenumber" name="1739" href="#1739">1739</a>                                 ContentStreamAllowed.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="1740" href="#1740">1740</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1741" href="#1741">1741</a>                     }
<a class="jxr_linenumber" name="1742" href="#1742">1742</a>                 }
<a class="jxr_linenumber" name="1743" href="#1743">1743</a> 
<a class="jxr_linenumber" name="1744" href="#1744">1744</a>                 <strong class="jxr_keyword">if</strong> (target instanceof RelationshipTypeDefinitionImpl) {
<a class="jxr_linenumber" name="1745" href="#1745">1745</a>                     <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_ALLOWED_SOURCE_TYPES)) {
<a class="jxr_linenumber" name="1746" href="#1746">1746</a>                         RelationshipTypeDefinitionImpl relTarget = (RelationshipTypeDefinitionImpl) target;
<a class="jxr_linenumber" name="1747" href="#1747">1747</a>                         relTarget
<a class="jxr_linenumber" name="1748" href="#1748">1748</a>                                 .setAllowedSourceTypes(addToList(relTarget.getAllowedSourceTypeIds(), readText(parser)));
<a class="jxr_linenumber" name="1749" href="#1749">1749</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1750" href="#1750">1750</a>                     }
<a class="jxr_linenumber" name="1751" href="#1751">1751</a> 
<a class="jxr_linenumber" name="1752" href="#1752">1752</a>                     <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_ALLOWED_TARGET_TYPES)) {
<a class="jxr_linenumber" name="1753" href="#1753">1753</a>                         RelationshipTypeDefinitionImpl relTarget = (RelationshipTypeDefinitionImpl) target;
<a class="jxr_linenumber" name="1754" href="#1754">1754</a>                         relTarget
<a class="jxr_linenumber" name="1755" href="#1755">1755</a>                                 .setAllowedTargetTypes(addToList(relTarget.getAllowedTargetTypeIds(), readText(parser)));
<a class="jxr_linenumber" name="1756" href="#1756">1756</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1757" href="#1757">1757</a>                     }
<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> 
<a class="jxr_linenumber" name="1761" href="#1761">1761</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="1762" href="#1762">1762</a>         }
<a class="jxr_linenumber" name="1763" href="#1763">1763</a>     };
<a class="jxr_linenumber" name="1764" href="#1764">1764</a> 
<a class="jxr_linenumber" name="1765" href="#1765">1765</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> XMLWalker&lt;TypeMutabilityImpl&gt; TYPE_MUTABILITY_PARSER = <strong class="jxr_keyword">new</strong> XMLWalker&lt;TypeMutabilityImpl&gt;() {
<a class="jxr_linenumber" name="1766" href="#1766">1766</a>         @Override
<a class="jxr_linenumber" name="1767" href="#1767">1767</a>         <strong class="jxr_keyword">protected</strong> TypeMutabilityImpl prepareTarget(XmlPullParser parser, QName name) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1768" href="#1768">1768</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> TypeMutabilityImpl();
<a class="jxr_linenumber" name="1769" href="#1769">1769</a>         }
<a class="jxr_linenumber" name="1770" href="#1770">1770</a> 
<a class="jxr_linenumber" name="1771" href="#1771">1771</a>         @Override
<a class="jxr_linenumber" name="1772" href="#1772">1772</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, TypeMutabilityImpl target)
<a class="jxr_linenumber" name="1773" href="#1773">1773</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1774" href="#1774">1774</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="1775" href="#1775">1775</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_TYPE_MUTABILITY_CREATE)) {
<a class="jxr_linenumber" name="1776" href="#1776">1776</a>                     target.setCanCreate(readBoolean(parser));
<a class="jxr_linenumber" name="1777" href="#1777">1777</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1778" href="#1778">1778</a>                 }
<a class="jxr_linenumber" name="1779" href="#1779">1779</a> 
<a class="jxr_linenumber" name="1780" href="#1780">1780</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_TYPE_MUTABILITY_UPDATE)) {
<a class="jxr_linenumber" name="1781" href="#1781">1781</a>                     target.setCanUpdate(readBoolean(parser));
<a class="jxr_linenumber" name="1782" href="#1782">1782</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1783" href="#1783">1783</a>                 }
<a class="jxr_linenumber" name="1784" href="#1784">1784</a> 
<a class="jxr_linenumber" name="1785" href="#1785">1785</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_TYPE_MUTABILITY_DELETE)) {
<a class="jxr_linenumber" name="1786" href="#1786">1786</a>                     target.setCanDelete(readBoolean(parser));
<a class="jxr_linenumber" name="1787" href="#1787">1787</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<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> 
<a class="jxr_linenumber" name="1791" href="#1791">1791</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="1792" href="#1792">1792</a>         }
<a class="jxr_linenumber" name="1793" href="#1793">1793</a>     };
<a class="jxr_linenumber" name="1794" href="#1794">1794</a> 
<a class="jxr_linenumber" name="1795" href="#1795">1795</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> XMLWalker&lt;AbstractPropertyDefinition&lt;?&gt;&gt; PROPERTY_TYPE_PARSER = <strong class="jxr_keyword">new</strong> XMLWalker&lt;AbstractPropertyDefinition&lt;?&gt;&gt;() {
<a class="jxr_linenumber" name="1796" href="#1796">1796</a>         @Override
<a class="jxr_linenumber" name="1797" href="#1797">1797</a>         <strong class="jxr_keyword">protected</strong> AbstractPropertyDefinition&lt;?&gt; prepareTarget(XmlPullParser parser, QName name)
<a class="jxr_linenumber" name="1798" href="#1798">1798</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1799" href="#1799">1799</a>             AbstractPropertyDefinition&lt;?&gt; result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="1800" href="#1800">1800</a> 
<a class="jxr_linenumber" name="1801" href="#1801">1801</a>             <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_PROP_DEF_STRING)) {
<a class="jxr_linenumber" name="1802" href="#1802">1802</a>                 result = <strong class="jxr_keyword">new</strong> PropertyStringDefinitionImpl();
<a class="jxr_linenumber" name="1803" href="#1803">1803</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_PROP_DEF_ID)) {
<a class="jxr_linenumber" name="1804" href="#1804">1804</a>                 result = <strong class="jxr_keyword">new</strong> PropertyIdDefinitionImpl();
<a class="jxr_linenumber" name="1805" href="#1805">1805</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_PROP_DEF_BOOLEAN)) {
<a class="jxr_linenumber" name="1806" href="#1806">1806</a>                 result = <strong class="jxr_keyword">new</strong> PropertyBooleanDefinitionImpl();
<a class="jxr_linenumber" name="1807" href="#1807">1807</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_PROP_DEF_INTEGER)) {
<a class="jxr_linenumber" name="1808" href="#1808">1808</a>                 result = <strong class="jxr_keyword">new</strong> PropertyIntegerDefinitionImpl();
<a class="jxr_linenumber" name="1809" href="#1809">1809</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_PROP_DEF_DATETIME)) {
<a class="jxr_linenumber" name="1810" href="#1810">1810</a>                 result = <strong class="jxr_keyword">new</strong> PropertyDateTimeDefinitionImpl();
<a class="jxr_linenumber" name="1811" href="#1811">1811</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_PROP_DEF_DECIMAL)) {
<a class="jxr_linenumber" name="1812" href="#1812">1812</a>                 result = <strong class="jxr_keyword">new</strong> PropertyDecimalDefinitionImpl();
<a class="jxr_linenumber" name="1813" href="#1813">1813</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_PROP_DEF_HTML)) {
<a class="jxr_linenumber" name="1814" href="#1814">1814</a>                 result = <strong class="jxr_keyword">new</strong> PropertyHtmlDefinitionImpl();
<a class="jxr_linenumber" name="1815" href="#1815">1815</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (isTag(name, TAG_TYPE_PROP_DEF_URI)) {
<a class="jxr_linenumber" name="1816" href="#1816">1816</a>                 result = <strong class="jxr_keyword">new</strong> PropertyUriDefinitionImpl();
<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>             <strong class="jxr_keyword">if</strong> (result == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1820" href="#1820">1820</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Cannot read property type definition!"</span>);
<a class="jxr_linenumber" name="1821" href="#1821">1821</a>             }
<a class="jxr_linenumber" name="1822" href="#1822">1822</a> 
<a class="jxr_linenumber" name="1823" href="#1823">1823</a>             <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="1824" href="#1824">1824</a>         }
<a class="jxr_linenumber" name="1825" href="#1825">1825</a> 
<a class="jxr_linenumber" name="1826" href="#1826">1826</a>         @Override
<a class="jxr_linenumber" name="1827" href="#1827">1827</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, AbstractPropertyDefinition&lt;?&gt; target)
<a class="jxr_linenumber" name="1828" href="#1828">1828</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="1829" href="#1829">1829</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="1830" href="#1830">1830</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_ID)) {
<a class="jxr_linenumber" name="1831" href="#1831">1831</a>                     target.setId(readText(parser));
<a class="jxr_linenumber" name="1832" href="#1832">1832</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1833" href="#1833">1833</a>                 }
<a class="jxr_linenumber" name="1834" href="#1834">1834</a> 
<a class="jxr_linenumber" name="1835" href="#1835">1835</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_LOCALNAME)) {
<a class="jxr_linenumber" name="1836" href="#1836">1836</a>                     target.setLocalName(readText(parser));
<a class="jxr_linenumber" name="1837" href="#1837">1837</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1838" href="#1838">1838</a>                 }
<a class="jxr_linenumber" name="1839" href="#1839">1839</a> 
<a class="jxr_linenumber" name="1840" href="#1840">1840</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_LOCALNAMESPACE)) {
<a class="jxr_linenumber" name="1841" href="#1841">1841</a>                     target.setLocalNamespace(readText(parser));
<a class="jxr_linenumber" name="1842" href="#1842">1842</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1843" href="#1843">1843</a>                 }
<a class="jxr_linenumber" name="1844" href="#1844">1844</a> 
<a class="jxr_linenumber" name="1845" href="#1845">1845</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_DISPLAYNAME)) {
<a class="jxr_linenumber" name="1846" href="#1846">1846</a>                     target.setDisplayName(readText(parser));
<a class="jxr_linenumber" name="1847" href="#1847">1847</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1848" href="#1848">1848</a>                 }
<a class="jxr_linenumber" name="1849" href="#1849">1849</a> 
<a class="jxr_linenumber" name="1850" href="#1850">1850</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_QUERYNAME)) {
<a class="jxr_linenumber" name="1851" href="#1851">1851</a>                     target.setQueryName(readText(parser));
<a class="jxr_linenumber" name="1852" href="#1852">1852</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1853" href="#1853">1853</a>                 }
<a class="jxr_linenumber" name="1854" href="#1854">1854</a> 
<a class="jxr_linenumber" name="1855" href="#1855">1855</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_DESCRIPTION)) {
<a class="jxr_linenumber" name="1856" href="#1856">1856</a>                     target.setDescription(readText(parser));
<a class="jxr_linenumber" name="1857" href="#1857">1857</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1858" href="#1858">1858</a>                 }
<a class="jxr_linenumber" name="1859" href="#1859">1859</a> 
<a class="jxr_linenumber" name="1860" href="#1860">1860</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_PROPERTY_TYPE)) {
<a class="jxr_linenumber" name="1861" href="#1861">1861</a>                     PropertyType propType = readEnum(parser, PropertyType.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="1862" href="#1862">1862</a>                     <strong class="jxr_keyword">if</strong> (propType == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1863" href="#1863">1863</a>                         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Invalid property type!"</span>);
<a class="jxr_linenumber" name="1864" href="#1864">1864</a>                     }
<a class="jxr_linenumber" name="1865" href="#1865">1865</a> 
<a class="jxr_linenumber" name="1866" href="#1866">1866</a>                     target.setPropertyType(propType);
<a class="jxr_linenumber" name="1867" href="#1867">1867</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</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>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_CARDINALITY)) {
<a class="jxr_linenumber" name="1871" href="#1871">1871</a>                     Cardinality cardinality = readEnum(parser, Cardinality.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="1872" href="#1872">1872</a>                     <strong class="jxr_keyword">if</strong> (cardinality == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1873" href="#1873">1873</a>                         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Invalid cardinality!"</span>);
<a class="jxr_linenumber" name="1874" href="#1874">1874</a>                     }
<a class="jxr_linenumber" name="1875" href="#1875">1875</a> 
<a class="jxr_linenumber" name="1876" href="#1876">1876</a>                     target.setCardinality(cardinality);
<a class="jxr_linenumber" name="1877" href="#1877">1877</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1878" href="#1878">1878</a>                 }
<a class="jxr_linenumber" name="1879" href="#1879">1879</a> 
<a class="jxr_linenumber" name="1880" href="#1880">1880</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_UPDATABILITY)) {
<a class="jxr_linenumber" name="1881" href="#1881">1881</a>                     Updatability updatability = readEnum(parser, Updatability.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="1882" href="#1882">1882</a>                     <strong class="jxr_keyword">if</strong> (updatability == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="1883" href="#1883">1883</a>                         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Invalid updatability!"</span>);
<a class="jxr_linenumber" name="1884" href="#1884">1884</a>                     }
<a class="jxr_linenumber" name="1885" href="#1885">1885</a> 
<a class="jxr_linenumber" name="1886" href="#1886">1886</a>                     target.setUpdatability(updatability);
<a class="jxr_linenumber" name="1887" href="#1887">1887</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1888" href="#1888">1888</a>                 }
<a class="jxr_linenumber" name="1889" href="#1889">1889</a> 
<a class="jxr_linenumber" name="1890" href="#1890">1890</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_INHERITED)) {
<a class="jxr_linenumber" name="1891" href="#1891">1891</a>                     target.setIsInherited(readBoolean(parser));
<a class="jxr_linenumber" name="1892" href="#1892">1892</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1893" href="#1893">1893</a>                 }
<a class="jxr_linenumber" name="1894" href="#1894">1894</a> 
<a class="jxr_linenumber" name="1895" href="#1895">1895</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_REQUIRED)) {
<a class="jxr_linenumber" name="1896" href="#1896">1896</a>                     target.setIsRequired(readBoolean(parser));
<a class="jxr_linenumber" name="1897" href="#1897">1897</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1898" href="#1898">1898</a>                 }
<a class="jxr_linenumber" name="1899" href="#1899">1899</a> 
<a class="jxr_linenumber" name="1900" href="#1900">1900</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_QUERYABLE)) {
<a class="jxr_linenumber" name="1901" href="#1901">1901</a>                     target.setIsQueryable(readBoolean(parser));
<a class="jxr_linenumber" name="1902" href="#1902">1902</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1903" href="#1903">1903</a>                 }
<a class="jxr_linenumber" name="1904" href="#1904">1904</a> 
<a class="jxr_linenumber" name="1905" href="#1905">1905</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_ORDERABLE)) {
<a class="jxr_linenumber" name="1906" href="#1906">1906</a>                     target.setIsOrderable(readBoolean(parser));
<a class="jxr_linenumber" name="1907" href="#1907">1907</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1908" href="#1908">1908</a>                 }
<a class="jxr_linenumber" name="1909" href="#1909">1909</a> 
<a class="jxr_linenumber" name="1910" href="#1910">1910</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_OPENCHOICE)) {
<a class="jxr_linenumber" name="1911" href="#1911">1911</a>                     target.setIsOpenChoice(readBoolean(parser));
<a class="jxr_linenumber" name="1912" href="#1912">1912</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1913" href="#1913">1913</a>                 }
<a class="jxr_linenumber" name="1914" href="#1914">1914</a> 
<a class="jxr_linenumber" name="1915" href="#1915">1915</a>                 <strong class="jxr_keyword">if</strong> (target instanceof PropertyStringDefinitionImpl) {
<a class="jxr_linenumber" name="1916" href="#1916">1916</a>                     <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_DEAULT_VALUE)) {
<a class="jxr_linenumber" name="1917" href="#1917">1917</a>                         PropertyString prop = PROPERTY_STRING_PARSER.walk(parser);
<a class="jxr_linenumber" name="1918" href="#1918">1918</a>                         ((PropertyStringDefinitionImpl) target).setDefaultValue(prop.getValues());
<a class="jxr_linenumber" name="1919" href="#1919">1919</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1920" href="#1920">1920</a>                     }
<a class="jxr_linenumber" name="1921" href="#1921">1921</a> 
<a class="jxr_linenumber" name="1922" href="#1922">1922</a>                     <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_CHOICE)) {
<a class="jxr_linenumber" name="1923" href="#1923">1923</a>                         CHOICE_STRING_PARSER.addToChoiceList(parser, (PropertyStringDefinitionImpl) target);
<a class="jxr_linenumber" name="1924" href="#1924">1924</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<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>                     <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_MAX_LENGTH)) {
<a class="jxr_linenumber" name="1928" href="#1928">1928</a>                         ((PropertyStringDefinitionImpl) target).setMaxLength(readInteger(parser));
<a class="jxr_linenumber" name="1929" href="#1929">1929</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1930" href="#1930">1930</a>                     }
<a class="jxr_linenumber" name="1931" href="#1931">1931</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (target instanceof PropertyIdDefinitionImpl) {
<a class="jxr_linenumber" name="1932" href="#1932">1932</a>                     <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_DEAULT_VALUE)) {
<a class="jxr_linenumber" name="1933" href="#1933">1933</a>                         PropertyId prop = PROPERTY_ID_PARSER.walk(parser);
<a class="jxr_linenumber" name="1934" href="#1934">1934</a>                         ((PropertyIdDefinitionImpl) target).setDefaultValue(prop.getValues());
<a class="jxr_linenumber" name="1935" href="#1935">1935</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1936" href="#1936">1936</a>                     }
<a class="jxr_linenumber" name="1937" href="#1937">1937</a> 
<a class="jxr_linenumber" name="1938" href="#1938">1938</a>                     <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_CHOICE)) {
<a class="jxr_linenumber" name="1939" href="#1939">1939</a>                         CHOICE_STRING_PARSER.addToChoiceList(parser, (PropertyIdDefinitionImpl) target);
<a class="jxr_linenumber" name="1940" href="#1940">1940</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1941" href="#1941">1941</a>                     }
<a class="jxr_linenumber" name="1942" href="#1942">1942</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (target instanceof PropertyBooleanDefinitionImpl) {
<a class="jxr_linenumber" name="1943" href="#1943">1943</a>                     <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_DEAULT_VALUE)) {
<a class="jxr_linenumber" name="1944" href="#1944">1944</a>                         PropertyBoolean prop = PROPERTY_BOOLEAN_PARSER.walk(parser);
<a class="jxr_linenumber" name="1945" href="#1945">1945</a>                         ((PropertyBooleanDefinitionImpl) target).setDefaultValue(prop.getValues());
<a class="jxr_linenumber" name="1946" href="#1946">1946</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1947" href="#1947">1947</a>                     }
<a class="jxr_linenumber" name="1948" href="#1948">1948</a> 
<a class="jxr_linenumber" name="1949" href="#1949">1949</a>                     <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_CHOICE)) {
<a class="jxr_linenumber" name="1950" href="#1950">1950</a>                         CHOICE_BOOLEAN_PARSER.addToChoiceList(parser, (PropertyBooleanDefinitionImpl) target);
<a class="jxr_linenumber" name="1951" href="#1951">1951</a>                         <strong class="jxr_keyword">return</strong> <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>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (target instanceof PropertyIntegerDefinitionImpl) {
<a class="jxr_linenumber" name="1954" href="#1954">1954</a>                     <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_DEAULT_VALUE)) {
<a class="jxr_linenumber" name="1955" href="#1955">1955</a>                         PropertyInteger prop = PROPERTY_INTEGER_PARSER.walk(parser);
<a class="jxr_linenumber" name="1956" href="#1956">1956</a>                         ((PropertyIntegerDefinitionImpl) target).setDefaultValue(prop.getValues());
<a class="jxr_linenumber" name="1957" href="#1957">1957</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1958" href="#1958">1958</a>                     }
<a class="jxr_linenumber" name="1959" href="#1959">1959</a> 
<a class="jxr_linenumber" name="1960" href="#1960">1960</a>                     <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_CHOICE)) {
<a class="jxr_linenumber" name="1961" href="#1961">1961</a>                         CHOICE_INTEGER_PARSER.addToChoiceList(parser, (PropertyIntegerDefinitionImpl) target);
<a class="jxr_linenumber" name="1962" href="#1962">1962</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1963" href="#1963">1963</a>                     }
<a class="jxr_linenumber" name="1964" href="#1964">1964</a> 
<a class="jxr_linenumber" name="1965" href="#1965">1965</a>                     <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_MAX_VALUE)) {
<a class="jxr_linenumber" name="1966" href="#1966">1966</a>                         ((PropertyIntegerDefinitionImpl) target).setMaxValue(readInteger(parser));
<a class="jxr_linenumber" name="1967" href="#1967">1967</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1968" href="#1968">1968</a>                     }
<a class="jxr_linenumber" name="1969" href="#1969">1969</a> 
<a class="jxr_linenumber" name="1970" href="#1970">1970</a>                     <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_MIN_VALUE)) {
<a class="jxr_linenumber" name="1971" href="#1971">1971</a>                         ((PropertyIntegerDefinitionImpl) target).setMinValue(readInteger(parser));
<a class="jxr_linenumber" name="1972" href="#1972">1972</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1973" href="#1973">1973</a>                     }
<a class="jxr_linenumber" name="1974" href="#1974">1974</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (target instanceof PropertyDateTimeDefinitionImpl) {
<a class="jxr_linenumber" name="1975" href="#1975">1975</a>                     <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_DEAULT_VALUE)) {
<a class="jxr_linenumber" name="1976" href="#1976">1976</a>                         PropertyDateTime prop = PROPERTY_DATETIME_PARSER.walk(parser);
<a class="jxr_linenumber" name="1977" href="#1977">1977</a>                         ((PropertyDateTimeDefinitionImpl) target).setDefaultValue(prop.getValues());
<a class="jxr_linenumber" name="1978" href="#1978">1978</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<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>                     <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_CHOICE)) {
<a class="jxr_linenumber" name="1982" href="#1982">1982</a>                         CHOICE_DATETIME_PARSER.addToChoiceList(parser, (PropertyDateTimeDefinitionImpl) target);
<a class="jxr_linenumber" name="1983" href="#1983">1983</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1984" href="#1984">1984</a>                     }
<a class="jxr_linenumber" name="1985" href="#1985">1985</a> 
<a class="jxr_linenumber" name="1986" href="#1986">1986</a>                     <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_RESOLUTION)) {
<a class="jxr_linenumber" name="1987" href="#1987">1987</a>                         ((PropertyDateTimeDefinitionImpl) target).setDateTimeResolution(readEnum(parser,
<a class="jxr_linenumber" name="1988" href="#1988">1988</a>                                 DateTimeResolution.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="1989" href="#1989">1989</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1990" href="#1990">1990</a>                     }
<a class="jxr_linenumber" name="1991" href="#1991">1991</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (target instanceof PropertyDecimalDefinitionImpl) {
<a class="jxr_linenumber" name="1992" href="#1992">1992</a>                     <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_DEAULT_VALUE)) {
<a class="jxr_linenumber" name="1993" href="#1993">1993</a>                         PropertyDecimal prop = PROPERTY_DECIMAL_PARSER.walk(parser);
<a class="jxr_linenumber" name="1994" href="#1994">1994</a>                         ((PropertyDecimalDefinitionImpl) target).setDefaultValue(prop.getValues());
<a class="jxr_linenumber" name="1995" href="#1995">1995</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="1996" href="#1996">1996</a>                     }
<a class="jxr_linenumber" name="1997" href="#1997">1997</a> 
<a class="jxr_linenumber" name="1998" href="#1998">1998</a>                     <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_CHOICE)) {
<a class="jxr_linenumber" name="1999" href="#1999">1999</a>                         CHOICE_DECIMAL_PARSER.addToChoiceList(parser, (PropertyDecimalDefinitionImpl) target);
<a class="jxr_linenumber" name="2000" href="#2000">2000</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2001" href="#2001">2001</a>                     }
<a class="jxr_linenumber" name="2002" href="#2002">2002</a> 
<a class="jxr_linenumber" name="2003" href="#2003">2003</a>                     <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_MAX_VALUE)) {
<a class="jxr_linenumber" name="2004" href="#2004">2004</a>                         ((PropertyDecimalDefinitionImpl) target).setMaxValue(readDecimal(parser));
<a class="jxr_linenumber" name="2005" href="#2005">2005</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<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>                     <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_MIN_VALUE)) {
<a class="jxr_linenumber" name="2009" href="#2009">2009</a>                         ((PropertyDecimalDefinitionImpl) target).setMinValue(readDecimal(parser));
<a class="jxr_linenumber" name="2010" href="#2010">2010</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2011" href="#2011">2011</a>                     }
<a class="jxr_linenumber" name="2012" href="#2012">2012</a> 
<a class="jxr_linenumber" name="2013" href="#2013">2013</a>                     <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_PRECISION)) {
<a class="jxr_linenumber" name="2014" href="#2014">2014</a>                         <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="2015" href="#2015">2015</a>                             ((PropertyDecimalDefinitionImpl) target).setPrecision(DecimalPrecision
<a class="jxr_linenumber" name="2016" href="#2016">2016</a>                                     .fromValue(readInteger(parser)));
<a class="jxr_linenumber" name="2017" href="#2017">2017</a>                         } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
<a class="jxr_linenumber" name="2018" href="#2018">2018</a>                             <em class="jxr_comment">// invalid enum value - ignore</em>
<a class="jxr_linenumber" name="2019" href="#2019">2019</a>                         }
<a class="jxr_linenumber" name="2020" href="#2020">2020</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2021" href="#2021">2021</a>                     }
<a class="jxr_linenumber" name="2022" href="#2022">2022</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (target instanceof PropertyHtmlDefinitionImpl) {
<a class="jxr_linenumber" name="2023" href="#2023">2023</a>                     <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_DEAULT_VALUE)) {
<a class="jxr_linenumber" name="2024" href="#2024">2024</a>                         PropertyHtml prop = PROPERTY_HTML_PARSER.walk(parser);
<a class="jxr_linenumber" name="2025" href="#2025">2025</a>                         ((PropertyHtmlDefinitionImpl) target).setDefaultValue(prop.getValues());
<a class="jxr_linenumber" name="2026" href="#2026">2026</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2027" href="#2027">2027</a>                     }
<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> (isTag(name, TAG_PROPERTY_TYPE_CHOICE)) {
<a class="jxr_linenumber" name="2030" href="#2030">2030</a>                         CHOICE_STRING_PARSER.addToChoiceList(parser, (PropertyHtmlDefinitionImpl) target);
<a class="jxr_linenumber" name="2031" href="#2031">2031</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2032" href="#2032">2032</a>                     }
<a class="jxr_linenumber" name="2033" href="#2033">2033</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (target instanceof PropertyUriDefinitionImpl) {
<a class="jxr_linenumber" name="2034" href="#2034">2034</a>                     <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_DEAULT_VALUE)) {
<a class="jxr_linenumber" name="2035" href="#2035">2035</a>                         PropertyUri prop = PROPERTY_URI_PARSER.walk(parser);
<a class="jxr_linenumber" name="2036" href="#2036">2036</a>                         ((PropertyUriDefinitionImpl) target).setDefaultValue(prop.getValues());
<a class="jxr_linenumber" name="2037" href="#2037">2037</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2038" href="#2038">2038</a>                     }
<a class="jxr_linenumber" name="2039" href="#2039">2039</a> 
<a class="jxr_linenumber" name="2040" href="#2040">2040</a>                     <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_CHOICE)) {
<a class="jxr_linenumber" name="2041" href="#2041">2041</a>                         CHOICE_STRING_PARSER.addToChoiceList(parser, (PropertyUriDefinitionImpl) target);
<a class="jxr_linenumber" name="2042" href="#2042">2042</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2043" href="#2043">2043</a>                     }
<a class="jxr_linenumber" name="2044" href="#2044">2044</a>                 }
<a class="jxr_linenumber" name="2045" href="#2045">2045</a>             }
<a class="jxr_linenumber" name="2046" href="#2046">2046</a> 
<a class="jxr_linenumber" name="2047" href="#2047">2047</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="2048" href="#2048">2048</a>         }
<a class="jxr_linenumber" name="2049" href="#2049">2049</a>     };
<a class="jxr_linenumber" name="2050" href="#2050">2050</a> 
<a class="jxr_linenumber" name="2051" href="#2051">2051</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> ChoiceAtomPubXMLWalker&lt;String&gt; CHOICE_STRING_PARSER = <strong class="jxr_keyword">new</strong> ChoiceAtomPubXMLWalker&lt;String&gt;() {
<a class="jxr_linenumber" name="2052" href="#2052">2052</a>         @Override
<a class="jxr_linenumber" name="2053" href="#2053">2053</a>         <strong class="jxr_keyword">protected</strong> ChoiceImpl&lt;String&gt; createTarget(XmlPullParser parser, QName name) {
<a class="jxr_linenumber" name="2054" href="#2054">2054</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ChoiceImpl&lt;String&gt;();
<a class="jxr_linenumber" name="2055" href="#2055">2055</a>         }
<a class="jxr_linenumber" name="2056" href="#2056">2056</a> 
<a class="jxr_linenumber" name="2057" href="#2057">2057</a>         @Override
<a class="jxr_linenumber" name="2058" href="#2058">2058</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> addValue(XmlPullParser parser, ChoiceImpl&lt;String&gt; target) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2059" href="#2059">2059</a>             target.setValue(addToList(target.getValue(), readText(parser)));
<a class="jxr_linenumber" name="2060" href="#2060">2060</a>         }
<a class="jxr_linenumber" name="2061" href="#2061">2061</a> 
<a class="jxr_linenumber" name="2062" href="#2062">2062</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> addChoice(XmlPullParser parser, ChoiceImpl&lt;String&gt; target) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2063" href="#2063">2063</a>             target.setChoice(addToList(target.getChoice(), CHOICE_STRING_PARSER.walk(parser)));
<a class="jxr_linenumber" name="2064" href="#2064">2064</a>         }
<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>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> ChoiceAtomPubXMLWalker&lt;Boolean&gt; CHOICE_BOOLEAN_PARSER = <strong class="jxr_keyword">new</strong> ChoiceAtomPubXMLWalker&lt;Boolean&gt;() {
<a class="jxr_linenumber" name="2068" href="#2068">2068</a>         @Override
<a class="jxr_linenumber" name="2069" href="#2069">2069</a>         <strong class="jxr_keyword">protected</strong> ChoiceImpl&lt;Boolean&gt; createTarget(XmlPullParser parser, QName name) {
<a class="jxr_linenumber" name="2070" href="#2070">2070</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ChoiceImpl&lt;Boolean&gt;();
<a class="jxr_linenumber" name="2071" href="#2071">2071</a>         }
<a class="jxr_linenumber" name="2072" href="#2072">2072</a> 
<a class="jxr_linenumber" name="2073" href="#2073">2073</a>         @Override
<a class="jxr_linenumber" name="2074" href="#2074">2074</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> addValue(XmlPullParser parser, ChoiceImpl&lt;Boolean&gt; target) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2075" href="#2075">2075</a>             target.setValue(addToList(target.getValue(), readBoolean(parser)));
<a class="jxr_linenumber" name="2076" href="#2076">2076</a>         }
<a class="jxr_linenumber" name="2077" href="#2077">2077</a> 
<a class="jxr_linenumber" name="2078" href="#2078">2078</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> addChoice(XmlPullParser parser, ChoiceImpl&lt;Boolean&gt; target) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2079" href="#2079">2079</a>             target.setChoice(addToList(target.getChoice(), CHOICE_BOOLEAN_PARSER.walk(parser)));
<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> 
<a class="jxr_linenumber" name="2083" href="#2083">2083</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> ChoiceAtomPubXMLWalker&lt;BigInteger&gt; CHOICE_INTEGER_PARSER = <strong class="jxr_keyword">new</strong> ChoiceAtomPubXMLWalker&lt;BigInteger&gt;() {
<a class="jxr_linenumber" name="2084" href="#2084">2084</a>         @Override
<a class="jxr_linenumber" name="2085" href="#2085">2085</a>         <strong class="jxr_keyword">protected</strong> ChoiceImpl&lt;BigInteger&gt; createTarget(XmlPullParser parser, QName name) {
<a class="jxr_linenumber" name="2086" href="#2086">2086</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ChoiceImpl&lt;BigInteger&gt;();
<a class="jxr_linenumber" name="2087" href="#2087">2087</a>         }
<a class="jxr_linenumber" name="2088" href="#2088">2088</a> 
<a class="jxr_linenumber" name="2089" href="#2089">2089</a>         @Override
<a class="jxr_linenumber" name="2090" href="#2090">2090</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> addValue(XmlPullParser parser, ChoiceImpl&lt;BigInteger&gt; target) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2091" href="#2091">2091</a>             target.setValue(addToList(target.getValue(), readInteger(parser)));
<a class="jxr_linenumber" name="2092" href="#2092">2092</a>         }
<a class="jxr_linenumber" name="2093" href="#2093">2093</a> 
<a class="jxr_linenumber" name="2094" href="#2094">2094</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> addChoice(XmlPullParser parser, ChoiceImpl&lt;BigInteger&gt; target) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2095" href="#2095">2095</a>             target.setChoice(addToList(target.getChoice(), CHOICE_INTEGER_PARSER.walk(parser)));
<a class="jxr_linenumber" name="2096" href="#2096">2096</a>         }
<a class="jxr_linenumber" name="2097" href="#2097">2097</a>     };
<a class="jxr_linenumber" name="2098" href="#2098">2098</a> 
<a class="jxr_linenumber" name="2099" href="#2099">2099</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> ChoiceAtomPubXMLWalker&lt;GregorianCalendar&gt; CHOICE_DATETIME_PARSER = <strong class="jxr_keyword">new</strong> ChoiceAtomPubXMLWalker&lt;GregorianCalendar&gt;() {
<a class="jxr_linenumber" name="2100" href="#2100">2100</a>         @Override
<a class="jxr_linenumber" name="2101" href="#2101">2101</a>         <strong class="jxr_keyword">protected</strong> ChoiceImpl&lt;GregorianCalendar&gt; createTarget(XmlPullParser parser, QName name) {
<a class="jxr_linenumber" name="2102" href="#2102">2102</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ChoiceImpl&lt;GregorianCalendar&gt;();
<a class="jxr_linenumber" name="2103" href="#2103">2103</a>         }
<a class="jxr_linenumber" name="2104" href="#2104">2104</a> 
<a class="jxr_linenumber" name="2105" href="#2105">2105</a>         @Override
<a class="jxr_linenumber" name="2106" href="#2106">2106</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> addValue(XmlPullParser parser, ChoiceImpl&lt;GregorianCalendar&gt; target)
<a class="jxr_linenumber" name="2107" href="#2107">2107</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2108" href="#2108">2108</a>             target.setValue(addToList(target.getValue(), readDateTime(parser)));
<a class="jxr_linenumber" name="2109" href="#2109">2109</a>         }
<a class="jxr_linenumber" name="2110" href="#2110">2110</a> 
<a class="jxr_linenumber" name="2111" href="#2111">2111</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> addChoice(XmlPullParser parser, ChoiceImpl&lt;GregorianCalendar&gt; target)
<a class="jxr_linenumber" name="2112" href="#2112">2112</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2113" href="#2113">2113</a>             target.setChoice(addToList(target.getChoice(), CHOICE_DATETIME_PARSER.walk(parser)));
<a class="jxr_linenumber" name="2114" href="#2114">2114</a>         }
<a class="jxr_linenumber" name="2115" href="#2115">2115</a>     };
<a class="jxr_linenumber" name="2116" href="#2116">2116</a> 
<a class="jxr_linenumber" name="2117" href="#2117">2117</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> ChoiceAtomPubXMLWalker&lt;BigDecimal&gt; CHOICE_DECIMAL_PARSER = <strong class="jxr_keyword">new</strong> ChoiceAtomPubXMLWalker&lt;BigDecimal&gt;() {
<a class="jxr_linenumber" name="2118" href="#2118">2118</a>         @Override
<a class="jxr_linenumber" name="2119" href="#2119">2119</a>         <strong class="jxr_keyword">protected</strong> ChoiceImpl&lt;BigDecimal&gt; createTarget(XmlPullParser parser, QName name) {
<a class="jxr_linenumber" name="2120" href="#2120">2120</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ChoiceImpl&lt;BigDecimal&gt;();
<a class="jxr_linenumber" name="2121" href="#2121">2121</a>         }
<a class="jxr_linenumber" name="2122" href="#2122">2122</a> 
<a class="jxr_linenumber" name="2123" href="#2123">2123</a>         @Override
<a class="jxr_linenumber" name="2124" href="#2124">2124</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> addValue(XmlPullParser parser, ChoiceImpl&lt;BigDecimal&gt; target) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2125" href="#2125">2125</a>             target.setValue(addToList(target.getValue(), readDecimal(parser)));
<a class="jxr_linenumber" name="2126" href="#2126">2126</a>         }
<a class="jxr_linenumber" name="2127" href="#2127">2127</a> 
<a class="jxr_linenumber" name="2128" href="#2128">2128</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> addChoice(XmlPullParser parser, ChoiceImpl&lt;BigDecimal&gt; target) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2129" href="#2129">2129</a>             target.setChoice(addToList(target.getChoice(), CHOICE_DECIMAL_PARSER.walk(parser)));
<a class="jxr_linenumber" name="2130" href="#2130">2130</a>         }
<a class="jxr_linenumber" name="2131" href="#2131">2131</a>     };
<a class="jxr_linenumber" name="2132" href="#2132">2132</a> 
<a class="jxr_linenumber" name="2133" href="#2133">2133</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> ChoiceAtomPubXMLWalker&lt;T&gt; <strong class="jxr_keyword">extends</strong> XMLWalker&lt;ChoiceImpl&lt;T&gt;&gt; {
<a class="jxr_linenumber" name="2134" href="#2134">2134</a> 
<a class="jxr_linenumber" name="2135" href="#2135">2135</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addToChoiceList(XmlPullParser parser, AbstractPropertyDefinition&lt;T&gt; propDef)
<a class="jxr_linenumber" name="2136" href="#2136">2136</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2137" href="#2137">2137</a>             propDef.setChoices(addToList(propDef.getChoices(), walk(parser)));
<a class="jxr_linenumber" name="2138" href="#2138">2138</a>         }
<a class="jxr_linenumber" name="2139" href="#2139">2139</a> 
<a class="jxr_linenumber" name="2140" href="#2140">2140</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> ChoiceImpl&lt;T&gt; createTarget(XmlPullParser parser, QName name);
<a class="jxr_linenumber" name="2141" href="#2141">2141</a> 
<a class="jxr_linenumber" name="2142" href="#2142">2142</a>         @Override
<a class="jxr_linenumber" name="2143" href="#2143">2143</a>         <strong class="jxr_keyword">protected</strong> ChoiceImpl&lt;T&gt; prepareTarget(XmlPullParser parser, QName name) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2144" href="#2144">2144</a>             ChoiceImpl&lt;T&gt; result = createTarget(parser, name);
<a class="jxr_linenumber" name="2145" href="#2145">2145</a> 
<a class="jxr_linenumber" name="2146" href="#2146">2146</a>             <strong class="jxr_keyword">if</strong> (parser.getAttributeCount() &gt; 0) {
<a class="jxr_linenumber" name="2147" href="#2147">2147</a>                 <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; parser.getAttributeCount(); i++) {
<a class="jxr_linenumber" name="2148" href="#2148">2148</a>                     String attr = parser.getAttributeName(i);
<a class="jxr_linenumber" name="2149" href="#2149">2149</a>                     <strong class="jxr_keyword">if</strong> (ATTR_PROPERTY_TYPE_CHOICE_DISPLAYNAME.equals(attr)) {
<a class="jxr_linenumber" name="2150" href="#2150">2150</a>                         result.setDisplayName(parser.getAttributeValue(i));
<a class="jxr_linenumber" name="2151" href="#2151">2151</a>                     }
<a class="jxr_linenumber" name="2152" href="#2152">2152</a>                 }
<a class="jxr_linenumber" name="2153" href="#2153">2153</a>             }
<a class="jxr_linenumber" name="2154" href="#2154">2154</a> 
<a class="jxr_linenumber" name="2155" href="#2155">2155</a>             <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2156" href="#2156">2156</a>         }
<a class="jxr_linenumber" name="2157" href="#2157">2157</a> 
<a class="jxr_linenumber" name="2158" href="#2158">2158</a>         @Override
<a class="jxr_linenumber" name="2159" href="#2159">2159</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, ChoiceImpl&lt;T&gt; target) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2160" href="#2160">2160</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="2161" href="#2161">2161</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_CHOICE_VALUE)) {
<a class="jxr_linenumber" name="2162" href="#2162">2162</a>                     addValue(parser, target);
<a class="jxr_linenumber" name="2163" href="#2163">2163</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2164" href="#2164">2164</a>                 }
<a class="jxr_linenumber" name="2165" href="#2165">2165</a> 
<a class="jxr_linenumber" name="2166" href="#2166">2166</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_TYPE_CHOICE_CHOICE)) {
<a class="jxr_linenumber" name="2167" href="#2167">2167</a>                     addChoice(parser, target);
<a class="jxr_linenumber" name="2168" href="#2168">2168</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2169" href="#2169">2169</a>                 }
<a class="jxr_linenumber" name="2170" href="#2170">2170</a>             }
<a class="jxr_linenumber" name="2171" href="#2171">2171</a> 
<a class="jxr_linenumber" name="2172" href="#2172">2172</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="2173" href="#2173">2173</a>         }
<a class="jxr_linenumber" name="2174" href="#2174">2174</a> 
<a class="jxr_linenumber" name="2175" href="#2175">2175</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">void</strong> addValue(XmlPullParser parser, ChoiceImpl&lt;T&gt; target) <strong class="jxr_keyword">throws</strong> XmlPullParserException;
<a class="jxr_linenumber" name="2176" href="#2176">2176</a> 
<a class="jxr_linenumber" name="2177" href="#2177">2177</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">void</strong> addChoice(XmlPullParser parser, ChoiceImpl&lt;T&gt; target) <strong class="jxr_keyword">throws</strong> XmlPullParserException;
<a class="jxr_linenumber" name="2178" href="#2178">2178</a>     }
<a class="jxr_linenumber" name="2179" href="#2179">2179</a> 
<a class="jxr_linenumber" name="2180" href="#2180">2180</a>     <em class="jxr_comment">// ---------------------------------</em>
<a class="jxr_linenumber" name="2181" href="#2181">2181</a>     <em class="jxr_comment">// --- objects and lists parsers ---</em>
<a class="jxr_linenumber" name="2182" href="#2182">2182</a>     <em class="jxr_comment">// ---------------------------------</em>
<a class="jxr_linenumber" name="2183" href="#2183">2183</a> 
<a class="jxr_linenumber" name="2184" href="#2184">2184</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> XMLWalker&lt;ObjectDataImpl&gt; OBJECT_PARSER = <strong class="jxr_keyword">new</strong> XMLWalker&lt;ObjectDataImpl&gt;() {
<a class="jxr_linenumber" name="2185" href="#2185">2185</a>         @Override
<a class="jxr_linenumber" name="2186" href="#2186">2186</a>         <strong class="jxr_keyword">protected</strong> ObjectDataImpl prepareTarget(XmlPullParser parser, QName name) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2187" href="#2187">2187</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ObjectDataImpl();
<a class="jxr_linenumber" name="2188" href="#2188">2188</a>         }
<a class="jxr_linenumber" name="2189" href="#2189">2189</a> 
<a class="jxr_linenumber" name="2190" href="#2190">2190</a>         @Override
<a class="jxr_linenumber" name="2191" href="#2191">2191</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, ObjectDataImpl target) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2192" href="#2192">2192</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="2193" href="#2193">2193</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_OBJECT_PROPERTIES)) {
<a class="jxr_linenumber" name="2194" href="#2194">2194</a>                     target.setProperties(PROPERTIES_PARSER.walk(parser));
<a class="jxr_linenumber" name="2195" href="#2195">2195</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2196" href="#2196">2196</a>                 }
<a class="jxr_linenumber" name="2197" href="#2197">2197</a> 
<a class="jxr_linenumber" name="2198" href="#2198">2198</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_OBJECT_ALLOWABLE_ACTIONS)) {
<a class="jxr_linenumber" name="2199" href="#2199">2199</a>                     target.setAllowableActions(ALLOWABLE_ACTIONS_PARSER.walk(parser));
<a class="jxr_linenumber" name="2200" href="#2200">2200</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2201" href="#2201">2201</a>                 }
<a class="jxr_linenumber" name="2202" href="#2202">2202</a> 
<a class="jxr_linenumber" name="2203" href="#2203">2203</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_OBJECT_RELATIONSHIP)) {
<a class="jxr_linenumber" name="2204" href="#2204">2204</a>                     target.setRelationships(addToList(target.getRelationships(), OBJECT_PARSER.walk(parser)));
<a class="jxr_linenumber" name="2205" href="#2205">2205</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2206" href="#2206">2206</a>                 }
<a class="jxr_linenumber" name="2207" href="#2207">2207</a> 
<a class="jxr_linenumber" name="2208" href="#2208">2208</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_OBJECT_CHANGE_EVENT_INFO)) {
<a class="jxr_linenumber" name="2209" href="#2209">2209</a>                     target.setChangeEventInfo(CHANGE_EVENT_PARSER.walk(parser));
<a class="jxr_linenumber" name="2210" href="#2210">2210</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2211" href="#2211">2211</a>                 }
<a class="jxr_linenumber" name="2212" href="#2212">2212</a> 
<a class="jxr_linenumber" name="2213" href="#2213">2213</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_OBJECT_ACL)) {
<a class="jxr_linenumber" name="2214" href="#2214">2214</a>                     target.setAcl(ACL_PARSER.walk(parser));
<a class="jxr_linenumber" name="2215" href="#2215">2215</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2216" href="#2216">2216</a>                 }
<a class="jxr_linenumber" name="2217" href="#2217">2217</a> 
<a class="jxr_linenumber" name="2218" href="#2218">2218</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_OBJECT_EXACT_ACL)) {
<a class="jxr_linenumber" name="2219" href="#2219">2219</a>                     target.setIsExactAcl(readBoolean(parser));
<a class="jxr_linenumber" name="2220" href="#2220">2220</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2221" href="#2221">2221</a>                 }
<a class="jxr_linenumber" name="2222" href="#2222">2222</a> 
<a class="jxr_linenumber" name="2223" href="#2223">2223</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_OBJECT_POLICY_IDS)) {
<a class="jxr_linenumber" name="2224" href="#2224">2224</a>                     target.setPolicyIds(POLICY_IDS_PARSER.walk(parser));
<a class="jxr_linenumber" name="2225" href="#2225">2225</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2226" href="#2226">2226</a>                 }
<a class="jxr_linenumber" name="2227" href="#2227">2227</a> 
<a class="jxr_linenumber" name="2228" href="#2228">2228</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_OBJECT_RENDITION)) {
<a class="jxr_linenumber" name="2229" href="#2229">2229</a>                     target.setRenditions(addToList(target.getRenditions(), RENDITION_PARSER.walk(parser)));
<a class="jxr_linenumber" name="2230" href="#2230">2230</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2231" href="#2231">2231</a>                 }
<a class="jxr_linenumber" name="2232" href="#2232">2232</a>             }
<a class="jxr_linenumber" name="2233" href="#2233">2233</a> 
<a class="jxr_linenumber" name="2234" href="#2234">2234</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="2235" href="#2235">2235</a>         }
<a class="jxr_linenumber" name="2236" href="#2236">2236</a>     };
<a class="jxr_linenumber" name="2237" href="#2237">2237</a> 
<a class="jxr_linenumber" name="2238" href="#2238">2238</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> XMLWalker&lt;PropertiesImpl&gt; PROPERTIES_PARSER = <strong class="jxr_keyword">new</strong> XMLWalker&lt;PropertiesImpl&gt;() {
<a class="jxr_linenumber" name="2239" href="#2239">2239</a>         @Override
<a class="jxr_linenumber" name="2240" href="#2240">2240</a>         <strong class="jxr_keyword">protected</strong> PropertiesImpl prepareTarget(XmlPullParser parser, QName name) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2241" href="#2241">2241</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> PropertiesImpl();
<a class="jxr_linenumber" name="2242" href="#2242">2242</a>         }
<a class="jxr_linenumber" name="2243" href="#2243">2243</a> 
<a class="jxr_linenumber" name="2244" href="#2244">2244</a>         @Override
<a class="jxr_linenumber" name="2245" href="#2245">2245</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, PropertiesImpl target) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2246" href="#2246">2246</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="2247" href="#2247">2247</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROP_STRING)) {
<a class="jxr_linenumber" name="2248" href="#2248">2248</a>                     target.addProperty(PROPERTY_STRING_PARSER.walk(parser));
<a class="jxr_linenumber" name="2249" href="#2249">2249</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2250" href="#2250">2250</a>                 }
<a class="jxr_linenumber" name="2251" href="#2251">2251</a> 
<a class="jxr_linenumber" name="2252" href="#2252">2252</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROP_ID)) {
<a class="jxr_linenumber" name="2253" href="#2253">2253</a>                     target.addProperty(PROPERTY_ID_PARSER.walk(parser));
<a class="jxr_linenumber" name="2254" href="#2254">2254</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2255" href="#2255">2255</a>                 }
<a class="jxr_linenumber" name="2256" href="#2256">2256</a> 
<a class="jxr_linenumber" name="2257" href="#2257">2257</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROP_BOOLEAN)) {
<a class="jxr_linenumber" name="2258" href="#2258">2258</a>                     target.addProperty(PROPERTY_BOOLEAN_PARSER.walk(parser));
<a class="jxr_linenumber" name="2259" href="#2259">2259</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2260" href="#2260">2260</a>                 }
<a class="jxr_linenumber" name="2261" href="#2261">2261</a> 
<a class="jxr_linenumber" name="2262" href="#2262">2262</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROP_INTEGER)) {
<a class="jxr_linenumber" name="2263" href="#2263">2263</a>                     target.addProperty(PROPERTY_INTEGER_PARSER.walk(parser));
<a class="jxr_linenumber" name="2264" href="#2264">2264</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2265" href="#2265">2265</a>                 }
<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> (isTag(name, TAG_PROP_DATETIME)) {
<a class="jxr_linenumber" name="2268" href="#2268">2268</a>                     target.addProperty(PROPERTY_DATETIME_PARSER.walk(parser));
<a class="jxr_linenumber" name="2269" href="#2269">2269</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2270" href="#2270">2270</a>                 }
<a class="jxr_linenumber" name="2271" href="#2271">2271</a> 
<a class="jxr_linenumber" name="2272" href="#2272">2272</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROP_DECIMAL)) {
<a class="jxr_linenumber" name="2273" href="#2273">2273</a>                     target.addProperty(PROPERTY_DECIMAL_PARSER.walk(parser));
<a class="jxr_linenumber" name="2274" href="#2274">2274</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2275" href="#2275">2275</a>                 }
<a class="jxr_linenumber" name="2276" href="#2276">2276</a> 
<a class="jxr_linenumber" name="2277" href="#2277">2277</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROP_HTML)) {
<a class="jxr_linenumber" name="2278" href="#2278">2278</a>                     target.addProperty(PROPERTY_HTML_PARSER.walk(parser));
<a class="jxr_linenumber" name="2279" href="#2279">2279</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2280" href="#2280">2280</a>                 }
<a class="jxr_linenumber" name="2281" href="#2281">2281</a> 
<a class="jxr_linenumber" name="2282" href="#2282">2282</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROP_URI)) {
<a class="jxr_linenumber" name="2283" href="#2283">2283</a>                     target.addProperty(PROPERTY_URI_PARSER.walk(parser));
<a class="jxr_linenumber" name="2284" href="#2284">2284</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2285" href="#2285">2285</a>                 }
<a class="jxr_linenumber" name="2286" href="#2286">2286</a>             }
<a class="jxr_linenumber" name="2287" href="#2287">2287</a> 
<a class="jxr_linenumber" name="2288" href="#2288">2288</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="2289" href="#2289">2289</a>         }
<a class="jxr_linenumber" name="2290" href="#2290">2290</a>     };
<a class="jxr_linenumber" name="2291" href="#2291">2291</a> 
<a class="jxr_linenumber" name="2292" href="#2292">2292</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> XMLWalker&lt;AllowableActionsImpl&gt; ALLOWABLE_ACTIONS_PARSER = <strong class="jxr_keyword">new</strong> XMLWalker&lt;AllowableActionsImpl&gt;() {
<a class="jxr_linenumber" name="2293" href="#2293">2293</a>         @Override
<a class="jxr_linenumber" name="2294" href="#2294">2294</a>         <strong class="jxr_keyword">protected</strong> AllowableActionsImpl prepareTarget(XmlPullParser parser, QName name) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2295" href="#2295">2295</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> AllowableActionsImpl();
<a class="jxr_linenumber" name="2296" href="#2296">2296</a>         }
<a class="jxr_linenumber" name="2297" href="#2297">2297</a> 
<a class="jxr_linenumber" name="2298" href="#2298">2298</a>         @Override
<a class="jxr_linenumber" name="2299" href="#2299">2299</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, AllowableActionsImpl target)
<a class="jxr_linenumber" name="2300" href="#2300">2300</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2301" href="#2301">2301</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="2302" href="#2302">2302</a>                 <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="2303" href="#2303">2303</a>                     Action action = Action.fromValue(name.getLocalPart());
<a class="jxr_linenumber" name="2304" href="#2304">2304</a> 
<a class="jxr_linenumber" name="2305" href="#2305">2305</a>                     Set&lt;Action&gt; actions = target.getAllowableActions();
<a class="jxr_linenumber" name="2306" href="#2306">2306</a> 
<a class="jxr_linenumber" name="2307" href="#2307">2307</a>                     <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(readBoolean(parser))) {
<a class="jxr_linenumber" name="2308" href="#2308">2308</a>                         actions.add(action);
<a class="jxr_linenumber" name="2309" href="#2309">2309</a>                     }
<a class="jxr_linenumber" name="2310" href="#2310">2310</a> 
<a class="jxr_linenumber" name="2311" href="#2311">2311</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2312" href="#2312">2312</a>                 } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
<a class="jxr_linenumber" name="2313" href="#2313">2313</a>                     <em class="jxr_comment">// extension tag -&gt; ignore</em>
<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> 
<a class="jxr_linenumber" name="2317" href="#2317">2317</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="2318" href="#2318">2318</a>         }
<a class="jxr_linenumber" name="2319" href="#2319">2319</a>     };
<a class="jxr_linenumber" name="2320" href="#2320">2320</a> 
<a class="jxr_linenumber" name="2321" href="#2321">2321</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> XMLWalker&lt;ChangeEventInfoDataImpl&gt; CHANGE_EVENT_PARSER = <strong class="jxr_keyword">new</strong> XMLWalker&lt;ChangeEventInfoDataImpl&gt;() {
<a class="jxr_linenumber" name="2322" href="#2322">2322</a>         @Override
<a class="jxr_linenumber" name="2323" href="#2323">2323</a>         <strong class="jxr_keyword">protected</strong> ChangeEventInfoDataImpl prepareTarget(XmlPullParser parser, QName name) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2324" href="#2324">2324</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ChangeEventInfoDataImpl();
<a class="jxr_linenumber" name="2325" href="#2325">2325</a>         }
<a class="jxr_linenumber" name="2326" href="#2326">2326</a> 
<a class="jxr_linenumber" name="2327" href="#2327">2327</a>         @Override
<a class="jxr_linenumber" name="2328" href="#2328">2328</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, ChangeEventInfoDataImpl target)
<a class="jxr_linenumber" name="2329" href="#2329">2329</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2330" href="#2330">2330</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="2331" href="#2331">2331</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CHANGE_EVENT_TYPE)) {
<a class="jxr_linenumber" name="2332" href="#2332">2332</a>                     target.setChangeType(readEnum(parser, ChangeType.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="2333" href="#2333">2333</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2334" href="#2334">2334</a>                 }
<a class="jxr_linenumber" name="2335" href="#2335">2335</a> 
<a class="jxr_linenumber" name="2336" href="#2336">2336</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_CHANGE_EVENT_TIME)) {
<a class="jxr_linenumber" name="2337" href="#2337">2337</a>                     target.setChangeTime(readDateTime(parser));
<a class="jxr_linenumber" name="2338" href="#2338">2338</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2339" href="#2339">2339</a>                 }
<a class="jxr_linenumber" name="2340" href="#2340">2340</a>             }
<a class="jxr_linenumber" name="2341" href="#2341">2341</a> 
<a class="jxr_linenumber" name="2342" href="#2342">2342</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="2343" href="#2343">2343</a>         }
<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>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> XMLWalker&lt;AccessControlListImpl&gt; ACL_PARSER = <strong class="jxr_keyword">new</strong> XMLWalker&lt;AccessControlListImpl&gt;() {
<a class="jxr_linenumber" name="2347" href="#2347">2347</a>         @Override
<a class="jxr_linenumber" name="2348" href="#2348">2348</a>         <strong class="jxr_keyword">protected</strong> AccessControlListImpl prepareTarget(XmlPullParser parser, QName name) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2349" href="#2349">2349</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> AccessControlListImpl();
<a class="jxr_linenumber" name="2350" href="#2350">2350</a>         }
<a class="jxr_linenumber" name="2351" href="#2351">2351</a> 
<a class="jxr_linenumber" name="2352" href="#2352">2352</a>         @Override
<a class="jxr_linenumber" name="2353" href="#2353">2353</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, AccessControlListImpl target)
<a class="jxr_linenumber" name="2354" href="#2354">2354</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2355" href="#2355">2355</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="2356" href="#2356">2356</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_ACL_PERMISSISONS)) {
<a class="jxr_linenumber" name="2357" href="#2357">2357</a>                     target.setAces(addToList(target.getAces(), ACE_PARSER.walk(parser)));
<a class="jxr_linenumber" name="2358" href="#2358">2358</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2359" href="#2359">2359</a>                 }
<a class="jxr_linenumber" name="2360" href="#2360">2360</a>             }
<a class="jxr_linenumber" name="2361" href="#2361">2361</a> 
<a class="jxr_linenumber" name="2362" href="#2362">2362</a>             <strong class="jxr_keyword">return</strong> false;
<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">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> XMLWalker&lt;AccessControlEntryImpl&gt; ACE_PARSER = <strong class="jxr_keyword">new</strong> XMLWalker&lt;AccessControlEntryImpl&gt;() {
<a class="jxr_linenumber" name="2367" href="#2367">2367</a>         @Override
<a class="jxr_linenumber" name="2368" href="#2368">2368</a>         <strong class="jxr_keyword">protected</strong> AccessControlEntryImpl prepareTarget(XmlPullParser parser, QName name) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2369" href="#2369">2369</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> AccessControlEntryImpl();
<a class="jxr_linenumber" name="2370" href="#2370">2370</a>         }
<a class="jxr_linenumber" name="2371" href="#2371">2371</a> 
<a class="jxr_linenumber" name="2372" href="#2372">2372</a>         @Override
<a class="jxr_linenumber" name="2373" href="#2373">2373</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, AccessControlEntryImpl target)
<a class="jxr_linenumber" name="2374" href="#2374">2374</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2375" href="#2375">2375</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="2376" href="#2376">2376</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_ACE_PRINCIPAL)) {
<a class="jxr_linenumber" name="2377" href="#2377">2377</a>                     target.setPrincipal(PRINCIPAL_PARSER.walk(parser));
<a class="jxr_linenumber" name="2378" href="#2378">2378</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2379" href="#2379">2379</a>                 }
<a class="jxr_linenumber" name="2380" href="#2380">2380</a> 
<a class="jxr_linenumber" name="2381" href="#2381">2381</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_ACE_PERMISSIONS)) {
<a class="jxr_linenumber" name="2382" href="#2382">2382</a>                     target.setPermissions(addToList(target.getPermissions(), readText(parser)));
<a class="jxr_linenumber" name="2383" href="#2383">2383</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2384" href="#2384">2384</a>                 }
<a class="jxr_linenumber" name="2385" href="#2385">2385</a> 
<a class="jxr_linenumber" name="2386" href="#2386">2386</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_ACE_IS_DIRECT)) {
<a class="jxr_linenumber" name="2387" href="#2387">2387</a>                     target.setDirect(readBoolean(parser));
<a class="jxr_linenumber" name="2388" href="#2388">2388</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2389" href="#2389">2389</a>                 }
<a class="jxr_linenumber" name="2390" href="#2390">2390</a>             }
<a class="jxr_linenumber" name="2391" href="#2391">2391</a> 
<a class="jxr_linenumber" name="2392" href="#2392">2392</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="2393" href="#2393">2393</a>         }
<a class="jxr_linenumber" name="2394" href="#2394">2394</a>     };
<a class="jxr_linenumber" name="2395" href="#2395">2395</a> 
<a class="jxr_linenumber" name="2396" href="#2396">2396</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> XMLWalker&lt;AccessControlPrincipalDataImpl&gt; PRINCIPAL_PARSER = <strong class="jxr_keyword">new</strong> XMLWalker&lt;AccessControlPrincipalDataImpl&gt;() {
<a class="jxr_linenumber" name="2397" href="#2397">2397</a>         @Override
<a class="jxr_linenumber" name="2398" href="#2398">2398</a>         <strong class="jxr_keyword">protected</strong> AccessControlPrincipalDataImpl prepareTarget(XmlPullParser parser, QName name)
<a class="jxr_linenumber" name="2399" href="#2399">2399</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2400" href="#2400">2400</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> AccessControlPrincipalDataImpl();
<a class="jxr_linenumber" name="2401" href="#2401">2401</a>         }
<a class="jxr_linenumber" name="2402" href="#2402">2402</a> 
<a class="jxr_linenumber" name="2403" href="#2403">2403</a>         @Override
<a class="jxr_linenumber" name="2404" href="#2404">2404</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, AccessControlPrincipalDataImpl target)
<a class="jxr_linenumber" name="2405" href="#2405">2405</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2406" href="#2406">2406</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="2407" href="#2407">2407</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_ACE_PRINCIPAL_ID)) {
<a class="jxr_linenumber" name="2408" href="#2408">2408</a>                     target.setId(readText(parser));
<a class="jxr_linenumber" name="2409" href="#2409">2409</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2410" href="#2410">2410</a>                 }
<a class="jxr_linenumber" name="2411" href="#2411">2411</a>             }
<a class="jxr_linenumber" name="2412" href="#2412">2412</a> 
<a class="jxr_linenumber" name="2413" href="#2413">2413</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="2414" href="#2414">2414</a>         }
<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>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> XMLWalker&lt;PolicyIdListImpl&gt; POLICY_IDS_PARSER = <strong class="jxr_keyword">new</strong> XMLWalker&lt;PolicyIdListImpl&gt;() {
<a class="jxr_linenumber" name="2418" href="#2418">2418</a>         @Override
<a class="jxr_linenumber" name="2419" href="#2419">2419</a>         <strong class="jxr_keyword">protected</strong> PolicyIdListImpl prepareTarget(XmlPullParser parser, QName name) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2420" href="#2420">2420</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> PolicyIdListImpl();
<a class="jxr_linenumber" name="2421" href="#2421">2421</a>         }
<a class="jxr_linenumber" name="2422" href="#2422">2422</a> 
<a class="jxr_linenumber" name="2423" href="#2423">2423</a>         @Override
<a class="jxr_linenumber" name="2424" href="#2424">2424</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, PolicyIdListImpl target) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2425" href="#2425">2425</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="2426" href="#2426">2426</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_POLICY_ID)) {
<a class="jxr_linenumber" name="2427" href="#2427">2427</a>                     target.setPolicyIds(addToList(target.getPolicyIds(), readText(parser)));
<a class="jxr_linenumber" name="2428" href="#2428">2428</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2429" href="#2429">2429</a>                 }
<a class="jxr_linenumber" name="2430" href="#2430">2430</a>             }
<a class="jxr_linenumber" name="2431" href="#2431">2431</a> 
<a class="jxr_linenumber" name="2432" href="#2432">2432</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="2433" href="#2433">2433</a>         }
<a class="jxr_linenumber" name="2434" href="#2434">2434</a>     };
<a class="jxr_linenumber" name="2435" href="#2435">2435</a> 
<a class="jxr_linenumber" name="2436" href="#2436">2436</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> XMLWalker&lt;RenditionDataImpl&gt; RENDITION_PARSER = <strong class="jxr_keyword">new</strong> XMLWalker&lt;RenditionDataImpl&gt;() {
<a class="jxr_linenumber" name="2437" href="#2437">2437</a>         @Override
<a class="jxr_linenumber" name="2438" href="#2438">2438</a>         <strong class="jxr_keyword">protected</strong> RenditionDataImpl prepareTarget(XmlPullParser parser, QName name) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2439" href="#2439">2439</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> RenditionDataImpl();
<a class="jxr_linenumber" name="2440" href="#2440">2440</a>         }
<a class="jxr_linenumber" name="2441" href="#2441">2441</a> 
<a class="jxr_linenumber" name="2442" href="#2442">2442</a>         @Override
<a class="jxr_linenumber" name="2443" href="#2443">2443</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, RenditionDataImpl target)
<a class="jxr_linenumber" name="2444" href="#2444">2444</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2445" href="#2445">2445</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="2446" href="#2446">2446</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_RENDITION_STREAM_ID)) {
<a class="jxr_linenumber" name="2447" href="#2447">2447</a>                     target.setStreamId(readText(parser));
<a class="jxr_linenumber" name="2448" href="#2448">2448</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2449" href="#2449">2449</a>                 }
<a class="jxr_linenumber" name="2450" href="#2450">2450</a> 
<a class="jxr_linenumber" name="2451" href="#2451">2451</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_RENDITION_MIMETYPE)) {
<a class="jxr_linenumber" name="2452" href="#2452">2452</a>                     target.setMimeType(readText(parser));
<a class="jxr_linenumber" name="2453" href="#2453">2453</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2454" href="#2454">2454</a>                 }
<a class="jxr_linenumber" name="2455" href="#2455">2455</a> 
<a class="jxr_linenumber" name="2456" href="#2456">2456</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_RENDITION_LENGTH)) {
<a class="jxr_linenumber" name="2457" href="#2457">2457</a>                     target.setBigLength(readInteger(parser));
<a class="jxr_linenumber" name="2458" href="#2458">2458</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2459" href="#2459">2459</a>                 }
<a class="jxr_linenumber" name="2460" href="#2460">2460</a> 
<a class="jxr_linenumber" name="2461" href="#2461">2461</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_RENDITION_KIND)) {
<a class="jxr_linenumber" name="2462" href="#2462">2462</a>                     target.setKind(readText(parser));
<a class="jxr_linenumber" name="2463" href="#2463">2463</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2464" href="#2464">2464</a>                 }
<a class="jxr_linenumber" name="2465" href="#2465">2465</a> 
<a class="jxr_linenumber" name="2466" href="#2466">2466</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_RENDITION_TITLE)) {
<a class="jxr_linenumber" name="2467" href="#2467">2467</a>                     target.setTitle(readText(parser));
<a class="jxr_linenumber" name="2468" href="#2468">2468</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2469" href="#2469">2469</a>                 }
<a class="jxr_linenumber" name="2470" href="#2470">2470</a> 
<a class="jxr_linenumber" name="2471" href="#2471">2471</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_RENDITION_HEIGHT)) {
<a class="jxr_linenumber" name="2472" href="#2472">2472</a>                     target.setBigHeight(readInteger(parser));
<a class="jxr_linenumber" name="2473" href="#2473">2473</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</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>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_RENDITION_WIDTH)) {
<a class="jxr_linenumber" name="2477" href="#2477">2477</a>                     target.setBigWidth(readInteger(parser));
<a class="jxr_linenumber" name="2478" href="#2478">2478</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2479" href="#2479">2479</a>                 }
<a class="jxr_linenumber" name="2480" href="#2480">2480</a> 
<a class="jxr_linenumber" name="2481" href="#2481">2481</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_RENDITION_DOCUMENT_ID)) {
<a class="jxr_linenumber" name="2482" href="#2482">2482</a>                     target.setRenditionDocumentId(readText(parser));
<a class="jxr_linenumber" name="2483" href="#2483">2483</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<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> 
<a class="jxr_linenumber" name="2487" href="#2487">2487</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="2488" href="#2488">2488</a>         }
<a class="jxr_linenumber" name="2489" href="#2489">2489</a>     };
<a class="jxr_linenumber" name="2490" href="#2490">2490</a> 
<a class="jxr_linenumber" name="2491" href="#2491">2491</a>     <em class="jxr_comment">// ------------------------</em>
<a class="jxr_linenumber" name="2492" href="#2492">2492</a>     <em class="jxr_comment">// --- property parsers ---</em>
<a class="jxr_linenumber" name="2493" href="#2493">2493</a>     <em class="jxr_comment">// ------------------------</em>
<a class="jxr_linenumber" name="2494" href="#2494">2494</a> 
<a class="jxr_linenumber" name="2495" href="#2495">2495</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> PropertyAtomPubXMLWalker&lt;PropertyStringImpl&gt; PROPERTY_STRING_PARSER = <strong class="jxr_keyword">new</strong> PropertyStringAtomPubXMLWalker&lt;PropertyStringImpl&gt;() {
<a class="jxr_linenumber" name="2496" href="#2496">2496</a>         @Override
<a class="jxr_linenumber" name="2497" href="#2497">2497</a>         <strong class="jxr_keyword">protected</strong> PropertyStringImpl createTarget(XmlPullParser parser, QName name) {
<a class="jxr_linenumber" name="2498" href="#2498">2498</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> PropertyStringImpl();
<a class="jxr_linenumber" name="2499" href="#2499">2499</a>         }
<a class="jxr_linenumber" name="2500" href="#2500">2500</a>     };
<a class="jxr_linenumber" name="2501" href="#2501">2501</a> 
<a class="jxr_linenumber" name="2502" href="#2502">2502</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> PropertyAtomPubXMLWalker&lt;PropertyIdImpl&gt; PROPERTY_ID_PARSER = <strong class="jxr_keyword">new</strong> PropertyStringAtomPubXMLWalker&lt;PropertyIdImpl&gt;() {
<a class="jxr_linenumber" name="2503" href="#2503">2503</a>         @Override
<a class="jxr_linenumber" name="2504" href="#2504">2504</a>         <strong class="jxr_keyword">protected</strong> PropertyIdImpl createTarget(XmlPullParser parser, QName name) {
<a class="jxr_linenumber" name="2505" href="#2505">2505</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> PropertyIdImpl();
<a class="jxr_linenumber" name="2506" href="#2506">2506</a>         }
<a class="jxr_linenumber" name="2507" href="#2507">2507</a>     };
<a class="jxr_linenumber" name="2508" href="#2508">2508</a> 
<a class="jxr_linenumber" name="2509" href="#2509">2509</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> PropertyAtomPubXMLWalker&lt;PropertyHtmlImpl&gt; PROPERTY_HTML_PARSER = <strong class="jxr_keyword">new</strong> PropertyStringAtomPubXMLWalker&lt;PropertyHtmlImpl&gt;() {
<a class="jxr_linenumber" name="2510" href="#2510">2510</a>         @Override
<a class="jxr_linenumber" name="2511" href="#2511">2511</a>         <strong class="jxr_keyword">protected</strong> PropertyHtmlImpl createTarget(XmlPullParser parser, QName name) {
<a class="jxr_linenumber" name="2512" href="#2512">2512</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> PropertyHtmlImpl();
<a class="jxr_linenumber" name="2513" href="#2513">2513</a>         }
<a class="jxr_linenumber" name="2514" href="#2514">2514</a>     };
<a class="jxr_linenumber" name="2515" href="#2515">2515</a> 
<a class="jxr_linenumber" name="2516" href="#2516">2516</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> PropertyAtomPubXMLWalker&lt;PropertyUriImpl&gt; PROPERTY_URI_PARSER = <strong class="jxr_keyword">new</strong> PropertyStringAtomPubXMLWalker&lt;PropertyUriImpl&gt;() {
<a class="jxr_linenumber" name="2517" href="#2517">2517</a>         @Override
<a class="jxr_linenumber" name="2518" href="#2518">2518</a>         <strong class="jxr_keyword">protected</strong> PropertyUriImpl createTarget(XmlPullParser parser, QName name) {
<a class="jxr_linenumber" name="2519" href="#2519">2519</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> PropertyUriImpl();
<a class="jxr_linenumber" name="2520" href="#2520">2520</a>         }
<a class="jxr_linenumber" name="2521" href="#2521">2521</a>     };
<a class="jxr_linenumber" name="2522" href="#2522">2522</a> 
<a class="jxr_linenumber" name="2523" href="#2523">2523</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> PropertyAtomPubXMLWalker&lt;PropertyBooleanImpl&gt; PROPERTY_BOOLEAN_PARSER = <strong class="jxr_keyword">new</strong> PropertyAtomPubXMLWalker&lt;PropertyBooleanImpl&gt;() {
<a class="jxr_linenumber" name="2524" href="#2524">2524</a>         @Override
<a class="jxr_linenumber" name="2525" href="#2525">2525</a>         <strong class="jxr_keyword">protected</strong> PropertyBooleanImpl createTarget(XmlPullParser parser, QName name) {
<a class="jxr_linenumber" name="2526" href="#2526">2526</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> PropertyBooleanImpl();
<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>         @Override
<a class="jxr_linenumber" name="2530" href="#2530">2530</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> addValue(XmlPullParser parser, PropertyBooleanImpl target) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2531" href="#2531">2531</a>             target.setValues(addToList(target.getValues(), readBoolean(parser)));
<a class="jxr_linenumber" name="2532" href="#2532">2532</a>         }
<a class="jxr_linenumber" name="2533" href="#2533">2533</a>     };
<a class="jxr_linenumber" name="2534" href="#2534">2534</a> 
<a class="jxr_linenumber" name="2535" href="#2535">2535</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> PropertyAtomPubXMLWalker&lt;PropertyIntegerImpl&gt; PROPERTY_INTEGER_PARSER = <strong class="jxr_keyword">new</strong> PropertyAtomPubXMLWalker&lt;PropertyIntegerImpl&gt;() {
<a class="jxr_linenumber" name="2536" href="#2536">2536</a>         @Override
<a class="jxr_linenumber" name="2537" href="#2537">2537</a>         <strong class="jxr_keyword">protected</strong> PropertyIntegerImpl createTarget(XmlPullParser parser, QName name) {
<a class="jxr_linenumber" name="2538" href="#2538">2538</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> PropertyIntegerImpl();
<a class="jxr_linenumber" name="2539" href="#2539">2539</a>         }
<a class="jxr_linenumber" name="2540" href="#2540">2540</a> 
<a class="jxr_linenumber" name="2541" href="#2541">2541</a>         @Override
<a class="jxr_linenumber" name="2542" href="#2542">2542</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> addValue(XmlPullParser parser, PropertyIntegerImpl target) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2543" href="#2543">2543</a>             target.setValues(addToList(target.getValues(), readInteger(parser)));
<a class="jxr_linenumber" name="2544" href="#2544">2544</a>         }
<a class="jxr_linenumber" name="2545" href="#2545">2545</a>     };
<a class="jxr_linenumber" name="2546" href="#2546">2546</a> 
<a class="jxr_linenumber" name="2547" href="#2547">2547</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> PropertyAtomPubXMLWalker&lt;PropertyDecimalImpl&gt; PROPERTY_DECIMAL_PARSER = <strong class="jxr_keyword">new</strong> PropertyAtomPubXMLWalker&lt;PropertyDecimalImpl&gt;() {
<a class="jxr_linenumber" name="2548" href="#2548">2548</a>         @Override
<a class="jxr_linenumber" name="2549" href="#2549">2549</a>         <strong class="jxr_keyword">protected</strong> PropertyDecimalImpl createTarget(XmlPullParser parser, QName name) {
<a class="jxr_linenumber" name="2550" href="#2550">2550</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> PropertyDecimalImpl();
<a class="jxr_linenumber" name="2551" href="#2551">2551</a>         }
<a class="jxr_linenumber" name="2552" href="#2552">2552</a> 
<a class="jxr_linenumber" name="2553" href="#2553">2553</a>         @Override
<a class="jxr_linenumber" name="2554" href="#2554">2554</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> addValue(XmlPullParser parser, PropertyDecimalImpl target) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2555" href="#2555">2555</a>             target.setValues(addToList(target.getValues(), readDecimal(parser)));
<a class="jxr_linenumber" name="2556" href="#2556">2556</a>         }
<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>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> PropertyAtomPubXMLWalker&lt;PropertyDateTimeImpl&gt; PROPERTY_DATETIME_PARSER = <strong class="jxr_keyword">new</strong> PropertyAtomPubXMLWalker&lt;PropertyDateTimeImpl&gt;() {
<a class="jxr_linenumber" name="2560" href="#2560">2560</a>         @Override
<a class="jxr_linenumber" name="2561" href="#2561">2561</a>         <strong class="jxr_keyword">protected</strong> PropertyDateTimeImpl createTarget(XmlPullParser parser, QName name) {
<a class="jxr_linenumber" name="2562" href="#2562">2562</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> PropertyDateTimeImpl();
<a class="jxr_linenumber" name="2563" href="#2563">2563</a>         }
<a class="jxr_linenumber" name="2564" href="#2564">2564</a> 
<a class="jxr_linenumber" name="2565" href="#2565">2565</a>         @Override
<a class="jxr_linenumber" name="2566" href="#2566">2566</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> addValue(XmlPullParser parser, PropertyDateTimeImpl target) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2567" href="#2567">2567</a>             target.setValues(addToList(target.getValues(), readDateTime(parser)));
<a class="jxr_linenumber" name="2568" href="#2568">2568</a>         }
<a class="jxr_linenumber" name="2569" href="#2569">2569</a>     };
<a class="jxr_linenumber" name="2570" href="#2570">2570</a> 
<a class="jxr_linenumber" name="2571" href="#2571">2571</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> PropertyAtomPubXMLWalker&lt;T <strong class="jxr_keyword">extends</strong> AbstractPropertyData&lt;?&gt;&gt; <strong class="jxr_keyword">extends</strong> XMLWalker&lt;T&gt; {
<a class="jxr_linenumber" name="2572" href="#2572">2572</a> 
<a class="jxr_linenumber" name="2573" href="#2573">2573</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> T createTarget(XmlPullParser parser, QName name);
<a class="jxr_linenumber" name="2574" href="#2574">2574</a> 
<a class="jxr_linenumber" name="2575" href="#2575">2575</a>         @Override
<a class="jxr_linenumber" name="2576" href="#2576">2576</a>         <strong class="jxr_keyword">protected</strong> T prepareTarget(XmlPullParser parser, QName name) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2577" href="#2577">2577</a>             T result = createTarget(parser, name);
<a class="jxr_linenumber" name="2578" href="#2578">2578</a> 
<a class="jxr_linenumber" name="2579" href="#2579">2579</a>             <strong class="jxr_keyword">if</strong> (parser.getAttributeCount() &gt; 0) {
<a class="jxr_linenumber" name="2580" href="#2580">2580</a>                 <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; parser.getAttributeCount(); i++) {
<a class="jxr_linenumber" name="2581" href="#2581">2581</a>                     String attr = parser.getAttributeName(i);
<a class="jxr_linenumber" name="2582" href="#2582">2582</a>                     <strong class="jxr_keyword">if</strong> (ATTR_PROPERTY_ID.equals(attr)) {
<a class="jxr_linenumber" name="2583" href="#2583">2583</a>                         result.setId(parser.getAttributeValue(i));
<a class="jxr_linenumber" name="2584" href="#2584">2584</a>                     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (ATTR_PROPERTY_LOCALNAME.equals(attr)) {
<a class="jxr_linenumber" name="2585" href="#2585">2585</a>                         result.setLocalName(parser.getAttributeValue(i));
<a class="jxr_linenumber" name="2586" href="#2586">2586</a>                     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (ATTR_PROPERTY_DISPLAYNAME.equals(attr)) {
<a class="jxr_linenumber" name="2587" href="#2587">2587</a>                         result.setDisplayName(parser.getAttributeValue(i));
<a class="jxr_linenumber" name="2588" href="#2588">2588</a>                     } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (ATTR_PROPERTY_QUERYNAME.equals(attr)) {
<a class="jxr_linenumber" name="2589" href="#2589">2589</a>                         result.setQueryName(parser.getAttributeValue(i));
<a class="jxr_linenumber" name="2590" href="#2590">2590</a>                     }
<a class="jxr_linenumber" name="2591" href="#2591">2591</a>                 }
<a class="jxr_linenumber" name="2592" href="#2592">2592</a>             }
<a class="jxr_linenumber" name="2593" href="#2593">2593</a> 
<a class="jxr_linenumber" name="2594" href="#2594">2594</a>             <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="2595" href="#2595">2595</a>         }
<a class="jxr_linenumber" name="2596" href="#2596">2596</a> 
<a class="jxr_linenumber" name="2597" href="#2597">2597</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">void</strong> addValue(XmlPullParser parser, T target) <strong class="jxr_keyword">throws</strong> XmlPullParserException;
<a class="jxr_linenumber" name="2598" href="#2598">2598</a> 
<a class="jxr_linenumber" name="2599" href="#2599">2599</a>         @Override
<a class="jxr_linenumber" name="2600" href="#2600">2600</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, T target) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2601" href="#2601">2601</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="2602" href="#2602">2602</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_PROPERTY_VALUE)) {
<a class="jxr_linenumber" name="2603" href="#2603">2603</a>                     addValue(parser, target);
<a class="jxr_linenumber" name="2604" href="#2604">2604</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2605" href="#2605">2605</a>                 }
<a class="jxr_linenumber" name="2606" href="#2606">2606</a>             }
<a class="jxr_linenumber" name="2607" href="#2607">2607</a> 
<a class="jxr_linenumber" name="2608" href="#2608">2608</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="2609" href="#2609">2609</a>         }
<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 class="jxr_linenumber" name="2613" href="#2613">2613</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> PropertyStringAtomPubXMLWalker&lt;T <strong class="jxr_keyword">extends</strong> AbstractPropertyData&lt;String&gt;&gt; <strong class="jxr_keyword">extends</strong>
<a class="jxr_linenumber" name="2614" href="#2614">2614</a>             PropertyAtomPubXMLWalker&lt;T&gt; {
<a class="jxr_linenumber" name="2615" href="#2615">2615</a>         @Override
<a class="jxr_linenumber" name="2616" href="#2616">2616</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> addValue(XmlPullParser parser, T target) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2617" href="#2617">2617</a>             target.setValues(addToList(target.getValues(), readText(parser)));
<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>     <em class="jxr_comment">// --------------------</em>
<a class="jxr_linenumber" name="2622" href="#2622">2622</a>     <em class="jxr_comment">// --- query parser ---</em>
<a class="jxr_linenumber" name="2623" href="#2623">2623</a>     <em class="jxr_comment">// --------------------</em>
<a class="jxr_linenumber" name="2624" href="#2624">2624</a> 
<a class="jxr_linenumber" name="2625" href="#2625">2625</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> XMLWalker&lt;QueryTypeImpl&gt; QUERY_PARSER = <strong class="jxr_keyword">new</strong> XMLWalker&lt;QueryTypeImpl&gt;() {
<a class="jxr_linenumber" name="2626" href="#2626">2626</a>         @Override
<a class="jxr_linenumber" name="2627" href="#2627">2627</a>         <strong class="jxr_keyword">protected</strong> QueryTypeImpl prepareTarget(XmlPullParser parser, QName name) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2628" href="#2628">2628</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> QueryTypeImpl();
<a class="jxr_linenumber" name="2629" href="#2629">2629</a>         }
<a class="jxr_linenumber" name="2630" href="#2630">2630</a> 
<a class="jxr_linenumber" name="2631" href="#2631">2631</a>         @Override
<a class="jxr_linenumber" name="2632" href="#2632">2632</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, QueryTypeImpl target) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2633" href="#2633">2633</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="2634" href="#2634">2634</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_QUERY_STATEMENT)) {
<a class="jxr_linenumber" name="2635" href="#2635">2635</a>                     target.setStatement(readText(parser));
<a class="jxr_linenumber" name="2636" href="#2636">2636</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2637" href="#2637">2637</a>                 }
<a class="jxr_linenumber" name="2638" href="#2638">2638</a> 
<a class="jxr_linenumber" name="2639" href="#2639">2639</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_QUERY_SEARCHALLVERSIONS)) {
<a class="jxr_linenumber" name="2640" href="#2640">2640</a>                     target.setSearchAllVersions(readBoolean(parser));
<a class="jxr_linenumber" name="2641" href="#2641">2641</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2642" href="#2642">2642</a>                 }
<a class="jxr_linenumber" name="2643" href="#2643">2643</a> 
<a class="jxr_linenumber" name="2644" href="#2644">2644</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_QUERY_INCLUDEALLOWABLEACTIONS)) {
<a class="jxr_linenumber" name="2645" href="#2645">2645</a>                     target.setIncludeAllowableActions(readBoolean(parser));
<a class="jxr_linenumber" name="2646" href="#2646">2646</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<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>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_QUERY_INCLUDERELATIONSHIPS)) {
<a class="jxr_linenumber" name="2650" href="#2650">2650</a>                     target.setIncludeRelationships(readEnum(parser, IncludeRelationships.<strong class="jxr_keyword">class</strong>));
<a class="jxr_linenumber" name="2651" href="#2651">2651</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2652" href="#2652">2652</a>                 }
<a class="jxr_linenumber" name="2653" href="#2653">2653</a> 
<a class="jxr_linenumber" name="2654" href="#2654">2654</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_QUERY_RENDITIONFILTER)) {
<a class="jxr_linenumber" name="2655" href="#2655">2655</a>                     target.setRenditionFilter(readText(parser));
<a class="jxr_linenumber" name="2656" href="#2656">2656</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2657" href="#2657">2657</a>                 }
<a class="jxr_linenumber" name="2658" href="#2658">2658</a> 
<a class="jxr_linenumber" name="2659" href="#2659">2659</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_QUERY_MAXITEMS)) {
<a class="jxr_linenumber" name="2660" href="#2660">2660</a>                     target.setMaxItems(readInteger(parser));
<a class="jxr_linenumber" name="2661" href="#2661">2661</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2662" href="#2662">2662</a>                 }
<a class="jxr_linenumber" name="2663" href="#2663">2663</a> 
<a class="jxr_linenumber" name="2664" href="#2664">2664</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_QUERY_SKIPCOUNT)) {
<a class="jxr_linenumber" name="2665" href="#2665">2665</a>                     target.setSkipCount(readInteger(parser));
<a class="jxr_linenumber" name="2666" href="#2666">2666</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2667" href="#2667">2667</a>                 }
<a class="jxr_linenumber" name="2668" href="#2668">2668</a>             }
<a class="jxr_linenumber" name="2669" href="#2669">2669</a> 
<a class="jxr_linenumber" name="2670" href="#2670">2670</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="2671" href="#2671">2671</a>         }
<a class="jxr_linenumber" name="2672" href="#2672">2672</a>     };
<a class="jxr_linenumber" name="2673" href="#2673">2673</a> 
<a class="jxr_linenumber" name="2674" href="#2674">2674</a>     <em class="jxr_comment">// --------------------------</em>
<a class="jxr_linenumber" name="2675" href="#2675">2675</a>     <em class="jxr_comment">// --- bulk update parser ---</em>
<a class="jxr_linenumber" name="2676" href="#2676">2676</a>     <em class="jxr_comment">// --------------------------</em>
<a class="jxr_linenumber" name="2677" href="#2677">2677</a> 
<a class="jxr_linenumber" name="2678" href="#2678">2678</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> XMLWalker&lt;BulkUpdateImpl&gt; BULK_UPDATE_PARSER = <strong class="jxr_keyword">new</strong> XMLWalker&lt;BulkUpdateImpl&gt;() {
<a class="jxr_linenumber" name="2679" href="#2679">2679</a>         @Override
<a class="jxr_linenumber" name="2680" href="#2680">2680</a>         <strong class="jxr_keyword">protected</strong> BulkUpdateImpl prepareTarget(XmlPullParser parser, QName name) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2681" href="#2681">2681</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> BulkUpdateImpl();
<a class="jxr_linenumber" name="2682" href="#2682">2682</a>         }
<a class="jxr_linenumber" name="2683" href="#2683">2683</a> 
<a class="jxr_linenumber" name="2684" href="#2684">2684</a>         @Override
<a class="jxr_linenumber" name="2685" href="#2685">2685</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, BulkUpdateImpl target) <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2686" href="#2686">2686</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="2687" href="#2687">2687</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_BULK_UPDATE_ID_AND_TOKEN)) {
<a class="jxr_linenumber" name="2688" href="#2688">2688</a>                     target.setObjectIdAndChangeToken(addToList(target.getObjectIdAndChangeToken(),
<a class="jxr_linenumber" name="2689" href="#2689">2689</a>                             ID_AND_TOKEN_PARSER.walk(parser)));
<a class="jxr_linenumber" name="2690" href="#2690">2690</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2691" href="#2691">2691</a>                 }
<a class="jxr_linenumber" name="2692" href="#2692">2692</a> 
<a class="jxr_linenumber" name="2693" href="#2693">2693</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_BULK_UPDATE_PROPERTIES)) {
<a class="jxr_linenumber" name="2694" href="#2694">2694</a>                     target.setProperties(PROPERTIES_PARSER.walk(parser));
<a class="jxr_linenumber" name="2695" href="#2695">2695</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2696" href="#2696">2696</a>                 }
<a class="jxr_linenumber" name="2697" href="#2697">2697</a> 
<a class="jxr_linenumber" name="2698" href="#2698">2698</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_BULK_UPDATE_ADD_SECONDARY_TYPES)) {
<a class="jxr_linenumber" name="2699" href="#2699">2699</a>                     target.setAddSecondaryTypeIds(addToList(target.getAddSecondaryTypeIds(), readText(parser)));
<a class="jxr_linenumber" name="2700" href="#2700">2700</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2701" href="#2701">2701</a>                 }
<a class="jxr_linenumber" name="2702" href="#2702">2702</a> 
<a class="jxr_linenumber" name="2703" href="#2703">2703</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_BULK_UPDATE_REMOVE_SECONDARY_TYPES)) {
<a class="jxr_linenumber" name="2704" href="#2704">2704</a>                     target.setRemoveSecondaryTypeIds(addToList(target.getRemoveSecondaryTypeIds(), readText(parser)));
<a class="jxr_linenumber" name="2705" href="#2705">2705</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2706" href="#2706">2706</a>                 }
<a class="jxr_linenumber" name="2707" href="#2707">2707</a>             }
<a class="jxr_linenumber" name="2708" href="#2708">2708</a> 
<a class="jxr_linenumber" name="2709" href="#2709">2709</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="2710" href="#2710">2710</a>         }
<a class="jxr_linenumber" name="2711" href="#2711">2711</a>     };
<a class="jxr_linenumber" name="2712" href="#2712">2712</a> 
<a class="jxr_linenumber" name="2713" href="#2713">2713</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> XMLWalker&lt;BulkUpdateObjectIdAndChangeTokenImpl&gt; ID_AND_TOKEN_PARSER = <strong class="jxr_keyword">new</strong> XMLWalker&lt;BulkUpdateObjectIdAndChangeTokenImpl&gt;() {
<a class="jxr_linenumber" name="2714" href="#2714">2714</a>         @Override
<a class="jxr_linenumber" name="2715" href="#2715">2715</a>         <strong class="jxr_keyword">protected</strong> BulkUpdateObjectIdAndChangeTokenImpl prepareTarget(XmlPullParser parser, QName name)
<a class="jxr_linenumber" name="2716" href="#2716">2716</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2717" href="#2717">2717</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> BulkUpdateObjectIdAndChangeTokenImpl();
<a class="jxr_linenumber" name="2718" href="#2718">2718</a>         }
<a class="jxr_linenumber" name="2719" href="#2719">2719</a> 
<a class="jxr_linenumber" name="2720" href="#2720">2720</a>         @Override
<a class="jxr_linenumber" name="2721" href="#2721">2721</a>         <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> read(XmlPullParser parser, QName name, BulkUpdateObjectIdAndChangeTokenImpl target)
<a class="jxr_linenumber" name="2722" href="#2722">2722</a>                 <strong class="jxr_keyword">throws</strong> XmlPullParserException {
<a class="jxr_linenumber" name="2723" href="#2723">2723</a>             <strong class="jxr_keyword">if</strong> (isCmisNamespace(name)) {
<a class="jxr_linenumber" name="2724" href="#2724">2724</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_IDANDTOKEN_ID)) {
<a class="jxr_linenumber" name="2725" href="#2725">2725</a>                     target.setId(readText(parser));
<a class="jxr_linenumber" name="2726" href="#2726">2726</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2727" href="#2727">2727</a>                 }
<a class="jxr_linenumber" name="2728" href="#2728">2728</a> 
<a class="jxr_linenumber" name="2729" href="#2729">2729</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_IDANDTOKEN_NEWID)) {
<a class="jxr_linenumber" name="2730" href="#2730">2730</a>                     target.setNewId(readText(parser));
<a class="jxr_linenumber" name="2731" href="#2731">2731</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="2732" href="#2732">2732</a>                 }
<a class="jxr_linenumber" name="2733" href="#2733">2733</a> 
<a class="jxr_linenumber" name="2734" href="#2734">2734</a>                 <strong class="jxr_keyword">if</strong> (isTag(name, TAG_IDANDTOKEN_CHANGETOKEN)) {
<a class="jxr_linenumber" name="2735" href="#2735">2735</a>                     target.setChangeToken(readText(parser));
<a class="jxr_linenumber" name="2736" href="#2736">2736</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<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> 
<a class="jxr_linenumber" name="2740" href="#2740">2740</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="2741" href="#2741">2741</a>         }
<a class="jxr_linenumber" name="2742" href="#2742">2742</a>     };
<a class="jxr_linenumber" name="2743" href="#2743">2743</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

