<!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>AbstractCmisServiceWrapper xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../../apidocs/org/apache/chemistry/opencmis/server/support/wrapper/AbstractCmisServiceWrapper.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.server.support.wrapper;
<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.math.BigInteger;
<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="23" href="#23">23</a>  
<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Acl;
<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.AllowableActions;
<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.BulkUpdateObjectIdAndChangeToken;
<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ContentStream;
<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ExtensionsData;
<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.FailedToDeleteData;
<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectData;
<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectInFolderContainer;
<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectInFolderList;
<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectList;
<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectParentData;
<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Properties;
<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.RenditionData;
<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer;
<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionList;
<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.AclPropagation;
<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.RelationshipDirection;
<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.UnfileObject;
<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.VersioningState;
<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.server.CallContext;
<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.server.CmisService;
<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.server.ObjectInfo;
<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.server.ProgressControlCmisService;
<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.spi.Holder;
<a class="jxr_linenumber" name="51" href="#51">51</a>  
<a class="jxr_linenumber" name="52" href="#52">52</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="53" href="#53">53</a>  <em class="jxr_javadoccomment"> * An abstract CMIS service wrapper.</em>
<a class="jxr_linenumber" name="54" href="#54">54</a>  <em class="jxr_javadoccomment"> * &lt;p&gt;</em>
<a class="jxr_linenumber" name="55" href="#55">55</a>  <em class="jxr_javadoccomment"> * All service wrappers managed by {@link CmisServiceWrapperManager} must be</em>
<a class="jxr_linenumber" name="56" href="#56">56</a>  <em class="jxr_javadoccomment"> * derived from this class and must provide a constructor that takes a</em>
<a class="jxr_linenumber" name="57" href="#57">57</a>  <em class="jxr_javadoccomment"> * {@link CmisService} object as the sole parameter.</em>
<a class="jxr_linenumber" name="58" href="#58">58</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="59" href="#59">59</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../../org/apache/chemistry/opencmis/server/support/wrapper/AbstractCmisServiceWrapper.html">AbstractCmisServiceWrapper</a> <strong class="jxr_keyword">implements</strong> CallContextAwareCmisService, ProgressControlCmisService {
<a class="jxr_linenumber" name="60" href="#60">60</a>  
<a class="jxr_linenumber" name="61" href="#61">61</a>      <strong class="jxr_keyword">private</strong> CmisService service;
<a class="jxr_linenumber" name="62" href="#62">62</a>      <strong class="jxr_keyword">private</strong> CallContext context;
<a class="jxr_linenumber" name="63" href="#63">63</a>  
<a class="jxr_linenumber" name="64" href="#64">64</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../../org/apache/chemistry/opencmis/server/support/wrapper/AbstractCmisServiceWrapper.html">AbstractCmisServiceWrapper</a>(CmisService service) {
<a class="jxr_linenumber" name="65" href="#65">65</a>          <strong class="jxr_keyword">if</strong> (service == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="66" href="#66">66</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Service must be set!"</span>);
<a class="jxr_linenumber" name="67" href="#67">67</a>          }
<a class="jxr_linenumber" name="68" href="#68">68</a>  
<a class="jxr_linenumber" name="69" href="#69">69</a>          <strong class="jxr_keyword">this</strong>.service = service;
<a class="jxr_linenumber" name="70" href="#70">70</a>      }
<a class="jxr_linenumber" name="71" href="#71">71</a>  
<a class="jxr_linenumber" name="72" href="#72">72</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="73" href="#73">73</a>  <em class="jxr_javadoccomment">     * Initializes the wrapper with a set of parameters.</em>
<a class="jxr_linenumber" name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="75" href="#75">75</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> initialize(Object[] params) {
<a class="jxr_linenumber" name="76" href="#76">76</a>      }
<a class="jxr_linenumber" name="77" href="#77">77</a>  
<a class="jxr_linenumber" name="78" href="#78">78</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="79" href="#79">79</a>  <em class="jxr_javadoccomment">     * Returns the wrapped service or the next service wrapper.</em>
<a class="jxr_linenumber" name="80" href="#80">80</a>  <em class="jxr_javadoccomment">     * </em>
<a class="jxr_linenumber" name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     * @return the wrapped service</em>
<a class="jxr_linenumber" name="82" href="#82">82</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="83" href="#83">83</a>      <strong class="jxr_keyword">public</strong> CmisService getWrappedService() {
<a class="jxr_linenumber" name="84" href="#84">84</a>          <strong class="jxr_keyword">return</strong> service;
<a class="jxr_linenumber" name="85" href="#85">85</a>      }
<a class="jxr_linenumber" name="86" href="#86">86</a>  
<a class="jxr_linenumber" name="87" href="#87">87</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     * Sets the call context and propagates it down to the next service wrapper</em>
<a class="jxr_linenumber" name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     * or service if it implements the {@link CallContextAwareCmisService}</em>
<a class="jxr_linenumber" name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     * interface.</em>
<a class="jxr_linenumber" name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="92" href="#92">92</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setCallContext(CallContext callContext) {
<a class="jxr_linenumber" name="93" href="#93">93</a>          <strong class="jxr_keyword">this</strong>.context = callContext;
<a class="jxr_linenumber" name="94" href="#94">94</a>  
<a class="jxr_linenumber" name="95" href="#95">95</a>          <strong class="jxr_keyword">if</strong> (service instanceof CallContextAwareCmisService) {
<a class="jxr_linenumber" name="96" href="#96">96</a>              ((<a href="../../../../../../../org/apache/chemistry/opencmis/server/support/wrapper/CallContextAwareCmisService.html">CallContextAwareCmisService</a>) service).setCallContext(callContext);
<a class="jxr_linenumber" name="97" href="#97">97</a>          }
<a class="jxr_linenumber" name="98" href="#98">98</a>      }
<a class="jxr_linenumber" name="99" href="#99">99</a>  
<a class="jxr_linenumber" name="100" href="#100">100</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="101" href="#101">101</a> <em class="jxr_javadoccomment">     * Gets the current call context.</em>
<a class="jxr_linenumber" name="102" href="#102">102</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="103" href="#103">103</a>     <strong class="jxr_keyword">public</strong> CallContext getCallContext() {
<a class="jxr_linenumber" name="104" href="#104">104</a>         <strong class="jxr_keyword">return</strong> context;
<a class="jxr_linenumber" name="105" href="#105">105</a>     }
<a class="jxr_linenumber" name="106" href="#106">106</a> 
<a class="jxr_linenumber" name="107" href="#107">107</a>     <em class="jxr_comment">// --- processing ---</em>
<a class="jxr_linenumber" name="108" href="#108">108</a> 
<a class="jxr_linenumber" name="109" href="#109">109</a>     <strong class="jxr_keyword">public</strong> ProgressControlCmisService.Progress beforeServiceCall() {
<a class="jxr_linenumber" name="110" href="#110">110</a>         <strong class="jxr_keyword">if</strong> (service instanceof ProgressControlCmisService) {
<a class="jxr_linenumber" name="111" href="#111">111</a>             <strong class="jxr_keyword">return</strong> ((ProgressControlCmisService) service).beforeServiceCall();
<a class="jxr_linenumber" name="112" href="#112">112</a>         }
<a class="jxr_linenumber" name="113" href="#113">113</a> 
<a class="jxr_linenumber" name="114" href="#114">114</a>         <strong class="jxr_keyword">return</strong> ProgressControlCmisService.Progress.CONTINUE;
<a class="jxr_linenumber" name="115" href="#115">115</a>     }
<a class="jxr_linenumber" name="116" href="#116">116</a> 
<a class="jxr_linenumber" name="117" href="#117">117</a>     <strong class="jxr_keyword">public</strong> ProgressControlCmisService.Progress afterServiceCall() {
<a class="jxr_linenumber" name="118" href="#118">118</a>         <strong class="jxr_keyword">if</strong> (service instanceof ProgressControlCmisService) {
<a class="jxr_linenumber" name="119" href="#119">119</a>             <strong class="jxr_keyword">return</strong> ((ProgressControlCmisService) service).afterServiceCall();
<a class="jxr_linenumber" name="120" href="#120">120</a>         }
<a class="jxr_linenumber" name="121" href="#121">121</a> 
<a class="jxr_linenumber" name="122" href="#122">122</a>         <strong class="jxr_keyword">return</strong> ProgressControlCmisService.Progress.CONTINUE;
<a class="jxr_linenumber" name="123" href="#123">123</a>     }
<a class="jxr_linenumber" name="124" href="#124">124</a> 
<a class="jxr_linenumber" name="125" href="#125">125</a>     <em class="jxr_comment">// --- service methods ---</em>
<a class="jxr_linenumber" name="126" href="#126">126</a> 
<a class="jxr_linenumber" name="127" href="#127">127</a>     <strong class="jxr_keyword">public</strong> List&lt;RepositoryInfo&gt; getRepositoryInfos(ExtensionsData extension) {
<a class="jxr_linenumber" name="128" href="#128">128</a>         <strong class="jxr_keyword">return</strong> service.getRepositoryInfos(extension);
<a class="jxr_linenumber" name="129" href="#129">129</a>     }
<a class="jxr_linenumber" name="130" href="#130">130</a> 
<a class="jxr_linenumber" name="131" href="#131">131</a>     <strong class="jxr_keyword">public</strong> RepositoryInfo getRepositoryInfo(String repositoryId, ExtensionsData extension) {
<a class="jxr_linenumber" name="132" href="#132">132</a>         <strong class="jxr_keyword">return</strong> service.getRepositoryInfo(repositoryId, extension);
<a class="jxr_linenumber" name="133" href="#133">133</a>     }
<a class="jxr_linenumber" name="134" href="#134">134</a> 
<a class="jxr_linenumber" name="135" href="#135">135</a>     <strong class="jxr_keyword">public</strong> TypeDefinitionList getTypeChildren(String repositoryId, String typeId, Boolean includePropertyDefinitions,
<a class="jxr_linenumber" name="136" href="#136">136</a>             BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
<a class="jxr_linenumber" name="137" href="#137">137</a>         <strong class="jxr_keyword">return</strong> service
<a class="jxr_linenumber" name="138" href="#138">138</a>                 .getTypeChildren(repositoryId, typeId, includePropertyDefinitions, maxItems, skipCount, extension);
<a class="jxr_linenumber" name="139" href="#139">139</a>     }
<a class="jxr_linenumber" name="140" href="#140">140</a> 
<a class="jxr_linenumber" name="141" href="#141">141</a>     <strong class="jxr_keyword">public</strong> List&lt;TypeDefinitionContainer&gt; getTypeDescendants(String repositoryId, String typeId, BigInteger depth,
<a class="jxr_linenumber" name="142" href="#142">142</a>             Boolean includePropertyDefinitions, ExtensionsData extension) {
<a class="jxr_linenumber" name="143" href="#143">143</a>         <strong class="jxr_keyword">return</strong> service.getTypeDescendants(repositoryId, typeId, depth, includePropertyDefinitions, extension);
<a class="jxr_linenumber" name="144" href="#144">144</a>     }
<a class="jxr_linenumber" name="145" href="#145">145</a> 
<a class="jxr_linenumber" name="146" href="#146">146</a>     <strong class="jxr_keyword">public</strong> TypeDefinition getTypeDefinition(String repositoryId, String typeId, ExtensionsData extension) {
<a class="jxr_linenumber" name="147" href="#147">147</a>         <strong class="jxr_keyword">return</strong> service.getTypeDefinition(repositoryId, typeId, extension);
<a class="jxr_linenumber" name="148" href="#148">148</a>     }
<a class="jxr_linenumber" name="149" href="#149">149</a> 
<a class="jxr_linenumber" name="150" href="#150">150</a>     <strong class="jxr_keyword">public</strong> TypeDefinition createType(String repositoryId, TypeDefinition type, ExtensionsData extension) {
<a class="jxr_linenumber" name="151" href="#151">151</a>         <strong class="jxr_keyword">return</strong> service.createType(repositoryId, type, extension);
<a class="jxr_linenumber" name="152" href="#152">152</a>     }
<a class="jxr_linenumber" name="153" href="#153">153</a> 
<a class="jxr_linenumber" name="154" href="#154">154</a>     <strong class="jxr_keyword">public</strong> TypeDefinition updateType(String repositoryId, TypeDefinition type, ExtensionsData extension) {
<a class="jxr_linenumber" name="155" href="#155">155</a>         <strong class="jxr_keyword">return</strong> service.updateType(repositoryId, type, extension);
<a class="jxr_linenumber" name="156" href="#156">156</a>     }
<a class="jxr_linenumber" name="157" href="#157">157</a> 
<a class="jxr_linenumber" name="158" href="#158">158</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> deleteType(String repositoryId, String typeId, ExtensionsData extension) {
<a class="jxr_linenumber" name="159" href="#159">159</a>         service.deleteType(repositoryId, typeId, extension);
<a class="jxr_linenumber" name="160" href="#160">160</a>     }
<a class="jxr_linenumber" name="161" href="#161">161</a> 
<a class="jxr_linenumber" name="162" href="#162">162</a>     <strong class="jxr_keyword">public</strong> ObjectInFolderList getChildren(String repositoryId, String folderId, String filter, String orderBy,
<a class="jxr_linenumber" name="163" href="#163">163</a>             Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
<a class="jxr_linenumber" name="164" href="#164">164</a>             Boolean includePathSegment, BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
<a class="jxr_linenumber" name="165" href="#165">165</a>         <strong class="jxr_keyword">return</strong> service.getChildren(repositoryId, folderId, filter, orderBy, includeAllowableActions,
<a class="jxr_linenumber" name="166" href="#166">166</a>                 includeRelationships, renditionFilter, includePathSegment, maxItems, skipCount, extension);
<a class="jxr_linenumber" name="167" href="#167">167</a>     }
<a class="jxr_linenumber" name="168" href="#168">168</a> 
<a class="jxr_linenumber" name="169" href="#169">169</a>     <strong class="jxr_keyword">public</strong> List&lt;ObjectInFolderContainer&gt; getDescendants(String repositoryId, String folderId, BigInteger depth,
<a class="jxr_linenumber" name="170" href="#170">170</a>             String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
<a class="jxr_linenumber" name="171" href="#171">171</a>             String renditionFilter, Boolean includePathSegment, ExtensionsData extension) {
<a class="jxr_linenumber" name="172" href="#172">172</a>         <strong class="jxr_keyword">return</strong> service.getDescendants(repositoryId, folderId, depth, filter, includeAllowableActions,
<a class="jxr_linenumber" name="173" href="#173">173</a>                 includeRelationships, renditionFilter, includePathSegment, extension);
<a class="jxr_linenumber" name="174" href="#174">174</a>     }
<a class="jxr_linenumber" name="175" href="#175">175</a> 
<a class="jxr_linenumber" name="176" href="#176">176</a>     <strong class="jxr_keyword">public</strong> List&lt;ObjectInFolderContainer&gt; getFolderTree(String repositoryId, String folderId, BigInteger depth,
<a class="jxr_linenumber" name="177" href="#177">177</a>             String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
<a class="jxr_linenumber" name="178" href="#178">178</a>             String renditionFilter, Boolean includePathSegment, ExtensionsData extension) {
<a class="jxr_linenumber" name="179" href="#179">179</a>         <strong class="jxr_keyword">return</strong> service.getFolderTree(repositoryId, folderId, depth, filter, includeAllowableActions,
<a class="jxr_linenumber" name="180" href="#180">180</a>                 includeRelationships, renditionFilter, includePathSegment, extension);
<a class="jxr_linenumber" name="181" href="#181">181</a>     }
<a class="jxr_linenumber" name="182" href="#182">182</a> 
<a class="jxr_linenumber" name="183" href="#183">183</a>     <strong class="jxr_keyword">public</strong> List&lt;ObjectParentData&gt; getObjectParents(String repositoryId, String objectId, String filter,
<a class="jxr_linenumber" name="184" href="#184">184</a>             Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
<a class="jxr_linenumber" name="185" href="#185">185</a>             Boolean includeRelativePathSegment, ExtensionsData extension) {
<a class="jxr_linenumber" name="186" href="#186">186</a>         <strong class="jxr_keyword">return</strong> service.getObjectParents(repositoryId, objectId, filter, includeAllowableActions, includeRelationships,
<a class="jxr_linenumber" name="187" href="#187">187</a>                 renditionFilter, includeRelativePathSegment, extension);
<a class="jxr_linenumber" name="188" href="#188">188</a>     }
<a class="jxr_linenumber" name="189" href="#189">189</a> 
<a class="jxr_linenumber" name="190" href="#190">190</a>     <strong class="jxr_keyword">public</strong> ObjectData getFolderParent(String repositoryId, String folderId, String filter, ExtensionsData extension) {
<a class="jxr_linenumber" name="191" href="#191">191</a>         <strong class="jxr_keyword">return</strong> service.getFolderParent(repositoryId, folderId, filter, extension);
<a class="jxr_linenumber" name="192" href="#192">192</a>     }
<a class="jxr_linenumber" name="193" href="#193">193</a> 
<a class="jxr_linenumber" name="194" href="#194">194</a>     <strong class="jxr_keyword">public</strong> ObjectList getCheckedOutDocs(String repositoryId, String folderId, String filter, String orderBy,
<a class="jxr_linenumber" name="195" href="#195">195</a>             Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
<a class="jxr_linenumber" name="196" href="#196">196</a>             BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
<a class="jxr_linenumber" name="197" href="#197">197</a>         <strong class="jxr_keyword">return</strong> service.getCheckedOutDocs(repositoryId, folderId, filter, orderBy, includeAllowableActions,
<a class="jxr_linenumber" name="198" href="#198">198</a>                 includeRelationships, renditionFilter, maxItems, skipCount, extension);
<a class="jxr_linenumber" name="199" href="#199">199</a>     }
<a class="jxr_linenumber" name="200" href="#200">200</a> 
<a class="jxr_linenumber" name="201" href="#201">201</a>     <strong class="jxr_keyword">public</strong> String createDocument(String repositoryId, Properties properties, String folderId,
<a class="jxr_linenumber" name="202" href="#202">202</a>             ContentStream contentStream, VersioningState versioningState, List&lt;String&gt; policies, Acl addAces,
<a class="jxr_linenumber" name="203" href="#203">203</a>             Acl removeAces, ExtensionsData extension) {
<a class="jxr_linenumber" name="204" href="#204">204</a>         <strong class="jxr_keyword">return</strong> service.createDocument(repositoryId, properties, folderId, contentStream, versioningState, policies,
<a class="jxr_linenumber" name="205" href="#205">205</a>                 addAces, removeAces, extension);
<a class="jxr_linenumber" name="206" href="#206">206</a>     }
<a class="jxr_linenumber" name="207" href="#207">207</a> 
<a class="jxr_linenumber" name="208" href="#208">208</a>     <strong class="jxr_keyword">public</strong> String createDocumentFromSource(String repositoryId, String sourceId, Properties properties,
<a class="jxr_linenumber" name="209" href="#209">209</a>             String folderId, VersioningState versioningState, List&lt;String&gt; policies, Acl addAces, Acl removeAces,
<a class="jxr_linenumber" name="210" href="#210">210</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="211" href="#211">211</a>         <strong class="jxr_keyword">return</strong> service.createDocumentFromSource(repositoryId, sourceId, properties, folderId, versioningState,
<a class="jxr_linenumber" name="212" href="#212">212</a>                 policies, addAces, removeAces, extension);
<a class="jxr_linenumber" name="213" href="#213">213</a>     }
<a class="jxr_linenumber" name="214" href="#214">214</a> 
<a class="jxr_linenumber" name="215" href="#215">215</a>     <strong class="jxr_keyword">public</strong> String createFolder(String repositoryId, Properties properties, String folderId, List&lt;String&gt; policies,
<a class="jxr_linenumber" name="216" href="#216">216</a>             Acl addAces, Acl removeAces, ExtensionsData extension) {
<a class="jxr_linenumber" name="217" href="#217">217</a>         <strong class="jxr_keyword">return</strong> service.createFolder(repositoryId, properties, folderId, policies, addAces, removeAces, extension);
<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>     <strong class="jxr_keyword">public</strong> String createRelationship(String repositoryId, Properties properties, List&lt;String&gt; policies, Acl addAces,
<a class="jxr_linenumber" name="221" href="#221">221</a>             Acl removeAces, ExtensionsData extension) {
<a class="jxr_linenumber" name="222" href="#222">222</a>         <strong class="jxr_keyword">return</strong> service.createRelationship(repositoryId, properties, policies, addAces, removeAces, extension);
<a class="jxr_linenumber" name="223" href="#223">223</a>     }
<a class="jxr_linenumber" name="224" href="#224">224</a> 
<a class="jxr_linenumber" name="225" href="#225">225</a>     <strong class="jxr_keyword">public</strong> String createPolicy(String repositoryId, Properties properties, String folderId, List&lt;String&gt; policies,
<a class="jxr_linenumber" name="226" href="#226">226</a>             Acl addAces, Acl removeAces, ExtensionsData extension) {
<a class="jxr_linenumber" name="227" href="#227">227</a>         <strong class="jxr_keyword">return</strong> service.createPolicy(repositoryId, properties, folderId, policies, addAces, removeAces, extension);
<a class="jxr_linenumber" name="228" href="#228">228</a>     }
<a class="jxr_linenumber" name="229" href="#229">229</a> 
<a class="jxr_linenumber" name="230" href="#230">230</a>     <strong class="jxr_keyword">public</strong> String createItem(String repositoryId, Properties properties, String folderId, List&lt;String&gt; policies,
<a class="jxr_linenumber" name="231" href="#231">231</a>             Acl addAces, Acl removeAces, ExtensionsData extension) {
<a class="jxr_linenumber" name="232" href="#232">232</a>         <strong class="jxr_keyword">return</strong> service.createItem(repositoryId, properties, folderId, policies, addAces, removeAces, extension);
<a class="jxr_linenumber" name="233" href="#233">233</a>     }
<a class="jxr_linenumber" name="234" href="#234">234</a> 
<a class="jxr_linenumber" name="235" href="#235">235</a>     <strong class="jxr_keyword">public</strong> AllowableActions getAllowableActions(String repositoryId, String objectId, ExtensionsData extension) {
<a class="jxr_linenumber" name="236" href="#236">236</a>         <strong class="jxr_keyword">return</strong> service.getAllowableActions(repositoryId, objectId, extension);
<a class="jxr_linenumber" name="237" href="#237">237</a>     }
<a class="jxr_linenumber" name="238" href="#238">238</a> 
<a class="jxr_linenumber" name="239" href="#239">239</a>     <strong class="jxr_keyword">public</strong> ObjectData getObject(String repositoryId, String objectId, String filter, Boolean includeAllowableActions,
<a class="jxr_linenumber" name="240" href="#240">240</a>             IncludeRelationships includeRelationships, String renditionFilter, Boolean includePolicyIds,
<a class="jxr_linenumber" name="241" href="#241">241</a>             Boolean includeAcl, ExtensionsData extension) {
<a class="jxr_linenumber" name="242" href="#242">242</a>         <strong class="jxr_keyword">return</strong> service.getObject(repositoryId, objectId, filter, includeAllowableActions, includeRelationships,
<a class="jxr_linenumber" name="243" href="#243">243</a>                 renditionFilter, includePolicyIds, includeAcl, extension);
<a class="jxr_linenumber" name="244" href="#244">244</a>     }
<a class="jxr_linenumber" name="245" href="#245">245</a> 
<a class="jxr_linenumber" name="246" href="#246">246</a>     <strong class="jxr_keyword">public</strong> Properties getProperties(String repositoryId, String objectId, String filter, ExtensionsData extension) {
<a class="jxr_linenumber" name="247" href="#247">247</a>         <strong class="jxr_keyword">return</strong> service.getProperties(repositoryId, objectId, filter, extension);
<a class="jxr_linenumber" name="248" href="#248">248</a>     }
<a class="jxr_linenumber" name="249" href="#249">249</a> 
<a class="jxr_linenumber" name="250" href="#250">250</a>     <strong class="jxr_keyword">public</strong> List&lt;RenditionData&gt; getRenditions(String repositoryId, String objectId, String renditionFilter,
<a class="jxr_linenumber" name="251" href="#251">251</a>             BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
<a class="jxr_linenumber" name="252" href="#252">252</a>         <strong class="jxr_keyword">return</strong> service.getRenditions(repositoryId, objectId, renditionFilter, maxItems, skipCount, extension);
<a class="jxr_linenumber" name="253" href="#253">253</a>     }
<a class="jxr_linenumber" name="254" href="#254">254</a> 
<a class="jxr_linenumber" name="255" href="#255">255</a>     <strong class="jxr_keyword">public</strong> ObjectData getObjectByPath(String repositoryId, String path, String filter, Boolean includeAllowableActions,
<a class="jxr_linenumber" name="256" href="#256">256</a>             IncludeRelationships includeRelationships, String renditionFilter, Boolean includePolicyIds,
<a class="jxr_linenumber" name="257" href="#257">257</a>             Boolean includeAcl, ExtensionsData extension) {
<a class="jxr_linenumber" name="258" href="#258">258</a>         <strong class="jxr_keyword">return</strong> service.getObjectByPath(repositoryId, path, filter, includeAllowableActions, includeRelationships,
<a class="jxr_linenumber" name="259" href="#259">259</a>                 renditionFilter, includePolicyIds, includeAcl, extension);
<a class="jxr_linenumber" name="260" href="#260">260</a>     }
<a class="jxr_linenumber" name="261" href="#261">261</a> 
<a class="jxr_linenumber" name="262" href="#262">262</a>     <strong class="jxr_keyword">public</strong> ContentStream getContentStream(String repositoryId, String objectId, String streamId, BigInteger offset,
<a class="jxr_linenumber" name="263" href="#263">263</a>             BigInteger length, ExtensionsData extension) {
<a class="jxr_linenumber" name="264" href="#264">264</a>         <strong class="jxr_keyword">return</strong> service.getContentStream(repositoryId, objectId, streamId, offset, length, extension);
<a class="jxr_linenumber" name="265" href="#265">265</a>     }
<a class="jxr_linenumber" name="266" href="#266">266</a> 
<a class="jxr_linenumber" name="267" href="#267">267</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateProperties(String repositoryId, Holder&lt;String&gt; objectId, Holder&lt;String&gt; changeToken,
<a class="jxr_linenumber" name="268" href="#268">268</a>             Properties properties, ExtensionsData extension) {
<a class="jxr_linenumber" name="269" href="#269">269</a>         service.updateProperties(repositoryId, objectId, changeToken, properties, extension);
<a class="jxr_linenumber" name="270" href="#270">270</a>     }
<a class="jxr_linenumber" name="271" href="#271">271</a> 
<a class="jxr_linenumber" name="272" href="#272">272</a>     <strong class="jxr_keyword">public</strong> List&lt;BulkUpdateObjectIdAndChangeToken&gt; bulkUpdateProperties(String repositoryId,
<a class="jxr_linenumber" name="273" href="#273">273</a>             List&lt;BulkUpdateObjectIdAndChangeToken&gt; objectIdsAndChangeTokens, Properties properties,
<a class="jxr_linenumber" name="274" href="#274">274</a>             List&lt;String&gt; addSecondaryTypeIds, List&lt;String&gt; removeSecondaryTypeIds, ExtensionsData extension) {
<a class="jxr_linenumber" name="275" href="#275">275</a>         <strong class="jxr_keyword">return</strong> service.bulkUpdateProperties(repositoryId, objectIdsAndChangeTokens, properties, addSecondaryTypeIds,
<a class="jxr_linenumber" name="276" href="#276">276</a>                 removeSecondaryTypeIds, extension);
<a class="jxr_linenumber" name="277" href="#277">277</a>     }
<a class="jxr_linenumber" name="278" href="#278">278</a> 
<a class="jxr_linenumber" name="279" href="#279">279</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> moveObject(String repositoryId, Holder&lt;String&gt; objectId, String targetFolderId, String sourceFolderId,
<a class="jxr_linenumber" name="280" href="#280">280</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="281" href="#281">281</a>         service.moveObject(repositoryId, objectId, targetFolderId, sourceFolderId, extension);
<a class="jxr_linenumber" name="282" href="#282">282</a>     }
<a class="jxr_linenumber" name="283" href="#283">283</a> 
<a class="jxr_linenumber" name="284" href="#284">284</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> deleteObject(String repositoryId, String objectId, Boolean allVersions, ExtensionsData extension) {
<a class="jxr_linenumber" name="285" href="#285">285</a>         service.deleteObject(repositoryId, objectId, allVersions, extension);
<a class="jxr_linenumber" name="286" href="#286">286</a>     }
<a class="jxr_linenumber" name="287" href="#287">287</a> 
<a class="jxr_linenumber" name="288" href="#288">288</a>     <strong class="jxr_keyword">public</strong> FailedToDeleteData deleteTree(String repositoryId, String folderId, Boolean allVersions,
<a class="jxr_linenumber" name="289" href="#289">289</a>             UnfileObject unfileObjects, Boolean continueOnFailure, ExtensionsData extension) {
<a class="jxr_linenumber" name="290" href="#290">290</a>         <strong class="jxr_keyword">return</strong> service.deleteTree(repositoryId, folderId, allVersions, unfileObjects, continueOnFailure, extension);
<a class="jxr_linenumber" name="291" href="#291">291</a>     }
<a class="jxr_linenumber" name="292" href="#292">292</a> 
<a class="jxr_linenumber" name="293" href="#293">293</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setContentStream(String repositoryId, Holder&lt;String&gt; objectId, Boolean overwriteFlag,
<a class="jxr_linenumber" name="294" href="#294">294</a>             Holder&lt;String&gt; changeToken, ContentStream contentStream, ExtensionsData extension) {
<a class="jxr_linenumber" name="295" href="#295">295</a>         service.setContentStream(repositoryId, objectId, overwriteFlag, changeToken, contentStream, extension);
<a class="jxr_linenumber" name="296" href="#296">296</a>     }
<a class="jxr_linenumber" name="297" href="#297">297</a> 
<a class="jxr_linenumber" name="298" href="#298">298</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> deleteContentStream(String repositoryId, Holder&lt;String&gt; objectId, Holder&lt;String&gt; changeToken,
<a class="jxr_linenumber" name="299" href="#299">299</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="300" href="#300">300</a>         service.deleteContentStream(repositoryId, objectId, changeToken, extension);
<a class="jxr_linenumber" name="301" href="#301">301</a>     }
<a class="jxr_linenumber" name="302" href="#302">302</a> 
<a class="jxr_linenumber" name="303" href="#303">303</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> appendContentStream(String repositoryId, Holder&lt;String&gt; objectId, Holder&lt;String&gt; changeToken,
<a class="jxr_linenumber" name="304" href="#304">304</a>             ContentStream contentStream, <strong class="jxr_keyword">boolean</strong> isLastChunk, ExtensionsData extension) {
<a class="jxr_linenumber" name="305" href="#305">305</a>         service.appendContentStream(repositoryId, objectId, changeToken, contentStream, isLastChunk, extension);
<a class="jxr_linenumber" name="306" href="#306">306</a>     }
<a class="jxr_linenumber" name="307" href="#307">307</a> 
<a class="jxr_linenumber" name="308" href="#308">308</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> checkOut(String repositoryId, Holder&lt;String&gt; objectId, ExtensionsData extension,
<a class="jxr_linenumber" name="309" href="#309">309</a>             Holder&lt;Boolean&gt; contentCopied) {
<a class="jxr_linenumber" name="310" href="#310">310</a>         service.checkOut(repositoryId, objectId, extension, contentCopied);
<a class="jxr_linenumber" name="311" href="#311">311</a>     }
<a class="jxr_linenumber" name="312" href="#312">312</a> 
<a class="jxr_linenumber" name="313" href="#313">313</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> cancelCheckOut(String repositoryId, String objectId, ExtensionsData extension) {
<a class="jxr_linenumber" name="314" href="#314">314</a>         service.cancelCheckOut(repositoryId, objectId, extension);
<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>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> checkIn(String repositoryId, Holder&lt;String&gt; objectId, Boolean major, Properties properties,
<a class="jxr_linenumber" name="318" href="#318">318</a>             ContentStream contentStream, String checkinComment, List&lt;String&gt; policies, Acl addAces, Acl removeAces,
<a class="jxr_linenumber" name="319" href="#319">319</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="320" href="#320">320</a>         service.checkIn(repositoryId, objectId, major, properties, contentStream, checkinComment, policies, addAces,
<a class="jxr_linenumber" name="321" href="#321">321</a>                 removeAces, extension);
<a class="jxr_linenumber" name="322" href="#322">322</a>     }
<a class="jxr_linenumber" name="323" href="#323">323</a> 
<a class="jxr_linenumber" name="324" href="#324">324</a>     <strong class="jxr_keyword">public</strong> ObjectData getObjectOfLatestVersion(String repositoryId, String objectId, String versionSeriesId,
<a class="jxr_linenumber" name="325" href="#325">325</a>             Boolean major, String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
<a class="jxr_linenumber" name="326" href="#326">326</a>             String renditionFilter, Boolean includePolicyIds, Boolean includeAcl, ExtensionsData extension) {
<a class="jxr_linenumber" name="327" href="#327">327</a>         <strong class="jxr_keyword">return</strong> service
<a class="jxr_linenumber" name="328" href="#328">328</a>                 .getObjectOfLatestVersion(repositoryId, objectId, versionSeriesId, major, filter,
<a class="jxr_linenumber" name="329" href="#329">329</a>                         includeAllowableActions, includeRelationships, renditionFilter, includePolicyIds, includeAcl,
<a class="jxr_linenumber" name="330" href="#330">330</a>                         extension);
<a class="jxr_linenumber" name="331" href="#331">331</a>     }
<a class="jxr_linenumber" name="332" href="#332">332</a> 
<a class="jxr_linenumber" name="333" href="#333">333</a>     <strong class="jxr_keyword">public</strong> Properties getPropertiesOfLatestVersion(String repositoryId, String objectId, String versionSeriesId,
<a class="jxr_linenumber" name="334" href="#334">334</a>             Boolean major, String filter, ExtensionsData extension) {
<a class="jxr_linenumber" name="335" href="#335">335</a>         <strong class="jxr_keyword">return</strong> service.getPropertiesOfLatestVersion(repositoryId, objectId, versionSeriesId, major, filter, extension);
<a class="jxr_linenumber" name="336" href="#336">336</a>     }
<a class="jxr_linenumber" name="337" href="#337">337</a> 
<a class="jxr_linenumber" name="338" href="#338">338</a>     <strong class="jxr_keyword">public</strong> List&lt;ObjectData&gt; getAllVersions(String repositoryId, String objectId, String versionSeriesId, String filter,
<a class="jxr_linenumber" name="339" href="#339">339</a>             Boolean includeAllowableActions, ExtensionsData extension) {
<a class="jxr_linenumber" name="340" href="#340">340</a>         <strong class="jxr_keyword">return</strong> service.getAllVersions(repositoryId, objectId, versionSeriesId, filter, includeAllowableActions,
<a class="jxr_linenumber" name="341" href="#341">341</a>                 extension);
<a class="jxr_linenumber" name="342" href="#342">342</a>     }
<a class="jxr_linenumber" name="343" href="#343">343</a> 
<a class="jxr_linenumber" name="344" href="#344">344</a>     <strong class="jxr_keyword">public</strong> ObjectList query(String repositoryId, String statement, Boolean searchAllVersions,
<a class="jxr_linenumber" name="345" href="#345">345</a>             Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
<a class="jxr_linenumber" name="346" href="#346">346</a>             BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
<a class="jxr_linenumber" name="347" href="#347">347</a>         <strong class="jxr_keyword">return</strong> service.query(repositoryId, statement, searchAllVersions, includeAllowableActions, includeRelationships,
<a class="jxr_linenumber" name="348" href="#348">348</a>                 renditionFilter, maxItems, skipCount, extension);
<a class="jxr_linenumber" name="349" href="#349">349</a>     }
<a class="jxr_linenumber" name="350" href="#350">350</a> 
<a class="jxr_linenumber" name="351" href="#351">351</a>     <strong class="jxr_keyword">public</strong> ObjectList getContentChanges(String repositoryId, Holder&lt;String&gt; changeLogToken, Boolean includeProperties,
<a class="jxr_linenumber" name="352" href="#352">352</a>             String filter, Boolean includePolicyIds, Boolean includeAcl, BigInteger maxItems, ExtensionsData extension) {
<a class="jxr_linenumber" name="353" href="#353">353</a>         <strong class="jxr_keyword">return</strong> service.getContentChanges(repositoryId, changeLogToken, includeProperties, filter, includePolicyIds,
<a class="jxr_linenumber" name="354" href="#354">354</a>                 includeAcl, maxItems, extension);
<a class="jxr_linenumber" name="355" href="#355">355</a>     }
<a class="jxr_linenumber" name="356" href="#356">356</a> 
<a class="jxr_linenumber" name="357" href="#357">357</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addObjectToFolder(String repositoryId, String objectId, String folderId, Boolean allVersions,
<a class="jxr_linenumber" name="358" href="#358">358</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="359" href="#359">359</a>         service.addObjectToFolder(repositoryId, objectId, folderId, allVersions, extension);
<a class="jxr_linenumber" name="360" href="#360">360</a>     }
<a class="jxr_linenumber" name="361" href="#361">361</a> 
<a class="jxr_linenumber" name="362" href="#362">362</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeObjectFromFolder(String repositoryId, String objectId, String folderId, ExtensionsData extension) {
<a class="jxr_linenumber" name="363" href="#363">363</a>         service.removeObjectFromFolder(repositoryId, objectId, folderId, extension);
<a class="jxr_linenumber" name="364" href="#364">364</a>     }
<a class="jxr_linenumber" name="365" href="#365">365</a> 
<a class="jxr_linenumber" name="366" href="#366">366</a>     <strong class="jxr_keyword">public</strong> ObjectList getObjectRelationships(String repositoryId, String objectId, Boolean includeSubRelationshipTypes,
<a class="jxr_linenumber" name="367" href="#367">367</a>             RelationshipDirection relationshipDirection, String typeId, String filter, Boolean includeAllowableActions,
<a class="jxr_linenumber" name="368" href="#368">368</a>             BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
<a class="jxr_linenumber" name="369" href="#369">369</a>         <strong class="jxr_keyword">return</strong> service.getObjectRelationships(repositoryId, objectId, includeSubRelationshipTypes,
<a class="jxr_linenumber" name="370" href="#370">370</a>                 relationshipDirection, typeId, filter, includeAllowableActions, maxItems, skipCount, extension);
<a class="jxr_linenumber" name="371" href="#371">371</a>     }
<a class="jxr_linenumber" name="372" href="#372">372</a> 
<a class="jxr_linenumber" name="373" href="#373">373</a>     <strong class="jxr_keyword">public</strong> Acl getAcl(String repositoryId, String objectId, Boolean onlyBasicPermissions, ExtensionsData extension) {
<a class="jxr_linenumber" name="374" href="#374">374</a>         <strong class="jxr_keyword">return</strong> service.getAcl(repositoryId, objectId, onlyBasicPermissions, extension);
<a class="jxr_linenumber" name="375" href="#375">375</a>     }
<a class="jxr_linenumber" name="376" href="#376">376</a> 
<a class="jxr_linenumber" name="377" href="#377">377</a>     <strong class="jxr_keyword">public</strong> Acl applyAcl(String repositoryId, String objectId, Acl addAces, Acl removeAces,
<a class="jxr_linenumber" name="378" href="#378">378</a>             AclPropagation aclPropagation, ExtensionsData extension) {
<a class="jxr_linenumber" name="379" href="#379">379</a>         <strong class="jxr_keyword">return</strong> service.applyAcl(repositoryId, objectId, addAces, removeAces, aclPropagation, extension);
<a class="jxr_linenumber" name="380" href="#380">380</a>     }
<a class="jxr_linenumber" name="381" href="#381">381</a> 
<a class="jxr_linenumber" name="382" href="#382">382</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> applyPolicy(String repositoryId, String policyId, String objectId, ExtensionsData extension) {
<a class="jxr_linenumber" name="383" href="#383">383</a>         service.applyPolicy(repositoryId, policyId, objectId, extension);
<a class="jxr_linenumber" name="384" href="#384">384</a>     }
<a class="jxr_linenumber" name="385" href="#385">385</a> 
<a class="jxr_linenumber" name="386" href="#386">386</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removePolicy(String repositoryId, String policyId, String objectId, ExtensionsData extension) {
<a class="jxr_linenumber" name="387" href="#387">387</a>         service.removePolicy(repositoryId, policyId, objectId, extension);
<a class="jxr_linenumber" name="388" href="#388">388</a>     }
<a class="jxr_linenumber" name="389" href="#389">389</a> 
<a class="jxr_linenumber" name="390" href="#390">390</a>     <strong class="jxr_keyword">public</strong> List&lt;ObjectData&gt; getAppliedPolicies(String repositoryId, String objectId, String filter,
<a class="jxr_linenumber" name="391" href="#391">391</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="392" href="#392">392</a>         <strong class="jxr_keyword">return</strong> service.getAppliedPolicies(repositoryId, objectId, filter, extension);
<a class="jxr_linenumber" name="393" href="#393">393</a>     }
<a class="jxr_linenumber" name="394" href="#394">394</a> 
<a class="jxr_linenumber" name="395" href="#395">395</a>     <strong class="jxr_keyword">public</strong> String create(String repositoryId, Properties properties, String folderId, ContentStream contentStream,
<a class="jxr_linenumber" name="396" href="#396">396</a>             VersioningState versioningState, List&lt;String&gt; policies, ExtensionsData extension) {
<a class="jxr_linenumber" name="397" href="#397">397</a>         <strong class="jxr_keyword">return</strong> service.create(repositoryId, properties, folderId, contentStream, versioningState, policies, extension);
<a class="jxr_linenumber" name="398" href="#398">398</a>     }
<a class="jxr_linenumber" name="399" href="#399">399</a> 
<a class="jxr_linenumber" name="400" href="#400">400</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> deleteObjectOrCancelCheckOut(String repositoryId, String objectId, Boolean allVersions,
<a class="jxr_linenumber" name="401" href="#401">401</a>             ExtensionsData extension) {
<a class="jxr_linenumber" name="402" href="#402">402</a>         service.deleteObjectOrCancelCheckOut(repositoryId, objectId, allVersions, extension);
<a class="jxr_linenumber" name="403" href="#403">403</a>     }
<a class="jxr_linenumber" name="404" href="#404">404</a> 
<a class="jxr_linenumber" name="405" href="#405">405</a>     <strong class="jxr_keyword">public</strong> Acl applyAcl(String repositoryId, String objectId, Acl aces, AclPropagation aclPropagation) {
<a class="jxr_linenumber" name="406" href="#406">406</a>         <strong class="jxr_keyword">return</strong> service.applyAcl(repositoryId, objectId, aces, aclPropagation);
<a class="jxr_linenumber" name="407" href="#407">407</a>     }
<a class="jxr_linenumber" name="408" href="#408">408</a> 
<a class="jxr_linenumber" name="409" href="#409">409</a>     <strong class="jxr_keyword">public</strong> ObjectInfo getObjectInfo(String repositoryId, String objectId) {
<a class="jxr_linenumber" name="410" href="#410">410</a>         <strong class="jxr_keyword">return</strong> service.getObjectInfo(repositoryId, objectId);
<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>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> close() {
<a class="jxr_linenumber" name="414" href="#414">414</a>         service.close();
<a class="jxr_linenumber" name="415" href="#415">415</a>         context = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="416" href="#416">416</a>     }
<a class="jxr_linenumber" name="417" href="#417">417</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

