<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<title>AbstractTransientCmisObject xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
</head>
<body>
<pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> * <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.chemistry.opencmis.client.runtime;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.io.Serializable;
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.math.BigDecimal;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.math.BigInteger;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.GregorianCalendar;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashMap;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
<a name="34" href="#34">34</a>  
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.CmisObject;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.ObjectFactory;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.ObjectId;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.ObjectType;
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Policy;
<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Property;
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Relationship;
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Rendition;
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Session;
<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.TransientCmisObject;
<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.PropertyIds;
<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Ace;
<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Acl;
<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.AllowableActions;
<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.CmisExtensionElement;
<a name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Properties;
<a name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyData;
<a name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition;
<a name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.AclPropagation;
<a name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
<a name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Cardinality;
<a name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.ExtensionLevel;
<a name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Updatability;
<a name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.spi.CmisBinding;
<a name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.spi.Holder;
<a name="60" href="#60">60</a>  
<a name="61" href="#61">61</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/chemistry/opencmis/client/runtime/AbstractTransientCmisObject.html">AbstractTransientCmisObject</a> implements TransientCmisObject {
<a name="62" href="#62">62</a>  
<a name="63" href="#63">63</a>      <strong class="jxr_keyword">protected</strong> Session session;
<a name="64" href="#64">64</a>      <strong class="jxr_keyword">protected</strong> CmisObject object;
<a name="65" href="#65">65</a>  
<a name="66" href="#66">66</a>      <strong class="jxr_keyword">protected</strong> Map&lt;String, Property&lt;?&gt;&gt; properties;
<a name="67" href="#67">67</a>      <strong class="jxr_keyword">protected</strong> AllowableActions allowableActions;
<a name="68" href="#68">68</a>      <strong class="jxr_keyword">protected</strong> List&lt;Rendition&gt; renditions;
<a name="69" href="#69">69</a>      <strong class="jxr_keyword">protected</strong> Acl acl;
<a name="70" href="#70">70</a>      <strong class="jxr_keyword">protected</strong> Map&lt;AclPropagation, List&lt;AceChangeHolder&gt;&gt; addAces;
<a name="71" href="#71">71</a>      <strong class="jxr_keyword">protected</strong> Map&lt;AclPropagation, List&lt;AceChangeHolder&gt;&gt; removeAces;
<a name="72" href="#72">72</a>      <strong class="jxr_keyword">protected</strong> List&lt;Policy&gt; policies;
<a name="73" href="#73">73</a>      <strong class="jxr_keyword">protected</strong> Set&lt;String&gt; addPolicies;
<a name="74" href="#74">74</a>      <strong class="jxr_keyword">protected</strong> Set&lt;String&gt; removePolicies;
<a name="75" href="#75">75</a>      <strong class="jxr_keyword">protected</strong> List&lt;Relationship&gt; relationships;
<a name="76" href="#76">76</a>      <strong class="jxr_keyword">protected</strong> Map&lt;ExtensionLevel, List&lt;CmisExtensionElement&gt;&gt; inputExtensions;
<a name="77" href="#77">77</a>      <strong class="jxr_keyword">protected</strong> Map&lt;ExtensionLevel, List&lt;CmisExtensionElement&gt;&gt; ouputExtensions;
<a name="78" href="#78">78</a>  
<a name="79" href="#79">79</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isModified;
<a name="80" href="#80">80</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isPropertyUpdateRequired;
<a name="81" href="#81">81</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isMarkedForDelete;
<a name="82" href="#82">82</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> deleteAllVersions;
<a name="83" href="#83">83</a>  
<a name="84" href="#84">84</a>      @SuppressWarnings({ <span class="jxr_string">"rawtypes"</span>, <span class="jxr_string">"unchecked"</span> })
<a name="85" href="#85">85</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> initialize(Session session, CmisObject object) {
<a name="86" href="#86">86</a>          <strong class="jxr_keyword">this</strong>.session = session;
<a name="87" href="#87">87</a>          <strong class="jxr_keyword">this</strong>.object = object;
<a name="88" href="#88">88</a>  
<a name="89" href="#89">89</a>          ObjectFactory of = getObjectFactory();
<a name="90" href="#90">90</a>  
<a name="91" href="#91">91</a>          <em class="jxr_comment">// --- create snapshot ---</em>
<a name="92" href="#92">92</a>  
<a name="93" href="#93">93</a>          <em class="jxr_comment">// properties (modifiable)</em>
<a name="94" href="#94">94</a>          properties = <strong class="jxr_keyword">new</strong> LinkedHashMap&lt;String, Property&lt;?&gt;&gt;();
<a name="95" href="#95">95</a>          <strong class="jxr_keyword">for</strong> (Property&lt;?&gt; property : object.getProperties()) {
<a name="96" href="#96">96</a>              properties.put(property.getId(),
<a name="97" href="#97">97</a>                      of.createProperty(property.getDefinition(), <strong class="jxr_keyword">new</strong> ArrayList(property.getValues())));
<a name="98" href="#98">98</a>          }
<a name="99" href="#99">99</a>          isPropertyUpdateRequired = false;
<a name="100" href="#100">100</a> 
<a name="101" href="#101">101</a>         <em class="jxr_comment">// allowable actions (unmodifiable)</em>
<a name="102" href="#102">102</a>         allowableActions = object.getAllowableActions();
<a name="103" href="#103">103</a> 
<a name="104" href="#104">104</a>         <em class="jxr_comment">// policies (modifiable)</em>
<a name="105" href="#105">105</a>         policies = <strong class="jxr_keyword">new</strong> ArrayList&lt;Policy&gt;();
<a name="106" href="#106">106</a>         <strong class="jxr_keyword">if</strong> (object.getPolicies() != <strong class="jxr_keyword">null</strong>) {
<a name="107" href="#107">107</a>             policies.addAll(object.getPolicies());
<a name="108" href="#108">108</a>         }
<a name="109" href="#109">109</a>         addPolicies = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;();
<a name="110" href="#110">110</a>         removePolicies = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;();
<a name="111" href="#111">111</a> 
<a name="112" href="#112">112</a>         <em class="jxr_comment">// ACL (unmodifiable)</em>
<a name="113" href="#113">113</a>         acl = object.getAcl();
<a name="114" href="#114">114</a>         addAces = <strong class="jxr_keyword">new</strong> HashMap&lt;AclPropagation, List&lt;AceChangeHolder&gt;&gt;();
<a name="115" href="#115">115</a>         removeAces = <strong class="jxr_keyword">new</strong> HashMap&lt;AclPropagation, List&lt;AceChangeHolder&gt;&gt;();
<a name="116" href="#116">116</a> 
<a name="117" href="#117">117</a>         <em class="jxr_comment">// relationships (unmodifiable)</em>
<a name="118" href="#118">118</a>         relationships = object.getRelationships();
<a name="119" href="#119">119</a> 
<a name="120" href="#120">120</a>         <em class="jxr_comment">// renditions (unmodifiable)</em>
<a name="121" href="#121">121</a>         renditions = object.getRenditions();
<a name="122" href="#122">122</a> 
<a name="123" href="#123">123</a>         <em class="jxr_comment">// input extensions (unmodifiable)</em>
<a name="124" href="#124">124</a>         inputExtensions = <strong class="jxr_keyword">new</strong> HashMap&lt;ExtensionLevel, List&lt;CmisExtensionElement&gt;&gt;();
<a name="125" href="#125">125</a>         <strong class="jxr_keyword">for</strong> (ExtensionLevel level : ExtensionLevel.values()) {
<a name="126" href="#126">126</a>             List&lt;CmisExtensionElement&gt; extension = object.getExtensions(level);
<a name="127" href="#127">127</a>             <strong class="jxr_keyword">if</strong> (extension != <strong class="jxr_keyword">null</strong>) {
<a name="128" href="#128">128</a>                 inputExtensions.put(level, extension);
<a name="129" href="#129">129</a>             }
<a name="130" href="#130">130</a>         }
<a name="131" href="#131">131</a> 
<a name="132" href="#132">132</a>         <em class="jxr_comment">// output extensions (modifiable)</em>
<a name="133" href="#133">133</a>         ouputExtensions = <strong class="jxr_keyword">new</strong> HashMap&lt;ExtensionLevel, List&lt;CmisExtensionElement&gt;&gt;();
<a name="134" href="#134">134</a> 
<a name="135" href="#135">135</a>         isModified = false;
<a name="136" href="#136">136</a>         deleteAllVersions = <strong class="jxr_keyword">true</strong>;
<a name="137" href="#137">137</a>         isMarkedForDelete = false;
<a name="138" href="#138">138</a>     }
<a name="139" href="#139">139</a> 
<a name="140" href="#140">140</a>     <strong class="jxr_keyword">public</strong> CmisObject getCmisObject() {
<a name="141" href="#141">141</a>         <strong class="jxr_keyword">return</strong> object;
<a name="142" href="#142">142</a>     }
<a name="143" href="#143">143</a> 
<a name="144" href="#144">144</a>     <em class="jxr_javadoccomment">/**</em>
<a name="145" href="#145">145</a> <em class="jxr_javadoccomment">     * Returns the session object.</em>
<a name="146" href="#146">146</a> <em class="jxr_javadoccomment">     */</em>
<a name="147" href="#147">147</a>     <strong class="jxr_keyword">protected</strong> Session getSession() {
<a name="148" href="#148">148</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>.session;
<a name="149" href="#149">149</a>     }
<a name="150" href="#150">150</a> 
<a name="151" href="#151">151</a>     <em class="jxr_javadoccomment">/**</em>
<a name="152" href="#152">152</a> <em class="jxr_javadoccomment">     * Returns the repository id.</em>
<a name="153" href="#153">153</a> <em class="jxr_javadoccomment">     */</em>
<a name="154" href="#154">154</a>     <strong class="jxr_keyword">protected</strong> String getRepositoryId() {
<a name="155" href="#155">155</a>         <strong class="jxr_keyword">return</strong> getSession().getRepositoryInfo().getId();
<a name="156" href="#156">156</a>     }
<a name="157" href="#157">157</a> 
<a name="158" href="#158">158</a>     <em class="jxr_javadoccomment">/**</em>
<a name="159" href="#159">159</a> <em class="jxr_javadoccomment">     * Returns the binding object.</em>
<a name="160" href="#160">160</a> <em class="jxr_javadoccomment">     */</em>
<a name="161" href="#161">161</a>     <strong class="jxr_keyword">protected</strong> CmisBinding getBinding() {
<a name="162" href="#162">162</a>         <strong class="jxr_keyword">return</strong> getSession().getBinding();
<a name="163" href="#163">163</a>     }
<a name="164" href="#164">164</a> 
<a name="165" href="#165">165</a>     <em class="jxr_javadoccomment">/**</em>
<a name="166" href="#166">166</a> <em class="jxr_javadoccomment">     * Returns the object factory.</em>
<a name="167" href="#167">167</a> <em class="jxr_javadoccomment">     */</em>
<a name="168" href="#168">168</a>     <strong class="jxr_keyword">protected</strong> ObjectFactory getObjectFactory() {
<a name="169" href="#169">169</a>         <strong class="jxr_keyword">return</strong> getSession().getObjectFactory();
<a name="170" href="#170">170</a>     }
<a name="171" href="#171">171</a> 
<a name="172" href="#172">172</a>     <strong class="jxr_keyword">protected</strong> ObjectId getObjectId() {
<a name="173" href="#173">173</a>         <strong class="jxr_keyword">return</strong> getSession().createObjectId(getId());
<a name="174" href="#174">174</a>     }
<a name="175" href="#175">175</a> 
<a name="176" href="#176">176</a>     <strong class="jxr_keyword">public</strong> ObjectType getBaseType() {
<a name="177" href="#177">177</a>         <strong class="jxr_keyword">return</strong> object.getBaseType();
<a name="178" href="#178">178</a>     }
<a name="179" href="#179">179</a> 
<a name="180" href="#180">180</a>     <strong class="jxr_keyword">public</strong> BaseTypeId getBaseTypeId() {
<a name="181" href="#181">181</a>         <strong class="jxr_keyword">return</strong> object.getBaseTypeId();
<a name="182" href="#182">182</a>     }
<a name="183" href="#183">183</a> 
<a name="184" href="#184">184</a>     <strong class="jxr_keyword">public</strong> ObjectType getType() {
<a name="185" href="#185">185</a>         <strong class="jxr_keyword">return</strong> object.getType();
<a name="186" href="#186">186</a>     }
<a name="187" href="#187">187</a> 
<a name="188" href="#188">188</a>     <strong class="jxr_keyword">public</strong> String getChangeToken() {
<a name="189" href="#189">189</a>         <strong class="jxr_keyword">return</strong> getPropertyValue(PropertyIds.CHANGE_TOKEN);
<a name="190" href="#190">190</a>     }
<a name="191" href="#191">191</a> 
<a name="192" href="#192">192</a>     <strong class="jxr_keyword">public</strong> String getCreatedBy() {
<a name="193" href="#193">193</a>         <strong class="jxr_keyword">return</strong> getPropertyValue(PropertyIds.CREATED_BY);
<a name="194" href="#194">194</a>     }
<a name="195" href="#195">195</a> 
<a name="196" href="#196">196</a>     <strong class="jxr_keyword">public</strong> GregorianCalendar getCreationDate() {
<a name="197" href="#197">197</a>         <strong class="jxr_keyword">return</strong> getPropertyValue(PropertyIds.CREATION_DATE);
<a name="198" href="#198">198</a>     }
<a name="199" href="#199">199</a> 
<a name="200" href="#200">200</a>     <strong class="jxr_keyword">public</strong> String getId() {
<a name="201" href="#201">201</a>         <strong class="jxr_keyword">return</strong> getPropertyValue(PropertyIds.OBJECT_ID);
<a name="202" href="#202">202</a>     }
<a name="203" href="#203">203</a> 
<a name="204" href="#204">204</a>     <strong class="jxr_keyword">public</strong> GregorianCalendar getLastModificationDate() {
<a name="205" href="#205">205</a>         <strong class="jxr_keyword">return</strong> getPropertyValue(PropertyIds.LAST_MODIFICATION_DATE);
<a name="206" href="#206">206</a>     }
<a name="207" href="#207">207</a> 
<a name="208" href="#208">208</a>     <strong class="jxr_keyword">public</strong> String getLastModifiedBy() {
<a name="209" href="#209">209</a>         <strong class="jxr_keyword">return</strong> getPropertyValue(PropertyIds.LAST_MODIFIED_BY);
<a name="210" href="#210">210</a>     }
<a name="211" href="#211">211</a> 
<a name="212" href="#212">212</a>     <strong class="jxr_keyword">public</strong> String getName() {
<a name="213" href="#213">213</a>         <strong class="jxr_keyword">return</strong> getPropertyValue(PropertyIds.NAME);
<a name="214" href="#214">214</a>     }
<a name="215" href="#215">215</a> 
<a name="216" href="#216">216</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setName(String name) {
<a name="217" href="#217">217</a>         setPropertyValue(PropertyIds.NAME, name);
<a name="218" href="#218">218</a>     }
<a name="219" href="#219">219</a> 
<a name="220" href="#220">220</a>     <strong class="jxr_keyword">public</strong> List&lt;Property&lt;?&gt;&gt; getProperties() {
<a name="221" href="#221">221</a>         <strong class="jxr_keyword">return</strong> Collections.unmodifiableList(<strong class="jxr_keyword">new</strong> ArrayList&lt;Property&lt;?&gt;&gt;(<strong class="jxr_keyword">this</strong>.properties.values()));
<a name="222" href="#222">222</a>     }
<a name="223" href="#223">223</a> 
<a name="224" href="#224">224</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a name="225" href="#225">225</a>     <strong class="jxr_keyword">public</strong> &lt;T&gt; Property&lt;T&gt; getProperty(String id) {
<a name="226" href="#226">226</a>         <strong class="jxr_keyword">return</strong> (Property&lt;T&gt;) <strong class="jxr_keyword">this</strong>.properties.get(id);
<a name="227" href="#227">227</a>     }
<a name="228" href="#228">228</a> 
<a name="229" href="#229">229</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a name="230" href="#230">230</a>     <strong class="jxr_keyword">public</strong> &lt;T&gt; T getPropertyValue(String id) {
<a name="231" href="#231">231</a>         Property&lt;T&gt; property = getProperty(id);
<a name="232" href="#232">232</a>         <strong class="jxr_keyword">if</strong> (property == <strong class="jxr_keyword">null</strong>) {
<a name="233" href="#233">233</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="234" href="#234">234</a>         }
<a name="235" href="#235">235</a> 
<a name="236" href="#236">236</a>         <strong class="jxr_keyword">return</strong> (T) property.getValue();
<a name="237" href="#237">237</a>     }
<a name="238" href="#238">238</a> 
<a name="239" href="#239">239</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a name="240" href="#240">240</a>     <strong class="jxr_keyword">public</strong> &lt;T&gt; <strong class="jxr_keyword">void</strong> setPropertyValue(String id, Object value) {
<a name="241" href="#241">241</a>         PropertyDefinition&lt;T&gt; propertyDefinition = (PropertyDefinition&lt;T&gt;) getType().getPropertyDefinitions().get(id);
<a name="242" href="#242">242</a>         <strong class="jxr_keyword">if</strong> (propertyDefinition == <strong class="jxr_keyword">null</strong>) {
<a name="243" href="#243">243</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Unknown property '"</span> + id + <span class="jxr_string">"'!"</span>);
<a name="244" href="#244">244</a>         }
<a name="245" href="#245">245</a>         <em class="jxr_comment">// check updatability</em>
<a name="246" href="#246">246</a>         <strong class="jxr_keyword">if</strong> (propertyDefinition.getUpdatability() == Updatability.READONLY) {
<a name="247" href="#247">247</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Property is read-only!"</span>);
<a name="248" href="#248">248</a>         }
<a name="249" href="#249">249</a> 
<a name="250" href="#250">250</a>         List&lt;T&gt; values = checkProperty(propertyDefinition, value);
<a name="251" href="#251">251</a> 
<a name="252" href="#252">252</a>         <em class="jxr_comment">// create and set property</em>
<a name="253" href="#253">253</a>         Property&lt;T&gt; newProperty = getObjectFactory().createProperty(propertyDefinition, values);
<a name="254" href="#254">254</a>         properties.put(id, newProperty);
<a name="255" href="#255">255</a> 
<a name="256" href="#256">256</a>         isPropertyUpdateRequired = <strong class="jxr_keyword">true</strong>;
<a name="257" href="#257">257</a>         isModified = <strong class="jxr_keyword">true</strong>;
<a name="258" href="#258">258</a>     }
<a name="259" href="#259">259</a> 
<a name="260" href="#260">260</a>     <strong class="jxr_keyword">public</strong> AllowableActions getAllowableActions() {
<a name="261" href="#261">261</a>         <strong class="jxr_keyword">return</strong> allowableActions;
<a name="262" href="#262">262</a>     }
<a name="263" href="#263">263</a> 
<a name="264" href="#264">264</a>     <strong class="jxr_keyword">public</strong> List&lt;Relationship&gt; getRelationships() {
<a name="265" href="#265">265</a>         <strong class="jxr_keyword">return</strong> relationships;
<a name="266" href="#266">266</a>     }
<a name="267" href="#267">267</a> 
<a name="268" href="#268">268</a>     <strong class="jxr_keyword">public</strong> List&lt;Rendition&gt; getRenditions() {
<a name="269" href="#269">269</a>         <strong class="jxr_keyword">return</strong> renditions;
<a name="270" href="#270">270</a>     }
<a name="271" href="#271">271</a> 
<a name="272" href="#272">272</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> delete(<strong class="jxr_keyword">boolean</strong> allVersions) {
<a name="273" href="#273">273</a>         deleteAllVersions = allVersions;
<a name="274" href="#274">274</a>         isMarkedForDelete = <strong class="jxr_keyword">true</strong>;
<a name="275" href="#275">275</a>         isModified = <strong class="jxr_keyword">true</strong>;
<a name="276" href="#276">276</a>     }
<a name="277" href="#277">277</a> 
<a name="278" href="#278">278</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> applyPolicy(Policy... policyIds) {
<a name="279" href="#279">279</a>         <strong class="jxr_keyword">for</strong> (Policy policy : policyIds) {
<a name="280" href="#280">280</a>             <strong class="jxr_keyword">if</strong> ((policy != <strong class="jxr_keyword">null</strong>) &amp;&amp; (policy.getId() != <strong class="jxr_keyword">null</strong>)) {
<a name="281" href="#281">281</a>                 addPolicies.add(policy.getId());
<a name="282" href="#282">282</a>                 addPolicyToPolicyList(policy);
<a name="283" href="#283">283</a>             }
<a name="284" href="#284">284</a>         }
<a name="285" href="#285">285</a>     }
<a name="286" href="#286">286</a> 
<a name="287" href="#287">287</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removePolicy(Policy... policyIds) {
<a name="288" href="#288">288</a>         <strong class="jxr_keyword">for</strong> (Policy policy : policyIds) {
<a name="289" href="#289">289</a>             <strong class="jxr_keyword">if</strong> ((policy != <strong class="jxr_keyword">null</strong>) &amp;&amp; (policy.getId() != <strong class="jxr_keyword">null</strong>)) {
<a name="290" href="#290">290</a>                 removePolicies.add(policy.getId());
<a name="291" href="#291">291</a>                 removePolicyFromPolicyList(policy);
<a name="292" href="#292">292</a>             }
<a name="293" href="#293">293</a>         }
<a name="294" href="#294">294</a>     }
<a name="295" href="#295">295</a> 
<a name="296" href="#296">296</a>     <strong class="jxr_keyword">public</strong> List&lt;Policy&gt; getPolicies() {
<a name="297" href="#297">297</a>         <strong class="jxr_keyword">return</strong> policies;
<a name="298" href="#298">298</a>     }
<a name="299" href="#299">299</a> 
<a name="300" href="#300">300</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> addPolicyToPolicyList(Policy policy) {
<a name="301" href="#301">301</a>         <strong class="jxr_keyword">for</strong> (Policy p : policies) {
<a name="302" href="#302">302</a>             <strong class="jxr_keyword">if</strong> (policy.getId().equals(p.getId())) {
<a name="303" href="#303">303</a>                 <strong class="jxr_keyword">return</strong>;
<a name="304" href="#304">304</a>             }
<a name="305" href="#305">305</a>         }
<a name="306" href="#306">306</a> 
<a name="307" href="#307">307</a>         policies.add(policy);
<a name="308" href="#308">308</a>     }
<a name="309" href="#309">309</a> 
<a name="310" href="#310">310</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> removePolicyFromPolicyList(Policy policy) {
<a name="311" href="#311">311</a>         Iterator&lt;Policy&gt; iter = policies.iterator();
<a name="312" href="#312">312</a>         <strong class="jxr_keyword">while</strong> (iter.hasNext()) {
<a name="313" href="#313">313</a>             Policy p = iter.next();
<a name="314" href="#314">314</a>             <strong class="jxr_keyword">if</strong> (policy.getId().equals(p.getId())) {
<a name="315" href="#315">315</a>                 iter.remove();
<a name="316" href="#316">316</a>             }
<a name="317" href="#317">317</a>         }
<a name="318" href="#318">318</a>     }
<a name="319" href="#319">319</a> 
<a name="320" href="#320">320</a>     <strong class="jxr_keyword">public</strong> Acl getOriginalAcl() {
<a name="321" href="#321">321</a>         <strong class="jxr_keyword">return</strong> acl;
<a name="322" href="#322">322</a>     }
<a name="323" href="#323">323</a> 
<a name="324" href="#324">324</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addAce(String principalId, List&lt;String&gt; permissions, AclPropagation aclPropagation) {
<a name="325" href="#325">325</a>         <a href="../../../../../../org/apache/chemistry/opencmis/client/runtime/AbstractTransientCmisObject.html">AceChangeHolder</a> ach = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/client/runtime/AbstractTransientCmisObject.html">AceChangeHolder</a>(principalId, permissions, aclPropagation);
<a name="326" href="#326">326</a> 
<a name="327" href="#327">327</a>         List&lt;AceChangeHolder&gt; list = addAces.get(aclPropagation);
<a name="328" href="#328">328</a>         <strong class="jxr_keyword">if</strong> (list == <strong class="jxr_keyword">null</strong>) {
<a name="329" href="#329">329</a>             list = <strong class="jxr_keyword">new</strong> ArrayList&lt;AbstractTransientCmisObject.AceChangeHolder&gt;();
<a name="330" href="#330">330</a>             addAces.put(aclPropagation, list);
<a name="331" href="#331">331</a>         }
<a name="332" href="#332">332</a> 
<a name="333" href="#333">333</a>         list.add(ach);
<a name="334" href="#334">334</a>     }
<a name="335" href="#335">335</a> 
<a name="336" href="#336">336</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeAce(String principalId, List&lt;String&gt; permissions, AclPropagation aclPropagation) {
<a name="337" href="#337">337</a>         <a href="../../../../../../org/apache/chemistry/opencmis/client/runtime/AbstractTransientCmisObject.html">AceChangeHolder</a> ach = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/client/runtime/AbstractTransientCmisObject.html">AceChangeHolder</a>(principalId, permissions, aclPropagation);
<a name="338" href="#338">338</a> 
<a name="339" href="#339">339</a>         List&lt;AceChangeHolder&gt; list = removeAces.get(aclPropagation);
<a name="340" href="#340">340</a>         <strong class="jxr_keyword">if</strong> (list == <strong class="jxr_keyword">null</strong>) {
<a name="341" href="#341">341</a>             list = <strong class="jxr_keyword">new</strong> ArrayList&lt;AbstractTransientCmisObject.AceChangeHolder&gt;();
<a name="342" href="#342">342</a>             removeAces.put(aclPropagation, list);
<a name="343" href="#343">343</a>         }
<a name="344" href="#344">344</a> 
<a name="345" href="#345">345</a>         list.add(ach);
<a name="346" href="#346">346</a>     }
<a name="347" href="#347">347</a> 
<a name="348" href="#348">348</a>     <strong class="jxr_keyword">public</strong> List&lt;CmisExtensionElement&gt; getInputExtensions(ExtensionLevel level) {
<a name="349" href="#349">349</a>         <strong class="jxr_keyword">return</strong> inputExtensions.get(level);
<a name="350" href="#350">350</a>     }
<a name="351" href="#351">351</a> 
<a name="352" href="#352">352</a>     <strong class="jxr_keyword">public</strong> List&lt;CmisExtensionElement&gt; getOutputExtensions(ExtensionLevel level) {
<a name="353" href="#353">353</a>         <strong class="jxr_keyword">return</strong> ouputExtensions.get(level);
<a name="354" href="#354">354</a>     }
<a name="355" href="#355">355</a> 
<a name="356" href="#356">356</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setOutputExtensions(ExtensionLevel level, List&lt;CmisExtensionElement&gt; extensions) {
<a name="357" href="#357">357</a>         ouputExtensions.put(level, extensions);
<a name="358" href="#358">358</a>     }
<a name="359" href="#359">359</a> 
<a name="360" href="#360">360</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isMarkedForDelete() {
<a name="361" href="#361">361</a>         <strong class="jxr_keyword">return</strong> isMarkedForDelete;
<a name="362" href="#362">362</a>     }
<a name="363" href="#363">363</a> 
<a name="364" href="#364">364</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isModified() {
<a name="365" href="#365">365</a>         <strong class="jxr_keyword">return</strong> isModified;
<a name="366" href="#366">366</a>     }
<a name="367" href="#367">367</a> 
<a name="368" href="#368">368</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> reset() {
<a name="369" href="#369">369</a>         initialize(session, object);
<a name="370" href="#370">370</a>     }
<a name="371" href="#371">371</a> 
<a name="372" href="#372">372</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> refreshAndReset() {
<a name="373" href="#373">373</a>         object.refresh();
<a name="374" href="#374">374</a>         reset();
<a name="375" href="#375">375</a>     }
<a name="376" href="#376">376</a> 
<a name="377" href="#377">377</a>     <strong class="jxr_keyword">public</strong> ObjectId save() {
<a name="378" href="#378">378</a>         <strong class="jxr_keyword">if</strong> (!isModified()) {
<a name="379" href="#379">379</a>             <em class="jxr_comment">// nothing has change, so there is nothing to do</em>
<a name="380" href="#380">380</a>             <strong class="jxr_keyword">return</strong> getObjectId();
<a name="381" href="#381">381</a>         }
<a name="382" href="#382">382</a> 
<a name="383" href="#383">383</a>         String objectId = getId();
<a name="384" href="#384">384</a> 
<a name="385" href="#385">385</a>         <strong class="jxr_keyword">if</strong> (saveDelete(objectId)) {
<a name="386" href="#386">386</a>             <em class="jxr_comment">// object has been deleted, there is nothing else to do</em>
<a name="387" href="#387">387</a>             <em class="jxr_comment">// ... and there is no object id anymore</em>
<a name="388" href="#388">388</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="389" href="#389">389</a>         }
<a name="390" href="#390">390</a>         String newObjectId = saveProperties(getId(), getChangeToken());
<a name="391" href="#391">391</a>         saveACL(newObjectId);
<a name="392" href="#392">392</a>         savePolicies(newObjectId);
<a name="393" href="#393">393</a> 
<a name="394" href="#394">394</a>         <strong class="jxr_keyword">return</strong> getSession().createObjectId(newObjectId);
<a name="395" href="#395">395</a>     }
<a name="396" href="#396">396</a> 
<a name="397" href="#397">397</a>     <em class="jxr_javadoccomment">/**</em>
<a name="398" href="#398">398</a> <em class="jxr_javadoccomment">     * Fetches the latest change token of this object from the repository.</em>
<a name="399" href="#399">399</a> <em class="jxr_javadoccomment">     */</em>
<a name="400" href="#400">400</a>     <strong class="jxr_keyword">protected</strong> String getLatestChangeToken(String objectId) {
<a name="401" href="#401">401</a>         <em class="jxr_comment">// determine the object id query name</em>
<a name="402" href="#402">402</a>         PropertyDefinition&lt;?&gt; objectIdPropDef = getCmisObject().getType().getPropertyDefinitions()
<a name="403" href="#403">403</a>                 .get(PropertyIds.OBJECT_ID);
<a name="404" href="#404">404</a>         <strong class="jxr_keyword">if</strong> (objectIdPropDef == <strong class="jxr_keyword">null</strong>) {
<a name="405" href="#405">405</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="406" href="#406">406</a>         }
<a name="407" href="#407">407</a> 
<a name="408" href="#408">408</a>         String objectIdQueryName = objectIdPropDef.getQueryName();
<a name="409" href="#409">409</a>         <strong class="jxr_keyword">if</strong> (objectIdQueryName == <strong class="jxr_keyword">null</strong>) {
<a name="410" href="#410">410</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="411" href="#411">411</a>         }
<a name="412" href="#412">412</a> 
<a name="413" href="#413">413</a>         <em class="jxr_comment">// determine the change token query name</em>
<a name="414" href="#414">414</a>         PropertyDefinition&lt;?&gt; changeTokenPropDef = getCmisObject().getType().getPropertyDefinitions()
<a name="415" href="#415">415</a>                 .get(PropertyIds.CHANGE_TOKEN);
<a name="416" href="#416">416</a>         <strong class="jxr_keyword">if</strong> (changeTokenPropDef == <strong class="jxr_keyword">null</strong>) {
<a name="417" href="#417">417</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="418" href="#418">418</a>         }
<a name="419" href="#419">419</a> 
<a name="420" href="#420">420</a>         String changeTokenQueryName = changeTokenPropDef.getQueryName();
<a name="421" href="#421">421</a>         <strong class="jxr_keyword">if</strong> (changeTokenQueryName == <strong class="jxr_keyword">null</strong>) {
<a name="422" href="#422">422</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="423" href="#423">423</a>         }
<a name="424" href="#424">424</a> 
<a name="425" href="#425">425</a>         <em class="jxr_comment">// get the change token property</em>
<a name="426" href="#426">426</a>         Properties properties = getBinding().getObjectService().getProperties(getRepositoryId(), objectId,
<a name="427" href="#427">427</a>                 objectIdQueryName + <span class="jxr_string">","</span> + changeTokenQueryName, <strong class="jxr_keyword">null</strong>);
<a name="428" href="#428">428</a> 
<a name="429" href="#429">429</a>         <em class="jxr_comment">// if a change token is set, return it</em>
<a name="430" href="#430">430</a>         PropertyData&lt;?&gt; changeToken = properties.getProperties().get(PropertyIds.CHANGE_TOKEN);
<a name="431" href="#431">431</a> 
<a name="432" href="#432">432</a>         <strong class="jxr_keyword">if</strong> ((changeToken == <strong class="jxr_keyword">null</strong>) || (changeToken.getFirstValue() == <strong class="jxr_keyword">null</strong>)) {
<a name="433" href="#433">433</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="434" href="#434">434</a>         }
<a name="435" href="#435">435</a> 
<a name="436" href="#436">436</a>         <strong class="jxr_keyword">return</strong> changeToken.getFirstValue().toString();
<a name="437" href="#437">437</a>     }
<a name="438" href="#438">438</a> 
<a name="439" href="#439">439</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> saveDelete(String objectId) {
<a name="440" href="#440">440</a>         <strong class="jxr_keyword">if</strong> (isMarkedForDelete) {
<a name="441" href="#441">441</a>             getBinding().getObjectService().deleteObject(getRepositoryId(), objectId, deleteAllVersions, <strong class="jxr_keyword">null</strong>);
<a name="442" href="#442">442</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="443" href="#443">443</a>         }
<a name="444" href="#444">444</a> 
<a name="445" href="#445">445</a>         <strong class="jxr_keyword">return</strong> false;
<a name="446" href="#446">446</a>     }
<a name="447" href="#447">447</a> 
<a name="448" href="#448">448</a>     <strong class="jxr_keyword">protected</strong> Properties prepareProperties() {
<a name="449" href="#449">449</a>         Set&lt;Updatability&gt; updatebility = <strong class="jxr_keyword">new</strong> HashSet&lt;Updatability&gt;();
<a name="450" href="#450">450</a>         updatebility.add(Updatability.READWRITE);
<a name="451" href="#451">451</a> 
<a name="452" href="#452">452</a>         <em class="jxr_comment">// check if checked out</em>
<a name="453" href="#453">453</a>         Boolean isCheckedOut = getPropertyValue(PropertyIds.IS_VERSION_SERIES_CHECKED_OUT);
<a name="454" href="#454">454</a>         <strong class="jxr_keyword">if</strong> ((isCheckedOut != <strong class="jxr_keyword">null</strong>) &amp;&amp; isCheckedOut.booleanValue()) {
<a name="455" href="#455">455</a>             updatebility.add(Updatability.WHENCHECKEDOUT);
<a name="456" href="#456">456</a>         }
<a name="457" href="#457">457</a> 
<a name="458" href="#458">458</a>         <em class="jxr_comment">// convert properties</em>
<a name="459" href="#459">459</a>         Properties result = getObjectFactory().convertProperties(properties, getType(), updatebility);
<a name="460" href="#460">460</a> 
<a name="461" href="#461">461</a>         <em class="jxr_comment">// extensions</em>
<a name="462" href="#462">462</a>         List&lt;CmisExtensionElement&gt; extensions = ouputExtensions.get(ExtensionLevel.PROPERTIES);
<a name="463" href="#463">463</a>         <strong class="jxr_keyword">if</strong> (extensions != <strong class="jxr_keyword">null</strong>) {
<a name="464" href="#464">464</a>             result.setExtensions(extensions);
<a name="465" href="#465">465</a>         }
<a name="466" href="#466">466</a> 
<a name="467" href="#467">467</a>         <strong class="jxr_keyword">return</strong> result;
<a name="468" href="#468">468</a>     }
<a name="469" href="#469">469</a> 
<a name="470" href="#470">470</a>     <strong class="jxr_keyword">protected</strong> String saveProperties(String objectId, String changeToken) {
<a name="471" href="#471">471</a>         <strong class="jxr_keyword">if</strong> (isPropertyUpdateRequired) {
<a name="472" href="#472">472</a>             Holder&lt;String&gt; objectIdHolder = <strong class="jxr_keyword">new</strong> Holder&lt;String&gt;(objectId);
<a name="473" href="#473">473</a>             Holder&lt;String&gt; changeTokenHolder = <strong class="jxr_keyword">new</strong> Holder&lt;String&gt;(changeToken);
<a name="474" href="#474">474</a> 
<a name="475" href="#475">475</a>             <em class="jxr_comment">// convert properties</em>
<a name="476" href="#476">476</a>             Properties props = prepareProperties();
<a name="477" href="#477">477</a> 
<a name="478" href="#478">478</a>             <em class="jxr_comment">// it's time to update</em>
<a name="479" href="#479">479</a>             getBinding().getObjectService().updateProperties(getRepositoryId(), objectIdHolder, changeTokenHolder,
<a name="480" href="#480">480</a>                     props, <strong class="jxr_keyword">null</strong>);
<a name="481" href="#481">481</a> 
<a name="482" href="#482">482</a>             <strong class="jxr_keyword">if</strong> (objectIdHolder.getValue() != <strong class="jxr_keyword">null</strong>) {
<a name="483" href="#483">483</a>                 <strong class="jxr_keyword">return</strong> objectIdHolder.getValue();
<a name="484" href="#484">484</a>             }
<a name="485" href="#485">485</a>         }
<a name="486" href="#486">486</a> 
<a name="487" href="#487">487</a>         <strong class="jxr_keyword">return</strong> objectId;
<a name="488" href="#488">488</a>     }
<a name="489" href="#489">489</a> 
<a name="490" href="#490">490</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> savePolicies(String objectId) {
<a name="491" href="#491">491</a>         <em class="jxr_comment">// add policies</em>
<a name="492" href="#492">492</a>         <strong class="jxr_keyword">for</strong> (String policyId : addPolicies) {
<a name="493" href="#493">493</a>             getBinding().getPolicyService().applyPolicy(getRepositoryId(), policyId, objectId, <strong class="jxr_keyword">null</strong>);
<a name="494" href="#494">494</a>         }
<a name="495" href="#495">495</a> 
<a name="496" href="#496">496</a>         <em class="jxr_comment">// remove policies</em>
<a name="497" href="#497">497</a>         <strong class="jxr_keyword">for</strong> (String policyId : removePolicies) {
<a name="498" href="#498">498</a>             getBinding().getPolicyService().removePolicy(getRepositoryId(), policyId, objectId, <strong class="jxr_keyword">null</strong>);
<a name="499" href="#499">499</a>         }
<a name="500" href="#500">500</a>     }
<a name="501" href="#501">501</a> 
<a name="502" href="#502">502</a>     <strong class="jxr_keyword">protected</strong> Acl prepareAcl(List&lt;AceChangeHolder&gt; achList) {
<a name="503" href="#503">503</a>         <strong class="jxr_keyword">if</strong> ((achList == <strong class="jxr_keyword">null</strong>) || (achList.isEmpty())) {
<a name="504" href="#504">504</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="505" href="#505">505</a>         }
<a name="506" href="#506">506</a> 
<a name="507" href="#507">507</a>         ObjectFactory of = getObjectFactory();
<a name="508" href="#508">508</a> 
<a name="509" href="#509">509</a>         List&lt;Ace&gt; aces = <strong class="jxr_keyword">new</strong> ArrayList&lt;Ace&gt;();
<a name="510" href="#510">510</a>         <strong class="jxr_keyword">for</strong> (AceChangeHolder ach : achList) {
<a name="511" href="#511">511</a>             aces.add(of.createAce(ach.getPrincipalId(), ach.getPermissions()));
<a name="512" href="#512">512</a>         }
<a name="513" href="#513">513</a> 
<a name="514" href="#514">514</a>         <strong class="jxr_keyword">return</strong> of.createAcl(aces);
<a name="515" href="#515">515</a>     }
<a name="516" href="#516">516</a> 
<a name="517" href="#517">517</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> saveACL(String objectId) {
<a name="518" href="#518">518</a>         <strong class="jxr_keyword">for</strong> (AclPropagation ap : AclPropagation.values()) {
<a name="519" href="#519">519</a>             <strong class="jxr_keyword">if</strong> (!addAces.containsKey(ap) &amp;&amp; !removeAces.containsKey(ap)) {
<a name="520" href="#520">520</a>                 <strong class="jxr_keyword">continue</strong>;
<a name="521" href="#521">521</a>             }
<a name="522" href="#522">522</a> 
<a name="523" href="#523">523</a>             getBinding().getAclService().applyAcl(getRepositoryId(), objectId, prepareAcl(addAces.get(ap)),
<a name="524" href="#524">524</a>                     prepareAcl(removeAces.get(ap)), ap, <strong class="jxr_keyword">null</strong>);
<a name="525" href="#525">525</a>         }
<a name="526" href="#526">526</a> 
<a name="527" href="#527">527</a>         <strong class="jxr_keyword">if</strong> (addAces.containsKey(<strong class="jxr_keyword">null</strong>) || removeAces.containsKey(<strong class="jxr_keyword">null</strong>)) {
<a name="528" href="#528">528</a>             getBinding().getAclService().applyAcl(getRepositoryId(), objectId, prepareAcl(addAces.get(<strong class="jxr_keyword">null</strong>)),
<a name="529" href="#529">529</a>                     prepareAcl(removeAces.get(<strong class="jxr_keyword">null</strong>)), <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a name="530" href="#530">530</a>         }
<a name="531" href="#531">531</a>     }
<a name="532" href="#532">532</a> 
<a name="533" href="#533">533</a>     <em class="jxr_comment">// --- internal ---</em>
<a name="534" href="#534">534</a> 
<a name="535" href="#535">535</a>     <em class="jxr_javadoccomment">/**</em>
<a name="536" href="#536">536</a> <em class="jxr_javadoccomment">     * Checks if a value matches a property definition.</em>
<a name="537" href="#537">537</a> <em class="jxr_javadoccomment">     * &lt;p&gt;</em>
<a name="538" href="#538">538</a> <em class="jxr_javadoccomment">     * Returns a list of values.</em>
<a name="539" href="#539">539</a> <em class="jxr_javadoccomment">     */</em>
<a name="540" href="#540">540</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a name="541" href="#541">541</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> &lt;T&gt; List&lt;T&gt; checkProperty(PropertyDefinition&lt;T&gt; propertyDefinition, Object value) {
<a name="542" href="#542">542</a> 
<a name="543" href="#543">543</a>         <em class="jxr_comment">// null values are ok for updates</em>
<a name="544" href="#544">544</a>         <strong class="jxr_keyword">if</strong> (value == <strong class="jxr_keyword">null</strong>) {
<a name="545" href="#545">545</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="546" href="#546">546</a>         }
<a name="547" href="#547">547</a> 
<a name="548" href="#548">548</a>         <em class="jxr_comment">// single and multi value check</em>
<a name="549" href="#549">549</a>         List&lt;T&gt; values = <strong class="jxr_keyword">null</strong>;
<a name="550" href="#550">550</a>         <strong class="jxr_keyword">if</strong> (value instanceof List&lt;?&gt;) {
<a name="551" href="#551">551</a>             <strong class="jxr_keyword">if</strong> (propertyDefinition.getCardinality() != Cardinality.MULTI) {
<a name="552" href="#552">552</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Property '"</span> + propertyDefinition.getId()
<a name="553" href="#553">553</a>                         + <span class="jxr_string">"' is not a multi value property!"</span>);
<a name="554" href="#554">554</a>             }
<a name="555" href="#555">555</a> 
<a name="556" href="#556">556</a>             values = (List&lt;T&gt;) value;
<a name="557" href="#557">557</a>             <strong class="jxr_keyword">if</strong> (values.isEmpty()) {
<a name="558" href="#558">558</a>                 <strong class="jxr_keyword">return</strong> values;
<a name="559" href="#559">559</a>             }
<a name="560" href="#560">560</a>         } <strong class="jxr_keyword">else</strong> {
<a name="561" href="#561">561</a>             <strong class="jxr_keyword">if</strong> (propertyDefinition.getCardinality() != Cardinality.SINGLE) {
<a name="562" href="#562">562</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Property '"</span> + propertyDefinition.getId()
<a name="563" href="#563">563</a>                         + <span class="jxr_string">"' is not a single value property!"</span>);
<a name="564" href="#564">564</a>             }
<a name="565" href="#565">565</a> 
<a name="566" href="#566">566</a>             values = Collections.singletonList((T) value);
<a name="567" href="#567">567</a>         }
<a name="568" href="#568">568</a> 
<a name="569" href="#569">569</a>         <em class="jxr_comment">// check if list contains null values</em>
<a name="570" href="#570">570</a>         <strong class="jxr_keyword">for</strong> (Object o : values) {
<a name="571" href="#571">571</a>             <strong class="jxr_keyword">if</strong> (o == <strong class="jxr_keyword">null</strong>) {
<a name="572" href="#572">572</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Property '"</span> + propertyDefinition.getId()
<a name="573" href="#573">573</a>                         + <span class="jxr_string">"' contains null values!"</span>);
<a name="574" href="#574">574</a>             }
<a name="575" href="#575">575</a>         }
<a name="576" href="#576">576</a> 
<a name="577" href="#577">577</a>         <em class="jxr_comment">// take a sample and test the data type</em>
<a name="578" href="#578">578</a>         <strong class="jxr_keyword">boolean</strong> typeMatch = false;
<a name="579" href="#579">579</a>         Object firstValue = values.get(0);
<a name="580" href="#580">580</a> 
<a name="581" href="#581">581</a>         <strong class="jxr_keyword">switch</strong> (propertyDefinition.getPropertyType()) {
<a name="582" href="#582">582</a>         <strong class="jxr_keyword">case</strong> STRING:
<a name="583" href="#583">583</a>         <strong class="jxr_keyword">case</strong> ID:
<a name="584" href="#584">584</a>         <strong class="jxr_keyword">case</strong> URI:
<a name="585" href="#585">585</a>         <strong class="jxr_keyword">case</strong> HTML:
<a name="586" href="#586">586</a>             typeMatch = (firstValue instanceof String);
<a name="587" href="#587">587</a>             <strong class="jxr_keyword">break</strong>;
<a name="588" href="#588">588</a>         <strong class="jxr_keyword">case</strong> INTEGER:
<a name="589" href="#589">589</a>             typeMatch = (firstValue instanceof BigInteger) || (firstValue instanceof Byte)
<a name="590" href="#590">590</a>                     || (firstValue instanceof Short) || (firstValue instanceof Integer) || (firstValue instanceof Long);
<a name="591" href="#591">591</a>             <strong class="jxr_keyword">break</strong>;
<a name="592" href="#592">592</a>         <strong class="jxr_keyword">case</strong> DECIMAL:
<a name="593" href="#593">593</a>             typeMatch = (firstValue instanceof BigDecimal);
<a name="594" href="#594">594</a>             <strong class="jxr_keyword">break</strong>;
<a name="595" href="#595">595</a>         <strong class="jxr_keyword">case</strong> BOOLEAN:
<a name="596" href="#596">596</a>             typeMatch = (firstValue instanceof Boolean);
<a name="597" href="#597">597</a>             <strong class="jxr_keyword">break</strong>;
<a name="598" href="#598">598</a>         <strong class="jxr_keyword">case</strong> DATETIME:
<a name="599" href="#599">599</a>             typeMatch = (firstValue instanceof GregorianCalendar);
<a name="600" href="#600">600</a>             <strong class="jxr_keyword">break</strong>;
<a name="601" href="#601">601</a>         }
<a name="602" href="#602">602</a> 
<a name="603" href="#603">603</a>         <strong class="jxr_keyword">if</strong> (!typeMatch) {
<a name="604" href="#604">604</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Value of property '"</span> + propertyDefinition.getId()
<a name="605" href="#605">605</a>                     + <span class="jxr_string">"' does not match property type!"</span>);
<a name="606" href="#606">606</a>         }
<a name="607" href="#607">607</a> 
<a name="608" href="#608">608</a>         <strong class="jxr_keyword">return</strong> values;
<a name="609" href="#609">609</a>     }
<a name="610" href="#610">610</a> 
<a name="611" href="#611">611</a>     <em class="jxr_comment">// --- ACE helper class ---</em>
<a name="612" href="#612">612</a> 
<a name="613" href="#613">613</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/chemistry/opencmis/client/runtime/AbstractTransientCmisObject.html">AceChangeHolder</a> implements Serializable {
<a name="614" href="#614">614</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> serialVersionUID = 1L;
<a name="615" href="#615">615</a> 
<a name="616" href="#616">616</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String principalId;
<a name="617" href="#617">617</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> List&lt;String&gt; permissions;
<a name="618" href="#618">618</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> AclPropagation aclPropagation;
<a name="619" href="#619">619</a> 
<a name="620" href="#620">620</a>         <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/client/runtime/AbstractTransientCmisObject.html">AceChangeHolder</a>(String principalId, List&lt;String&gt; permissions, AclPropagation aclPropagation) {
<a name="621" href="#621">621</a>             <strong class="jxr_keyword">if</strong> ((principalId == <strong class="jxr_keyword">null</strong>) || (principalId.length() == 0)) {
<a name="622" href="#622">622</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Principal id must be set!"</span>);
<a name="623" href="#623">623</a>             }
<a name="624" href="#624">624</a> 
<a name="625" href="#625">625</a>             <strong class="jxr_keyword">if</strong> ((permissions == <strong class="jxr_keyword">null</strong>) || (permissions.size() == 0)) {
<a name="626" href="#626">626</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Permissions id must be set!"</span>);
<a name="627" href="#627">627</a>             }
<a name="628" href="#628">628</a> 
<a name="629" href="#629">629</a>             <strong class="jxr_keyword">this</strong>.principalId = principalId;
<a name="630" href="#630">630</a>             <strong class="jxr_keyword">this</strong>.permissions = permissions;
<a name="631" href="#631">631</a>             <strong class="jxr_keyword">this</strong>.aclPropagation = aclPropagation;
<a name="632" href="#632">632</a>         }
<a name="633" href="#633">633</a> 
<a name="634" href="#634">634</a>         <strong class="jxr_keyword">public</strong> String getPrincipalId() {
<a name="635" href="#635">635</a>             <strong class="jxr_keyword">return</strong> principalId;
<a name="636" href="#636">636</a>         }
<a name="637" href="#637">637</a> 
<a name="638" href="#638">638</a>         <strong class="jxr_keyword">public</strong> List&lt;String&gt; getPermissions() {
<a name="639" href="#639">639</a>             <strong class="jxr_keyword">return</strong> permissions;
<a name="640" href="#640">640</a>         }
<a name="641" href="#641">641</a> 
<a name="642" href="#642">642</a>         <strong class="jxr_keyword">public</strong> AclPropagation getAclPropagation() {
<a name="643" href="#643">643</a>             <strong class="jxr_keyword">return</strong> aclPropagation;
<a name="644" href="#644">644</a>         }
<a name="645" href="#645">645</a>     }
<a name="646" href="#646">646</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

