<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>InMemoryServiceValidatorImpl xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../../apidocs/org/apache/chemistry/opencmis/inmemory/storedobj/impl/InMemoryServiceValidatorImpl.html">View Javadoc</a></div><pre>

<a class="jxr_linenumber" name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a class="jxr_linenumber" name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="10" href="#10">10</a>  <em class="jxr_comment"> * <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a class="jxr_linenumber" name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a class="jxr_linenumber" name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
<a class="jxr_linenumber" name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.chemistry.opencmis.inmemory.storedobj.impl;
<a class="jxr_linenumber" name="20" href="#20">20</a>  
<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="22" href="#22">22</a>  
<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Acl;
<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ExtensionsData;
<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Properties;
<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.AclPropagation;
<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.RelationshipDirection;
<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.UnfileObject;
<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisConstraintException;
<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException;
<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.server.CallContext;
<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.spi.Holder;
<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl;
<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.inmemory.storedobj.api.ObjectStore;
<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.inmemory.storedobj.api.Policy;
<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.inmemory.storedobj.api.StoreManager;
<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.inmemory.storedobj.api.StoredObject;
<a class="jxr_linenumber" name="40" href="#40">40</a>  
<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/impl/InMemoryServiceValidatorImpl.html">InMemoryServiceValidatorImpl</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/server/BaseServiceValidatorImpl.html">BaseServiceValidatorImpl</a> {
<a class="jxr_linenumber" name="42" href="#42">42</a>  
<a class="jxr_linenumber" name="43" href="#43">43</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/impl/InMemoryServiceValidatorImpl.html">InMemoryServiceValidatorImpl</a>(<a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoreManager.html">StoreManager</a> sm) {
<a class="jxr_linenumber" name="44" href="#44">44</a>          <strong class="jxr_keyword">super</strong>(sm);
<a class="jxr_linenumber" name="45" href="#45">45</a>      }
<a class="jxr_linenumber" name="46" href="#46">46</a>  
<a class="jxr_linenumber" name="47" href="#47">47</a>      <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="48" href="#48">48</a>  <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="49" href="#49">49</a>  <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="50" href="#50">50</a>  <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="51" href="#51">51</a>  <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="52" href="#52">52</a>  <em class="jxr_comment">     * #checkStandardParameters(java.lang.String, java.lang.String)</em>
<a class="jxr_linenumber" name="53" href="#53">53</a>  <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="54" href="#54">54</a>      @Override
<a class="jxr_linenumber" name="55" href="#55">55</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 class="jxr_linenumber" name="56" href="#56">56</a>  
<a class="jxr_linenumber" name="57" href="#57">57</a>          <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.checkStandardParameters(repositoryId, objectId);
<a class="jxr_linenumber" name="58" href="#58">58</a>          <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="59" href="#59">59</a>      }
<a class="jxr_linenumber" name="60" href="#60">60</a>  
<a class="jxr_linenumber" name="61" href="#61">61</a>      <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="62" href="#62">62</a>  <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="63" href="#63">63</a>  <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="64" href="#64">64</a>  <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="65" href="#65">65</a>  <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="66" href="#66">66</a>  <em class="jxr_comment">     * #checkStandardParametersAllowNull(java.lang.String, java.lang.String)</em>
<a class="jxr_linenumber" name="67" href="#67">67</a>  <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="68" href="#68">68</a>      @Override
<a class="jxr_linenumber" name="69" href="#69">69</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 class="jxr_linenumber" name="70" href="#70">70</a>  
<a class="jxr_linenumber" name="71" href="#71">71</a>          <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.checkStandardParametersAllowNull(repositoryId, objectId);
<a class="jxr_linenumber" name="72" href="#72">72</a>          <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="73" href="#73">73</a>      }
<a class="jxr_linenumber" name="74" href="#74">74</a>  
<a class="jxr_linenumber" name="75" href="#75">75</a>      <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="76" href="#76">76</a>  <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="77" href="#77">77</a>  <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="78" href="#78">78</a>  <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="79" href="#79">79</a>  <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="80" href="#80">80</a>  <em class="jxr_comment">     * #checkExistingObjectId</em>
<a class="jxr_linenumber" name="81" href="#81">81</a>  <em class="jxr_comment">     * (org.apache.chemistry.opencmis.inmemory.storedobj.api.ObjectStore,</em>
<a class="jxr_linenumber" name="82" href="#82">82</a>  <em class="jxr_comment">     * java.lang.String)</em>
<a class="jxr_linenumber" name="83" href="#83">83</a>  <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="84" href="#84">84</a>      @Override
<a class="jxr_linenumber" name="85" href="#85">85</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 class="jxr_linenumber" name="86" href="#86">86</a>  
<a class="jxr_linenumber" name="87" href="#87">87</a>          <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.checkExistingObjectId(objStore, objectId);
<a class="jxr_linenumber" name="88" href="#88">88</a>          <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="89" href="#89">89</a>      }
<a class="jxr_linenumber" name="90" href="#90">90</a>  
<a class="jxr_linenumber" name="91" href="#91">91</a>      <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="92" href="#92">92</a>  <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="93" href="#93">93</a>  <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="94" href="#94">94</a>  <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="95" href="#95">95</a>  <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="96" href="#96">96</a>  <em class="jxr_comment">     * #checkParams(java.lang.String, java.lang.String, java.lang.String)</em>
<a class="jxr_linenumber" name="97" href="#97">97</a>  <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="98" href="#98">98</a>      @Override
<a class="jxr_linenumber" name="99" href="#99">99</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 class="jxr_linenumber" name="100" href="#100">100</a> 
<a class="jxr_linenumber" name="101" href="#101">101</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a>[] sos = <strong class="jxr_keyword">super</strong>.checkParams(repositoryId, objectId1, objectId2);
<a class="jxr_linenumber" name="102" href="#102">102</a>         <strong class="jxr_keyword">return</strong> sos;
<a class="jxr_linenumber" name="103" href="#103">103</a>     }
<a class="jxr_linenumber" name="104" href="#104">104</a> 
<a class="jxr_linenumber" name="105" href="#105">105</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="106" href="#106">106</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="107" href="#107">107</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="108" href="#108">108</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="109" href="#109">109</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="110" href="#110">110</a> <em class="jxr_comment">     * #getRepositoryInfos</em>
<a class="jxr_linenumber" name="111" href="#111">111</a> <em class="jxr_comment">     * (org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="112" href="#112">112</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="113" href="#113">113</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="114" href="#114">114</a>     @Override
<a class="jxr_linenumber" name="115" href="#115">115</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> getRepositoryInfos(CallContext context, ExtensionsData extension) {
<a class="jxr_linenumber" name="116" href="#116">116</a> 
<a class="jxr_linenumber" name="117" href="#117">117</a>         <strong class="jxr_keyword">super</strong>.getRepositoryInfos(context, extension);
<a class="jxr_linenumber" name="118" href="#118">118</a>     }
<a class="jxr_linenumber" name="119" href="#119">119</a> 
<a class="jxr_linenumber" name="120" href="#120">120</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="121" href="#121">121</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="122" href="#122">122</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="123" href="#123">123</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="124" href="#124">124</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="125" href="#125">125</a> <em class="jxr_comment">     * #getRepositoryInfo</em>
<a class="jxr_linenumber" name="126" href="#126">126</a> <em class="jxr_comment">     * (org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="127" href="#127">127</a> <em class="jxr_comment">     * java.lang.String,</em>
<a class="jxr_linenumber" name="128" href="#128">128</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="129" href="#129">129</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="130" href="#130">130</a>     @Override
<a class="jxr_linenumber" name="131" href="#131">131</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> getRepositoryInfo(CallContext context, String repositoryId, ExtensionsData extension) {
<a class="jxr_linenumber" name="132" href="#132">132</a> 
<a class="jxr_linenumber" name="133" href="#133">133</a>         <strong class="jxr_keyword">super</strong>.getRepositoryInfo(context, repositoryId, extension);
<a class="jxr_linenumber" name="134" href="#134">134</a>     }
<a class="jxr_linenumber" name="135" href="#135">135</a> 
<a class="jxr_linenumber" name="136" href="#136">136</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="137" href="#137">137</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="138" href="#138">138</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="139" href="#139">139</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="140" href="#140">140</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="141" href="#141">141</a> <em class="jxr_comment">     * #getTypeChildren</em>
<a class="jxr_linenumber" name="142" href="#142">142</a> <em class="jxr_comment">     * (org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="143" href="#143">143</a> <em class="jxr_comment">     * java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="144" href="#144">144</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="145" href="#145">145</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="146" href="#146">146</a>     @Override
<a class="jxr_linenumber" name="147" href="#147">147</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> getTypeChildren(CallContext context, String repositoryId, String typeId, ExtensionsData extension) {
<a class="jxr_linenumber" name="148" href="#148">148</a> 
<a class="jxr_linenumber" name="149" href="#149">149</a>         <strong class="jxr_keyword">super</strong>.getTypeChildren(context, repositoryId, typeId, extension);
<a class="jxr_linenumber" name="150" href="#150">150</a>     }
<a class="jxr_linenumber" name="151" href="#151">151</a> 
<a class="jxr_linenumber" name="152" href="#152">152</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="153" href="#153">153</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="154" href="#154">154</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="155" href="#155">155</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="156" href="#156">156</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="157" href="#157">157</a> <em class="jxr_comment">     * #getTypeDescendants</em>
<a class="jxr_linenumber" name="158" href="#158">158</a> <em class="jxr_comment">     * (org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="159" href="#159">159</a> <em class="jxr_comment">     * java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="160" href="#160">160</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="161" href="#161">161</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="162" href="#162">162</a>     @Override
<a class="jxr_linenumber" name="163" href="#163">163</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> getTypeDescendants(CallContext context, String repositoryId, String typeId, ExtensionsData extension) {
<a class="jxr_linenumber" name="164" href="#164">164</a> 
<a class="jxr_linenumber" name="165" href="#165">165</a>         <strong class="jxr_keyword">super</strong>.getTypeDescendants(context, repositoryId, typeId, extension);
<a class="jxr_linenumber" name="166" href="#166">166</a>     }
<a class="jxr_linenumber" name="167" href="#167">167</a> 
<a class="jxr_linenumber" name="168" href="#168">168</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="169" href="#169">169</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="170" href="#170">170</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="171" href="#171">171</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="172" href="#172">172</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="173" href="#173">173</a> <em class="jxr_comment">     * #getTypeDefinition</em>
<a class="jxr_linenumber" name="174" href="#174">174</a> <em class="jxr_comment">     * (org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="175" href="#175">175</a> <em class="jxr_comment">     * java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="176" href="#176">176</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="177" href="#177">177</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="178" href="#178">178</a>     @Override
<a class="jxr_linenumber" name="179" href="#179">179</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> getTypeDefinition(CallContext context, String repositoryId, String typeId, ExtensionsData extension) {
<a class="jxr_linenumber" name="180" href="#180">180</a> 
<a class="jxr_linenumber" name="181" href="#181">181</a>         <strong class="jxr_keyword">super</strong>.getTypeDefinition(context, repositoryId, typeId, extension);
<a class="jxr_linenumber" name="182" href="#182">182</a>     }
<a class="jxr_linenumber" name="183" href="#183">183</a> 
<a class="jxr_linenumber" name="184" href="#184">184</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="185" href="#185">185</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="186" href="#186">186</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="187" href="#187">187</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="188" href="#188">188</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="189" href="#189">189</a> <em class="jxr_comment">     * #getChildren(org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="190" href="#190">190</a> <em class="jxr_comment">     * java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="191" href="#191">191</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="192" href="#192">192</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="193" href="#193">193</a>     @Override
<a class="jxr_linenumber" 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> getChildren(CallContext context, String repositoryId, String folderId, 
<a class="jxr_linenumber" name="195" href="#195">195</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="196" href="#196">196</a> 
<a class="jxr_linenumber" name="197" href="#197">197</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.getChildren(context, repositoryId, folderId, extension);
<a class="jxr_linenumber" name="198" href="#198">198</a>         checkReadAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="199" href="#199">199</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="200" href="#200">200</a>     }
<a class="jxr_linenumber" name="201" href="#201">201</a> 
<a class="jxr_linenumber" name="202" href="#202">202</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="203" href="#203">203</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="204" href="#204">204</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="205" href="#205">205</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="206" href="#206">206</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="207" href="#207">207</a> <em class="jxr_comment">     * #getDescendants(org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="208" href="#208">208</a> <em class="jxr_comment">     * java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="209" href="#209">209</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="210" href="#210">210</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="211" href="#211">211</a>     @Override
<a class="jxr_linenumber" 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> getDescendants(CallContext context, String repositoryId, String folderId,
<a class="jxr_linenumber" name="213" href="#213">213</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="214" href="#214">214</a> 
<a class="jxr_linenumber" name="215" href="#215">215</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.getDescendants(context, repositoryId, folderId, extension);
<a class="jxr_linenumber" name="216" href="#216">216</a>         checkReadAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="217" href="#217">217</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="218" href="#218">218</a>     }
<a class="jxr_linenumber" name="219" href="#219">219</a> 
<a class="jxr_linenumber" name="220" href="#220">220</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="221" href="#221">221</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="222" href="#222">222</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="223" href="#223">223</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="224" href="#224">224</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="225" href="#225">225</a> <em class="jxr_comment">     * #getFolderTree(org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="226" href="#226">226</a> <em class="jxr_comment">     * java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="227" href="#227">227</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="228" href="#228">228</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="229" href="#229">229</a>     @Override
<a class="jxr_linenumber" 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> getFolderTree(CallContext context, String repositoryId, String folderId,
<a class="jxr_linenumber" name="231" href="#231">231</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="232" href="#232">232</a> 
<a class="jxr_linenumber" name="233" href="#233">233</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.getFolderTree(context, repositoryId, folderId, extension);
<a class="jxr_linenumber" name="234" href="#234">234</a>         checkReadAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="235" href="#235">235</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="236" href="#236">236</a>     }
<a class="jxr_linenumber" name="237" href="#237">237</a> 
<a class="jxr_linenumber" name="238" href="#238">238</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="239" href="#239">239</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="240" href="#240">240</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="241" href="#241">241</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="242" href="#242">242</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="243" href="#243">243</a> <em class="jxr_comment">     * #getObjectParents</em>
<a class="jxr_linenumber" name="244" href="#244">244</a> <em class="jxr_comment">     * (org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="245" href="#245">245</a> <em class="jxr_comment">     * java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="246" href="#246">246</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="247" href="#247">247</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="248" href="#248">248</a>     @Override
<a class="jxr_linenumber" name="249" href="#249">249</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 class="jxr_linenumber" name="250" href="#250">250</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="251" href="#251">251</a> 
<a class="jxr_linenumber" name="252" href="#252">252</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.getObjectParents(context, repositoryId, objectId, extension);
<a class="jxr_linenumber" name="253" href="#253">253</a>         checkReadAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="254" href="#254">254</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="255" href="#255">255</a>     }
<a class="jxr_linenumber" name="256" href="#256">256</a> 
<a class="jxr_linenumber" name="257" href="#257">257</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="258" href="#258">258</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="259" href="#259">259</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="260" href="#260">260</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="261" href="#261">261</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="262" href="#262">262</a> <em class="jxr_comment">     * #getFolderParent</em>
<a class="jxr_linenumber" name="263" href="#263">263</a> <em class="jxr_comment">     * (org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="264" href="#264">264</a> <em class="jxr_comment">     * java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="265" href="#265">265</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="266" href="#266">266</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="267" href="#267">267</a>     @Override
<a class="jxr_linenumber" name="268" href="#268">268</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 class="jxr_linenumber" name="269" href="#269">269</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="270" href="#270">270</a> 
<a class="jxr_linenumber" name="271" href="#271">271</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.getFolderParent(context, repositoryId, folderId, extension);
<a class="jxr_linenumber" name="272" href="#272">272</a>         checkReadAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="273" href="#273">273</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="274" href="#274">274</a>     }
<a class="jxr_linenumber" name="275" href="#275">275</a> 
<a class="jxr_linenumber" name="276" href="#276">276</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="277" href="#277">277</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="278" href="#278">278</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="279" href="#279">279</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="280" href="#280">280</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="281" href="#281">281</a> <em class="jxr_comment">     * #getCheckedOutDocs</em>
<a class="jxr_linenumber" name="282" href="#282">282</a> <em class="jxr_comment">     * (org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="283" href="#283">283</a> <em class="jxr_comment">     * java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="284" href="#284">284</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="285" href="#285">285</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="286" href="#286">286</a>     @Override
<a class="jxr_linenumber" name="287" href="#287">287</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 class="jxr_linenumber" name="288" href="#288">288</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="289" href="#289">289</a> 
<a class="jxr_linenumber" name="290" href="#290">290</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.getCheckedOutDocs(context, repositoryId, folderId, extension);
<a class="jxr_linenumber" name="291" href="#291">291</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> != so) {
<a class="jxr_linenumber" name="292" href="#292">292</a>             checkReadAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="293" href="#293">293</a>         }
<a class="jxr_linenumber" name="294" href="#294">294</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="295" href="#295">295</a>     }
<a class="jxr_linenumber" name="296" href="#296">296</a> 
<a class="jxr_linenumber" name="297" href="#297">297</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="298" href="#298">298</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="299" href="#299">299</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="300" href="#300">300</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="301" href="#301">301</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="302" href="#302">302</a> <em class="jxr_comment">     * #createDocument(org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="303" href="#303">303</a> <em class="jxr_comment">     * java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="304" href="#304">304</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="305" href="#305">305</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="306" href="#306">306</a>     @Override
<a class="jxr_linenumber" name="307" href="#307">307</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 class="jxr_linenumber" name="308" href="#308">308</a>             List&lt;String&gt; policyIds, ExtensionsData extension) {
<a class="jxr_linenumber" name="309" href="#309">309</a> 
<a class="jxr_linenumber" name="310" href="#310">310</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> folder = <strong class="jxr_keyword">super</strong>.createDocument(context, repositoryId, folderId, policyIds, extension);
<a class="jxr_linenumber" name="311" href="#311">311</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> != folder) {
<a class="jxr_linenumber" name="312" href="#312">312</a>             checkWriteAccess(repositoryId, context.getUsername(), folder);
<a class="jxr_linenumber" name="313" href="#313">313</a>         }
<a class="jxr_linenumber" name="314" href="#314">314</a>         <strong class="jxr_keyword">return</strong> folder;
<a class="jxr_linenumber" name="315" href="#315">315</a>     }
<a class="jxr_linenumber" name="316" href="#316">316</a> 
<a class="jxr_linenumber" name="317" href="#317">317</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="318" href="#318">318</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="319" href="#319">319</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="320" href="#320">320</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="321" href="#321">321</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="322" href="#322">322</a> <em class="jxr_comment">     * #createDocumentFromSource</em>
<a class="jxr_linenumber" name="323" href="#323">323</a> <em class="jxr_comment">     * (org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="324" href="#324">324</a> <em class="jxr_comment">     * java.lang.String, java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="325" href="#325">325</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="326" href="#326">326</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="327" href="#327">327</a>     @Override
<a class="jxr_linenumber" name="328" href="#328">328</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 class="jxr_linenumber" name="329" href="#329">329</a>             String folderId, List&lt;String&gt; policyIds, ExtensionsData extension) {
<a class="jxr_linenumber" name="330" href="#330">330</a> 
<a class="jxr_linenumber" name="331" href="#331">331</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> source = <strong class="jxr_keyword">super</strong>.createDocumentFromSource(context, repositoryId, sourceId, folderId, policyIds,
<a class="jxr_linenumber" name="332" href="#332">332</a>                 extension);
<a class="jxr_linenumber" name="333" href="#333">333</a>         checkWriteAccess(repositoryId, context.getUsername(), source);
<a class="jxr_linenumber" name="334" href="#334">334</a>         <strong class="jxr_keyword">return</strong> source;
<a class="jxr_linenumber" name="335" href="#335">335</a>     }
<a class="jxr_linenumber" name="336" href="#336">336</a> 
<a class="jxr_linenumber" name="337" href="#337">337</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="338" href="#338">338</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="339" href="#339">339</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="340" href="#340">340</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="341" href="#341">341</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="342" href="#342">342</a> <em class="jxr_comment">     * #createFolder(org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="343" href="#343">343</a> <em class="jxr_comment">     * java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="344" href="#344">344</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="345" href="#345">345</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="346" href="#346">346</a>     @Override
<a class="jxr_linenumber" 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> createFolder(CallContext context, String repositoryId, String folderId, List&lt;String&gt; policyIds,
<a class="jxr_linenumber" name="348" href="#348">348</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="349" href="#349">349</a> 
<a class="jxr_linenumber" name="350" href="#350">350</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> parentFolder = <strong class="jxr_keyword">super</strong>.createFolder(context, repositoryId, folderId, policyIds, extension);
<a class="jxr_linenumber" name="351" href="#351">351</a>         checkWriteAccess(repositoryId, context.getUsername(), parentFolder);
<a class="jxr_linenumber" name="352" href="#352">352</a>         <strong class="jxr_keyword">return</strong> parentFolder;
<a class="jxr_linenumber" name="353" href="#353">353</a>     }
<a class="jxr_linenumber" name="354" href="#354">354</a> 
<a class="jxr_linenumber" name="355" href="#355">355</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="356" href="#356">356</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="357" href="#357">357</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="358" href="#358">358</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="359" href="#359">359</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="360" href="#360">360</a> <em class="jxr_comment">     * #createRelationship</em>
<a class="jxr_linenumber" name="361" href="#361">361</a> <em class="jxr_comment">     * (org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="362" href="#362">362</a> <em class="jxr_comment">     * java.lang.String, java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="363" href="#363">363</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="364" href="#364">364</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="365" href="#365">365</a>     @Override
<a class="jxr_linenumber" name="366" href="#366">366</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 class="jxr_linenumber" name="367" href="#367">367</a>             String targetId, List&lt;String&gt; policyIds, ExtensionsData extension) {
<a class="jxr_linenumber" name="368" href="#368">368</a> 
<a class="jxr_linenumber" name="369" href="#369">369</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a>[] sos = <strong class="jxr_keyword">super</strong>.createRelationship(context, repositoryId, sourceId, targetId, policyIds, extension);
<a class="jxr_linenumber" name="370" href="#370">370</a>         checkReadAccess(repositoryId, context.getUsername(), sos[0]);
<a class="jxr_linenumber" name="371" href="#371">371</a>         checkReadAccess(repositoryId, context.getUsername(), sos[1]);
<a class="jxr_linenumber" name="372" href="#372">372</a>         <strong class="jxr_keyword">return</strong> sos;
<a class="jxr_linenumber" name="373" href="#373">373</a>     }
<a class="jxr_linenumber" name="374" href="#374">374</a> 
<a class="jxr_linenumber" name="375" href="#375">375</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="376" href="#376">376</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="377" href="#377">377</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="378" href="#378">378</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="379" href="#379">379</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="380" href="#380">380</a> <em class="jxr_comment">     * #createPolicy(org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="381" href="#381">381</a> <em class="jxr_comment">     * java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="382" href="#382">382</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="383" href="#383">383</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="384" href="#384">384</a>     @Override
<a class="jxr_linenumber" name="385" href="#385">385</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, Acl addAces,
<a class="jxr_linenumber" name="386" href="#386">386</a>             Acl removeAces, List&lt;String&gt; policyIds, ExtensionsData extension) {
<a class="jxr_linenumber" name="387" href="#387">387</a> 
<a class="jxr_linenumber" name="388" href="#388">388</a>         <strong class="jxr_keyword">if</strong> (policyIds != <strong class="jxr_keyword">null</strong> &amp;&amp; policyIds.size() &gt; 0) {
<a class="jxr_linenumber" name="389" href="#389">389</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisConstraintException(<span class="jxr_string">"Applying policies to policies is not supported."</span>);
<a class="jxr_linenumber" name="390" href="#390">390</a>         }
<a class="jxr_linenumber" name="391" href="#391">391</a>         <strong class="jxr_keyword">if</strong> (folderId != <strong class="jxr_keyword">null</strong> &amp;&amp; folderId.length() &gt; 0) {
<a class="jxr_linenumber" name="392" href="#392">392</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisConstraintException(<span class="jxr_string">"Policies cannot be created in folders."</span>);
<a class="jxr_linenumber" name="393" href="#393">393</a>         }
<a class="jxr_linenumber" name="394" href="#394">394</a>         <strong class="jxr_keyword">if</strong> (addAces != <strong class="jxr_keyword">null</strong> || removeAces != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="395" href="#395">395</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisConstraintException(<span class="jxr_string">"ACLs on policies are not suported."</span>);
<a class="jxr_linenumber" name="396" href="#396">396</a>         }
<a class="jxr_linenumber" name="397" href="#397">397</a> 
<a class="jxr_linenumber" name="398" href="#398">398</a>         <strong class="jxr_keyword">super</strong>.createPolicy(context, repositoryId, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, extension);
<a class="jxr_linenumber" name="399" href="#399">399</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="400" href="#400">400</a>     }
<a class="jxr_linenumber" name="401" href="#401">401</a> 
<a class="jxr_linenumber" name="402" href="#402">402</a>     @Override
<a class="jxr_linenumber" name="403" href="#403">403</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> createItem(CallContext context, String repositoryId, Properties properties, String folderId,
<a class="jxr_linenumber" name="404" href="#404">404</a>             List&lt;String&gt; policyIds, Acl addAces, Acl removeAces, ExtensionsData extension) {
<a class="jxr_linenumber" name="405" href="#405">405</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> folder = <strong class="jxr_keyword">super</strong>.createItem(context, repositoryId, properties, folderId, policyIds, addAces,
<a class="jxr_linenumber" name="406" href="#406">406</a>                 removeAces, extension);
<a class="jxr_linenumber" name="407" href="#407">407</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> != folder) {
<a class="jxr_linenumber" name="408" href="#408">408</a>             checkWriteAccess(repositoryId, context.getUsername(), folder);
<a class="jxr_linenumber" name="409" href="#409">409</a>         }
<a class="jxr_linenumber" name="410" href="#410">410</a>         <strong class="jxr_keyword">return</strong> folder;
<a class="jxr_linenumber" name="411" href="#411">411</a>     }
<a class="jxr_linenumber" name="412" href="#412">412</a> 
<a class="jxr_linenumber" name="413" href="#413">413</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="414" href="#414">414</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="415" href="#415">415</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="416" href="#416">416</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="417" href="#417">417</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="418" href="#418">418</a> <em class="jxr_comment">     * #getAllowableActions</em>
<a class="jxr_linenumber" name="419" href="#419">419</a> <em class="jxr_comment">     * (org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="420" href="#420">420</a> <em class="jxr_comment">     * java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="421" href="#421">421</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="422" href="#422">422</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="423" href="#423">423</a>     @Override
<a class="jxr_linenumber" name="424" href="#424">424</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 class="jxr_linenumber" name="425" href="#425">425</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="426" href="#426">426</a> 
<a class="jxr_linenumber" name="427" href="#427">427</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.getAllowableActions(context, repositoryId, objectId, extension);
<a class="jxr_linenumber" name="428" href="#428">428</a>         checkReadAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="429" href="#429">429</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="430" href="#430">430</a>     }
<a class="jxr_linenumber" name="431" href="#431">431</a> 
<a class="jxr_linenumber" name="432" href="#432">432</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="433" href="#433">433</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="434" href="#434">434</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="435" href="#435">435</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="436" href="#436">436</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="437" href="#437">437</a> <em class="jxr_comment">     * #getObject(org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="438" href="#438">438</a> <em class="jxr_comment">     * java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="439" href="#439">439</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="440" href="#440">440</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="441" href="#441">441</a>     @Override
<a class="jxr_linenumber" name="442" href="#442">442</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 class="jxr_linenumber" name="443" href="#443">443</a> 
<a class="jxr_linenumber" name="444" href="#444">444</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.getObject(context, repositoryId, objectId, extension);
<a class="jxr_linenumber" name="445" href="#445">445</a>         checkReadAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="446" href="#446">446</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="447" href="#447">447</a>     }
<a class="jxr_linenumber" name="448" href="#448">448</a> 
<a class="jxr_linenumber" name="449" href="#449">449</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="450" href="#450">450</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="451" href="#451">451</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="452" href="#452">452</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="453" href="#453">453</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="454" href="#454">454</a> <em class="jxr_comment">     * #getProperties(org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="455" href="#455">455</a> <em class="jxr_comment">     * java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="456" href="#456">456</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="457" href="#457">457</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="458" href="#458">458</a>     @Override
<a class="jxr_linenumber" name="459" href="#459">459</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 class="jxr_linenumber" name="460" href="#460">460</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="461" href="#461">461</a> 
<a class="jxr_linenumber" name="462" href="#462">462</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.getProperties(context, repositoryId, objectId, extension);
<a class="jxr_linenumber" name="463" href="#463">463</a>         checkReadAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="464" href="#464">464</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="465" href="#465">465</a>     }
<a class="jxr_linenumber" name="466" href="#466">466</a> 
<a class="jxr_linenumber" name="467" href="#467">467</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="468" href="#468">468</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="469" href="#469">469</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="470" href="#470">470</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="471" href="#471">471</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="472" href="#472">472</a> <em class="jxr_comment">     * #getRenditions(org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="473" href="#473">473</a> <em class="jxr_comment">     * java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="474" href="#474">474</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="475" href="#475">475</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="476" href="#476">476</a>     @Override
<a class="jxr_linenumber" name="477" href="#477">477</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 class="jxr_linenumber" name="478" href="#478">478</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="479" href="#479">479</a> 
<a class="jxr_linenumber" name="480" href="#480">480</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.getRenditions(context, repositoryId, objectId, extension);
<a class="jxr_linenumber" name="481" href="#481">481</a>         checkReadAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="482" href="#482">482</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="483" href="#483">483</a>     }
<a class="jxr_linenumber" name="484" href="#484">484</a> 
<a class="jxr_linenumber" name="485" href="#485">485</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="486" href="#486">486</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="487" href="#487">487</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="488" href="#488">488</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="489" href="#489">489</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="490" href="#490">490</a> <em class="jxr_comment">     * #getObjectByPath</em>
<a class="jxr_linenumber" name="491" href="#491">491</a> <em class="jxr_comment">     * (org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="492" href="#492">492</a> <em class="jxr_comment">     * java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="493" href="#493">493</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="494" href="#494">494</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="495" href="#495">495</a>     @Override
<a class="jxr_linenumber" name="496" href="#496">496</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, 
<a class="jxr_linenumber" name="497" href="#497">497</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="498" href="#498">498</a> 
<a class="jxr_linenumber" name="499" href="#499">499</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.getObjectByPath(context, repositoryId, path, extension);
<a class="jxr_linenumber" name="500" href="#500">500</a>         checkReadAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="501" href="#501">501</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="502" href="#502">502</a>     }
<a class="jxr_linenumber" name="503" href="#503">503</a> 
<a class="jxr_linenumber" name="504" href="#504">504</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="505" href="#505">505</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="506" href="#506">506</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="507" href="#507">507</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="508" href="#508">508</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="509" href="#509">509</a> <em class="jxr_comment">     * #getContentStream</em>
<a class="jxr_linenumber" name="510" href="#510">510</a> <em class="jxr_comment">     * (org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="511" href="#511">511</a> <em class="jxr_comment">     * java.lang.String, java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="512" href="#512">512</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="513" href="#513">513</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="514" href="#514">514</a>     @Override
<a class="jxr_linenumber" name="515" href="#515">515</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 class="jxr_linenumber" name="516" href="#516">516</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="517" href="#517">517</a> 
<a class="jxr_linenumber" name="518" href="#518">518</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.getContentStream(context, repositoryId, objectId, streamId, extension);
<a class="jxr_linenumber" name="519" href="#519">519</a>         checkReadAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="520" href="#520">520</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="521" href="#521">521</a>     }
<a class="jxr_linenumber" name="522" href="#522">522</a> 
<a class="jxr_linenumber" name="523" href="#523">523</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="524" href="#524">524</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="525" href="#525">525</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="526" href="#526">526</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="527" href="#527">527</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="528" href="#528">528</a> <em class="jxr_comment">     * #updateProperties</em>
<a class="jxr_linenumber" name="529" href="#529">529</a> <em class="jxr_comment">     * (org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="530" href="#530">530</a> <em class="jxr_comment">     * java.lang.String, org.apache.chemistry.opencmis.commons.spi.Holder,</em>
<a class="jxr_linenumber" name="531" href="#531">531</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="532" href="#532">532</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="533" href="#533">533</a>     @Override
<a class="jxr_linenumber" name="534" href="#534">534</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 class="jxr_linenumber" name="535" href="#535">535</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="536" href="#536">536</a> 
<a class="jxr_linenumber" name="537" href="#537">537</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.updateProperties(context, repositoryId, objectId, extension);
<a class="jxr_linenumber" name="538" href="#538">538</a>         checkWriteAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="539" href="#539">539</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="540" href="#540">540</a>     }
<a class="jxr_linenumber" name="541" href="#541">541</a> 
<a class="jxr_linenumber" name="542" href="#542">542</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="543" href="#543">543</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="544" href="#544">544</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="545" href="#545">545</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="546" href="#546">546</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="547" href="#547">547</a> <em class="jxr_comment">     * #moveObject(org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="548" href="#548">548</a> <em class="jxr_comment">     * java.lang.String, org.apache.chemistry.opencmis.commons.spi.Holder,</em>
<a class="jxr_linenumber" name="549" href="#549">549</a> <em class="jxr_comment">     * java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="550" href="#550">550</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="551" href="#551">551</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="552" href="#552">552</a>     @Override
<a class="jxr_linenumber" name="553" href="#553">553</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 class="jxr_linenumber" name="554" href="#554">554</a>             String targetFolderId, String sourceFolderId, ExtensionsData extension) {
<a class="jxr_linenumber" name="555" href="#555">555</a> 
<a class="jxr_linenumber" name="556" href="#556">556</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a>[] sos = <strong class="jxr_keyword">super</strong>.moveObject(context, repositoryId, objectId, targetFolderId, sourceFolderId,
<a class="jxr_linenumber" name="557" href="#557">557</a>                 extension);
<a class="jxr_linenumber" name="558" href="#558">558</a>         checkReadAccess(repositoryId, context.getUsername(), sos[0]);
<a class="jxr_linenumber" name="559" href="#559">559</a>         checkReadAccess(repositoryId, context.getUsername(), sos[1]);
<a class="jxr_linenumber" name="560" href="#560">560</a>         checkWriteAccess(repositoryId, context.getUsername(), sos[2]);
<a class="jxr_linenumber" name="561" href="#561">561</a>         <strong class="jxr_keyword">return</strong> sos;
<a class="jxr_linenumber" name="562" href="#562">562</a>     }
<a class="jxr_linenumber" name="563" href="#563">563</a> 
<a class="jxr_linenumber" name="564" href="#564">564</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="565" href="#565">565</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="566" href="#566">566</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="567" href="#567">567</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="568" href="#568">568</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="569" href="#569">569</a> <em class="jxr_comment">     * #deleteObject(org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="570" href="#570">570</a> <em class="jxr_comment">     * java.lang.String, java.lang.String, java.lang.Boolean,</em>
<a class="jxr_linenumber" name="571" href="#571">571</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="572" href="#572">572</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="573" href="#573">573</a>     @Override
<a class="jxr_linenumber" name="574" href="#574">574</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 class="jxr_linenumber" name="575" href="#575">575</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="576" href="#576">576</a> 
<a class="jxr_linenumber" name="577" href="#577">577</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.deleteObject(context, repositoryId, objectId, allVersions, extension);
<a class="jxr_linenumber" name="578" href="#578">578</a>         checkWriteAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="579" href="#579">579</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="580" href="#580">580</a>     }
<a class="jxr_linenumber" name="581" href="#581">581</a> 
<a class="jxr_linenumber" name="582" href="#582">582</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="583" href="#583">583</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="584" href="#584">584</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="585" href="#585">585</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="586" href="#586">586</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="587" href="#587">587</a> <em class="jxr_comment">     * #deleteTree(org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="588" href="#588">588</a> <em class="jxr_comment">     * java.lang.String, java.lang.String, java.lang.Boolean,</em>
<a class="jxr_linenumber" name="589" href="#589">589</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.enums.UnfileObject,</em>
<a class="jxr_linenumber" name="590" href="#590">590</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="591" href="#591">591</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="592" href="#592">592</a>     @Override
<a class="jxr_linenumber" name="593" href="#593">593</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 class="jxr_linenumber" name="594" href="#594">594</a>             UnfileObject unfileObjects, ExtensionsData extension) {
<a class="jxr_linenumber" name="595" href="#595">595</a> 
<a class="jxr_linenumber" name="596" href="#596">596</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.deleteTree(context, repositoryId, folderId, allVersions, unfileObjects, extension);
<a class="jxr_linenumber" name="597" href="#597">597</a>         checkWriteAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="598" href="#598">598</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="599" href="#599">599</a>     }
<a class="jxr_linenumber" name="600" href="#600">600</a> 
<a class="jxr_linenumber" name="601" href="#601">601</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="602" href="#602">602</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="603" href="#603">603</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="604" href="#604">604</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="605" href="#605">605</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="606" href="#606">606</a> <em class="jxr_comment">     * #setContentStream</em>
<a class="jxr_linenumber" name="607" href="#607">607</a> <em class="jxr_comment">     * (org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="608" href="#608">608</a> <em class="jxr_comment">     * java.lang.String, org.apache.chemistry.opencmis.commons.spi.Holder,</em>
<a class="jxr_linenumber" name="609" href="#609">609</a> <em class="jxr_comment">     * java.lang.Boolean,</em>
<a class="jxr_linenumber" name="610" href="#610">610</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="611" href="#611">611</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="612" href="#612">612</a>     @Override
<a class="jxr_linenumber" name="613" href="#613">613</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 class="jxr_linenumber" name="614" href="#614">614</a>             Boolean overwriteFlag, ExtensionsData extension) {
<a class="jxr_linenumber" name="615" href="#615">615</a> 
<a class="jxr_linenumber" name="616" href="#616">616</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.setContentStream(context, repositoryId, objectId, overwriteFlag, extension);
<a class="jxr_linenumber" name="617" href="#617">617</a>         checkWriteAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="618" href="#618">618</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="619" href="#619">619</a>     }
<a class="jxr_linenumber" name="620" href="#620">620</a> 
<a class="jxr_linenumber" name="621" href="#621">621</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="622" href="#622">622</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="623" href="#623">623</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="624" href="#624">624</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="625" href="#625">625</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="626" href="#626">626</a> <em class="jxr_comment">     * #deleteContentStream</em>
<a class="jxr_linenumber" name="627" href="#627">627</a> <em class="jxr_comment">     * (org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="628" href="#628">628</a> <em class="jxr_comment">     * java.lang.String, org.apache.chemistry.opencmis.commons.spi.Holder,</em>
<a class="jxr_linenumber" name="629" href="#629">629</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="630" href="#630">630</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="631" href="#631">631</a>     @Override
<a class="jxr_linenumber" name="632" href="#632">632</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 class="jxr_linenumber" name="633" href="#633">633</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="634" href="#634">634</a> 
<a class="jxr_linenumber" name="635" href="#635">635</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.deleteContentStream(context, repositoryId, objectId, extension);
<a class="jxr_linenumber" name="636" href="#636">636</a>         checkWriteAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="637" href="#637">637</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="638" href="#638">638</a>     }
<a class="jxr_linenumber" name="639" href="#639">639</a> 
<a class="jxr_linenumber" name="640" href="#640">640</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="641" href="#641">641</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="642" href="#642">642</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="643" href="#643">643</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="644" href="#644">644</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="645" href="#645">645</a> <em class="jxr_comment">     * #checkOut(org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="646" href="#646">646</a> <em class="jxr_comment">     * java.lang.String, org.apache.chemistry.opencmis.commons.spi.Holder,</em>
<a class="jxr_linenumber" name="647" href="#647">647</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData,</em>
<a class="jxr_linenumber" name="648" href="#648">648</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.spi.Holder)</em>
<a class="jxr_linenumber" name="649" href="#649">649</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="650" href="#650">650</a>     @Override
<a class="jxr_linenumber" name="651" href="#651">651</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 class="jxr_linenumber" name="652" href="#652">652</a>             ExtensionsData extension, Holder&lt;Boolean&gt; contentCopied) {
<a class="jxr_linenumber" name="653" href="#653">653</a> 
<a class="jxr_linenumber" name="654" href="#654">654</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.checkOut(context, repositoryId, objectId, extension, contentCopied);
<a class="jxr_linenumber" name="655" href="#655">655</a>         checkWriteAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="656" href="#656">656</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="657" href="#657">657</a>     }
<a class="jxr_linenumber" name="658" href="#658">658</a> 
<a class="jxr_linenumber" name="659" href="#659">659</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="660" href="#660">660</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="661" href="#661">661</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="662" href="#662">662</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="663" href="#663">663</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="664" href="#664">664</a> <em class="jxr_comment">     * #cancelCheckOut(org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="665" href="#665">665</a> <em class="jxr_comment">     * java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="666" href="#666">666</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="667" href="#667">667</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="668" href="#668">668</a>     @Override
<a class="jxr_linenumber" name="669" href="#669">669</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 class="jxr_linenumber" name="670" href="#670">670</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="671" href="#671">671</a> 
<a class="jxr_linenumber" name="672" href="#672">672</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.cancelCheckOut(context, repositoryId, objectId, extension);
<a class="jxr_linenumber" name="673" href="#673">673</a>         checkWriteAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="674" href="#674">674</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="675" href="#675">675</a>     }
<a class="jxr_linenumber" name="676" href="#676">676</a> 
<a class="jxr_linenumber" name="677" href="#677">677</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="678" href="#678">678</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="679" href="#679">679</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="680" href="#680">680</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="681" href="#681">681</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="682" href="#682">682</a> <em class="jxr_comment">     * #checkIn(org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="683" href="#683">683</a> <em class="jxr_comment">     * java.lang.String, org.apache.chemistry.opencmis.commons.spi.Holder,</em>
<a class="jxr_linenumber" name="684" href="#684">684</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="685" href="#685">685</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="686" href="#686">686</a>     @Override
<a class="jxr_linenumber" name="687" href="#687">687</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, Acl addAces,
<a class="jxr_linenumber" name="688" href="#688">688</a>             Acl removeAces, List&lt;String&gt; policyIds, ExtensionsData extension) {
<a class="jxr_linenumber" name="689" href="#689">689</a> 
<a class="jxr_linenumber" name="690" href="#690">690</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.checkIn(context, repositoryId, objectId, addAces, removeAces, policyIds, extension);
<a class="jxr_linenumber" name="691" href="#691">691</a> 
<a class="jxr_linenumber" name="692" href="#692">692</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> != addAces || <strong class="jxr_keyword">null</strong> != removeAces) {
<a class="jxr_linenumber" name="693" href="#693">693</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(
<a class="jxr_linenumber" name="694" href="#694">694</a>                     <span class="jxr_string">"version specific ACLs are not supported, addAces and removeAces must be null."</span>);
<a class="jxr_linenumber" name="695" href="#695">695</a>         }
<a class="jxr_linenumber" name="696" href="#696">696</a> 
<a class="jxr_linenumber" name="697" href="#697">697</a>         checkWriteAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="698" href="#698">698</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="699" href="#699">699</a>     }
<a class="jxr_linenumber" name="700" href="#700">700</a> 
<a class="jxr_linenumber" name="701" href="#701">701</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="702" href="#702">702</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="703" href="#703">703</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="704" href="#704">704</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="705" href="#705">705</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="706" href="#706">706</a> <em class="jxr_comment">     * #getObjectOfLatestVersion</em>
<a class="jxr_linenumber" name="707" href="#707">707</a> <em class="jxr_comment">     * (org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="708" href="#708">708</a> <em class="jxr_comment">     * java.lang.String, java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="709" href="#709">709</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="710" href="#710">710</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="711" href="#711">711</a>     @Override
<a class="jxr_linenumber" name="712" href="#712">712</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 class="jxr_linenumber" name="713" href="#713">713</a>             String versionSeriesId, ExtensionsData extension) {
<a class="jxr_linenumber" name="714" href="#714">714</a> 
<a class="jxr_linenumber" name="715" href="#715">715</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.getObjectOfLatestVersion(context, repositoryId, objectId, versionSeriesId, extension);
<a class="jxr_linenumber" name="716" href="#716">716</a>         checkReadAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="717" href="#717">717</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="718" href="#718">718</a>     }
<a class="jxr_linenumber" name="719" href="#719">719</a> 
<a class="jxr_linenumber" name="720" href="#720">720</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="721" href="#721">721</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="722" href="#722">722</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="723" href="#723">723</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="724" href="#724">724</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="725" href="#725">725</a> <em class="jxr_comment">     * #getPropertiesOfLatestVersion</em>
<a class="jxr_linenumber" name="726" href="#726">726</a> <em class="jxr_comment">     * (org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="727" href="#727">727</a> <em class="jxr_comment">     * java.lang.String, java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="728" href="#728">728</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="729" href="#729">729</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="730" href="#730">730</a>     @Override
<a class="jxr_linenumber" name="731" href="#731">731</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 class="jxr_linenumber" name="732" href="#732">732</a>             String versionSeriesId, ExtensionsData extension) {
<a class="jxr_linenumber" name="733" href="#733">733</a> 
<a class="jxr_linenumber" name="734" href="#734">734</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.getPropertiesOfLatestVersion(context, repositoryId, objectId, versionSeriesId,
<a class="jxr_linenumber" name="735" href="#735">735</a>                 extension);
<a class="jxr_linenumber" name="736" href="#736">736</a>         checkReadAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="737" href="#737">737</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="738" href="#738">738</a>     }
<a class="jxr_linenumber" name="739" href="#739">739</a> 
<a class="jxr_linenumber" name="740" href="#740">740</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="741" href="#741">741</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="742" href="#742">742</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="743" href="#743">743</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="744" href="#744">744</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="745" href="#745">745</a> <em class="jxr_comment">     * #getAllVersions(org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="746" href="#746">746</a> <em class="jxr_comment">     * java.lang.String, java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="747" href="#747">747</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="748" href="#748">748</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="749" href="#749">749</a>     @Override
<a class="jxr_linenumber" name="750" href="#750">750</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 class="jxr_linenumber" name="751" href="#751">751</a>             String versionSeriesId, ExtensionsData extension) {
<a class="jxr_linenumber" name="752" href="#752">752</a> 
<a class="jxr_linenumber" name="753" href="#753">753</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.getAllVersions(context, repositoryId, objectId, versionSeriesId, extension);
<a class="jxr_linenumber" name="754" href="#754">754</a>         checkReadAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="755" href="#755">755</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="756" href="#756">756</a>     }
<a class="jxr_linenumber" name="757" href="#757">757</a> 
<a class="jxr_linenumber" name="758" href="#758">758</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="759" href="#759">759</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="760" href="#760">760</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="761" href="#761">761</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="762" href="#762">762</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="763" href="#763">763</a> <em class="jxr_comment">     * #query(org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="764" href="#764">764</a> <em class="jxr_comment">     * java.lang.String,</em>
<a class="jxr_linenumber" name="765" href="#765">765</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="766" href="#766">766</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="767" href="#767">767</a>     @Override
<a class="jxr_linenumber" name="768" href="#768">768</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> query(CallContext context, String repositoryId, ExtensionsData extension) {
<a class="jxr_linenumber" name="769" href="#769">769</a> 
<a class="jxr_linenumber" name="770" href="#770">770</a>         <strong class="jxr_keyword">super</strong>.query(context, repositoryId, extension);
<a class="jxr_linenumber" name="771" href="#771">771</a>     }
<a class="jxr_linenumber" name="772" href="#772">772</a> 
<a class="jxr_linenumber" name="773" href="#773">773</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="774" href="#774">774</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="775" href="#775">775</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="776" href="#776">776</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="777" href="#777">777</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="778" href="#778">778</a> <em class="jxr_comment">     * #getContentChanges</em>
<a class="jxr_linenumber" name="779" href="#779">779</a> <em class="jxr_comment">     * (org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="780" href="#780">780</a> <em class="jxr_comment">     * java.lang.String,</em>
<a class="jxr_linenumber" name="781" href="#781">781</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="782" href="#782">782</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="783" href="#783">783</a>     @Override
<a class="jxr_linenumber" name="784" href="#784">784</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> getContentChanges(CallContext context, String repositoryId, ExtensionsData extension) {
<a class="jxr_linenumber" name="785" href="#785">785</a> 
<a class="jxr_linenumber" name="786" href="#786">786</a>         <strong class="jxr_keyword">super</strong>.getContentChanges(context, repositoryId, extension);
<a class="jxr_linenumber" name="787" href="#787">787</a>     }
<a class="jxr_linenumber" name="788" href="#788">788</a> 
<a class="jxr_linenumber" name="789" href="#789">789</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="790" href="#790">790</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="791" href="#791">791</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="792" href="#792">792</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="793" href="#793">793</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="794" href="#794">794</a> <em class="jxr_comment">     * #addObjectToFolder</em>
<a class="jxr_linenumber" name="795" href="#795">795</a> <em class="jxr_comment">     * (org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="796" href="#796">796</a> <em class="jxr_comment">     * java.lang.String, java.lang.String, java.lang.String, java.lang.Boolean,</em>
<a class="jxr_linenumber" name="797" href="#797">797</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="798" href="#798">798</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="799" href="#799">799</a>     @Override
<a class="jxr_linenumber" name="800" href="#800">800</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 class="jxr_linenumber" name="801" href="#801">801</a>             Boolean allVersions, ExtensionsData extension) {
<a class="jxr_linenumber" name="802" href="#802">802</a> 
<a class="jxr_linenumber" name="803" href="#803">803</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a>[] sos = <strong class="jxr_keyword">super</strong>.addObjectToFolder(context, repositoryId, objectId, folderId, allVersions, extension);
<a class="jxr_linenumber" name="804" href="#804">804</a>         checkReadAccess(repositoryId, context.getUsername(), sos[0]);
<a class="jxr_linenumber" name="805" href="#805">805</a>         checkWriteAccess(repositoryId, context.getUsername(), sos[1]);
<a class="jxr_linenumber" name="806" href="#806">806</a>         <strong class="jxr_keyword">return</strong> sos;
<a class="jxr_linenumber" name="807" href="#807">807</a>     }
<a class="jxr_linenumber" name="808" href="#808">808</a> 
<a class="jxr_linenumber" name="809" href="#809">809</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="810" href="#810">810</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="811" href="#811">811</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="812" href="#812">812</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="813" href="#813">813</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="814" href="#814">814</a> <em class="jxr_comment">     * #removeObjectFromFolder</em>
<a class="jxr_linenumber" name="815" href="#815">815</a> <em class="jxr_comment">     * (org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="816" href="#816">816</a> <em class="jxr_comment">     * java.lang.String, java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="817" href="#817">817</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="818" href="#818">818</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="819" href="#819">819</a>     @Override
<a class="jxr_linenumber" name="820" href="#820">820</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 class="jxr_linenumber" name="821" href="#821">821</a>             String folderId, ExtensionsData extension) {
<a class="jxr_linenumber" name="822" href="#822">822</a> 
<a class="jxr_linenumber" name="823" href="#823">823</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a>[] sos = <strong class="jxr_keyword">super</strong>.removeObjectFromFolder(context, repositoryId, objectId, folderId, extension);
<a class="jxr_linenumber" name="824" href="#824">824</a>         checkWriteAccess(repositoryId, context.getUsername(), sos[0]);
<a class="jxr_linenumber" name="825" href="#825">825</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> != folderId) {
<a class="jxr_linenumber" name="826" href="#826">826</a>             checkWriteAccess(repositoryId, context.getUsername(), sos[1]);
<a class="jxr_linenumber" name="827" href="#827">827</a>         }
<a class="jxr_linenumber" name="828" href="#828">828</a>         <strong class="jxr_keyword">return</strong> sos;
<a class="jxr_linenumber" name="829" href="#829">829</a>     }
<a class="jxr_linenumber" name="830" href="#830">830</a> 
<a class="jxr_linenumber" name="831" href="#831">831</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="832" href="#832">832</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="833" href="#833">833</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="834" href="#834">834</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="835" href="#835">835</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="836" href="#836">836</a> <em class="jxr_comment">     * #getObjectRelationships</em>
<a class="jxr_linenumber" name="837" href="#837">837</a> <em class="jxr_comment">     * (org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="838" href="#838">838</a> <em class="jxr_comment">     * java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="839" href="#839">839</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.enums.RelationshipDirection,</em>
<a class="jxr_linenumber" name="840" href="#840">840</a> <em class="jxr_comment">     * java.lang.String,</em>
<a class="jxr_linenumber" name="841" href="#841">841</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="842" href="#842">842</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="843" href="#843">843</a>     @Override
<a class="jxr_linenumber" name="844" href="#844">844</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 class="jxr_linenumber" name="845" href="#845">845</a>             RelationshipDirection relationshipDirection, String typeId, ExtensionsData extension) {
<a class="jxr_linenumber" name="846" href="#846">846</a> 
<a class="jxr_linenumber" name="847" href="#847">847</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.getObjectRelationships(context, repositoryId, objectId, relationshipDirection, typeId,
<a class="jxr_linenumber" name="848" href="#848">848</a>                 extension);
<a class="jxr_linenumber" name="849" href="#849">849</a>         checkReadAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="850" href="#850">850</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="851" href="#851">851</a>     }
<a class="jxr_linenumber" name="852" href="#852">852</a> 
<a class="jxr_linenumber" name="853" href="#853">853</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="854" href="#854">854</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="855" href="#855">855</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="856" href="#856">856</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="857" href="#857">857</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="858" href="#858">858</a> <em class="jxr_comment">     * #getAcl(org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="859" href="#859">859</a> <em class="jxr_comment">     * java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="860" href="#860">860</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="861" href="#861">861</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="862" href="#862">862</a>     @Override
<a class="jxr_linenumber" name="863" href="#863">863</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 class="jxr_linenumber" name="864" href="#864">864</a> 
<a class="jxr_linenumber" name="865" href="#865">865</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.getAcl(context, repositoryId, objectId, extension);
<a class="jxr_linenumber" name="866" href="#866">866</a>         checkReadAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="867" href="#867">867</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="868" href="#868">868</a>     }
<a class="jxr_linenumber" name="869" href="#869">869</a> 
<a class="jxr_linenumber" name="870" href="#870">870</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="871" href="#871">871</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="872" href="#872">872</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="873" href="#873">873</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="874" href="#874">874</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="875" href="#875">875</a> <em class="jxr_comment">     * #applyAcl(org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="876" href="#876">876</a> <em class="jxr_comment">     * java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="877" href="#877">877</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.enums.AclPropagation,</em>
<a class="jxr_linenumber" name="878" href="#878">878</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="879" href="#879">879</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="880" href="#880">880</a>     @Override
<a class="jxr_linenumber" name="881" href="#881">881</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 class="jxr_linenumber" name="882" href="#882">882</a>             AclPropagation aclPropagation, ExtensionsData extension) {
<a class="jxr_linenumber" name="883" href="#883">883</a> 
<a class="jxr_linenumber" name="884" href="#884">884</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.applyAcl(context, repositoryId, objectId, aclPropagation, extension);
<a class="jxr_linenumber" name="885" href="#885">885</a>         checkAllAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="886" href="#886">886</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="887" href="#887">887</a>     }
<a class="jxr_linenumber" name="888" href="#888">888</a> 
<a class="jxr_linenumber" name="889" href="#889">889</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="890" href="#890">890</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="891" href="#891">891</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="892" href="#892">892</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="893" href="#893">893</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="894" href="#894">894</a> <em class="jxr_comment">     * #applyPolicy(org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="895" href="#895">895</a> <em class="jxr_comment">     * java.lang.String, java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="896" href="#896">896</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="897" href="#897">897</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="898" href="#898">898</a>     @Override
<a class="jxr_linenumber" name="899" href="#899">899</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 class="jxr_linenumber" name="900" href="#900">900</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="901" href="#901">901</a> 
<a class="jxr_linenumber" name="902" href="#902">902</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a>[] sos = <strong class="jxr_keyword">super</strong>.applyPolicy(context, repositoryId, policyId, objectId, extension);
<a class="jxr_linenumber" name="903" href="#903">903</a>         <strong class="jxr_keyword">if</strong> (!(sos[0] instanceof Policy)) {
<a class="jxr_linenumber" name="904" href="#904">904</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"applyPolicy failed, "</span> + policyId + <span class="jxr_string">" is not a policy id"</span>);
<a class="jxr_linenumber" name="905" href="#905">905</a>         }
<a class="jxr_linenumber" name="906" href="#906">906</a>         <strong class="jxr_keyword">if</strong> (sos[1] instanceof Policy) {
<a class="jxr_linenumber" name="907" href="#907">907</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"applyPolicy failed, "</span> + objectId
<a class="jxr_linenumber" name="908" href="#908">908</a>                     + <span class="jxr_string">" is a policy id. Applying policies to policies is not supported."</span>);
<a class="jxr_linenumber" name="909" href="#909">909</a>         }
<a class="jxr_linenumber" name="910" href="#910">910</a>         checkAllAccess(repositoryId, context.getUsername(), sos[1]);
<a class="jxr_linenumber" name="911" href="#911">911</a>         <strong class="jxr_keyword">return</strong> sos;
<a class="jxr_linenumber" name="912" href="#912">912</a>     }
<a class="jxr_linenumber" name="913" href="#913">913</a> 
<a class="jxr_linenumber" name="914" href="#914">914</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="915" href="#915">915</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="916" href="#916">916</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="917" href="#917">917</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="918" href="#918">918</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="919" href="#919">919</a> <em class="jxr_comment">     * #removePolicy(org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="920" href="#920">920</a> <em class="jxr_comment">     * java.lang.String, java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="921" href="#921">921</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="922" href="#922">922</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="923" href="#923">923</a>     @Override
<a class="jxr_linenumber" name="924" href="#924">924</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 class="jxr_linenumber" name="925" href="#925">925</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="926" href="#926">926</a> 
<a class="jxr_linenumber" name="927" href="#927">927</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a>[] sos = <strong class="jxr_keyword">super</strong>.removePolicy(context, repositoryId, policyId, objectId, extension);
<a class="jxr_linenumber" name="928" href="#928">928</a>         checkAllAccess(repositoryId, context.getUsername(), sos[1]);
<a class="jxr_linenumber" name="929" href="#929">929</a>         <strong class="jxr_keyword">return</strong> sos;
<a class="jxr_linenumber" name="930" href="#930">930</a>     }
<a class="jxr_linenumber" name="931" href="#931">931</a> 
<a class="jxr_linenumber" name="932" href="#932">932</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="933" href="#933">933</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="934" href="#934">934</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="935" href="#935">935</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="936" href="#936">936</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="937" href="#937">937</a> <em class="jxr_comment">     * #getAppliedPolicies</em>
<a class="jxr_linenumber" name="938" href="#938">938</a> <em class="jxr_comment">     * (org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="939" href="#939">939</a> <em class="jxr_comment">     * java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="940" href="#940">940</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="941" href="#941">941</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="942" href="#942">942</a>     @Override
<a class="jxr_linenumber" name="943" href="#943">943</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 class="jxr_linenumber" name="944" href="#944">944</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="945" href="#945">945</a> 
<a class="jxr_linenumber" name="946" href="#946">946</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.getAppliedPolicies(context, repositoryId, objectId, extension);
<a class="jxr_linenumber" name="947" href="#947">947</a>         checkReadAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="948" href="#948">948</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="949" href="#949">949</a>     }
<a class="jxr_linenumber" name="950" href="#950">950</a> 
<a class="jxr_linenumber" name="951" href="#951">951</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="952" href="#952">952</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="953" href="#953">953</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="954" href="#954">954</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="955" href="#955">955</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="956" href="#956">956</a> <em class="jxr_comment">     * #create(org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="957" href="#957">957</a> <em class="jxr_comment">     * java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="958" href="#958">958</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="959" href="#959">959</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="960" href="#960">960</a>     @Override
<a class="jxr_linenumber" name="961" href="#961">961</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 class="jxr_linenumber" name="962" href="#962">962</a> 
<a class="jxr_linenumber" name="963" href="#963">963</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.create(context, repositoryId, folderId, extension);
<a class="jxr_linenumber" name="964" href="#964">964</a>         checkWriteAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="965" href="#965">965</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="966" href="#966">966</a>     }
<a class="jxr_linenumber" name="967" href="#967">967</a> 
<a class="jxr_linenumber" name="968" href="#968">968</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="969" href="#969">969</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="970" href="#970">970</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="971" href="#971">971</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="972" href="#972">972</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="973" href="#973">973</a> <em class="jxr_comment">     * #deleteObjectOrCancelCheckOut</em>
<a class="jxr_linenumber" name="974" href="#974">974</a> <em class="jxr_comment">     * (org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="975" href="#975">975</a> <em class="jxr_comment">     * java.lang.String, java.lang.String,</em>
<a class="jxr_linenumber" name="976" href="#976">976</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.commons.data.ExtensionsData)</em>
<a class="jxr_linenumber" name="977" href="#977">977</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="978" href="#978">978</a>     @Override
<a class="jxr_linenumber" name="979" href="#979">979</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 class="jxr_linenumber" name="980" href="#980">980</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="981" href="#981">981</a> 
<a class="jxr_linenumber" name="982" href="#982">982</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.deleteObjectOrCancelCheckOut(context, repositoryId, objectId, extension);
<a class="jxr_linenumber" name="983" href="#983">983</a>         checkWriteAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="984" href="#984">984</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="985" href="#985">985</a>     }
<a class="jxr_linenumber" name="986" href="#986">986</a> 
<a class="jxr_linenumber" name="987" href="#987">987</a>     <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="988" href="#988">988</a> <em class="jxr_comment">     * (non-Javadoc)</em>
<a class="jxr_linenumber" name="989" href="#989">989</a> <em class="jxr_comment">     * </em>
<a class="jxr_linenumber" name="990" href="#990">990</a> <em class="jxr_comment">     * @see</em>
<a class="jxr_linenumber" name="991" href="#991">991</a> <em class="jxr_comment">     * org.apache.chemistry.opencmis.inmemory.server.BaseServiceValidatorImpl</em>
<a class="jxr_linenumber" name="992" href="#992">992</a> <em class="jxr_comment">     * #applyAcl(org.apache.chemistry.opencmis.commons.server.CallContext,</em>
<a class="jxr_linenumber" name="993" href="#993">993</a> <em class="jxr_comment">     * java.lang.String, java.lang.String)</em>
<a class="jxr_linenumber" name="994" href="#994">994</a> <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="995" href="#995">995</a>     @Override
<a class="jxr_linenumber" name="996" href="#996">996</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 class="jxr_linenumber" name="997" href="#997">997</a> 
<a class="jxr_linenumber" name="998" href="#998">998</a>         <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so = <strong class="jxr_keyword">super</strong>.applyAcl(context, repositoryId, objectId);
<a class="jxr_linenumber" name="999" href="#999">999</a>         checkAllAccess(repositoryId, context.getUsername(), so);
<a class="jxr_linenumber" name="1000" href="#1000">1000</a>         <strong class="jxr_keyword">return</strong> so;
<a class="jxr_linenumber" name="1001" href="#1001">1001</a>     }
<a class="jxr_linenumber" name="1002" href="#1002">1002</a> 
<a class="jxr_linenumber" name="1003" href="#1003">1003</a>     @Override
<a class="jxr_linenumber" name="1004" href="#1004">1004</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> createType(CallContext callContext, String repositoryId, TypeDefinition type, ExtensionsData extension) {
<a class="jxr_linenumber" name="1005" href="#1005">1005</a>         <strong class="jxr_keyword">super</strong>.createType(callContext, repositoryId, type, extension);
<a class="jxr_linenumber" name="1006" href="#1006">1006</a>     }
<a class="jxr_linenumber" name="1007" href="#1007">1007</a> 
<a class="jxr_linenumber" name="1008" href="#1008">1008</a>     @Override
<a class="jxr_linenumber" name="1009" href="#1009">1009</a>     <strong class="jxr_keyword">public</strong> TypeDefinition updateType(CallContext callContext, String repositoryId, TypeDefinition type,
<a class="jxr_linenumber" name="1010" href="#1010">1010</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="1011" href="#1011">1011</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisNotSupportedException(<span class="jxr_string">"Updating a type definition is not supported."</span>);
<a class="jxr_linenumber" name="1012" href="#1012">1012</a>     }
<a class="jxr_linenumber" name="1013" href="#1013">1013</a> 
<a class="jxr_linenumber" name="1014" href="#1014">1014</a>     @Override
<a class="jxr_linenumber" name="1015" href="#1015">1015</a>     <strong class="jxr_keyword">public</strong> TypeDefinition deleteType(CallContext callContext, String repositoryId, String typeId,
<a class="jxr_linenumber" name="1016" href="#1016">1016</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="1017" href="#1017">1017</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.deleteType(callContext, repositoryId, typeId, extension);
<a class="jxr_linenumber" name="1018" href="#1018">1018</a>     }
<a class="jxr_linenumber" name="1019" href="#1019">1019</a> 
<a class="jxr_linenumber" name="1020" href="#1020">1020</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/impl/ObjectStoreImpl.html">ObjectStoreImpl</a> getObjectStore(String repositoryId) {
<a class="jxr_linenumber" name="1021" href="#1021">1021</a>         <strong class="jxr_keyword">return</strong> (ObjectStoreImpl) fStoreManager.getObjectStore(repositoryId);
<a class="jxr_linenumber" name="1022" href="#1022">1022</a>     }
<a class="jxr_linenumber" name="1023" href="#1023">1023</a> 
<a class="jxr_linenumber" name="1024" href="#1024">1024</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> checkReadAccess(String repositoryId, String principalId, <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so) {
<a class="jxr_linenumber" name="1025" href="#1025">1025</a>         getObjectStore(repositoryId).checkReadAccess(principalId, so);
<a class="jxr_linenumber" name="1026" href="#1026">1026</a>     }
<a class="jxr_linenumber" name="1027" href="#1027">1027</a> 
<a class="jxr_linenumber" name="1028" href="#1028">1028</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> checkWriteAccess(String repositoryId, String principalId, <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so) {
<a class="jxr_linenumber" name="1029" href="#1029">1029</a>         getObjectStore(repositoryId).checkWriteAccess(principalId, so);
<a class="jxr_linenumber" name="1030" href="#1030">1030</a>     }
<a class="jxr_linenumber" name="1031" href="#1031">1031</a> 
<a class="jxr_linenumber" name="1032" href="#1032">1032</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> checkAllAccess(String repositoryId, String principalId, <a href="../../../../../../../org/apache/chemistry/opencmis/inmemory/storedobj/api/StoredObject.html">StoredObject</a> so) {
<a class="jxr_linenumber" name="1033" href="#1033">1033</a>         getObjectStore(repositoryId).checkAllAccess(principalId, so);
<a class="jxr_linenumber" name="1034" href="#1034">1034</a>     }
<a class="jxr_linenumber" name="1035" href="#1035">1035</a> 
<a class="jxr_linenumber" name="1036" href="#1036">1036</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

