<!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>CmisServiceWrapper xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
</head>
<body>
<pre>

<a name="1" href="#1">1</a>   <strong class="jxr_keyword">package</strong> org.apache.chemistry.opencmis.server.support;
<a name="2" href="#2">2</a>   
<a name="3" href="#3">3</a>   <em class="jxr_comment">/*</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> *</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> *</em>
<a name="13" href="#13">13</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="14" href="#14">14</a>  <em class="jxr_comment"> *</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a name="19" href="#19">19</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a name="20" href="#20">20</a>  <em class="jxr_comment"> * under the License.</em>
<a name="21" href="#21">21</a>  <em class="jxr_comment"> *</em>
<a name="22" href="#22">22</a>  <em class="jxr_comment"> */</em>
<a name="23" href="#23">23</a>  
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.math.BigInteger;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a name="26" href="#26">26</a>  
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.PropertyIds;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Acl;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.AllowableActions;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ContentStream;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ExtensionsData;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.FailedToDeleteData;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectData;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectInFolderContainer;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectInFolderList;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectList;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectParentData;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Properties;
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyData;
<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.RenditionData;
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer;
<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionList;
<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.AclPropagation;
<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.RelationshipDirection;
<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.UnfileObject;
<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.VersioningState;
<a name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisBaseException;
<a name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
<a name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException;
<a name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.server.CmisService;
<a name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.server.ObjectInfo;
<a name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.spi.Holder;
<a name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.Log;
<a name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.LogFactory;
<a name="58" href="#58">58</a>  
<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment">/**</em>
<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment"> * Service wrapper.</em>
<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment"> */</em>
<a name="62" href="#62">62</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> CmisServiceWrapper&lt;T <strong class="jxr_keyword">extends</strong> CmisService&gt; implements CmisService {
<a name="63" href="#63">63</a>  
<a name="64" href="#64">64</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> BigInteger MINUS_ONE = BigInteger.valueOf(-1);
<a name="65" href="#65">65</a>  
<a name="66" href="#66">66</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Log log = LogFactory.getLog(CmisServiceWrapper.<strong class="jxr_keyword">class</strong>);
<a name="67" href="#67">67</a>  
<a name="68" href="#68">68</a>      <strong class="jxr_keyword">private</strong> BigInteger defaultTypesMaxItems = <strong class="jxr_keyword">null</strong>;
<a name="69" href="#69">69</a>      <strong class="jxr_keyword">private</strong> BigInteger defaultTypesDepth = MINUS_ONE;
<a name="70" href="#70">70</a>  
<a name="71" href="#71">71</a>      <strong class="jxr_keyword">private</strong> BigInteger defaultMaxItems = <strong class="jxr_keyword">null</strong>;
<a name="72" href="#72">72</a>      <strong class="jxr_keyword">private</strong> BigInteger defaultDepth = MINUS_ONE;
<a name="73" href="#73">73</a>  
<a name="74" href="#74">74</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> T service;
<a name="75" href="#75">75</a>  
<a name="76" href="#76">76</a>      <em class="jxr_javadoccomment">/**</em>
<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     * Constructor.</em>
<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">     */</em>
<a name="79" href="#79">79</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/server/support/CmisServiceWrapper.html">CmisServiceWrapper</a>(T service, BigInteger defaultTypesMaxItems, BigInteger defaultTypesDepth,
<a name="80" href="#80">80</a>              BigInteger defaultMaxItems, BigInteger defaultDepth) {
<a name="81" href="#81">81</a>          <strong class="jxr_keyword">if</strong> (service == <strong class="jxr_keyword">null</strong>) {
<a name="82" href="#82">82</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Service must be set!"</span>);
<a name="83" href="#83">83</a>          }
<a name="84" href="#84">84</a>  
<a name="85" href="#85">85</a>          <strong class="jxr_keyword">this</strong>.service = service;
<a name="86" href="#86">86</a>  
<a name="87" href="#87">87</a>          setDefaultTypesMaxItems(defaultTypesMaxItems);
<a name="88" href="#88">88</a>          setDefaultTypesDepth(defaultTypesDepth);
<a name="89" href="#89">89</a>          setDefaultMaxItems(defaultMaxItems);
<a name="90" href="#90">90</a>          setDefaultDepth(defaultDepth);
<a name="91" href="#91">91</a>      }
<a name="92" href="#92">92</a>  
<a name="93" href="#93">93</a>      <em class="jxr_comment">// --- wrapper operations ---</em>
<a name="94" href="#94">94</a>  
<a name="95" href="#95">95</a>      <em class="jxr_javadoccomment">/**</em>
<a name="96" href="#96">96</a>  <em class="jxr_javadoccomment">     * Set the default maxItems.</em>
<a name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     */</em>
<a name="98" href="#98">98</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setDefaultTypesMaxItems(BigInteger defaultTypesMaxItems) {
<a name="99" href="#99">99</a>          <strong class="jxr_keyword">this</strong>.defaultTypesMaxItems = defaultTypesMaxItems;
<a name="100" href="#100">100</a>     }
<a name="101" href="#101">101</a> 
<a name="102" href="#102">102</a>     <em class="jxr_javadoccomment">/**</em>
<a name="103" href="#103">103</a> <em class="jxr_javadoccomment">     * Set the default depth.</em>
<a name="104" href="#104">104</a> <em class="jxr_javadoccomment">     */</em>
<a name="105" href="#105">105</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setDefaultTypesDepth(BigInteger defaultTypesDepth) {
<a name="106" href="#106">106</a>         <strong class="jxr_keyword">this</strong>.defaultTypesDepth = defaultTypesDepth;
<a name="107" href="#107">107</a>     }
<a name="108" href="#108">108</a> 
<a name="109" href="#109">109</a>     <em class="jxr_javadoccomment">/**</em>
<a name="110" href="#110">110</a> <em class="jxr_javadoccomment">     * Set the default maxItems.</em>
<a name="111" href="#111">111</a> <em class="jxr_javadoccomment">     */</em>
<a name="112" href="#112">112</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setDefaultMaxItems(BigInteger defaultMaxItems) {
<a name="113" href="#113">113</a>         <strong class="jxr_keyword">this</strong>.defaultMaxItems = defaultMaxItems;
<a name="114" href="#114">114</a>     }
<a name="115" href="#115">115</a> 
<a name="116" href="#116">116</a>     <em class="jxr_javadoccomment">/**</em>
<a name="117" href="#117">117</a> <em class="jxr_javadoccomment">     * Set the default depth.</em>
<a name="118" href="#118">118</a> <em class="jxr_javadoccomment">     */</em>
<a name="119" href="#119">119</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setDefaultDepth(BigInteger defaultDepth) {
<a name="120" href="#120">120</a>         <strong class="jxr_keyword">this</strong>.defaultDepth = defaultDepth;
<a name="121" href="#121">121</a>     }
<a name="122" href="#122">122</a> 
<a name="123" href="#123">123</a>     <em class="jxr_javadoccomment">/**</em>
<a name="124" href="#124">124</a> <em class="jxr_javadoccomment">     * Converts the given exception into a CMIS exception.</em>
<a name="125" href="#125">125</a> <em class="jxr_javadoccomment">     */</em>
<a name="126" href="#126">126</a>     <strong class="jxr_keyword">protected</strong> CmisBaseException createCmisException(Exception e) {
<a name="127" href="#127">127</a>         <strong class="jxr_keyword">if</strong> (e == <strong class="jxr_keyword">null</strong>) {
<a name="128" href="#128">128</a>             <em class="jxr_comment">// should never happen</em>
<a name="129" href="#129">129</a>             <em class="jxr_comment">// if it happens its the fault of the framework...</em>
<a name="130" href="#130">130</a> 
<a name="131" href="#131">131</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(<span class="jxr_string">"Unknown exception!"</span>);
<a name="132" href="#132">132</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (e instanceof CmisBaseException) {
<a name="133" href="#133">133</a>             <strong class="jxr_keyword">return</strong> (CmisBaseException) e;
<a name="134" href="#134">134</a>         } <strong class="jxr_keyword">else</strong> {
<a name="135" href="#135">135</a>             <em class="jxr_comment">// should not happen if the connector works correctly</em>
<a name="136" href="#136">136</a>             <em class="jxr_comment">// it's alarming enough to log the exception</em>
<a name="137" href="#137">137</a>             log.warn(e);
<a name="138" href="#138">138</a> 
<a name="139" href="#139">139</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(e.getMessage(), e);
<a name="140" href="#140">140</a>         }
<a name="141" href="#141">141</a>     }
<a name="142" href="#142">142</a> 
<a name="143" href="#143">143</a>     <em class="jxr_javadoccomment">/**</em>
<a name="144" href="#144">144</a> <em class="jxr_javadoccomment">     * Throws an exception if the given id is &lt;code&gt;null&lt;/code&gt; or empty.</em>
<a name="145" href="#145">145</a> <em class="jxr_javadoccomment">     */</em>
<a name="146" href="#146">146</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> checkId(String name, String id) {
<a name="147" href="#147">147</a>         <strong class="jxr_keyword">if</strong> (id == <strong class="jxr_keyword">null</strong>) {
<a name="148" href="#148">148</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(name + <span class="jxr_string">" must be set!"</span>);
<a name="149" href="#149">149</a>         }
<a name="150" href="#150">150</a> 
<a name="151" href="#151">151</a>         <strong class="jxr_keyword">if</strong> (id.length() == 0) {
<a name="152" href="#152">152</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(name + <span class="jxr_string">" must not be empty!"</span>);
<a name="153" href="#153">153</a>         }
<a name="154" href="#154">154</a>     }
<a name="155" href="#155">155</a> 
<a name="156" href="#156">156</a>     <em class="jxr_javadoccomment">/**</em>
<a name="157" href="#157">157</a> <em class="jxr_javadoccomment">     * Throws an exception if the given ids are all &lt;code&gt;null&lt;/code&gt; or empty.</em>
<a name="158" href="#158">158</a> <em class="jxr_javadoccomment">     */</em>
<a name="159" href="#159">159</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> checkIds(String name, String... ids) {
<a name="160" href="#160">160</a>         <strong class="jxr_keyword">for</strong> (String id : ids) {
<a name="161" href="#161">161</a>             <strong class="jxr_keyword">if</strong> (id != <strong class="jxr_keyword">null</strong> &amp;&amp; id.length() &gt; 0) {
<a name="162" href="#162">162</a>                 <strong class="jxr_keyword">return</strong>;
<a name="163" href="#163">163</a>             }
<a name="164" href="#164">164</a>         }
<a name="165" href="#165">165</a> 
<a name="166" href="#166">166</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(name + <span class="jxr_string">" must be set!"</span>);
<a name="167" href="#167">167</a>     }
<a name="168" href="#168">168</a> 
<a name="169" href="#169">169</a>     <em class="jxr_javadoccomment">/**</em>
<a name="170" href="#170">170</a> <em class="jxr_javadoccomment">     * Throws an exception if the given holder or id is &lt;code&gt;null&lt;/code&gt; or</em>
<a name="171" href="#171">171</a> <em class="jxr_javadoccomment">     * empty.</em>
<a name="172" href="#172">172</a> <em class="jxr_javadoccomment">     */</em>
<a name="173" href="#173">173</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> checkHolderId(String name, Holder&lt;String&gt; holder) {
<a name="174" href="#174">174</a>         <strong class="jxr_keyword">if</strong> (holder == <strong class="jxr_keyword">null</strong>) {
<a name="175" href="#175">175</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(name + <span class="jxr_string">" must be set!"</span>);
<a name="176" href="#176">176</a>         }
<a name="177" href="#177">177</a> 
<a name="178" href="#178">178</a>         checkId(name, holder.getValue());
<a name="179" href="#179">179</a>     }
<a name="180" href="#180">180</a> 
<a name="181" href="#181">181</a>     <em class="jxr_javadoccomment">/**</em>
<a name="182" href="#182">182</a> <em class="jxr_javadoccomment">     * Throws an exception if the repository id is &lt;code&gt;null&lt;/code&gt; or empty.</em>
<a name="183" href="#183">183</a> <em class="jxr_javadoccomment">     */</em>
<a name="184" href="#184">184</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> checkRepositoryId(String repositoryId) {
<a name="185" href="#185">185</a>         checkId(<span class="jxr_string">"Repository Id"</span>, repositoryId);
<a name="186" href="#186">186</a>     }
<a name="187" href="#187">187</a> 
<a name="188" href="#188">188</a>     <em class="jxr_javadoccomment">/**</em>
<a name="189" href="#189">189</a> <em class="jxr_javadoccomment">     * Throws an exception if the given path is &lt;code&gt;null&lt;/code&gt; or invalid.</em>
<a name="190" href="#190">190</a> <em class="jxr_javadoccomment">     */</em>
<a name="191" href="#191">191</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> checkPath(String name, String path) {
<a name="192" href="#192">192</a>         <strong class="jxr_keyword">if</strong> (path == <strong class="jxr_keyword">null</strong>) {
<a name="193" href="#193">193</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(name + <span class="jxr_string">" must be set!"</span>);
<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">if</strong> (path.length() == 0) {
<a name="197" href="#197">197</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(name + <span class="jxr_string">" must not be empty!"</span>);
<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">if</strong> (path.charAt(0) != '/') {
<a name="201" href="#201">201</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(name + <span class="jxr_string">" must start with '/'!"</span>);
<a name="202" href="#202">202</a>         }
<a name="203" href="#203">203</a>     }
<a name="204" href="#204">204</a> 
<a name="205" href="#205">205</a>     <em class="jxr_javadoccomment">/**</em>
<a name="206" href="#206">206</a> <em class="jxr_javadoccomment">     * Throws an exception if the given properties set is &lt;code&gt;null&lt;/code&gt;.</em>
<a name="207" href="#207">207</a> <em class="jxr_javadoccomment">     */</em>
<a name="208" href="#208">208</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> checkProperties(Properties properties) {
<a name="209" href="#209">209</a>         <strong class="jxr_keyword">if</strong> (properties == <strong class="jxr_keyword">null</strong>) {
<a name="210" href="#210">210</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Properties must be set!"</span>);
<a name="211" href="#211">211</a>         }
<a name="212" href="#212">212</a>     }
<a name="213" href="#213">213</a> 
<a name="214" href="#214">214</a>     <em class="jxr_javadoccomment">/**</em>
<a name="215" href="#215">215</a> <em class="jxr_javadoccomment">     * Throws an exception if the given property isn't set or of the wrong type.</em>
<a name="216" href="#216">216</a> <em class="jxr_javadoccomment">     */</em>
<a name="217" href="#217">217</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> checkProperty(Properties properties, String propertyId, Class&lt;?&gt; clazz) {
<a name="218" href="#218">218</a>         <strong class="jxr_keyword">if</strong> (properties.getProperties() == <strong class="jxr_keyword">null</strong>) {
<a name="219" href="#219">219</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Property "</span> + propertyId + <span class="jxr_string">" must be set!"</span>);
<a name="220" href="#220">220</a>         }
<a name="221" href="#221">221</a> 
<a name="222" href="#222">222</a>         PropertyData&lt;?&gt; property = properties.getProperties().get(propertyId);
<a name="223" href="#223">223</a>         <strong class="jxr_keyword">if</strong> (property == <strong class="jxr_keyword">null</strong>) {
<a name="224" href="#224">224</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Property "</span> + propertyId + <span class="jxr_string">" must be set!"</span>);
<a name="225" href="#225">225</a>         }
<a name="226" href="#226">226</a> 
<a name="227" href="#227">227</a>         Object value = property.getFirstValue();
<a name="228" href="#228">228</a>         <strong class="jxr_keyword">if</strong> (value == <strong class="jxr_keyword">null</strong>) {
<a name="229" href="#229">229</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Property "</span> + propertyId + <span class="jxr_string">" must have a value!"</span>);
<a name="230" href="#230">230</a>         }
<a name="231" href="#231">231</a> 
<a name="232" href="#232">232</a>         <strong class="jxr_keyword">if</strong> (!clazz.isAssignableFrom(value.getClass())) {
<a name="233" href="#233">233</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Property "</span> + propertyId + <span class="jxr_string">" has the wrong type!"</span>);
<a name="234" href="#234">234</a>         }
<a name="235" href="#235">235</a>     }
<a name="236" href="#236">236</a> 
<a name="237" href="#237">237</a>     <em class="jxr_javadoccomment">/**</em>
<a name="238" href="#238">238</a> <em class="jxr_javadoccomment">     * Throws an exception if the given content object is &lt;code&gt;null&lt;/code&gt;.</em>
<a name="239" href="#239">239</a> <em class="jxr_javadoccomment">     */</em>
<a name="240" href="#240">240</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> checkContentStream(ContentStream content) {
<a name="241" href="#241">241</a>         <strong class="jxr_keyword">if</strong> (content == <strong class="jxr_keyword">null</strong>) {
<a name="242" href="#242">242</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Content must be set!"</span>);
<a name="243" href="#243">243</a>         }
<a name="244" href="#244">244</a>     }
<a name="245" href="#245">245</a> 
<a name="246" href="#246">246</a>     <em class="jxr_javadoccomment">/**</em>
<a name="247" href="#247">247</a> <em class="jxr_javadoccomment">     * Throws an exception if the given query statement is &lt;code&gt;null&lt;/code&gt; or</em>
<a name="248" href="#248">248</a> <em class="jxr_javadoccomment">     * empty.</em>
<a name="249" href="#249">249</a> <em class="jxr_javadoccomment">     */</em>
<a name="250" href="#250">250</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> checkQueryStatement(String statement) {
<a name="251" href="#251">251</a>         <strong class="jxr_keyword">if</strong> (statement == <strong class="jxr_keyword">null</strong>) {
<a name="252" href="#252">252</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Statement must be set!"</span>);
<a name="253" href="#253">253</a>         }
<a name="254" href="#254">254</a> 
<a name="255" href="#255">255</a>         <strong class="jxr_keyword">if</strong> (statement.length() == 0) {
<a name="256" href="#256">256</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Statement must not be empty!"</span>);
<a name="257" href="#257">257</a>         }
<a name="258" href="#258">258</a>     }
<a name="259" href="#259">259</a> 
<a name="260" href="#260">260</a>     <em class="jxr_javadoccomment">/**</em>
<a name="261" href="#261">261</a> <em class="jxr_javadoccomment">     * Returns &lt;code&gt;true&lt;/code&gt; if &lt;code&gt;value&lt;/code&gt; is &lt;code&gt;null&lt;/code&gt;.</em>
<a name="262" href="#262">262</a> <em class="jxr_javadoccomment">     */</em>
<a name="263" href="#263">263</a>     <strong class="jxr_keyword">protected</strong> Boolean getDefaultTrue(Boolean value) {
<a name="264" href="#264">264</a>         <strong class="jxr_keyword">if</strong> (value == <strong class="jxr_keyword">null</strong>) {
<a name="265" href="#265">265</a>             <strong class="jxr_keyword">return</strong> Boolean.TRUE;
<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">return</strong> value;
<a name="269" href="#269">269</a>     }
<a name="270" href="#270">270</a> 
<a name="271" href="#271">271</a>     <em class="jxr_javadoccomment">/**</em>
<a name="272" href="#272">272</a> <em class="jxr_javadoccomment">     * Returns &lt;code&gt;false&lt;/code&gt; if &lt;code&gt;value&lt;/code&gt; is &lt;code&gt;null&lt;/code&gt;.</em>
<a name="273" href="#273">273</a> <em class="jxr_javadoccomment">     */</em>
<a name="274" href="#274">274</a>     <strong class="jxr_keyword">protected</strong> Boolean getDefaultFalse(Boolean value) {
<a name="275" href="#275">275</a>         <strong class="jxr_keyword">if</strong> (value == <strong class="jxr_keyword">null</strong>) {
<a name="276" href="#276">276</a>             <strong class="jxr_keyword">return</strong> Boolean.FALSE;
<a name="277" href="#277">277</a>         }
<a name="278" href="#278">278</a> 
<a name="279" href="#279">279</a>         <strong class="jxr_keyword">return</strong> value;
<a name="280" href="#280">280</a>     }
<a name="281" href="#281">281</a> 
<a name="282" href="#282">282</a>     <em class="jxr_javadoccomment">/**</em>
<a name="283" href="#283">283</a> <em class="jxr_javadoccomment">     * Returns the &lt;code&gt;IncludeRelationships.NONE&lt;/code&gt; if &lt;code&gt;value&lt;/code&gt;</em>
<a name="284" href="#284">284</a> <em class="jxr_javadoccomment">     * is &lt;code&gt;null&lt;/code&gt;.</em>
<a name="285" href="#285">285</a> <em class="jxr_javadoccomment">     */</em>
<a name="286" href="#286">286</a>     <strong class="jxr_keyword">protected</strong> IncludeRelationships getDefault(IncludeRelationships value) {
<a name="287" href="#287">287</a>         <strong class="jxr_keyword">if</strong> (value == <strong class="jxr_keyword">null</strong>) {
<a name="288" href="#288">288</a>             <strong class="jxr_keyword">return</strong> IncludeRelationships.NONE;
<a name="289" href="#289">289</a>         }
<a name="290" href="#290">290</a> 
<a name="291" href="#291">291</a>         <strong class="jxr_keyword">return</strong> value;
<a name="292" href="#292">292</a>     }
<a name="293" href="#293">293</a> 
<a name="294" href="#294">294</a>     <em class="jxr_javadoccomment">/**</em>
<a name="295" href="#295">295</a> <em class="jxr_javadoccomment">     * Returns the &lt;code&gt;VersioningState.MAJOR&lt;/code&gt; if &lt;code&gt;value&lt;/code&gt; is</em>
<a name="296" href="#296">296</a> <em class="jxr_javadoccomment">     * &lt;code&gt;null&lt;/code&gt;.</em>
<a name="297" href="#297">297</a> <em class="jxr_javadoccomment">     */</em>
<a name="298" href="#298">298</a>     <strong class="jxr_keyword">protected</strong> VersioningState getDefault(VersioningState value) {
<a name="299" href="#299">299</a>         <strong class="jxr_keyword">if</strong> (value == <strong class="jxr_keyword">null</strong>) {
<a name="300" href="#300">300</a>             <strong class="jxr_keyword">return</strong> VersioningState.MAJOR;
<a name="301" href="#301">301</a>         }
<a name="302" href="#302">302</a> 
<a name="303" href="#303">303</a>         <strong class="jxr_keyword">return</strong> value;
<a name="304" href="#304">304</a>     }
<a name="305" href="#305">305</a> 
<a name="306" href="#306">306</a>     <em class="jxr_javadoccomment">/**</em>
<a name="307" href="#307">307</a> <em class="jxr_javadoccomment">     * Returns the &lt;code&gt;UnfileObjects.DELETE&lt;/code&gt; if &lt;code&gt;value&lt;/code&gt; is</em>
<a name="308" href="#308">308</a> <em class="jxr_javadoccomment">     * &lt;code&gt;null&lt;/code&gt;.</em>
<a name="309" href="#309">309</a> <em class="jxr_javadoccomment">     */</em>
<a name="310" href="#310">310</a>     <strong class="jxr_keyword">protected</strong> UnfileObject getDefault(UnfileObject value) {
<a name="311" href="#311">311</a>         <strong class="jxr_keyword">if</strong> (value == <strong class="jxr_keyword">null</strong>) {
<a name="312" href="#312">312</a>             <strong class="jxr_keyword">return</strong> UnfileObject.DELETE;
<a name="313" href="#313">313</a>         }
<a name="314" href="#314">314</a> 
<a name="315" href="#315">315</a>         <strong class="jxr_keyword">return</strong> value;
<a name="316" href="#316">316</a>     }
<a name="317" href="#317">317</a> 
<a name="318" href="#318">318</a>     <em class="jxr_javadoccomment">/**</em>
<a name="319" href="#319">319</a> <em class="jxr_javadoccomment">     * Returns the</em>
<a name="320" href="#320">320</a> <em class="jxr_javadoccomment">     * &lt;code&gt;AclPropagation.REPOSITORYDETERMINED&lt;/code&gt; if &lt;code&gt;value&lt;/code&gt; is</em>
<a name="321" href="#321">321</a> <em class="jxr_javadoccomment">     * &lt;code&gt;null&lt;/code&gt;.</em>
<a name="322" href="#322">322</a> <em class="jxr_javadoccomment">     */</em>
<a name="323" href="#323">323</a>     <strong class="jxr_keyword">protected</strong> AclPropagation getDefault(AclPropagation value) {
<a name="324" href="#324">324</a>         <strong class="jxr_keyword">if</strong> (value == <strong class="jxr_keyword">null</strong>) {
<a name="325" href="#325">325</a>             <strong class="jxr_keyword">return</strong> AclPropagation.REPOSITORYDETERMINED;
<a name="326" href="#326">326</a>         }
<a name="327" href="#327">327</a> 
<a name="328" href="#328">328</a>         <strong class="jxr_keyword">return</strong> value;
<a name="329" href="#329">329</a>     }
<a name="330" href="#330">330</a> 
<a name="331" href="#331">331</a>     <em class="jxr_javadoccomment">/**</em>
<a name="332" href="#332">332</a> <em class="jxr_javadoccomment">     * Returns the</em>
<a name="333" href="#333">333</a> <em class="jxr_javadoccomment">     * &lt;code&gt;RelationshipDirection.SOURCE&lt;/code&gt; if &lt;code&gt;value&lt;/code&gt; is</em>
<a name="334" href="#334">334</a> <em class="jxr_javadoccomment">     * &lt;code&gt;null&lt;/code&gt; .</em>
<a name="335" href="#335">335</a> <em class="jxr_javadoccomment">     */</em>
<a name="336" href="#336">336</a>     <strong class="jxr_keyword">protected</strong> RelationshipDirection getDefault(RelationshipDirection value) {
<a name="337" href="#337">337</a>         <strong class="jxr_keyword">if</strong> (value == <strong class="jxr_keyword">null</strong>) {
<a name="338" href="#338">338</a>             <strong class="jxr_keyword">return</strong> RelationshipDirection.SOURCE;
<a name="339" href="#339">339</a>         }
<a name="340" href="#340">340</a> 
<a name="341" href="#341">341</a>         <strong class="jxr_keyword">return</strong> value;
<a name="342" href="#342">342</a>     }
<a name="343" href="#343">343</a> 
<a name="344" href="#344">344</a>     <em class="jxr_javadoccomment">/**</em>
<a name="345" href="#345">345</a> <em class="jxr_javadoccomment">     * Returns the &lt;code&gt;"cmis:none"&lt;/code&gt; if &lt;code&gt;value&lt;/code&gt; is</em>
<a name="346" href="#346">346</a> <em class="jxr_javadoccomment">     * &lt;code&gt;null&lt;/code&gt;.</em>
<a name="347" href="#347">347</a> <em class="jxr_javadoccomment">     */</em>
<a name="348" href="#348">348</a>     <strong class="jxr_keyword">protected</strong> String getDefaultRenditionFilter(String value) {
<a name="349" href="#349">349</a>         <strong class="jxr_keyword">if</strong> ((value == <strong class="jxr_keyword">null</strong>) || (value.length() == 0)) {
<a name="350" href="#350">350</a>             <strong class="jxr_keyword">return</strong> <span class="jxr_string">"cmis:none"</span>;
<a name="351" href="#351">351</a>         }
<a name="352" href="#352">352</a> 
<a name="353" href="#353">353</a>         <strong class="jxr_keyword">return</strong> value;
<a name="354" href="#354">354</a>     }
<a name="355" href="#355">355</a> 
<a name="356" href="#356">356</a>     <em class="jxr_javadoccomment">/**</em>
<a name="357" href="#357">357</a> <em class="jxr_javadoccomment">     * Returns the default maxItems if &lt;code&gt;maxItems&lt;/code&gt; ==</em>
<a name="358" href="#358">358</a> <em class="jxr_javadoccomment">     * &lt;code&gt;null&lt;/code&gt;, throws an exception if &lt;code&gt;maxItems&lt;/code&gt; &amp;lt; 0,</em>
<a name="359" href="#359">359</a> <em class="jxr_javadoccomment">     * returns &lt;code&gt;maxItems&lt;/code&gt; otherwise.</em>
<a name="360" href="#360">360</a> <em class="jxr_javadoccomment">     */</em>
<a name="361" href="#361">361</a>     <strong class="jxr_keyword">protected</strong> BigInteger getTypesMaxItems(BigInteger maxItems) {
<a name="362" href="#362">362</a>         <strong class="jxr_keyword">if</strong> (maxItems == <strong class="jxr_keyword">null</strong>) {
<a name="363" href="#363">363</a>             <strong class="jxr_keyword">return</strong> defaultTypesMaxItems;
<a name="364" href="#364">364</a>         }
<a name="365" href="#365">365</a> 
<a name="366" href="#366">366</a>         <strong class="jxr_keyword">if</strong> (maxItems.compareTo(BigInteger.ZERO) == -1) {
<a name="367" href="#367">367</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"maxItems must not be negative!"</span>);
<a name="368" href="#368">368</a>         }
<a name="369" href="#369">369</a> 
<a name="370" href="#370">370</a>         <strong class="jxr_keyword">return</strong> maxItems;
<a name="371" href="#371">371</a>     }
<a name="372" href="#372">372</a> 
<a name="373" href="#373">373</a>     <em class="jxr_javadoccomment">/**</em>
<a name="374" href="#374">374</a> <em class="jxr_javadoccomment">     * Checks the depth parameter if it complies with CMIS specification and</em>
<a name="375" href="#375">375</a> <em class="jxr_javadoccomment">     * returns the default value if &lt;code&gt;depth&lt;/code&gt; is &lt;code&gt;null&lt;/code&gt;.</em>
<a name="376" href="#376">376</a> <em class="jxr_javadoccomment">     */</em>
<a name="377" href="#377">377</a>     <strong class="jxr_keyword">protected</strong> BigInteger getTypesDepth(BigInteger depth) {
<a name="378" href="#378">378</a>         <strong class="jxr_keyword">if</strong> (depth == <strong class="jxr_keyword">null</strong>) {
<a name="379" href="#379">379</a>             <strong class="jxr_keyword">return</strong> defaultTypesDepth;
<a name="380" href="#380">380</a>         }
<a name="381" href="#381">381</a> 
<a name="382" href="#382">382</a>         <strong class="jxr_keyword">if</strong> (depth.compareTo(BigInteger.ZERO) == 0) {
<a name="383" href="#383">383</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"depth must not be 0!"</span>);
<a name="384" href="#384">384</a>         }
<a name="385" href="#385">385</a> 
<a name="386" href="#386">386</a>         <strong class="jxr_keyword">if</strong> (depth.compareTo(MINUS_ONE) == -1) {
<a name="387" href="#387">387</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"depth must not be &lt;-1!"</span>);
<a name="388" href="#388">388</a>         }
<a name="389" href="#389">389</a> 
<a name="390" href="#390">390</a>         <strong class="jxr_keyword">return</strong> depth;
<a name="391" href="#391">391</a>     }
<a name="392" href="#392">392</a> 
<a name="393" href="#393">393</a>     <em class="jxr_javadoccomment">/**</em>
<a name="394" href="#394">394</a> <em class="jxr_javadoccomment">     * Returns the default maxItems if &lt;code&gt;maxItems&lt;/code&gt; ==</em>
<a name="395" href="#395">395</a> <em class="jxr_javadoccomment">     * &lt;code&gt;null&lt;/code&gt;, throws an exception if &lt;code&gt;maxItems&lt;/code&gt; &amp;lt; 0,</em>
<a name="396" href="#396">396</a> <em class="jxr_javadoccomment">     * returns &lt;code&gt;maxItems&lt;/code&gt; otherwise.</em>
<a name="397" href="#397">397</a> <em class="jxr_javadoccomment">     */</em>
<a name="398" href="#398">398</a>     <strong class="jxr_keyword">protected</strong> BigInteger getMaxItems(BigInteger maxItems) {
<a name="399" href="#399">399</a>         <strong class="jxr_keyword">if</strong> (maxItems == <strong class="jxr_keyword">null</strong>) {
<a name="400" href="#400">400</a>             <strong class="jxr_keyword">return</strong> defaultMaxItems;
<a name="401" href="#401">401</a>         }
<a name="402" href="#402">402</a> 
<a name="403" href="#403">403</a>         <strong class="jxr_keyword">if</strong> (maxItems.compareTo(BigInteger.ZERO) == -1) {
<a name="404" href="#404">404</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"maxItems must not be negative!"</span>);
<a name="405" href="#405">405</a>         }
<a name="406" href="#406">406</a> 
<a name="407" href="#407">407</a>         <strong class="jxr_keyword">return</strong> maxItems;
<a name="408" href="#408">408</a>     }
<a name="409" href="#409">409</a> 
<a name="410" href="#410">410</a>     <em class="jxr_javadoccomment">/**</em>
<a name="411" href="#411">411</a> <em class="jxr_javadoccomment">     * Returns 0 if &lt;code&gt;skipCount&lt;/code&gt; == &lt;code&gt;null&lt;/code&gt;, throws an</em>
<a name="412" href="#412">412</a> <em class="jxr_javadoccomment">     * exception if &lt;code&gt;skipCount&lt;/code&gt; &amp;lt; 0, returns</em>
<a name="413" href="#413">413</a> <em class="jxr_javadoccomment">     * &lt;code&gt;skipCount&lt;/code&gt; otherwise.</em>
<a name="414" href="#414">414</a> <em class="jxr_javadoccomment">     */</em>
<a name="415" href="#415">415</a>     <strong class="jxr_keyword">protected</strong> BigInteger getSkipCount(BigInteger skipCount) {
<a name="416" href="#416">416</a>         <strong class="jxr_keyword">if</strong> (skipCount == <strong class="jxr_keyword">null</strong>) {
<a name="417" href="#417">417</a>             <strong class="jxr_keyword">return</strong> BigInteger.ZERO;
<a name="418" href="#418">418</a>         }
<a name="419" href="#419">419</a> 
<a name="420" href="#420">420</a>         <strong class="jxr_keyword">if</strong> (skipCount.compareTo(BigInteger.ZERO) == -1) {
<a name="421" href="#421">421</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"skipCount must not be negative!"</span>);
<a name="422" href="#422">422</a>         }
<a name="423" href="#423">423</a> 
<a name="424" href="#424">424</a>         <strong class="jxr_keyword">return</strong> skipCount;
<a name="425" href="#425">425</a>     }
<a name="426" href="#426">426</a> 
<a name="427" href="#427">427</a>     <em class="jxr_javadoccomment">/**</em>
<a name="428" href="#428">428</a> <em class="jxr_javadoccomment">     * Checks the depth parameter if it complies with CMIS specification and</em>
<a name="429" href="#429">429</a> <em class="jxr_javadoccomment">     * returns the default value if &lt;code&gt;depth&lt;/code&gt; is &lt;code&gt;null&lt;/code&gt;.</em>
<a name="430" href="#430">430</a> <em class="jxr_javadoccomment">     */</em>
<a name="431" href="#431">431</a>     <strong class="jxr_keyword">protected</strong> BigInteger getDepth(BigInteger depth) {
<a name="432" href="#432">432</a>         <strong class="jxr_keyword">if</strong> (depth == <strong class="jxr_keyword">null</strong>) {
<a name="433" href="#433">433</a>             <strong class="jxr_keyword">return</strong> defaultDepth;
<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">if</strong> (depth.compareTo(BigInteger.ZERO) == 0) {
<a name="437" href="#437">437</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"depth must not be 0!"</span>);
<a name="438" href="#438">438</a>         }
<a name="439" href="#439">439</a> 
<a name="440" href="#440">440</a>         <strong class="jxr_keyword">if</strong> (depth.compareTo(MINUS_ONE) == -1) {
<a name="441" href="#441">441</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"depth must not be &lt;-1!"</span>);
<a name="442" href="#442">442</a>         }
<a name="443" href="#443">443</a> 
<a name="444" href="#444">444</a>         <strong class="jxr_keyword">return</strong> depth;
<a name="445" href="#445">445</a>     }
<a name="446" href="#446">446</a> 
<a name="447" href="#447">447</a>     <em class="jxr_javadoccomment">/**</em>
<a name="448" href="#448">448</a> <em class="jxr_javadoccomment">     * Throws an exception if the given value is negative.</em>
<a name="449" href="#449">449</a> <em class="jxr_javadoccomment">     */</em>
<a name="450" href="#450">450</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> checkNullOrPositive(String name, BigInteger value) {
<a name="451" href="#451">451</a>         <strong class="jxr_keyword">if</strong> (value == <strong class="jxr_keyword">null</strong>) {
<a name="452" href="#452">452</a>             <strong class="jxr_keyword">return</strong>;
<a name="453" href="#453">453</a>         }
<a name="454" href="#454">454</a> 
<a name="455" href="#455">455</a>         <strong class="jxr_keyword">if</strong> (value.compareTo(BigInteger.ZERO) == -1) {
<a name="456" href="#456">456</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(name + <span class="jxr_string">" must not be negative!"</span>);
<a name="457" href="#457">457</a>         }
<a name="458" href="#458">458</a>     }
<a name="459" href="#459">459</a> 
<a name="460" href="#460">460</a>     <em class="jxr_comment">// --- service operations ---</em>
<a name="461" href="#461">461</a> 
<a name="462" href="#462">462</a>     <strong class="jxr_keyword">public</strong> T getWrappedService() {
<a name="463" href="#463">463</a>         <strong class="jxr_keyword">return</strong> service;
<a name="464" href="#464">464</a>     }
<a name="465" href="#465">465</a> 
<a name="466" href="#466">466</a>     <strong class="jxr_keyword">public</strong> ObjectInfo getObjectInfo(String repositoryId, String objectId) {
<a name="467" href="#467">467</a>         <strong class="jxr_keyword">return</strong> service.getObjectInfo(repositoryId, objectId);
<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">public</strong> <strong class="jxr_keyword">void</strong> close() {
<a name="471" href="#471">471</a>         service.close();
<a name="472" href="#472">472</a>     }
<a name="473" href="#473">473</a> 
<a name="474" href="#474">474</a>     <em class="jxr_comment">// --- repository service ---</em>
<a name="475" href="#475">475</a> 
<a name="476" href="#476">476</a>     <strong class="jxr_keyword">public</strong> RepositoryInfo getRepositoryInfo(String repositoryId, ExtensionsData extension) {
<a name="477" href="#477">477</a>         checkRepositoryId(repositoryId);
<a name="478" href="#478">478</a> 
<a name="479" href="#479">479</a>         <strong class="jxr_keyword">try</strong> {
<a name="480" href="#480">480</a>             <strong class="jxr_keyword">return</strong> service.getRepositoryInfo(repositoryId, extension);
<a name="481" href="#481">481</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="482" href="#482">482</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="483" href="#483">483</a>         }
<a name="484" href="#484">484</a>     }
<a name="485" href="#485">485</a> 
<a name="486" href="#486">486</a>     <strong class="jxr_keyword">public</strong> List&lt;RepositoryInfo&gt; getRepositoryInfos(ExtensionsData extension) {
<a name="487" href="#487">487</a>         <strong class="jxr_keyword">try</strong> {
<a name="488" href="#488">488</a>             <strong class="jxr_keyword">return</strong> service.getRepositoryInfos(extension);
<a name="489" href="#489">489</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="490" href="#490">490</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="491" href="#491">491</a>         }
<a name="492" href="#492">492</a>     }
<a name="493" href="#493">493</a> 
<a name="494" href="#494">494</a>     <strong class="jxr_keyword">public</strong> TypeDefinitionList getTypeChildren(String repositoryId, String typeId, Boolean includePropertyDefinitions,
<a name="495" href="#495">495</a>             BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
<a name="496" href="#496">496</a>         checkRepositoryId(repositoryId);
<a name="497" href="#497">497</a>         includePropertyDefinitions = getDefaultFalse(includePropertyDefinitions);
<a name="498" href="#498">498</a>         maxItems = getTypesMaxItems(maxItems);
<a name="499" href="#499">499</a>         skipCount = getSkipCount(skipCount);
<a name="500" href="#500">500</a> 
<a name="501" href="#501">501</a>         <strong class="jxr_keyword">try</strong> {
<a name="502" href="#502">502</a>             <strong class="jxr_keyword">return</strong> service.getTypeChildren(repositoryId, typeId, includePropertyDefinitions, maxItems, skipCount,
<a name="503" href="#503">503</a>                     extension);
<a name="504" href="#504">504</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="505" href="#505">505</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="506" href="#506">506</a>         }
<a name="507" href="#507">507</a>     }
<a name="508" href="#508">508</a> 
<a name="509" href="#509">509</a>     <strong class="jxr_keyword">public</strong> TypeDefinition getTypeDefinition(String repositoryId, String typeId, ExtensionsData extension) {
<a name="510" href="#510">510</a>         checkRepositoryId(repositoryId);
<a name="511" href="#511">511</a>         checkId(<span class="jxr_string">"Type Id"</span>, typeId);
<a name="512" href="#512">512</a> 
<a name="513" href="#513">513</a>         <strong class="jxr_keyword">try</strong> {
<a name="514" href="#514">514</a>             <strong class="jxr_keyword">return</strong> service.getTypeDefinition(repositoryId, typeId, extension);
<a name="515" href="#515">515</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="516" href="#516">516</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="517" href="#517">517</a>         }
<a name="518" href="#518">518</a>     }
<a name="519" href="#519">519</a> 
<a name="520" href="#520">520</a>     <strong class="jxr_keyword">public</strong> List&lt;TypeDefinitionContainer&gt; getTypeDescendants(String repositoryId, String typeId, BigInteger depth,
<a name="521" href="#521">521</a>             Boolean includePropertyDefinitions, ExtensionsData extension) {
<a name="522" href="#522">522</a>         checkRepositoryId(repositoryId);
<a name="523" href="#523">523</a>         includePropertyDefinitions = getDefaultFalse(includePropertyDefinitions);
<a name="524" href="#524">524</a>         depth = getTypesDepth(depth);
<a name="525" href="#525">525</a> 
<a name="526" href="#526">526</a>         <strong class="jxr_keyword">try</strong> {
<a name="527" href="#527">527</a>             <strong class="jxr_keyword">return</strong> service.getTypeDescendants(repositoryId, typeId, depth, includePropertyDefinitions, extension);
<a name="528" href="#528">528</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="529" href="#529">529</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<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">// --- navigation service ---</em>
<a name="534" href="#534">534</a> 
<a name="535" href="#535">535</a>     <strong class="jxr_keyword">public</strong> ObjectList getCheckedOutDocs(String repositoryId, String folderId, String filter, String orderBy,
<a name="536" href="#536">536</a>             Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
<a name="537" href="#537">537</a>             BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
<a name="538" href="#538">538</a>         checkRepositoryId(repositoryId);
<a name="539" href="#539">539</a>         includeAllowableActions = getDefaultFalse(includeAllowableActions);
<a name="540" href="#540">540</a>         includeRelationships = getDefault(includeRelationships);
<a name="541" href="#541">541</a>         renditionFilter = getDefaultRenditionFilter(renditionFilter);
<a name="542" href="#542">542</a>         maxItems = getMaxItems(maxItems);
<a name="543" href="#543">543</a>         skipCount = getSkipCount(skipCount);
<a name="544" href="#544">544</a> 
<a name="545" href="#545">545</a>         <strong class="jxr_keyword">try</strong> {
<a name="546" href="#546">546</a>             <strong class="jxr_keyword">return</strong> service.getCheckedOutDocs(repositoryId, folderId, filter, orderBy, includeAllowableActions,
<a name="547" href="#547">547</a>                     includeRelationships, renditionFilter, maxItems, skipCount, extension);
<a name="548" href="#548">548</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="549" href="#549">549</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="550" href="#550">550</a>         }
<a name="551" href="#551">551</a>     }
<a name="552" href="#552">552</a> 
<a name="553" href="#553">553</a>     <strong class="jxr_keyword">public</strong> ObjectInFolderList getChildren(String repositoryId, String folderId, String filter, String orderBy,
<a name="554" href="#554">554</a>             Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
<a name="555" href="#555">555</a>             Boolean includePathSegment, BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
<a name="556" href="#556">556</a>         checkRepositoryId(repositoryId);
<a name="557" href="#557">557</a>         checkId(<span class="jxr_string">"Folder Id"</span>, folderId);
<a name="558" href="#558">558</a>         includeAllowableActions = getDefaultFalse(includeAllowableActions);
<a name="559" href="#559">559</a>         includeRelationships = getDefault(includeRelationships);
<a name="560" href="#560">560</a>         renditionFilter = getDefaultRenditionFilter(renditionFilter);
<a name="561" href="#561">561</a>         includePathSegment = getDefaultFalse(includePathSegment);
<a name="562" href="#562">562</a>         maxItems = getMaxItems(maxItems);
<a name="563" href="#563">563</a>         skipCount = getSkipCount(skipCount);
<a name="564" href="#564">564</a> 
<a name="565" href="#565">565</a>         <strong class="jxr_keyword">try</strong> {
<a name="566" href="#566">566</a>             <strong class="jxr_keyword">return</strong> service.getChildren(repositoryId, folderId, filter, orderBy, includeAllowableActions,
<a name="567" href="#567">567</a>                     includeRelationships, renditionFilter, includePathSegment, maxItems, skipCount, extension);
<a name="568" href="#568">568</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="569" href="#569">569</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="570" href="#570">570</a>         }
<a name="571" href="#571">571</a>     }
<a name="572" href="#572">572</a> 
<a name="573" href="#573">573</a>     <strong class="jxr_keyword">public</strong> List&lt;ObjectInFolderContainer&gt; getDescendants(String repositoryId, String folderId, BigInteger depth,
<a name="574" href="#574">574</a>             String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
<a name="575" href="#575">575</a>             String renditionFilter, Boolean includePathSegment, ExtensionsData extension) {
<a name="576" href="#576">576</a>         checkRepositoryId(repositoryId);
<a name="577" href="#577">577</a>         checkId(<span class="jxr_string">"Folder Id"</span>, folderId);
<a name="578" href="#578">578</a>         depth = getDepth(depth);
<a name="579" href="#579">579</a>         includeAllowableActions = getDefaultFalse(includeAllowableActions);
<a name="580" href="#580">580</a>         includeRelationships = getDefault(includeRelationships);
<a name="581" href="#581">581</a>         renditionFilter = getDefaultRenditionFilter(renditionFilter);
<a name="582" href="#582">582</a>         includePathSegment = getDefaultFalse(includePathSegment);
<a name="583" href="#583">583</a> 
<a name="584" href="#584">584</a>         <strong class="jxr_keyword">try</strong> {
<a name="585" href="#585">585</a>             <strong class="jxr_keyword">return</strong> service.getDescendants(repositoryId, folderId, depth, filter, includeAllowableActions,
<a name="586" href="#586">586</a>                     includeRelationships, renditionFilter, includePathSegment, extension);
<a name="587" href="#587">587</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="588" href="#588">588</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="589" href="#589">589</a>         }
<a name="590" href="#590">590</a>     }
<a name="591" href="#591">591</a> 
<a name="592" href="#592">592</a>     <strong class="jxr_keyword">public</strong> ObjectData getFolderParent(String repositoryId, String folderId, String filter, ExtensionsData extension) {
<a name="593" href="#593">593</a>         checkRepositoryId(repositoryId);
<a name="594" href="#594">594</a>         checkId(<span class="jxr_string">"Folder Id"</span>, folderId);
<a name="595" href="#595">595</a> 
<a name="596" href="#596">596</a>         <strong class="jxr_keyword">try</strong> {
<a name="597" href="#597">597</a>             <strong class="jxr_keyword">return</strong> service.getFolderParent(repositoryId, folderId, filter, extension);
<a name="598" href="#598">598</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="599" href="#599">599</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="600" href="#600">600</a>         }
<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">public</strong> List&lt;ObjectInFolderContainer&gt; getFolderTree(String repositoryId, String folderId, BigInteger depth,
<a name="604" href="#604">604</a>             String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
<a name="605" href="#605">605</a>             String renditionFilter, Boolean includePathSegment, ExtensionsData extension) {
<a name="606" href="#606">606</a>         checkRepositoryId(repositoryId);
<a name="607" href="#607">607</a>         checkId(<span class="jxr_string">"Folder Id"</span>, folderId);
<a name="608" href="#608">608</a>         depth = getDepth(depth);
<a name="609" href="#609">609</a>         includeAllowableActions = getDefaultFalse(includeAllowableActions);
<a name="610" href="#610">610</a>         includeRelationships = getDefault(includeRelationships);
<a name="611" href="#611">611</a>         renditionFilter = getDefaultRenditionFilter(renditionFilter);
<a name="612" href="#612">612</a>         includePathSegment = getDefaultFalse(includePathSegment);
<a name="613" href="#613">613</a> 
<a name="614" href="#614">614</a>         <strong class="jxr_keyword">try</strong> {
<a name="615" href="#615">615</a>             <strong class="jxr_keyword">return</strong> service.getFolderTree(repositoryId, folderId, depth, filter, includeAllowableActions,
<a name="616" href="#616">616</a>                     includeRelationships, renditionFilter, includePathSegment, extension);
<a name="617" href="#617">617</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="618" href="#618">618</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="619" href="#619">619</a>         }
<a name="620" href="#620">620</a>     }
<a name="621" href="#621">621</a> 
<a name="622" href="#622">622</a>     <strong class="jxr_keyword">public</strong> List&lt;ObjectParentData&gt; getObjectParents(String repositoryId, String objectId, String filter,
<a name="623" href="#623">623</a>             Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
<a name="624" href="#624">624</a>             Boolean includeRelativePathSegment, ExtensionsData extension) {
<a name="625" href="#625">625</a>         checkRepositoryId(repositoryId);
<a name="626" href="#626">626</a>         checkId(<span class="jxr_string">"Object Id"</span>, objectId);
<a name="627" href="#627">627</a>         includeAllowableActions = getDefaultFalse(includeAllowableActions);
<a name="628" href="#628">628</a>         includeRelationships = getDefault(includeRelationships);
<a name="629" href="#629">629</a>         renditionFilter = getDefaultRenditionFilter(renditionFilter);
<a name="630" href="#630">630</a>         includeRelativePathSegment = getDefaultFalse(includeRelativePathSegment);
<a name="631" href="#631">631</a> 
<a name="632" href="#632">632</a>         <strong class="jxr_keyword">try</strong> {
<a name="633" href="#633">633</a>             <strong class="jxr_keyword">return</strong> service.getObjectParents(repositoryId, objectId, filter, includeAllowableActions,
<a name="634" href="#634">634</a>                     includeRelationships, renditionFilter, includeRelativePathSegment, extension);
<a name="635" href="#635">635</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="636" href="#636">636</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="637" href="#637">637</a>         }
<a name="638" href="#638">638</a>     }
<a name="639" href="#639">639</a> 
<a name="640" href="#640">640</a>     <em class="jxr_comment">// --- object service ---</em>
<a name="641" href="#641">641</a> 
<a name="642" href="#642">642</a>     <strong class="jxr_keyword">public</strong> String create(String repositoryId, Properties properties, String folderId, ContentStream contentStream,
<a name="643" href="#643">643</a>             VersioningState versioningState, List&lt;String&gt; policies, ExtensionsData extension) {
<a name="644" href="#644">644</a>         checkRepositoryId(repositoryId);
<a name="645" href="#645">645</a>         checkProperties(properties);
<a name="646" href="#646">646</a>         checkProperty(properties, PropertyIds.OBJECT_TYPE_ID, String.<strong class="jxr_keyword">class</strong>);
<a name="647" href="#647">647</a>         versioningState = getDefault(versioningState);
<a name="648" href="#648">648</a> 
<a name="649" href="#649">649</a>         <strong class="jxr_keyword">try</strong> {
<a name="650" href="#650">650</a>             <strong class="jxr_keyword">return</strong> service.create(repositoryId, properties, folderId, contentStream, versioningState, policies,
<a name="651" href="#651">651</a>                     extension);
<a name="652" href="#652">652</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="653" href="#653">653</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="654" href="#654">654</a>         }
<a name="655" href="#655">655</a>     }
<a name="656" href="#656">656</a> 
<a name="657" href="#657">657</a>     <strong class="jxr_keyword">public</strong> String createDocument(String repositoryId, Properties properties, String folderId,
<a name="658" href="#658">658</a>             ContentStream contentStream, VersioningState versioningState, List&lt;String&gt; policies, Acl addAces,
<a name="659" href="#659">659</a>             Acl removeAces, ExtensionsData extension) {
<a name="660" href="#660">660</a>         checkRepositoryId(repositoryId);
<a name="661" href="#661">661</a>         checkProperties(properties);
<a name="662" href="#662">662</a>         checkProperty(properties, PropertyIds.OBJECT_TYPE_ID, String.<strong class="jxr_keyword">class</strong>);
<a name="663" href="#663">663</a>         versioningState = getDefault(versioningState);
<a name="664" href="#664">664</a> 
<a name="665" href="#665">665</a>         <strong class="jxr_keyword">try</strong> {
<a name="666" href="#666">666</a>             <strong class="jxr_keyword">return</strong> service.createDocument(repositoryId, properties, folderId, contentStream, versioningState, policies,
<a name="667" href="#667">667</a>                     addAces, removeAces, extension);
<a name="668" href="#668">668</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="669" href="#669">669</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="670" href="#670">670</a>         }
<a name="671" href="#671">671</a>     }
<a name="672" href="#672">672</a> 
<a name="673" href="#673">673</a>     <strong class="jxr_keyword">public</strong> String createDocumentFromSource(String repositoryId, String sourceId, Properties properties,
<a name="674" href="#674">674</a>             String folderId, VersioningState versioningState, List&lt;String&gt; policies, Acl addAces, Acl removeAces,
<a name="675" href="#675">675</a>             ExtensionsData extension) {
<a name="676" href="#676">676</a>         checkRepositoryId(repositoryId);
<a name="677" href="#677">677</a>         checkId(<span class="jxr_string">"Source Id"</span>, sourceId);
<a name="678" href="#678">678</a>         versioningState = getDefault(versioningState);
<a name="679" href="#679">679</a> 
<a name="680" href="#680">680</a>         <strong class="jxr_keyword">try</strong> {
<a name="681" href="#681">681</a>             <strong class="jxr_keyword">return</strong> service.createDocumentFromSource(repositoryId, sourceId, properties, folderId, versioningState,
<a name="682" href="#682">682</a>                     policies, addAces, removeAces, extension);
<a name="683" href="#683">683</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="684" href="#684">684</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="685" href="#685">685</a>         }
<a name="686" href="#686">686</a>     }
<a name="687" href="#687">687</a> 
<a name="688" href="#688">688</a>     <strong class="jxr_keyword">public</strong> String createFolder(String repositoryId, Properties properties, String folderId, List&lt;String&gt; policies,
<a name="689" href="#689">689</a>             Acl addAces, Acl removeAces, ExtensionsData extension) {
<a name="690" href="#690">690</a>         checkRepositoryId(repositoryId);
<a name="691" href="#691">691</a>         checkProperties(properties);
<a name="692" href="#692">692</a>         checkProperty(properties, PropertyIds.OBJECT_TYPE_ID, String.<strong class="jxr_keyword">class</strong>);
<a name="693" href="#693">693</a>         checkId(<span class="jxr_string">"Folder Id"</span>, folderId);
<a name="694" href="#694">694</a> 
<a name="695" href="#695">695</a>         <strong class="jxr_keyword">try</strong> {
<a name="696" href="#696">696</a>             <strong class="jxr_keyword">return</strong> service.createFolder(repositoryId, properties, folderId, policies, addAces, removeAces, extension);
<a name="697" href="#697">697</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="698" href="#698">698</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="699" href="#699">699</a>         }
<a name="700" href="#700">700</a>     }
<a name="701" href="#701">701</a> 
<a name="702" href="#702">702</a>     <strong class="jxr_keyword">public</strong> String createPolicy(String repositoryId, Properties properties, String folderId, List&lt;String&gt; policies,
<a name="703" href="#703">703</a>             Acl addAces, Acl removeAces, ExtensionsData extension) {
<a name="704" href="#704">704</a>         checkRepositoryId(repositoryId);
<a name="705" href="#705">705</a>         checkProperties(properties);
<a name="706" href="#706">706</a>         checkProperty(properties, PropertyIds.OBJECT_TYPE_ID, String.<strong class="jxr_keyword">class</strong>);
<a name="707" href="#707">707</a> 
<a name="708" href="#708">708</a>         <strong class="jxr_keyword">try</strong> {
<a name="709" href="#709">709</a>             <strong class="jxr_keyword">return</strong> service.createPolicy(repositoryId, properties, folderId, policies, addAces, removeAces, extension);
<a name="710" href="#710">710</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="711" href="#711">711</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="712" href="#712">712</a>         }
<a name="713" href="#713">713</a>     }
<a name="714" href="#714">714</a> 
<a name="715" href="#715">715</a>     <strong class="jxr_keyword">public</strong> String createRelationship(String repositoryId, Properties properties, List&lt;String&gt; policies, Acl addAces,
<a name="716" href="#716">716</a>             Acl removeAces, ExtensionsData extension) {
<a name="717" href="#717">717</a>         checkRepositoryId(repositoryId);
<a name="718" href="#718">718</a>         checkProperties(properties);
<a name="719" href="#719">719</a>         checkProperty(properties, PropertyIds.OBJECT_TYPE_ID, String.<strong class="jxr_keyword">class</strong>);
<a name="720" href="#720">720</a>         <em class="jxr_comment">// checkProperty(properties, PropertyIds.SOURCE_ID, String.class);</em>
<a name="721" href="#721">721</a>         <em class="jxr_comment">// checkProperty(properties, PropertyIds.TARGET_ID, String.class);</em>
<a name="722" href="#722">722</a> 
<a name="723" href="#723">723</a>         <strong class="jxr_keyword">try</strong> {
<a name="724" href="#724">724</a>             <strong class="jxr_keyword">return</strong> service.createRelationship(repositoryId, properties, policies, addAces, removeAces, extension);
<a name="725" href="#725">725</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="726" href="#726">726</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="727" href="#727">727</a>         }
<a name="728" href="#728">728</a>     }
<a name="729" href="#729">729</a> 
<a name="730" href="#730">730</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> deleteContentStream(String repositoryId, Holder&lt;String&gt; objectId, Holder&lt;String&gt; changeToken,
<a name="731" href="#731">731</a>             ExtensionsData extension) {
<a name="732" href="#732">732</a>         checkRepositoryId(repositoryId);
<a name="733" href="#733">733</a>         checkHolderId(<span class="jxr_string">"Object Id"</span>, objectId);
<a name="734" href="#734">734</a> 
<a name="735" href="#735">735</a>         <strong class="jxr_keyword">try</strong> {
<a name="736" href="#736">736</a>             service.deleteContentStream(repositoryId, objectId, changeToken, extension);
<a name="737" href="#737">737</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="738" href="#738">738</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="739" href="#739">739</a>         }
<a name="740" href="#740">740</a>     }
<a name="741" href="#741">741</a> 
<a name="742" href="#742">742</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> deleteObject(String repositoryId, String objectId, Boolean allVersions, ExtensionsData extension) {
<a name="743" href="#743">743</a>         checkRepositoryId(repositoryId);
<a name="744" href="#744">744</a>         checkId(<span class="jxr_string">"Object Id"</span>, objectId);
<a name="745" href="#745">745</a>         allVersions = getDefaultTrue(allVersions);
<a name="746" href="#746">746</a> 
<a name="747" href="#747">747</a>         <strong class="jxr_keyword">try</strong> {
<a name="748" href="#748">748</a>             service.deleteObjectOrCancelCheckOut(repositoryId, objectId, allVersions, extension);
<a name="749" href="#749">749</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="750" href="#750">750</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="751" href="#751">751</a>         }
<a name="752" href="#752">752</a>     }
<a name="753" href="#753">753</a> 
<a name="754" href="#754">754</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> deleteObjectOrCancelCheckOut(String repositoryId, String objectId, Boolean allVersions,
<a name="755" href="#755">755</a>             ExtensionsData extension) {
<a name="756" href="#756">756</a>         checkRepositoryId(repositoryId);
<a name="757" href="#757">757</a>         checkId(<span class="jxr_string">"Object Id"</span>, objectId);
<a name="758" href="#758">758</a>         allVersions = getDefaultTrue(allVersions);
<a name="759" href="#759">759</a> 
<a name="760" href="#760">760</a>         <strong class="jxr_keyword">try</strong> {
<a name="761" href="#761">761</a>             service.deleteObjectOrCancelCheckOut(repositoryId, objectId, allVersions, extension);
<a name="762" href="#762">762</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="763" href="#763">763</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="764" href="#764">764</a>         }
<a name="765" href="#765">765</a>     }
<a name="766" href="#766">766</a> 
<a name="767" href="#767">767</a>     <strong class="jxr_keyword">public</strong> FailedToDeleteData deleteTree(String repositoryId, String folderId, Boolean allVersions,
<a name="768" href="#768">768</a>             UnfileObject unfileObjects, Boolean continueOnFailure, ExtensionsData extension) {
<a name="769" href="#769">769</a>         checkRepositoryId(repositoryId);
<a name="770" href="#770">770</a>         checkId(<span class="jxr_string">"Folder Id"</span>, folderId);
<a name="771" href="#771">771</a>         allVersions = getDefaultTrue(allVersions);
<a name="772" href="#772">772</a>         unfileObjects = getDefault(unfileObjects);
<a name="773" href="#773">773</a>         continueOnFailure = getDefaultFalse(continueOnFailure);
<a name="774" href="#774">774</a> 
<a name="775" href="#775">775</a>         <strong class="jxr_keyword">try</strong> {
<a name="776" href="#776">776</a>             <strong class="jxr_keyword">return</strong> service.deleteTree(repositoryId, folderId, allVersions, unfileObjects, continueOnFailure, extension);
<a name="777" href="#777">777</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="778" href="#778">778</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="779" href="#779">779</a>         }
<a name="780" href="#780">780</a>     }
<a name="781" href="#781">781</a> 
<a name="782" href="#782">782</a>     <strong class="jxr_keyword">public</strong> AllowableActions getAllowableActions(String repositoryId, String objectId, ExtensionsData extension) {
<a name="783" href="#783">783</a>         checkRepositoryId(repositoryId);
<a name="784" href="#784">784</a>         checkId(<span class="jxr_string">"Object Id"</span>, objectId);
<a name="785" href="#785">785</a> 
<a name="786" href="#786">786</a>         <strong class="jxr_keyword">try</strong> {
<a name="787" href="#787">787</a>             <strong class="jxr_keyword">return</strong> service.getAllowableActions(repositoryId, objectId, extension);
<a name="788" href="#788">788</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="789" href="#789">789</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="790" href="#790">790</a>         }
<a name="791" href="#791">791</a>     }
<a name="792" href="#792">792</a> 
<a name="793" href="#793">793</a>     <strong class="jxr_keyword">public</strong> ContentStream getContentStream(String repositoryId, String objectId, String streamId, BigInteger offset,
<a name="794" href="#794">794</a>             BigInteger length, ExtensionsData extension) {
<a name="795" href="#795">795</a>         checkRepositoryId(repositoryId);
<a name="796" href="#796">796</a>         checkId(<span class="jxr_string">"Object Id"</span>, objectId);
<a name="797" href="#797">797</a>         checkNullOrPositive(<span class="jxr_string">"Offset"</span>, offset);
<a name="798" href="#798">798</a>         checkNullOrPositive(<span class="jxr_string">"Length"</span>, length);
<a name="799" href="#799">799</a> 
<a name="800" href="#800">800</a>         <strong class="jxr_keyword">try</strong> {
<a name="801" href="#801">801</a>             <strong class="jxr_keyword">return</strong> service.getContentStream(repositoryId, objectId, streamId, offset, length, extension);
<a name="802" href="#802">802</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="803" href="#803">803</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="804" href="#804">804</a>         }
<a name="805" href="#805">805</a>     }
<a name="806" href="#806">806</a> 
<a name="807" href="#807">807</a>     <strong class="jxr_keyword">public</strong> ObjectData getObject(String repositoryId, String objectId, String filter, Boolean includeAllowableActions,
<a name="808" href="#808">808</a>             IncludeRelationships includeRelationships, String renditionFilter, Boolean includePolicyIds,
<a name="809" href="#809">809</a>             Boolean includeAcl, ExtensionsData extension) {
<a name="810" href="#810">810</a>         checkRepositoryId(repositoryId);
<a name="811" href="#811">811</a>         checkId(<span class="jxr_string">"Object Id"</span>, objectId);
<a name="812" href="#812">812</a>         includeAllowableActions = getDefaultFalse(includeAllowableActions);
<a name="813" href="#813">813</a>         includeRelationships = getDefault(includeRelationships);
<a name="814" href="#814">814</a>         renditionFilter = getDefaultRenditionFilter(renditionFilter);
<a name="815" href="#815">815</a>         includePolicyIds = getDefaultFalse(includePolicyIds);
<a name="816" href="#816">816</a>         includeAcl = getDefaultFalse(includeAcl);
<a name="817" href="#817">817</a> 
<a name="818" href="#818">818</a>         <strong class="jxr_keyword">try</strong> {
<a name="819" href="#819">819</a>             <strong class="jxr_keyword">return</strong> service.getObject(repositoryId, objectId, filter, includeAllowableActions, includeRelationships,
<a name="820" href="#820">820</a>                     renditionFilter, includePolicyIds, includeAcl, extension);
<a name="821" href="#821">821</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="822" href="#822">822</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="823" href="#823">823</a>         }
<a name="824" href="#824">824</a>     }
<a name="825" href="#825">825</a> 
<a name="826" href="#826">826</a>     <strong class="jxr_keyword">public</strong> ObjectData getObjectByPath(String repositoryId, String path, String filter, Boolean includeAllowableActions,
<a name="827" href="#827">827</a>             IncludeRelationships includeRelationships, String renditionFilter, Boolean includePolicyIds,
<a name="828" href="#828">828</a>             Boolean includeAcl, ExtensionsData extension) {
<a name="829" href="#829">829</a>         checkRepositoryId(repositoryId);
<a name="830" href="#830">830</a>         checkPath(<span class="jxr_string">"Path"</span>, path);
<a name="831" href="#831">831</a>         includeAllowableActions = getDefaultFalse(includeAllowableActions);
<a name="832" href="#832">832</a>         includeRelationships = getDefault(includeRelationships);
<a name="833" href="#833">833</a>         renditionFilter = getDefaultRenditionFilter(renditionFilter);
<a name="834" href="#834">834</a>         includePolicyIds = getDefaultFalse(includePolicyIds);
<a name="835" href="#835">835</a>         includeAcl = getDefaultFalse(includeAcl);
<a name="836" href="#836">836</a> 
<a name="837" href="#837">837</a>         <strong class="jxr_keyword">try</strong> {
<a name="838" href="#838">838</a>             <strong class="jxr_keyword">return</strong> service.getObjectByPath(repositoryId, path, filter, includeAllowableActions, includeRelationships,
<a name="839" href="#839">839</a>                     renditionFilter, includePolicyIds, includeAcl, extension);
<a name="840" href="#840">840</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="841" href="#841">841</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="842" href="#842">842</a>         }
<a name="843" href="#843">843</a>     }
<a name="844" href="#844">844</a> 
<a name="845" href="#845">845</a>     <strong class="jxr_keyword">public</strong> Properties getProperties(String repositoryId, String objectId, String filter, ExtensionsData extension) {
<a name="846" href="#846">846</a>         checkRepositoryId(repositoryId);
<a name="847" href="#847">847</a>         checkId(<span class="jxr_string">"Object Id"</span>, objectId);
<a name="848" href="#848">848</a> 
<a name="849" href="#849">849</a>         <strong class="jxr_keyword">try</strong> {
<a name="850" href="#850">850</a>             <strong class="jxr_keyword">return</strong> service.getProperties(repositoryId, objectId, filter, extension);
<a name="851" href="#851">851</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="852" href="#852">852</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="853" href="#853">853</a>         }
<a name="854" href="#854">854</a>     }
<a name="855" href="#855">855</a> 
<a name="856" href="#856">856</a>     <strong class="jxr_keyword">public</strong> List&lt;RenditionData&gt; getRenditions(String repositoryId, String objectId, String renditionFilter,
<a name="857" href="#857">857</a>             BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
<a name="858" href="#858">858</a>         checkRepositoryId(repositoryId);
<a name="859" href="#859">859</a>         checkId(<span class="jxr_string">"Object Id"</span>, objectId);
<a name="860" href="#860">860</a>         renditionFilter = getDefaultRenditionFilter(renditionFilter);
<a name="861" href="#861">861</a>         maxItems = getMaxItems(maxItems);
<a name="862" href="#862">862</a>         skipCount = getSkipCount(skipCount);
<a name="863" href="#863">863</a> 
<a name="864" href="#864">864</a>         <strong class="jxr_keyword">try</strong> {
<a name="865" href="#865">865</a>             <strong class="jxr_keyword">return</strong> service.getRenditions(repositoryId, objectId, renditionFilter, maxItems, skipCount, extension);
<a name="866" href="#866">866</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="867" href="#867">867</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="868" href="#868">868</a>         }
<a name="869" href="#869">869</a>     }
<a name="870" href="#870">870</a> 
<a name="871" href="#871">871</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> moveObject(String repositoryId, Holder&lt;String&gt; objectId, String targetFolderId, String sourceFolderId,
<a name="872" href="#872">872</a>             ExtensionsData extension) {
<a name="873" href="#873">873</a>         checkRepositoryId(repositoryId);
<a name="874" href="#874">874</a>         checkHolderId(<span class="jxr_string">"Object Id"</span>, objectId);
<a name="875" href="#875">875</a>         checkId(<span class="jxr_string">"Target Folder Id"</span>, targetFolderId);
<a name="876" href="#876">876</a> 
<a name="877" href="#877">877</a>         <strong class="jxr_keyword">try</strong> {
<a name="878" href="#878">878</a>             service.moveObject(repositoryId, objectId, targetFolderId, sourceFolderId, extension);
<a name="879" href="#879">879</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="880" href="#880">880</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="881" href="#881">881</a>         }
<a name="882" href="#882">882</a>     }
<a name="883" href="#883">883</a> 
<a name="884" href="#884">884</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setContentStream(String repositoryId, Holder&lt;String&gt; objectId, Boolean overwriteFlag,
<a name="885" href="#885">885</a>             Holder&lt;String&gt; changeToken, ContentStream contentStream, ExtensionsData extension) {
<a name="886" href="#886">886</a>         checkRepositoryId(repositoryId);
<a name="887" href="#887">887</a>         checkHolderId(<span class="jxr_string">"Object Id"</span>, objectId);
<a name="888" href="#888">888</a>         overwriteFlag = getDefaultTrue(overwriteFlag);
<a name="889" href="#889">889</a>         checkContentStream(contentStream);
<a name="890" href="#890">890</a> 
<a name="891" href="#891">891</a>         <strong class="jxr_keyword">try</strong> {
<a name="892" href="#892">892</a>             service.setContentStream(repositoryId, objectId, overwriteFlag, changeToken, contentStream, extension);
<a name="893" href="#893">893</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="894" href="#894">894</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="895" href="#895">895</a>         }
<a name="896" href="#896">896</a>     }
<a name="897" href="#897">897</a> 
<a name="898" href="#898">898</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateProperties(String repositoryId, Holder&lt;String&gt; objectId, Holder&lt;String&gt; changeToken,
<a name="899" href="#899">899</a>             Properties properties, ExtensionsData extension) {
<a name="900" href="#900">900</a>         checkRepositoryId(repositoryId);
<a name="901" href="#901">901</a>         checkHolderId(<span class="jxr_string">"Object Id"</span>, objectId);
<a name="902" href="#902">902</a>         checkProperties(properties);
<a name="903" href="#903">903</a> 
<a name="904" href="#904">904</a>         <strong class="jxr_keyword">try</strong> {
<a name="905" href="#905">905</a>             service.updateProperties(repositoryId, objectId, changeToken, properties, extension);
<a name="906" href="#906">906</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="907" href="#907">907</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="908" href="#908">908</a>         }
<a name="909" href="#909">909</a>     }
<a name="910" href="#910">910</a> 
<a name="911" href="#911">911</a>     <em class="jxr_comment">// --- versioning service ---</em>
<a name="912" href="#912">912</a> 
<a name="913" href="#913">913</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> cancelCheckOut(String repositoryId, String objectId, ExtensionsData extension) {
<a name="914" href="#914">914</a>         checkRepositoryId(repositoryId);
<a name="915" href="#915">915</a>         checkId(<span class="jxr_string">"Object Id"</span>, objectId);
<a name="916" href="#916">916</a> 
<a name="917" href="#917">917</a>         <strong class="jxr_keyword">try</strong> {
<a name="918" href="#918">918</a>             service.cancelCheckOut(repositoryId, objectId, extension);
<a name="919" href="#919">919</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="920" href="#920">920</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="921" href="#921">921</a>         }
<a name="922" href="#922">922</a>     }
<a name="923" href="#923">923</a> 
<a name="924" href="#924">924</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> checkIn(String repositoryId, Holder&lt;String&gt; objectId, Boolean major, Properties properties,
<a name="925" href="#925">925</a>             ContentStream contentStream, String checkinComment, List&lt;String&gt; policies, Acl addAces, Acl removeAces,
<a name="926" href="#926">926</a>             ExtensionsData extension) {
<a name="927" href="#927">927</a>         checkRepositoryId(repositoryId);
<a name="928" href="#928">928</a>         checkHolderId(<span class="jxr_string">"Object Id"</span>, objectId);
<a name="929" href="#929">929</a>         major = getDefaultTrue(major);
<a name="930" href="#930">930</a> 
<a name="931" href="#931">931</a>         <strong class="jxr_keyword">try</strong> {
<a name="932" href="#932">932</a>             service.checkIn(repositoryId, objectId, major, properties, contentStream, checkinComment, policies,
<a name="933" href="#933">933</a>                     addAces, removeAces, extension);
<a name="934" href="#934">934</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="935" href="#935">935</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="936" href="#936">936</a>         }
<a name="937" href="#937">937</a>     }
<a name="938" href="#938">938</a> 
<a name="939" href="#939">939</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> checkOut(String repositoryId, Holder&lt;String&gt; objectId, ExtensionsData extension,
<a name="940" href="#940">940</a>             Holder&lt;Boolean&gt; contentCopied) {
<a name="941" href="#941">941</a>         checkRepositoryId(repositoryId);
<a name="942" href="#942">942</a>         checkHolderId(<span class="jxr_string">"Object Id"</span>, objectId);
<a name="943" href="#943">943</a> 
<a name="944" href="#944">944</a>         <strong class="jxr_keyword">try</strong> {
<a name="945" href="#945">945</a>             service.checkOut(repositoryId, objectId, extension, contentCopied);
<a name="946" href="#946">946</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="947" href="#947">947</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="948" href="#948">948</a>         }
<a name="949" href="#949">949</a>     }
<a name="950" href="#950">950</a> 
<a name="951" href="#951">951</a>     <strong class="jxr_keyword">public</strong> ObjectData getObjectOfLatestVersion(String repositoryId, String objectId, String versionSeriesId,
<a name="952" href="#952">952</a>             Boolean major, String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
<a name="953" href="#953">953</a>             String renditionFilter, Boolean includePolicyIds, Boolean includeAcl, ExtensionsData extension) {
<a name="954" href="#954">954</a>         checkRepositoryId(repositoryId);
<a name="955" href="#955">955</a>         checkIds(<span class="jxr_string">"Version Series Id"</span>, objectId, versionSeriesId);
<a name="956" href="#956">956</a>         major = getDefaultFalse(major);
<a name="957" href="#957">957</a>         includeAllowableActions = getDefaultFalse(includeAllowableActions);
<a name="958" href="#958">958</a>         includeRelationships = getDefault(includeRelationships);
<a name="959" href="#959">959</a>         renditionFilter = getDefaultRenditionFilter(renditionFilter);
<a name="960" href="#960">960</a>         includePolicyIds = getDefaultFalse(includePolicyIds);
<a name="961" href="#961">961</a>         includeAcl = getDefaultFalse(includeAcl);
<a name="962" href="#962">962</a> 
<a name="963" href="#963">963</a>         <strong class="jxr_keyword">try</strong> {
<a name="964" href="#964">964</a>             <strong class="jxr_keyword">return</strong> service.getObjectOfLatestVersion(repositoryId, objectId, versionSeriesId, major, filter,
<a name="965" href="#965">965</a>                     includeAllowableActions, includeRelationships, renditionFilter, includePolicyIds, includeAcl,
<a name="966" href="#966">966</a>                     extension);
<a name="967" href="#967">967</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="968" href="#968">968</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="969" href="#969">969</a>         }
<a name="970" href="#970">970</a>     }
<a name="971" href="#971">971</a> 
<a name="972" href="#972">972</a>     <strong class="jxr_keyword">public</strong> Properties getPropertiesOfLatestVersion(String repositoryId, String objectId, String versionSeriesId,
<a name="973" href="#973">973</a>             Boolean major, String filter, ExtensionsData extension) {
<a name="974" href="#974">974</a>         checkRepositoryId(repositoryId);
<a name="975" href="#975">975</a>         checkIds(<span class="jxr_string">"Version Series Id"</span>, objectId, versionSeriesId);
<a name="976" href="#976">976</a>         major = getDefaultFalse(major);
<a name="977" href="#977">977</a> 
<a name="978" href="#978">978</a>         <strong class="jxr_keyword">try</strong> {
<a name="979" href="#979">979</a>             <strong class="jxr_keyword">return</strong> service.getPropertiesOfLatestVersion(repositoryId, objectId, versionSeriesId, major, filter,
<a name="980" href="#980">980</a>                     extension);
<a name="981" href="#981">981</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="982" href="#982">982</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="983" href="#983">983</a>         }
<a name="984" href="#984">984</a>     }
<a name="985" href="#985">985</a> 
<a name="986" href="#986">986</a>     <strong class="jxr_keyword">public</strong> List&lt;ObjectData&gt; getAllVersions(String repositoryId, String objectId, String versionSeriesId, String filter,
<a name="987" href="#987">987</a>             Boolean includeAllowableActions, ExtensionsData extension) {
<a name="988" href="#988">988</a>         checkRepositoryId(repositoryId);
<a name="989" href="#989">989</a>         checkIds(<span class="jxr_string">"Version Series Id"</span>, objectId, versionSeriesId);
<a name="990" href="#990">990</a>         includeAllowableActions = getDefaultFalse(includeAllowableActions);
<a name="991" href="#991">991</a> 
<a name="992" href="#992">992</a>         <strong class="jxr_keyword">try</strong> {
<a name="993" href="#993">993</a>             <strong class="jxr_keyword">return</strong> service.getAllVersions(repositoryId, objectId, versionSeriesId, filter, includeAllowableActions,
<a name="994" href="#994">994</a>                     extension);
<a name="995" href="#995">995</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="996" href="#996">996</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="997" href="#997">997</a>         }
<a name="998" href="#998">998</a>     }
<a name="999" href="#999">999</a> 
<a name="1000" href="#1000">1000</a>     <em class="jxr_comment">// --- discovery service ---</em>
<a name="1001" href="#1001">1001</a> 
<a name="1002" href="#1002">1002</a>     <strong class="jxr_keyword">public</strong> ObjectList getContentChanges(String repositoryId, Holder&lt;String&gt; changeLogToken, Boolean includeProperties,
<a name="1003" href="#1003">1003</a>             String filter, Boolean includePolicyIds, Boolean includeAcl, BigInteger maxItems, ExtensionsData extension) {
<a name="1004" href="#1004">1004</a>         checkRepositoryId(repositoryId);
<a name="1005" href="#1005">1005</a>         includeProperties = getDefaultFalse(includeProperties);
<a name="1006" href="#1006">1006</a>         includePolicyIds = getDefaultFalse(includePolicyIds);
<a name="1007" href="#1007">1007</a>         includeAcl = getDefaultFalse(includeAcl);
<a name="1008" href="#1008">1008</a>         maxItems = getMaxItems(maxItems);
<a name="1009" href="#1009">1009</a> 
<a name="1010" href="#1010">1010</a>         <strong class="jxr_keyword">try</strong> {
<a name="1011" href="#1011">1011</a>             <strong class="jxr_keyword">return</strong> service.getContentChanges(repositoryId, changeLogToken, includeProperties, filter, includePolicyIds,
<a name="1012" href="#1012">1012</a>                     includeAcl, maxItems, extension);
<a name="1013" href="#1013">1013</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="1014" href="#1014">1014</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="1015" href="#1015">1015</a>         }
<a name="1016" href="#1016">1016</a>     }
<a name="1017" href="#1017">1017</a> 
<a name="1018" href="#1018">1018</a>     <strong class="jxr_keyword">public</strong> ObjectList query(String repositoryId, String statement, Boolean searchAllVersions,
<a name="1019" href="#1019">1019</a>             Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
<a name="1020" href="#1020">1020</a>             BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
<a name="1021" href="#1021">1021</a>         checkRepositoryId(repositoryId);
<a name="1022" href="#1022">1022</a>         checkQueryStatement(statement);
<a name="1023" href="#1023">1023</a>         searchAllVersions = getDefaultFalse(searchAllVersions);
<a name="1024" href="#1024">1024</a>         includeAllowableActions = getDefaultFalse(includeAllowableActions);
<a name="1025" href="#1025">1025</a>         includeRelationships = getDefault(includeRelationships);
<a name="1026" href="#1026">1026</a>         renditionFilter = getDefaultRenditionFilter(renditionFilter);
<a name="1027" href="#1027">1027</a>         maxItems = getMaxItems(maxItems);
<a name="1028" href="#1028">1028</a>         skipCount = getSkipCount(skipCount);
<a name="1029" href="#1029">1029</a> 
<a name="1030" href="#1030">1030</a>         <strong class="jxr_keyword">try</strong> {
<a name="1031" href="#1031">1031</a>             <strong class="jxr_keyword">return</strong> service.query(repositoryId, statement, searchAllVersions, includeAllowableActions,
<a name="1032" href="#1032">1032</a>                     includeRelationships, renditionFilter, maxItems, skipCount, extension);
<a name="1033" href="#1033">1033</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="1034" href="#1034">1034</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="1035" href="#1035">1035</a>         }
<a name="1036" href="#1036">1036</a>     }
<a name="1037" href="#1037">1037</a> 
<a name="1038" href="#1038">1038</a>     <em class="jxr_comment">// --- multi filing service ---</em>
<a name="1039" href="#1039">1039</a> 
<a name="1040" href="#1040">1040</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addObjectToFolder(String repositoryId, String objectId, String folderId, Boolean allVersions,
<a name="1041" href="#1041">1041</a>             ExtensionsData extension) {
<a name="1042" href="#1042">1042</a>         checkRepositoryId(repositoryId);
<a name="1043" href="#1043">1043</a>         checkId(<span class="jxr_string">"Object Id"</span>, objectId);
<a name="1044" href="#1044">1044</a>         checkId(<span class="jxr_string">"Folder Id"</span>, folderId);
<a name="1045" href="#1045">1045</a>         allVersions = getDefaultTrue(allVersions);
<a name="1046" href="#1046">1046</a> 
<a name="1047" href="#1047">1047</a>         <strong class="jxr_keyword">try</strong> {
<a name="1048" href="#1048">1048</a>             service.addObjectToFolder(repositoryId, objectId, folderId, allVersions, extension);
<a name="1049" href="#1049">1049</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="1050" href="#1050">1050</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="1051" href="#1051">1051</a>         }
<a name="1052" href="#1052">1052</a>     }
<a name="1053" href="#1053">1053</a> 
<a name="1054" href="#1054">1054</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeObjectFromFolder(String repositoryId, String objectId, String folderId, ExtensionsData extension) {
<a name="1055" href="#1055">1055</a>         checkRepositoryId(repositoryId);
<a name="1056" href="#1056">1056</a>         checkId(<span class="jxr_string">"Object Id"</span>, objectId);
<a name="1057" href="#1057">1057</a> 
<a name="1058" href="#1058">1058</a>         <strong class="jxr_keyword">try</strong> {
<a name="1059" href="#1059">1059</a>             service.removeObjectFromFolder(repositoryId, objectId, folderId, extension);
<a name="1060" href="#1060">1060</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="1061" href="#1061">1061</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="1062" href="#1062">1062</a>         }
<a name="1063" href="#1063">1063</a>     }
<a name="1064" href="#1064">1064</a> 
<a name="1065" href="#1065">1065</a>     <em class="jxr_comment">// --- relationship service ---</em>
<a name="1066" href="#1066">1066</a> 
<a name="1067" href="#1067">1067</a>     <strong class="jxr_keyword">public</strong> ObjectList getObjectRelationships(String repositoryId, String objectId, Boolean includeSubRelationshipTypes,
<a name="1068" href="#1068">1068</a>             RelationshipDirection relationshipDirection, String typeId, String filter, Boolean includeAllowableActions,
<a name="1069" href="#1069">1069</a>             BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
<a name="1070" href="#1070">1070</a>         checkRepositoryId(repositoryId);
<a name="1071" href="#1071">1071</a>         checkId(<span class="jxr_string">"Object Id"</span>, objectId);
<a name="1072" href="#1072">1072</a>         includeSubRelationshipTypes = getDefaultFalse(includeSubRelationshipTypes);
<a name="1073" href="#1073">1073</a>         relationshipDirection = getDefault(relationshipDirection);
<a name="1074" href="#1074">1074</a>         includeAllowableActions = getDefaultFalse(includeAllowableActions);
<a name="1075" href="#1075">1075</a>         maxItems = getMaxItems(maxItems);
<a name="1076" href="#1076">1076</a>         skipCount = getSkipCount(skipCount);
<a name="1077" href="#1077">1077</a> 
<a name="1078" href="#1078">1078</a>         <strong class="jxr_keyword">try</strong> {
<a name="1079" href="#1079">1079</a>             <strong class="jxr_keyword">return</strong> service.getObjectRelationships(repositoryId, objectId, includeSubRelationshipTypes,
<a name="1080" href="#1080">1080</a>                     relationshipDirection, typeId, filter, includeAllowableActions, maxItems, skipCount, extension);
<a name="1081" href="#1081">1081</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="1082" href="#1082">1082</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="1083" href="#1083">1083</a>         }
<a name="1084" href="#1084">1084</a>     }
<a name="1085" href="#1085">1085</a> 
<a name="1086" href="#1086">1086</a>     <em class="jxr_comment">// --- ACL service ---</em>
<a name="1087" href="#1087">1087</a> 
<a name="1088" href="#1088">1088</a>     <strong class="jxr_keyword">public</strong> Acl applyAcl(String repositoryId, String objectId, Acl aces, AclPropagation aclPropagation) {
<a name="1089" href="#1089">1089</a>         checkRepositoryId(repositoryId);
<a name="1090" href="#1090">1090</a>         checkId(<span class="jxr_string">"Object Id"</span>, objectId);
<a name="1091" href="#1091">1091</a>         aclPropagation = getDefault(aclPropagation);
<a name="1092" href="#1092">1092</a> 
<a name="1093" href="#1093">1093</a>         <strong class="jxr_keyword">try</strong> {
<a name="1094" href="#1094">1094</a>             <strong class="jxr_keyword">return</strong> service.applyAcl(repositoryId, objectId, aces, aclPropagation);
<a name="1095" href="#1095">1095</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="1096" href="#1096">1096</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="1097" href="#1097">1097</a>         }
<a name="1098" href="#1098">1098</a>     }
<a name="1099" href="#1099">1099</a> 
<a name="1100" href="#1100">1100</a>     <strong class="jxr_keyword">public</strong> Acl applyAcl(String repositoryId, String objectId, Acl addAces, Acl removeAces,
<a name="1101" href="#1101">1101</a>             AclPropagation aclPropagation, ExtensionsData extension) {
<a name="1102" href="#1102">1102</a>         checkRepositoryId(repositoryId);
<a name="1103" href="#1103">1103</a>         checkId(<span class="jxr_string">"Object Id"</span>, objectId);
<a name="1104" href="#1104">1104</a>         aclPropagation = getDefault(aclPropagation);
<a name="1105" href="#1105">1105</a> 
<a name="1106" href="#1106">1106</a>         <strong class="jxr_keyword">try</strong> {
<a name="1107" href="#1107">1107</a>             <strong class="jxr_keyword">return</strong> service.applyAcl(repositoryId, objectId, addAces, removeAces, aclPropagation, extension);
<a name="1108" href="#1108">1108</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="1109" href="#1109">1109</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="1110" href="#1110">1110</a>         }
<a name="1111" href="#1111">1111</a>     }
<a name="1112" href="#1112">1112</a> 
<a name="1113" href="#1113">1113</a>     <strong class="jxr_keyword">public</strong> Acl getAcl(String repositoryId, String objectId, Boolean onlyBasicPermissions, ExtensionsData extension) {
<a name="1114" href="#1114">1114</a>         checkRepositoryId(repositoryId);
<a name="1115" href="#1115">1115</a>         checkId(<span class="jxr_string">"Object Id"</span>, objectId);
<a name="1116" href="#1116">1116</a>         onlyBasicPermissions = getDefaultTrue(onlyBasicPermissions);
<a name="1117" href="#1117">1117</a> 
<a name="1118" href="#1118">1118</a>         <strong class="jxr_keyword">try</strong> {
<a name="1119" href="#1119">1119</a>             <strong class="jxr_keyword">return</strong> service.getAcl(repositoryId, objectId, onlyBasicPermissions, extension);
<a name="1120" href="#1120">1120</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="1121" href="#1121">1121</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="1122" href="#1122">1122</a>         }
<a name="1123" href="#1123">1123</a>     }
<a name="1124" href="#1124">1124</a> 
<a name="1125" href="#1125">1125</a>     <em class="jxr_comment">// --- policy service ---</em>
<a name="1126" href="#1126">1126</a> 
<a name="1127" href="#1127">1127</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> applyPolicy(String repositoryId, String policyId, String objectId, ExtensionsData extension) {
<a name="1128" href="#1128">1128</a>         checkRepositoryId(repositoryId);
<a name="1129" href="#1129">1129</a>         checkId(<span class="jxr_string">"Policy Id"</span>, policyId);
<a name="1130" href="#1130">1130</a>         checkId(<span class="jxr_string">"Object Id"</span>, objectId);
<a name="1131" href="#1131">1131</a> 
<a name="1132" href="#1132">1132</a>         <strong class="jxr_keyword">try</strong> {
<a name="1133" href="#1133">1133</a>             service.applyPolicy(repositoryId, policyId, objectId, extension);
<a name="1134" href="#1134">1134</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="1135" href="#1135">1135</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="1136" href="#1136">1136</a>         }
<a name="1137" href="#1137">1137</a>     }
<a name="1138" href="#1138">1138</a> 
<a name="1139" href="#1139">1139</a>     <strong class="jxr_keyword">public</strong> List&lt;ObjectData&gt; getAppliedPolicies(String repositoryId, String objectId, String filter,
<a name="1140" href="#1140">1140</a>             ExtensionsData extension) {
<a name="1141" href="#1141">1141</a>         checkRepositoryId(repositoryId);
<a name="1142" href="#1142">1142</a>         checkId(<span class="jxr_string">"Object Id"</span>, objectId);
<a name="1143" href="#1143">1143</a> 
<a name="1144" href="#1144">1144</a>         <strong class="jxr_keyword">try</strong> {
<a name="1145" href="#1145">1145</a>             <strong class="jxr_keyword">return</strong> service.getAppliedPolicies(repositoryId, objectId, filter, extension);
<a name="1146" href="#1146">1146</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="1147" href="#1147">1147</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="1148" href="#1148">1148</a>         }
<a name="1149" href="#1149">1149</a>     }
<a name="1150" href="#1150">1150</a> 
<a name="1151" href="#1151">1151</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removePolicy(String repositoryId, String policyId, String objectId, ExtensionsData extension) {
<a name="1152" href="#1152">1152</a>         checkRepositoryId(repositoryId);
<a name="1153" href="#1153">1153</a>         checkId(<span class="jxr_string">"Policy Id"</span>, policyId);
<a name="1154" href="#1154">1154</a>         checkId(<span class="jxr_string">"Object Id"</span>, objectId);
<a name="1155" href="#1155">1155</a> 
<a name="1156" href="#1156">1156</a>         <strong class="jxr_keyword">try</strong> {
<a name="1157" href="#1157">1157</a>             service.removePolicy(repositoryId, policyId, objectId, extension);
<a name="1158" href="#1158">1158</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="1159" href="#1159">1159</a>             <strong class="jxr_keyword">throw</strong> createCmisException(e);
<a name="1160" href="#1160">1160</a>         }
<a name="1161" href="#1161">1161</a>     }
<a name="1162" href="#1162">1162</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

