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

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> * <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.chemistry.opencmis.client.runtime;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.io.Serializable;
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.TreeSet;
<a name="25" href="#25">25</a>  
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.OperationContext;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.PropertyIds;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
<a name="29" href="#29">29</a>  
<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment">/**</em>
<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment"> * {@link OperationContext} implementation.</em>
<a name="32" href="#32">32</a>  <em class="jxr_javadoccomment"> */</em>
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/chemistry/opencmis/client/runtime/OperationContextImpl.html">OperationContextImpl</a> implements OperationContext, Serializable {
<a name="34" href="#34">34</a>  
<a name="35" href="#35">35</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String PROPERTIES_STAR = <span class="jxr_string">"*"</span>;
<a name="36" href="#36">36</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String RENDITION_NONE = <span class="jxr_string">"cmis:none"</span>;
<a name="37" href="#37">37</a>  
<a name="38" href="#38">38</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> serialVersionUID = 1L;
<a name="39" href="#39">39</a>  
<a name="40" href="#40">40</a>      <strong class="jxr_keyword">private</strong> TreeSet&lt;String&gt; filter;
<a name="41" href="#41">41</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> includeAcls;
<a name="42" href="#42">42</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> includeAllowableActions;
<a name="43" href="#43">43</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> includePolicies;
<a name="44" href="#44">44</a>      <strong class="jxr_keyword">private</strong> IncludeRelationships includeRelationships;
<a name="45" href="#45">45</a>      <strong class="jxr_keyword">private</strong> TreeSet&lt;String&gt; renditionFilter;
<a name="46" href="#46">46</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> includePathSegments;
<a name="47" href="#47">47</a>      <strong class="jxr_keyword">private</strong> String orderBy;
<a name="48" href="#48">48</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> cacheEnabled;
<a name="49" href="#49">49</a>      <strong class="jxr_keyword">private</strong> String cacheKey;
<a name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> maxItemsPerPage;
<a name="51" href="#51">51</a>  
<a name="52" href="#52">52</a>      <em class="jxr_javadoccomment">/**</em>
<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment">     * Default constructor.</em>
<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment">     */</em>
<a name="55" href="#55">55</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/client/runtime/OperationContextImpl.html">OperationContextImpl</a>() {
<a name="56" href="#56">56</a>          setFilter(<strong class="jxr_keyword">null</strong>);
<a name="57" href="#57">57</a>          setIncludeAcls(false);
<a name="58" href="#58">58</a>          setIncludeAllowableActions(<strong class="jxr_keyword">true</strong>);
<a name="59" href="#59">59</a>          setIncludePolicies(false);
<a name="60" href="#60">60</a>          setIncludeRelationships(IncludeRelationships.NONE);
<a name="61" href="#61">61</a>          setRenditionFilter(<strong class="jxr_keyword">null</strong>);
<a name="62" href="#62">62</a>          setIncludePathSegments(<strong class="jxr_keyword">true</strong>);
<a name="63" href="#63">63</a>          setOrderBy(<strong class="jxr_keyword">null</strong>);
<a name="64" href="#64">64</a>          setCacheEnabled(false);
<a name="65" href="#65">65</a>          generateCacheKey();
<a name="66" href="#66">66</a>  
<a name="67" href="#67">67</a>          setMaxItemsPerPage(100); <em class="jxr_comment">// default</em>
<a name="68" href="#68">68</a>      }
<a name="69" href="#69">69</a>  
<a name="70" href="#70">70</a>      <em class="jxr_javadoccomment">/**</em>
<a name="71" href="#71">71</a>  <em class="jxr_javadoccomment">     * Copy constructor.</em>
<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment">     */</em>
<a name="73" href="#73">73</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/client/runtime/OperationContextImpl.html">OperationContextImpl</a>(OperationContext source) {
<a name="74" href="#74">74</a>          setFilter(source.getFilter());
<a name="75" href="#75">75</a>          setIncludeAcls(source.isIncludeAcls());
<a name="76" href="#76">76</a>          setIncludeAllowableActions(source.isIncludeAllowableActions());
<a name="77" href="#77">77</a>          setIncludePolicies(source.isIncludePolicies());
<a name="78" href="#78">78</a>          setIncludeRelationships(source.getIncludeRelationships());
<a name="79" href="#79">79</a>          setRenditionFilter(source.getRenditionFilter());
<a name="80" href="#80">80</a>          setIncludePathSegments(source.isIncludePathSegments());
<a name="81" href="#81">81</a>          setOrderBy(source.getOrderBy());
<a name="82" href="#82">82</a>          setCacheEnabled(source.isCacheEnabled());
<a name="83" href="#83">83</a>          generateCacheKey();
<a name="84" href="#84">84</a>  
<a name="85" href="#85">85</a>          setMaxItemsPerPage(source.getMaxItemsPerPage());
<a name="86" href="#86">86</a>      }
<a name="87" href="#87">87</a>  
<a name="88" href="#88">88</a>      <em class="jxr_javadoccomment">/**</em>
<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     * Constructor with parameters.</em>
<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     */</em>
<a name="91" href="#91">91</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/client/runtime/OperationContextImpl.html">OperationContextImpl</a>(Set&lt;String&gt; propertyFilter, <strong class="jxr_keyword">boolean</strong> includeAcls, <strong class="jxr_keyword">boolean</strong> includeAllowableActions,
<a name="92" href="#92">92</a>              <strong class="jxr_keyword">boolean</strong> includePolicies, IncludeRelationships includeRelationships, Set&lt;String&gt; renditionFilter,
<a name="93" href="#93">93</a>              <strong class="jxr_keyword">boolean</strong> includePathSegments, String orderBy, <strong class="jxr_keyword">boolean</strong> cacheEnabled, <strong class="jxr_keyword">int</strong> maxItemsPerPage) {
<a name="94" href="#94">94</a>          setFilter(propertyFilter);
<a name="95" href="#95">95</a>          setIncludeAcls(includeAcls);
<a name="96" href="#96">96</a>          setIncludeAllowableActions(includeAllowableActions);
<a name="97" href="#97">97</a>          setIncludePolicies(includePolicies);
<a name="98" href="#98">98</a>          setIncludeRelationships(includeRelationships);
<a name="99" href="#99">99</a>          setRenditionFilter(renditionFilter);
<a name="100" href="#100">100</a>         setIncludePathSegments(includePathSegments);
<a name="101" href="#101">101</a>         setOrderBy(orderBy);
<a name="102" href="#102">102</a>         setCacheEnabled(cacheEnabled);
<a name="103" href="#103">103</a>         generateCacheKey();
<a name="104" href="#104">104</a> 
<a name="105" href="#105">105</a>         setMaxItemsPerPage(maxItemsPerPage);
<a name="106" href="#106">106</a>     }
<a name="107" href="#107">107</a> 
<a name="108" href="#108">108</a>     <strong class="jxr_keyword">public</strong> Set&lt;String&gt; getFilter() {
<a name="109" href="#109">109</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">this</strong>.filter == <strong class="jxr_keyword">null</strong>) {
<a name="110" href="#110">110</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="111" href="#111">111</a>         }
<a name="112" href="#112">112</a> 
<a name="113" href="#113">113</a>         <strong class="jxr_keyword">return</strong> Collections.unmodifiableSet(<strong class="jxr_keyword">this</strong>.filter);
<a name="114" href="#114">114</a>     }
<a name="115" href="#115">115</a> 
<a name="116" href="#116">116</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setFilter(Set&lt;String&gt; propertyFilter) {
<a name="117" href="#117">117</a>         <strong class="jxr_keyword">if</strong> (propertyFilter != <strong class="jxr_keyword">null</strong>) {
<a name="118" href="#118">118</a>             TreeSet&lt;String&gt; tempSet = <strong class="jxr_keyword">new</strong> TreeSet&lt;String&gt;();
<a name="119" href="#119">119</a> 
<a name="120" href="#120">120</a>             <strong class="jxr_keyword">for</strong> (String oid : propertyFilter) {
<a name="121" href="#121">121</a>                 <strong class="jxr_keyword">if</strong> (oid == <strong class="jxr_keyword">null</strong>) {
<a name="122" href="#122">122</a>                     <strong class="jxr_keyword">continue</strong>;
<a name="123" href="#123">123</a>                 }
<a name="124" href="#124">124</a> 
<a name="125" href="#125">125</a>                 String toid = oid.trim();
<a name="126" href="#126">126</a>                 <strong class="jxr_keyword">if</strong> (toid.length() == 0) {
<a name="127" href="#127">127</a>                     <strong class="jxr_keyword">continue</strong>;
<a name="128" href="#128">128</a>                 }
<a name="129" href="#129">129</a>                 <strong class="jxr_keyword">if</strong> (toid.equals(PROPERTIES_STAR)) {
<a name="130" href="#130">130</a>                     tempSet = <strong class="jxr_keyword">new</strong> TreeSet&lt;String&gt;();
<a name="131" href="#131">131</a>                     tempSet.add(PROPERTIES_STAR);
<a name="132" href="#132">132</a>                     <strong class="jxr_keyword">break</strong>;
<a name="133" href="#133">133</a>                 }
<a name="134" href="#134">134</a>                 <strong class="jxr_keyword">if</strong> (toid.indexOf(',') &gt; -1) {
<a name="135" href="#135">135</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Query id must not contain a comma!"</span>);
<a name="136" href="#136">136</a>                 }
<a name="137" href="#137">137</a> 
<a name="138" href="#138">138</a>                 tempSet.add(toid);
<a name="139" href="#139">139</a>             }
<a name="140" href="#140">140</a> 
<a name="141" href="#141">141</a>             <strong class="jxr_keyword">if</strong> (tempSet.size() == 0) {
<a name="142" href="#142">142</a>                 <strong class="jxr_keyword">this</strong>.filter = <strong class="jxr_keyword">null</strong>;
<a name="143" href="#143">143</a>             } <strong class="jxr_keyword">else</strong> {
<a name="144" href="#144">144</a>                 <strong class="jxr_keyword">this</strong>.filter = tempSet;
<a name="145" href="#145">145</a>             }
<a name="146" href="#146">146</a>         } <strong class="jxr_keyword">else</strong> {
<a name="147" href="#147">147</a>             <strong class="jxr_keyword">this</strong>.filter = <strong class="jxr_keyword">null</strong>;
<a name="148" href="#148">148</a>         }
<a name="149" href="#149">149</a> 
<a name="150" href="#150">150</a>         generateCacheKey();
<a name="151" href="#151">151</a>     }
<a name="152" href="#152">152</a> 
<a name="153" href="#153">153</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setFilterString(String propertyFilter) {
<a name="154" href="#154">154</a>         <strong class="jxr_keyword">if</strong> ((propertyFilter == <strong class="jxr_keyword">null</strong>) || (propertyFilter.trim().length() == 0)) {
<a name="155" href="#155">155</a>             setFilter(<strong class="jxr_keyword">null</strong>);
<a name="156" href="#156">156</a>             <strong class="jxr_keyword">return</strong>;
<a name="157" href="#157">157</a>         }
<a name="158" href="#158">158</a> 
<a name="159" href="#159">159</a>         String[] propertyIds = propertyFilter.split(<span class="jxr_string">","</span>);
<a name="160" href="#160">160</a>         TreeSet&lt;String&gt; tempSet = <strong class="jxr_keyword">new</strong> TreeSet&lt;String&gt;();
<a name="161" href="#161">161</a>         <strong class="jxr_keyword">for</strong> (String pid : propertyIds) {
<a name="162" href="#162">162</a>             tempSet.add(pid);
<a name="163" href="#163">163</a>         }
<a name="164" href="#164">164</a> 
<a name="165" href="#165">165</a>         setFilter(tempSet);
<a name="166" href="#166">166</a>     }
<a name="167" href="#167">167</a> 
<a name="168" href="#168">168</a>     <strong class="jxr_keyword">public</strong> String getFilterString() {
<a name="169" href="#169">169</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">this</strong>.filter == <strong class="jxr_keyword">null</strong>) {
<a name="170" href="#170">170</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="171" href="#171">171</a>         }
<a name="172" href="#172">172</a> 
<a name="173" href="#173">173</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">this</strong>.filter.contains(PROPERTIES_STAR)) {
<a name="174" href="#174">174</a>             <strong class="jxr_keyword">return</strong> PROPERTIES_STAR;
<a name="175" href="#175">175</a>         }
<a name="176" href="#176">176</a> 
<a name="177" href="#177">177</a>         <strong class="jxr_keyword">this</strong>.filter.add(PropertyIds.OBJECT_ID);
<a name="178" href="#178">178</a>         <strong class="jxr_keyword">this</strong>.filter.add(PropertyIds.BASE_TYPE_ID);
<a name="179" href="#179">179</a>         <strong class="jxr_keyword">this</strong>.filter.add(PropertyIds.OBJECT_TYPE_ID);
<a name="180" href="#180">180</a> 
<a name="181" href="#181">181</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder();
<a name="182" href="#182">182</a> 
<a name="183" href="#183">183</a>         <strong class="jxr_keyword">for</strong> (String oid : <strong class="jxr_keyword">this</strong>.filter) {
<a name="184" href="#184">184</a>             <strong class="jxr_keyword">if</strong> (sb.length() &gt; 0) {
<a name="185" href="#185">185</a>                 sb.append(<span class="jxr_string">","</span>);
<a name="186" href="#186">186</a>             }
<a name="187" href="#187">187</a> 
<a name="188" href="#188">188</a>             sb.append(oid);
<a name="189" href="#189">189</a>         }
<a name="190" href="#190">190</a> 
<a name="191" href="#191">191</a>         <strong class="jxr_keyword">return</strong> sb.toString();
<a name="192" href="#192">192</a>     }
<a name="193" href="#193">193</a> 
<a name="194" href="#194">194</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isIncludeAcls() {
<a name="195" href="#195">195</a>         <strong class="jxr_keyword">return</strong> includeAcls;
<a name="196" href="#196">196</a>     }
<a name="197" href="#197">197</a> 
<a name="198" href="#198">198</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setIncludeAcls(<strong class="jxr_keyword">boolean</strong> include) {
<a name="199" href="#199">199</a>         <strong class="jxr_keyword">this</strong>.includeAcls = include;
<a name="200" href="#200">200</a>         generateCacheKey();
<a name="201" href="#201">201</a>     }
<a name="202" href="#202">202</a> 
<a name="203" href="#203">203</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isIncludeAllowableActions() {
<a name="204" href="#204">204</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>.includeAllowableActions;
<a name="205" href="#205">205</a>     }
<a name="206" href="#206">206</a> 
<a name="207" href="#207">207</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setIncludeAllowableActions(<strong class="jxr_keyword">boolean</strong> include) {
<a name="208" href="#208">208</a>         <strong class="jxr_keyword">this</strong>.includeAllowableActions = include;
<a name="209" href="#209">209</a>         generateCacheKey();
<a name="210" href="#210">210</a>     }
<a name="211" href="#211">211</a> 
<a name="212" href="#212">212</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isIncludePolicies() {
<a name="213" href="#213">213</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>.includePolicies;
<a name="214" href="#214">214</a>     }
<a name="215" href="#215">215</a> 
<a name="216" href="#216">216</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setIncludePolicies(<strong class="jxr_keyword">boolean</strong> include) {
<a name="217" href="#217">217</a>         <strong class="jxr_keyword">this</strong>.includePolicies = include;
<a name="218" href="#218">218</a>         generateCacheKey();
<a name="219" href="#219">219</a>     }
<a name="220" href="#220">220</a> 
<a name="221" href="#221">221</a>     <strong class="jxr_keyword">public</strong> IncludeRelationships getIncludeRelationships() {
<a name="222" href="#222">222</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>.includeRelationships;
<a name="223" href="#223">223</a>     }
<a name="224" href="#224">224</a> 
<a name="225" href="#225">225</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setIncludeRelationships(IncludeRelationships include) {
<a name="226" href="#226">226</a>         <strong class="jxr_keyword">this</strong>.includeRelationships = include;
<a name="227" href="#227">227</a>         generateCacheKey();
<a name="228" href="#228">228</a>     }
<a name="229" href="#229">229</a> 
<a name="230" href="#230">230</a>     <strong class="jxr_keyword">public</strong> Set&lt;String&gt; getRenditionFilter() {
<a name="231" href="#231">231</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">this</strong>.renditionFilter == <strong class="jxr_keyword">null</strong>) {
<a name="232" href="#232">232</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="233" href="#233">233</a>         }
<a name="234" href="#234">234</a> 
<a name="235" href="#235">235</a>         <strong class="jxr_keyword">return</strong> Collections.unmodifiableSet(<strong class="jxr_keyword">this</strong>.renditionFilter);
<a name="236" href="#236">236</a>     }
<a name="237" href="#237">237</a> 
<a name="238" href="#238">238</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setRenditionFilter(Set&lt;String&gt; renditionFilter) {
<a name="239" href="#239">239</a>         TreeSet&lt;String&gt; tempSet = <strong class="jxr_keyword">new</strong> TreeSet&lt;String&gt;();
<a name="240" href="#240">240</a> 
<a name="241" href="#241">241</a>         <strong class="jxr_keyword">if</strong> (renditionFilter != <strong class="jxr_keyword">null</strong>) {
<a name="242" href="#242">242</a>             <strong class="jxr_keyword">for</strong> (String rf : renditionFilter) {
<a name="243" href="#243">243</a>                 <strong class="jxr_keyword">if</strong> (rf == <strong class="jxr_keyword">null</strong>) {
<a name="244" href="#244">244</a>                     <strong class="jxr_keyword">continue</strong>;
<a name="245" href="#245">245</a>                 }
<a name="246" href="#246">246</a> 
<a name="247" href="#247">247</a>                 String trf = rf.trim();
<a name="248" href="#248">248</a>                 <strong class="jxr_keyword">if</strong> (trf.length() == 0) {
<a name="249" href="#249">249</a>                     <strong class="jxr_keyword">continue</strong>;
<a name="250" href="#250">250</a>                 }
<a name="251" href="#251">251</a>                 <strong class="jxr_keyword">if</strong> (trf.indexOf(',') &gt; -1) {
<a name="252" href="#252">252</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Rendition must not contain a comma!"</span>);
<a name="253" href="#253">253</a>                 }
<a name="254" href="#254">254</a> 
<a name="255" href="#255">255</a>                 tempSet.add(trf);
<a name="256" href="#256">256</a>             }
<a name="257" href="#257">257</a> 
<a name="258" href="#258">258</a>             <strong class="jxr_keyword">if</strong> (tempSet.size() == 0) {
<a name="259" href="#259">259</a>                 tempSet.add(RENDITION_NONE);
<a name="260" href="#260">260</a>             }
<a name="261" href="#261">261</a>         } <strong class="jxr_keyword">else</strong> {
<a name="262" href="#262">262</a>             tempSet.add(RENDITION_NONE);
<a name="263" href="#263">263</a>         }
<a name="264" href="#264">264</a> 
<a name="265" href="#265">265</a>         <strong class="jxr_keyword">this</strong>.renditionFilter = tempSet;
<a name="266" href="#266">266</a>         generateCacheKey();
<a name="267" href="#267">267</a>     }
<a name="268" href="#268">268</a> 
<a name="269" href="#269">269</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setRenditionFilterString(String renditionFilter) {
<a name="270" href="#270">270</a>         <strong class="jxr_keyword">if</strong> ((renditionFilter == <strong class="jxr_keyword">null</strong>) || (renditionFilter.trim().length() == 0)) {
<a name="271" href="#271">271</a>             setRenditionFilter(<strong class="jxr_keyword">null</strong>);
<a name="272" href="#272">272</a>             <strong class="jxr_keyword">return</strong>;
<a name="273" href="#273">273</a>         }
<a name="274" href="#274">274</a> 
<a name="275" href="#275">275</a>         String[] renditions = renditionFilter.split(<span class="jxr_string">","</span>);
<a name="276" href="#276">276</a>         TreeSet&lt;String&gt; tempSet = <strong class="jxr_keyword">new</strong> TreeSet&lt;String&gt;();
<a name="277" href="#277">277</a>         <strong class="jxr_keyword">for</strong> (String rend : renditions) {
<a name="278" href="#278">278</a>             tempSet.add(rend);
<a name="279" href="#279">279</a>         }
<a name="280" href="#280">280</a> 
<a name="281" href="#281">281</a>         setRenditionFilter(tempSet);
<a name="282" href="#282">282</a>     }
<a name="283" href="#283">283</a> 
<a name="284" href="#284">284</a>     <strong class="jxr_keyword">public</strong> String getRenditionFilterString() {
<a name="285" href="#285">285</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">this</strong>.renditionFilter == <strong class="jxr_keyword">null</strong>) {
<a name="286" href="#286">286</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="287" href="#287">287</a>         }
<a name="288" href="#288">288</a> 
<a name="289" href="#289">289</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder();
<a name="290" href="#290">290</a> 
<a name="291" href="#291">291</a>         <strong class="jxr_keyword">for</strong> (String rf : <strong class="jxr_keyword">this</strong>.renditionFilter) {
<a name="292" href="#292">292</a>             <strong class="jxr_keyword">if</strong> (sb.length() &gt; 0) {
<a name="293" href="#293">293</a>                 sb.append(<span class="jxr_string">","</span>);
<a name="294" href="#294">294</a>             }
<a name="295" href="#295">295</a> 
<a name="296" href="#296">296</a>             sb.append(rf);
<a name="297" href="#297">297</a>         }
<a name="298" href="#298">298</a> 
<a name="299" href="#299">299</a>         <strong class="jxr_keyword">return</strong> sb.toString();
<a name="300" href="#300">300</a>     }
<a name="301" href="#301">301</a> 
<a name="302" href="#302">302</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isIncludePathSegments() {
<a name="303" href="#303">303</a>         <strong class="jxr_keyword">return</strong> includePathSegments;
<a name="304" href="#304">304</a>     }
<a name="305" href="#305">305</a> 
<a name="306" href="#306">306</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setIncludePathSegments(<strong class="jxr_keyword">boolean</strong> include) {
<a name="307" href="#307">307</a>         <strong class="jxr_keyword">this</strong>.includePathSegments = include;
<a name="308" href="#308">308</a>     }
<a name="309" href="#309">309</a> 
<a name="310" href="#310">310</a>     <strong class="jxr_keyword">public</strong> String getOrderBy() {
<a name="311" href="#311">311</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>.orderBy;
<a name="312" href="#312">312</a>     }
<a name="313" href="#313">313</a> 
<a name="314" href="#314">314</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setOrderBy(String orderBy) {
<a name="315" href="#315">315</a>         <strong class="jxr_keyword">this</strong>.orderBy = orderBy;
<a name="316" href="#316">316</a>     }
<a name="317" href="#317">317</a> 
<a name="318" href="#318">318</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isCacheEnabled() {
<a name="319" href="#319">319</a>         <strong class="jxr_keyword">return</strong> cacheEnabled;
<a name="320" href="#320">320</a>     }
<a name="321" href="#321">321</a> 
<a name="322" href="#322">322</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setCacheEnabled(<strong class="jxr_keyword">boolean</strong> cacheEnabled) {
<a name="323" href="#323">323</a>         <strong class="jxr_keyword">this</strong>.cacheEnabled = cacheEnabled;
<a name="324" href="#324">324</a>     }
<a name="325" href="#325">325</a> 
<a name="326" href="#326">326</a>     <strong class="jxr_keyword">public</strong> String getCacheKey() {
<a name="327" href="#327">327</a>         <strong class="jxr_keyword">return</strong> cacheKey;
<a name="328" href="#328">328</a>     }
<a name="329" href="#329">329</a> 
<a name="330" href="#330">330</a>     <em class="jxr_javadoccomment">/**</em>
<a name="331" href="#331">331</a> <em class="jxr_javadoccomment">     * Generates a new cache key from all parameters that are relevant for</em>
<a name="332" href="#332">332</a> <em class="jxr_javadoccomment">     * caching.</em>
<a name="333" href="#333">333</a> <em class="jxr_javadoccomment">     */</em>
<a name="334" href="#334">334</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> generateCacheKey() {
<a name="335" href="#335">335</a>         <strong class="jxr_keyword">if</strong> (!cacheEnabled) {
<a name="336" href="#336">336</a>             cacheKey = <strong class="jxr_keyword">null</strong>;
<a name="337" href="#337">337</a>         }
<a name="338" href="#338">338</a> 
<a name="339" href="#339">339</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder();
<a name="340" href="#340">340</a> 
<a name="341" href="#341">341</a>         sb.append(includeAcls ? <span class="jxr_string">"1"</span> : <span class="jxr_string">"0"</span>);
<a name="342" href="#342">342</a>         sb.append(includeAllowableActions ? <span class="jxr_string">"1"</span> : <span class="jxr_string">"0"</span>);
<a name="343" href="#343">343</a>         sb.append(includePolicies ? <span class="jxr_string">"1"</span> : <span class="jxr_string">"0"</span>);
<a name="344" href="#344">344</a>         sb.append(<span class="jxr_string">"|"</span>);
<a name="345" href="#345">345</a>         sb.append(filter == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">""</span> : getFilterString());
<a name="346" href="#346">346</a>         sb.append(<span class="jxr_string">"|"</span>);
<a name="347" href="#347">347</a>         sb.append(includeRelationships == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">""</span> : includeRelationships.value());
<a name="348" href="#348">348</a> 
<a name="349" href="#349">349</a>         sb.append(<span class="jxr_string">"|"</span>);
<a name="350" href="#350">350</a>         sb.append(renditionFilter == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">""</span> : getRenditionFilterString());
<a name="351" href="#351">351</a> 
<a name="352" href="#352">352</a>         cacheKey = sb.toString();
<a name="353" href="#353">353</a>     }
<a name="354" href="#354">354</a> 
<a name="355" href="#355">355</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getMaxItemsPerPage() {
<a name="356" href="#356">356</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>.maxItemsPerPage;
<a name="357" href="#357">357</a>     }
<a name="358" href="#358">358</a> 
<a name="359" href="#359">359</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setMaxItemsPerPage(<strong class="jxr_keyword">int</strong> maxItemsPerPage) {
<a name="360" href="#360">360</a>         <strong class="jxr_keyword">if</strong> (maxItemsPerPage &lt; 1) {
<a name="361" href="#361">361</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"itemsPerPage must be &gt; 0!"</span>);
<a name="362" href="#362">362</a>         }
<a name="363" href="#363">363</a> 
<a name="364" href="#364">364</a>         <strong class="jxr_keyword">this</strong>.maxItemsPerPage = maxItemsPerPage;
<a name="365" href="#365">365</a>     }
<a name="366" href="#366">366</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

