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

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> * <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.chemistry.opencmis.inmemory.server;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Acl;
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ExtensionsData;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.AclPropagation;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.RelationshipDirection;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.UnfileObject;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.server.CallContext;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.spi.Holder;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.inmemory.storedobj.api.CmisServiceValidator;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.inmemory.storedobj.api.ObjectStore;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.inmemory.storedobj.api.StoreManager;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.inmemory.storedobj.api.StoredObject;
<a name="34" href="#34">34</a>  
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/server/BaseServiceValidatorImpl.html">BaseServiceValidatorImpl</a> implements <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/CmisServiceValidator.html">CmisServiceValidator</a> {
<a name="36" href="#36">36</a>  
<a name="37" href="#37">37</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoreManager.html">StoreManager</a> fStoreManager;
<a name="38" href="#38">38</a>  
<a name="39" href="#39">39</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/server/BaseServiceValidatorImpl.html">BaseServiceValidatorImpl</a>(<a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoreManager.html">StoreManager</a> sm) {
<a name="40" href="#40">40</a>          fStoreManager = sm;
<a name="41" href="#41">41</a>      }
<a name="42" href="#42">42</a>  
<a name="43" href="#43">43</a>      <em class="jxr_javadoccomment">/**</em>
<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment">     * Check if repository is known and that object exists. To avoid later calls</em>
<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment">     * to again retrieve the object from the id return the retrieved object for</em>
<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment">     * later use.</em>
<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment">     *</em>
<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment">     * @param repositoryId</em>
<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment">     *            repository id</em>
<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment">     * @param objectId</em>
<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment">     *            object id</em>
<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment">     * @return object for objectId</em>
<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment">     */</em>
<a name="54" href="#54">54</a>      <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> checkStandardParameters(String repositoryId, String objectId) {
<a name="55" href="#55">55</a>          <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == repositoryId) {
<a name="56" href="#56">56</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Repository Id cannot be null."</span>);
<a name="57" href="#57">57</a>          }
<a name="58" href="#58">58</a>  
<a name="59" href="#59">59</a>          <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == objectId) {
<a name="60" href="#60">60</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Object Id cannot be null."</span>);
<a name="61" href="#61">61</a>          }
<a name="62" href="#62">62</a>  
<a name="63" href="#63">63</a>          <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/ObjectStore.html">ObjectStore</a> objStore = fStoreManager.getObjectStore(repositoryId);
<a name="64" href="#64">64</a>  
<a name="65" href="#65">65</a>          <strong class="jxr_keyword">if</strong> (objStore == <strong class="jxr_keyword">null</strong>) {
<a name="66" href="#66">66</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisObjectNotFoundException(<span class="jxr_string">"Unknown repository id: "</span> + repositoryId);
<a name="67" href="#67">67</a>          }
<a name="68" href="#68">68</a>  
<a name="69" href="#69">69</a>          <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = objStore.getObjectById(objectId);
<a name="70" href="#70">70</a>  
<a name="71" href="#71">71</a>          <strong class="jxr_keyword">if</strong> (so == <strong class="jxr_keyword">null</strong>) {
<a name="72" href="#72">72</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisObjectNotFoundException(<span class="jxr_string">"Unknown object id: "</span> + objectId);
<a name="73" href="#73">73</a>          }
<a name="74" href="#74">74</a>  
<a name="75" href="#75">75</a>          <strong class="jxr_keyword">return</strong> so;
<a name="76" href="#76">76</a>      }
<a name="77" href="#77">77</a>  
<a name="78" href="#78">78</a>      <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> checkStandardParametersByPath(String repositoryId, String path, String user) {
<a name="79" href="#79">79</a>          <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == repositoryId) {
<a name="80" href="#80">80</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Repository Id cannot be null."</span>);
<a name="81" href="#81">81</a>          }
<a name="82" href="#82">82</a>  
<a name="83" href="#83">83</a>          <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == path) {
<a name="84" href="#84">84</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Path parameter cannot be null."</span>);
<a name="85" href="#85">85</a>          }
<a name="86" href="#86">86</a>  
<a name="87" href="#87">87</a>          <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/ObjectStore.html">ObjectStore</a> objStore = fStoreManager.getObjectStore(repositoryId);
<a name="88" href="#88">88</a>  
<a name="89" href="#89">89</a>          <strong class="jxr_keyword">if</strong> (objStore == <strong class="jxr_keyword">null</strong>) {
<a name="90" href="#90">90</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisObjectNotFoundException(<span class="jxr_string">"Unknown repository id: "</span> + repositoryId);
<a name="91" href="#91">91</a>          }
<a name="92" href="#92">92</a>  
<a name="93" href="#93">93</a>          <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = objStore.getObjectByPath(path, user);
<a name="94" href="#94">94</a>  
<a name="95" href="#95">95</a>          <strong class="jxr_keyword">if</strong> (so == <strong class="jxr_keyword">null</strong>) {
<a name="96" href="#96">96</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisObjectNotFoundException(<span class="jxr_string">"Unknown path: "</span> + path);
<a name="97" href="#97">97</a>          }
<a name="98" href="#98">98</a>  
<a name="99" href="#99">99</a>          <strong class="jxr_keyword">return</strong> so;
<a name="100" href="#100">100</a>     }
<a name="101" href="#101">101</a> 
<a name="102" href="#102">102</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> checkStandardParametersAllowNull(String repositoryId, String objectId) {
<a name="103" href="#103">103</a> 
<a name="104" href="#104">104</a>         <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">null</strong>;
<a name="105" href="#105">105</a> 
<a name="106" href="#106">106</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == repositoryId) {
<a name="107" href="#107">107</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Repository Id cannot be null."</span>);
<a name="108" href="#108">108</a>         }
<a name="109" href="#109">109</a> 
<a name="110" href="#110">110</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> != objectId) {
<a name="111" href="#111">111</a> 
<a name="112" href="#112">112</a>             <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/ObjectStore.html">ObjectStore</a> objStore = fStoreManager.getObjectStore(repositoryId);
<a name="113" href="#113">113</a> 
<a name="114" href="#114">114</a>             <strong class="jxr_keyword">if</strong> (objStore == <strong class="jxr_keyword">null</strong>) {
<a name="115" href="#115">115</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisObjectNotFoundException(<span class="jxr_string">"Unknown repository id: "</span> + repositoryId);
<a name="116" href="#116">116</a>             }
<a name="117" href="#117">117</a> 
<a name="118" href="#118">118</a>             so = objStore.getObjectById(objectId);
<a name="119" href="#119">119</a> 
<a name="120" href="#120">120</a>             <strong class="jxr_keyword">if</strong> (so == <strong class="jxr_keyword">null</strong>) {
<a name="121" href="#121">121</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisObjectNotFoundException(<span class="jxr_string">"Unknown object id: "</span> + objectId);
<a name="122" href="#122">122</a>             }
<a name="123" href="#123">123</a>         }
<a name="124" href="#124">124</a> 
<a name="125" href="#125">125</a>         <strong class="jxr_keyword">return</strong> so;
<a name="126" href="#126">126</a>     }
<a name="127" href="#127">127</a> 
<a name="128" href="#128">128</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> checkExistingObjectId(<a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/ObjectStore.html">ObjectStore</a> objStore, String objectId) {
<a name="129" href="#129">129</a> 
<a name="130" href="#130">130</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == objectId) {
<a name="131" href="#131">131</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Object Id cannot be null."</span>);
<a name="132" href="#132">132</a>         }
<a name="133" href="#133">133</a> 
<a name="134" href="#134">134</a>         <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = objStore.getObjectById(objectId);
<a name="135" href="#135">135</a> 
<a name="136" href="#136">136</a>         <strong class="jxr_keyword">if</strong> (so == <strong class="jxr_keyword">null</strong>) {
<a name="137" href="#137">137</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisObjectNotFoundException(<span class="jxr_string">"Unknown object id: "</span> + objectId);
<a name="138" href="#138">138</a>         }
<a name="139" href="#139">139</a> 
<a name="140" href="#140">140</a>         <strong class="jxr_keyword">return</strong> so;
<a name="141" href="#141">141</a>     }
<a name="142" href="#142">142</a> 
<a name="143" href="#143">143</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> checkRepositoryId(String repositoryId) {
<a name="144" href="#144">144</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == repositoryId) {
<a name="145" href="#145">145</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Repository Id cannot be null."</span>);
<a name="146" href="#146">146</a>         }
<a name="147" href="#147">147</a> 
<a name="148" href="#148">148</a>         <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/ObjectStore.html">ObjectStore</a> objStore = fStoreManager.getObjectStore(repositoryId);
<a name="149" href="#149">149</a> 
<a name="150" href="#150">150</a>         <strong class="jxr_keyword">if</strong> (objStore == <strong class="jxr_keyword">null</strong>) {
<a name="151" href="#151">151</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Unknown repository id: "</span> + repositoryId);
<a name="152" href="#152">152</a>         }
<a name="153" href="#153">153</a>     }
<a name="154" href="#154">154</a> 
<a name="155" href="#155">155</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a>[] checkParams(String repositoryId, String objectId1, String objectId2) {
<a name="156" href="#156">156</a>         <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a>[] so = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a>[2];
<a name="157" href="#157">157</a>         so[0] = checkStandardParameters(repositoryId, objectId1);
<a name="158" href="#158">158</a>         <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/ObjectStore.html">ObjectStore</a> objectStore = fStoreManager.getObjectStore(repositoryId);
<a name="159" href="#159">159</a>         so[1] = checkExistingObjectId(objectStore, objectId2);
<a name="160" href="#160">160</a>         <strong class="jxr_keyword">return</strong> so;
<a name="161" href="#161">161</a>     }
<a name="162" href="#162">162</a> 
<a name="163" href="#163">163</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> getRepositoryInfos(CallContext context, ExtensionsData extension) {
<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">public</strong> <strong class="jxr_keyword">void</strong> getRepositoryInfo(CallContext context, String repositoryId, ExtensionsData extension) {
<a name="167" href="#167">167</a> 
<a name="168" href="#168">168</a>         checkRepositoryId(repositoryId);
<a name="169" href="#169">169</a>     }
<a name="170" href="#170">170</a> 
<a name="171" href="#171">171</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> getTypeChildren(CallContext context, String repositoryId, String typeId,
<a name="172" href="#172">172</a>             ExtensionsData extension) {
<a name="173" href="#173">173</a> 
<a name="174" href="#174">174</a>         checkRepositoryId(repositoryId);
<a name="175" href="#175">175</a>     }
<a name="176" href="#176">176</a> 
<a name="177" href="#177">177</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> getTypeDescendants(CallContext context, String repositoryId, String typeId,
<a name="178" href="#178">178</a>             ExtensionsData extension) {
<a name="179" href="#179">179</a> 
<a name="180" href="#180">180</a>         checkRepositoryId(repositoryId);
<a name="181" href="#181">181</a>     }
<a name="182" href="#182">182</a> 
<a name="183" href="#183">183</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> getTypeDefinition(CallContext context, String repositoryId, String typeId,
<a name="184" href="#184">184</a>             ExtensionsData extension) {
<a name="185" href="#185">185</a> 
<a name="186" href="#186">186</a>         checkRepositoryId(repositoryId);
<a name="187" href="#187">187</a>     }
<a name="188" href="#188">188</a> 
<a name="189" href="#189">189</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> getChildren(CallContext context, String repositoryId, String folderId, ExtensionsData extension) {
<a name="190" href="#190">190</a> 
<a name="191" href="#191">191</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, folderId);
<a name="192" href="#192">192</a>     }
<a name="193" href="#193">193</a> 
<a name="194" href="#194">194</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> getDescendants(CallContext context, String repositoryId, String folderId,
<a name="195" href="#195">195</a>             ExtensionsData extension) {
<a name="196" href="#196">196</a> 
<a name="197" href="#197">197</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, folderId);
<a name="198" href="#198">198</a>     }
<a name="199" href="#199">199</a> 
<a name="200" href="#200">200</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> getFolderTree(CallContext context, String repositoryId, String folderId,
<a name="201" href="#201">201</a>             ExtensionsData extension) {
<a name="202" href="#202">202</a> 
<a name="203" href="#203">203</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, folderId);
<a name="204" href="#204">204</a>     }
<a name="205" href="#205">205</a> 
<a name="206" href="#206">206</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> getObjectParents(CallContext context, String repositoryId, String objectId,
<a name="207" href="#207">207</a>             ExtensionsData extension) {
<a name="208" href="#208">208</a> 
<a name="209" href="#209">209</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, objectId);
<a name="210" href="#210">210</a>     }
<a name="211" href="#211">211</a> 
<a name="212" href="#212">212</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> getFolderParent(CallContext context, String repositoryId, String folderId,
<a name="213" href="#213">213</a>             ExtensionsData extension) {
<a name="214" href="#214">214</a> 
<a name="215" href="#215">215</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, folderId);
<a name="216" href="#216">216</a>     }
<a name="217" href="#217">217</a> 
<a name="218" href="#218">218</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> getCheckedOutDocs(CallContext context, String repositoryId, String folderId,
<a name="219" href="#219">219</a>             ExtensionsData extension) {
<a name="220" href="#220">220</a> 
<a name="221" href="#221">221</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> != folderId) {
<a name="222" href="#222">222</a>             <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, folderId);
<a name="223" href="#223">223</a>         } <strong class="jxr_keyword">else</strong> {
<a name="224" href="#224">224</a>             checkRepositoryId(repositoryId);
<a name="225" href="#225">225</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="226" href="#226">226</a>         }
<a name="227" href="#227">227</a> 
<a name="228" href="#228">228</a>     }
<a name="229" href="#229">229</a> 
<a name="230" href="#230">230</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> createDocument(CallContext context, String repositoryId, String folderId,
<a name="231" href="#231">231</a>             ExtensionsData extension) {
<a name="232" href="#232">232</a>         <strong class="jxr_keyword">return</strong> checkStandardParametersAllowNull(repositoryId, folderId);
<a name="233" href="#233">233</a>     }
<a name="234" href="#234">234</a> 
<a name="235" href="#235">235</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> createDocumentFromSource(CallContext context, String repositoryId, String sourceId,
<a name="236" href="#236">236</a>             String folderId, ExtensionsData extension) {
<a name="237" href="#237">237</a> 
<a name="238" href="#238">238</a>         <strong class="jxr_keyword">return</strong> checkStandardParametersAllowNull(repositoryId, sourceId);
<a name="239" href="#239">239</a>     }
<a name="240" href="#240">240</a> 
<a name="241" href="#241">241</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> createFolder(CallContext context, String repositoryId, String folderId, ExtensionsData extension) {
<a name="242" href="#242">242</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, folderId);
<a name="243" href="#243">243</a>     }
<a name="244" href="#244">244</a> 
<a name="245" href="#245">245</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a>[] createRelationship(CallContext context, String repositoryId, String sourceId,
<a name="246" href="#246">246</a>     		String targetId, ExtensionsData extension) {
<a name="247" href="#247">247</a>         checkRepositoryId(repositoryId);
<a name="248" href="#248">248</a>         checkStandardParametersAllowNull(repositoryId, <strong class="jxr_keyword">null</strong>);
<a name="249" href="#249">249</a>         <strong class="jxr_keyword">return</strong> checkParams(repositoryId, sourceId, targetId);
<a name="250" href="#250">250</a>     }
<a name="251" href="#251">251</a> 
<a name="252" href="#252">252</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> createPolicy(CallContext context, String repositoryId, String folderId, ExtensionsData extension) {
<a name="253" href="#253">253</a>     	 <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, folderId);
<a name="254" href="#254">254</a>     }
<a name="255" href="#255">255</a> 
<a name="256" href="#256">256</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> getAllowableActions(CallContext context, String repositoryId, String objectId,
<a name="257" href="#257">257</a>             ExtensionsData extension) {
<a name="258" href="#258">258</a>         <em class="jxr_comment">//</em>
<a name="259" href="#259">259</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, objectId);
<a name="260" href="#260">260</a>     }
<a name="261" href="#261">261</a> 
<a name="262" href="#262">262</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> getObject(CallContext context, String repositoryId, String objectId, ExtensionsData extension) {
<a name="263" href="#263">263</a> 
<a name="264" href="#264">264</a>         String principalId = context.getUsername();
<a name="265" href="#265">265</a>         <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = checkStandardParameters(repositoryId, objectId);
<a name="266" href="#266">266</a>         <strong class="jxr_keyword">return</strong> so;
<a name="267" href="#267">267</a>     }
<a name="268" href="#268">268</a> 
<a name="269" href="#269">269</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> getProperties(CallContext context, String repositoryId, String objectId,
<a name="270" href="#270">270</a>             ExtensionsData extension) {
<a name="271" href="#271">271</a> 
<a name="272" href="#272">272</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, objectId);
<a name="273" href="#273">273</a>     }
<a name="274" href="#274">274</a> 
<a name="275" href="#275">275</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> getRenditions(CallContext context, String repositoryId, String objectId,
<a name="276" href="#276">276</a>             ExtensionsData extension) {
<a name="277" href="#277">277</a> 
<a name="278" href="#278">278</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, objectId);
<a name="279" href="#279">279</a>     }
<a name="280" href="#280">280</a> 
<a name="281" href="#281">281</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> getObjectByPath(CallContext context, String repositoryId, String path, ExtensionsData extension) {
<a name="282" href="#282">282</a> 
<a name="283" href="#283">283</a>         <strong class="jxr_keyword">return</strong> checkStandardParametersByPath(repositoryId, path, context.getUsername());
<a name="284" href="#284">284</a>    }
<a name="285" href="#285">285</a> 
<a name="286" href="#286">286</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> getContentStream(CallContext context, String repositoryId, String objectId, String streamId,
<a name="287" href="#287">287</a>             ExtensionsData extension) {
<a name="288" href="#288">288</a> 
<a name="289" href="#289">289</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, objectId);
<a name="290" href="#290">290</a>     }
<a name="291" href="#291">291</a> 
<a name="292" href="#292">292</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> updateProperties(CallContext context, String repositoryId, Holder&lt;String&gt; objectId,
<a name="293" href="#293">293</a>             ExtensionsData extension) {
<a name="294" href="#294">294</a> 
<a name="295" href="#295">295</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, objectId.getValue());
<a name="296" href="#296">296</a>     }
<a name="297" href="#297">297</a> 
<a name="298" href="#298">298</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a>[] moveObject(CallContext context, String repositoryId, Holder&lt;String&gt; objectId,
<a name="299" href="#299">299</a>             String targetFolderId, String sourceFolderId, ExtensionsData extension) {
<a name="300" href="#300">300</a> 
<a name="301" href="#301">301</a>         <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a>[] res = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a>[3];
<a name="302" href="#302">302</a>         res [0] = checkStandardParameters(repositoryId, objectId.getValue());
<a name="303" href="#303">303</a>         res[1] = checkExistingObjectId(fStoreManager.getObjectStore(repositoryId), sourceFolderId);
<a name="304" href="#304">304</a>         res[2] = checkExistingObjectId(fStoreManager.getObjectStore(repositoryId), targetFolderId);
<a name="305" href="#305">305</a>         <strong class="jxr_keyword">return</strong> res;
<a name="306" href="#306">306</a>     }
<a name="307" href="#307">307</a> 
<a name="308" href="#308">308</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> deleteObject(CallContext context, String repositoryId, String objectId, Boolean allVersions,
<a name="309" href="#309">309</a>             ExtensionsData extension) {
<a name="310" href="#310">310</a> 
<a name="311" href="#311">311</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, objectId);
<a name="312" href="#312">312</a>     }
<a name="313" href="#313">313</a> 
<a name="314" href="#314">314</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> deleteTree(CallContext context, String repositoryId, String folderId, Boolean allVersions,
<a name="315" href="#315">315</a>             UnfileObject unfileObjects, ExtensionsData extension) {
<a name="316" href="#316">316</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, folderId);
<a name="317" href="#317">317</a>     }
<a name="318" href="#318">318</a> 
<a name="319" href="#319">319</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> setContentStream(CallContext context, String repositoryId, Holder&lt;String&gt; objectId,
<a name="320" href="#320">320</a>             Boolean overwriteFlag, ExtensionsData extension) {
<a name="321" href="#321">321</a> 
<a name="322" href="#322">322</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, objectId.getValue());
<a name="323" href="#323">323</a>     }
<a name="324" href="#324">324</a> 
<a name="325" href="#325">325</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> deleteContentStream(CallContext context, String repositoryId, Holder&lt;String&gt; objectId,
<a name="326" href="#326">326</a>             ExtensionsData extension) {
<a name="327" href="#327">327</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, objectId.getValue());
<a name="328" href="#328">328</a>     }
<a name="329" href="#329">329</a> 
<a name="330" href="#330">330</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> checkOut(CallContext context, String repositoryId, Holder&lt;String&gt; objectId,
<a name="331" href="#331">331</a>             ExtensionsData extension, Holder&lt;Boolean&gt; contentCopied) {
<a name="332" href="#332">332</a> 
<a name="333" href="#333">333</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, objectId.getValue());
<a name="334" href="#334">334</a>     }
<a name="335" href="#335">335</a> 
<a name="336" href="#336">336</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> cancelCheckOut(CallContext context, String repositoryId, String objectId,
<a name="337" href="#337">337</a>             ExtensionsData extension) {
<a name="338" href="#338">338</a> 
<a name="339" href="#339">339</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, objectId);
<a name="340" href="#340">340</a>     }
<a name="341" href="#341">341</a> 
<a name="342" href="#342">342</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> checkIn(CallContext context, String repositoryId, Holder&lt;String&gt; objectId,
<a name="343" href="#343">343</a>             Acl addAces, Acl removeAces, ExtensionsData extension) {
<a name="344" href="#344">344</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, objectId.getValue());
<a name="345" href="#345">345</a>     }
<a name="346" href="#346">346</a> 
<a name="347" href="#347">347</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> getObjectOfLatestVersion(CallContext context, String repositoryId, String objectId,
<a name="348" href="#348">348</a>             String versionSeriesId, ExtensionsData extension) {
<a name="349" href="#349">349</a> 
<a name="350" href="#350">350</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, versionSeriesId == <strong class="jxr_keyword">null</strong> ? objectId : versionSeriesId);
<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">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> getPropertiesOfLatestVersion(CallContext context, String repositoryId, String objectId,
<a name="354" href="#354">354</a>             String versionSeriesId, ExtensionsData extension) {
<a name="355" href="#355">355</a> 
<a name="356" href="#356">356</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, versionSeriesId == <strong class="jxr_keyword">null</strong> ? objectId : versionSeriesId);
<a name="357" href="#357">357</a>     }
<a name="358" href="#358">358</a> 
<a name="359" href="#359">359</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> getAllVersions(CallContext context, String repositoryId, String objectId,
<a name="360" href="#360">360</a>             String versionSeriesId, ExtensionsData extension) {
<a name="361" href="#361">361</a> 
<a name="362" href="#362">362</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, versionSeriesId == <strong class="jxr_keyword">null</strong> ? objectId : versionSeriesId);
<a name="363" href="#363">363</a>     }
<a name="364" href="#364">364</a> 
<a name="365" href="#365">365</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> query(CallContext context, String repositoryId, ExtensionsData extension) {
<a name="366" href="#366">366</a> 
<a name="367" href="#367">367</a>         checkRepositoryId(repositoryId);
<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">public</strong> <strong class="jxr_keyword">void</strong> getContentChanges(CallContext context, String repositoryId, ExtensionsData extension) {
<a name="371" href="#371">371</a> 
<a name="372" href="#372">372</a>         checkRepositoryId(repositoryId);
<a name="373" href="#373">373</a>     }
<a name="374" href="#374">374</a> 
<a name="375" href="#375">375</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a>[] addObjectToFolder(CallContext context, String repositoryId, String objectId, String folderId,
<a name="376" href="#376">376</a>             Boolean allVersions, ExtensionsData extension) {
<a name="377" href="#377">377</a> 
<a name="378" href="#378">378</a>         <strong class="jxr_keyword">return</strong> checkParams(repositoryId, objectId, folderId);
<a name="379" href="#379">379</a>     }
<a name="380" href="#380">380</a> 
<a name="381" href="#381">381</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a>[] removeObjectFromFolder(CallContext context, String repositoryId, String objectId,
<a name="382" href="#382">382</a>             String folderId, ExtensionsData extension) {
<a name="383" href="#383">383</a> 
<a name="384" href="#384">384</a>         <strong class="jxr_keyword">return</strong> checkParams(repositoryId, objectId, folderId);
<a name="385" href="#385">385</a>     }
<a name="386" href="#386">386</a> 
<a name="387" href="#387">387</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> getObjectRelationships(CallContext context, String repositoryId, String objectId,
<a name="388" href="#388">388</a>             RelationshipDirection relationshipDirection, String typeId, ExtensionsData extension) {
<a name="389" href="#389">389</a> 
<a name="390" href="#390">390</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, objectId);
<a name="391" href="#391">391</a>     }
<a name="392" href="#392">392</a> 
<a name="393" href="#393">393</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> getAcl(CallContext context, String repositoryId, String objectId, ExtensionsData extension) {
<a name="394" href="#394">394</a> 
<a name="395" href="#395">395</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, objectId);
<a name="396" href="#396">396</a>     }
<a name="397" href="#397">397</a> 
<a name="398" href="#398">398</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> applyAcl(CallContext context, String repositoryId, String objectId,
<a name="399" href="#399">399</a>             AclPropagation aclPropagation, ExtensionsData extension) {
<a name="400" href="#400">400</a> 
<a name="401" href="#401">401</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, objectId);
<a name="402" href="#402">402</a>     }
<a name="403" href="#403">403</a> 
<a name="404" href="#404">404</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a>[] applyPolicy(CallContext context, String repositoryId, String policyId, String objectId,
<a name="405" href="#405">405</a>             ExtensionsData extension) {
<a name="406" href="#406">406</a> 
<a name="407" href="#407">407</a>         <strong class="jxr_keyword">return</strong> checkParams(repositoryId, policyId, objectId);
<a name="408" href="#408">408</a>     }
<a name="409" href="#409">409</a> 
<a name="410" href="#410">410</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a>[] removePolicy(CallContext context, String repositoryId, String policyId, String objectId,
<a name="411" href="#411">411</a>             ExtensionsData extension) {
<a name="412" href="#412">412</a> 
<a name="413" href="#413">413</a>         <strong class="jxr_keyword">return</strong> checkParams(repositoryId, policyId, objectId);
<a name="414" href="#414">414</a>     }
<a name="415" href="#415">415</a> 
<a name="416" href="#416">416</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> getAppliedPolicies(CallContext context, String repositoryId, String objectId,
<a name="417" href="#417">417</a>             ExtensionsData extension) {
<a name="418" href="#418">418</a> 
<a name="419" href="#419">419</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, objectId);
<a name="420" href="#420">420</a>     }
<a name="421" href="#421">421</a> 
<a name="422" href="#422">422</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> create(CallContext context, String repositoryId, String folderId, ExtensionsData extension) {
<a name="423" href="#423">423</a> 
<a name="424" href="#424">424</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, folderId);
<a name="425" href="#425">425</a>     }
<a name="426" href="#426">426</a> 
<a name="427" href="#427">427</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> deleteObjectOrCancelCheckOut(CallContext context, String repositoryId, String objectId,
<a name="428" href="#428">428</a>             ExtensionsData extension) {
<a name="429" href="#429">429</a> 
<a name="430" href="#430">430</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, objectId);
<a name="431" href="#431">431</a>     }
<a name="432" href="#432">432</a> 
<a name="433" href="#433">433</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> applyAcl(CallContext context, String repositoryId, String objectId) {
<a name="434" href="#434">434</a> 
<a name="435" href="#435">435</a>         <strong class="jxr_keyword">return</strong> checkStandardParameters(repositoryId, objectId);
<a name="436" href="#436">436</a>     }
<a name="437" href="#437">437</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

