<!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>JcrNode 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>  
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">package</strong> org.apache.chemistry.opencmis.jcr;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.PropertyIds;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.AllowableActions;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectData;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Properties;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyData;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.DocumentTypeDefinition;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Action;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Updatability;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisConstraintException;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisNameConstraintViolationException;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisStorageException;
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisUpdateConflictException;
<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AllowableActionsImpl;
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectDataImpl;
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertiesImpl;
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyBooleanImpl;
<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDateTimeImpl;
<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIdImpl;
<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIntegerImpl;
<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyStringImpl;
<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.server.ObjectInfoImpl;
<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.server.ObjectInfoHandler;
<a name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.jcr.type.JcrTypeHandlerManager;
<a name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.jcr.util.Util;
<a name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.Log;
<a name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.LogFactory;
<a name="54" href="#54">54</a>  
<a name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> javax.jcr.ItemNotFoundException;
<a name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> javax.jcr.Node;
<a name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> javax.jcr.PathNotFoundException;
<a name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> javax.jcr.Property;
<a name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> javax.jcr.RepositoryException;
<a name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> javax.jcr.Session;
<a name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> javax.jcr.version.Version;
<a name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> javax.jcr.version.VersionHistory;
<a name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> javax.jcr.version.VersionManager;
<a name="64" href="#64">64</a>  <strong class="jxr_keyword">import</strong> java.math.BigInteger;
<a name="65" href="#65">65</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a name="66" href="#66">66</a>  <strong class="jxr_keyword">import</strong> java.util.Calendar;
<a name="67" href="#67">67</a>  <strong class="jxr_keyword">import</strong> java.util.GregorianCalendar;
<a name="68" href="#68">68</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
<a name="69" href="#69">69</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a name="70" href="#70">70</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
<a name="71" href="#71">71</a>  
<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment">/**</em>
<a name="73" href="#73">73</a>  <em class="jxr_javadoccomment"> * Common base class for all JCR &lt;code&gt;Node&lt;/code&gt;s to be represented as CMIS objects. Instances of this class</em>
<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment"> * are responsible for mapping from CMIS to JCR and vice versa.</em>
<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment"> */</em>
<a name="76" href="#76">76</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/jcr/JcrNode.html">JcrNode</a> {
<a name="77" href="#77">77</a>  
<a name="78" href="#78">78</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Log log = LogFactory.getLog(JcrNode.<strong class="jxr_keyword">class</strong>);
<a name="79" href="#79">79</a>  
<a name="80" href="#80">80</a>      <em class="jxr_javadoccomment">/**</em>
<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     * Default value for last cmis:createdBy and cmis:modifiedBy</em>
<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment">     */</em>
<a name="83" href="#83">83</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String USER_UNKNOWN = <span class="jxr_string">"unknown"</span>;
<a name="84" href="#84">84</a>  
<a name="85" href="#85">85</a>      <em class="jxr_javadoccomment">/**</em>
<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment">     * Default value for cmis:createdBy and cmis:lastModifiedDate</em>
<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     * (Thu Jan 01 01:00:00 CET 1970)</em>
<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     */</em>
<a name="89" href="#89">89</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> GregorianCalendar DATE_UNKNOWN;
<a name="90" href="#90">90</a>  
<a name="91" href="#91">91</a>      <strong class="jxr_keyword">static</strong> {
<a name="92" href="#92">92</a>          DATE_UNKNOWN = <strong class="jxr_keyword">new</strong> GregorianCalendar();
<a name="93" href="#93">93</a>          DATE_UNKNOWN.setTimeInMillis(0);
<a name="94" href="#94">94</a>      }
<a name="95" href="#95">95</a>  
<a name="96" href="#96">96</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Node node;
<a name="97" href="#97">97</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/chemistry/opencmis/jcr/JcrTypeManager.html">JcrTypeManager</a> typeManager;
<a name="98" href="#98">98</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/chemistry/opencmis/jcr/PathManager.html">PathManager</a> pathManager;
<a name="99" href="#99">99</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/chemistry/opencmis/jcr/type/JcrTypeHandlerManager.html">JcrTypeHandlerManager</a> typeHandlerManager;
<a name="100" href="#100">100</a> 
<a name="101" href="#101">101</a>     <em class="jxr_javadoccomment">/**</em>
<a name="102" href="#102">102</a> <em class="jxr_javadoccomment">     * Create a new instance wrapping a JCR &lt;code&gt;node&lt;/code&gt;.</em>
<a name="103" href="#103">103</a> <em class="jxr_javadoccomment">     *</em>
<a name="104" href="#104">104</a> <em class="jxr_javadoccomment">     * @param node  the JCR &lt;code&gt;node&lt;/code&gt; to represent</em>
<a name="105" href="#105">105</a> <em class="jxr_javadoccomment">     * @param typeManager</em>
<a name="106" href="#106">106</a> <em class="jxr_javadoccomment">     * @param pathManager</em>
<a name="107" href="#107">107</a> <em class="jxr_javadoccomment">     * @param typeHandlerManager</em>
<a name="108" href="#108">108</a> <em class="jxr_javadoccomment">     */</em>
<a name="109" href="#109">109</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../../org/apache/chemistry/opencmis/jcr/JcrNode.html">JcrNode</a>(Node node, <a href="../../../../../org/apache/chemistry/opencmis/jcr/JcrTypeManager.html">JcrTypeManager</a> typeManager, <a href="../../../../../org/apache/chemistry/opencmis/jcr/PathManager.html">PathManager</a> pathManager, <a href="../../../../../org/apache/chemistry/opencmis/jcr/type/JcrTypeHandlerManager.html">JcrTypeHandlerManager</a> typeHandlerManager) {
<a name="110" href="#110">110</a>         <strong class="jxr_keyword">this</strong>.node = node;
<a name="111" href="#111">111</a>         <strong class="jxr_keyword">this</strong>.typeManager = typeManager;
<a name="112" href="#112">112</a>         <strong class="jxr_keyword">this</strong>.pathManager = pathManager;
<a name="113" href="#113">113</a>         <strong class="jxr_keyword">this</strong>.typeHandlerManager = typeHandlerManager;
<a name="114" href="#114">114</a>     }
<a name="115" href="#115">115</a> 
<a name="116" href="#116">116</a>     <em class="jxr_javadoccomment">/**</em>
<a name="117" href="#117">117</a> <em class="jxr_javadoccomment">     * @return  the JCR &lt;code&gt;node&lt;/code&gt; represented by this instance</em>
<a name="118" href="#118">118</a> <em class="jxr_javadoccomment">     */</em>
<a name="119" href="#119">119</a>     <strong class="jxr_keyword">public</strong> Node getNode() {
<a name="120" href="#120">120</a>         <strong class="jxr_keyword">return</strong> node;
<a name="121" href="#121">121</a>     }
<a name="122" href="#122">122</a> 
<a name="123" href="#123">123</a>     <em class="jxr_javadoccomment">/**</em>
<a name="124" href="#124">124</a> <em class="jxr_javadoccomment">     * @return  the name of the CMIS object represented by this instance</em>
<a name="125" href="#125">125</a> <em class="jxr_javadoccomment">     * @throws  CmisRuntimeException</em>
<a name="126" href="#126">126</a> <em class="jxr_javadoccomment">     */</em>
<a name="127" href="#127">127</a>     <strong class="jxr_keyword">public</strong> String getName() {
<a name="128" href="#128">128</a>         <strong class="jxr_keyword">try</strong> {
<a name="129" href="#129">129</a>             <strong class="jxr_keyword">return</strong> getNodeName();
<a name="130" href="#130">130</a>         }
<a name="131" href="#131">131</a>         <strong class="jxr_keyword">catch</strong> (RepositoryException e) {
<a name="132" href="#132">132</a>             log.debug(e.getMessage(), e);
<a name="133" href="#133">133</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(e.getMessage(), e);
<a name="134" href="#134">134</a>         }
<a name="135" href="#135">135</a>     }
<a name="136" href="#136">136</a> 
<a name="137" href="#137">137</a>     <em class="jxr_javadoccomment">/**</em>
<a name="138" href="#138">138</a> <em class="jxr_javadoccomment">     * @return  the id of the CMIS object represented by this instance</em>
<a name="139" href="#139">139</a> <em class="jxr_javadoccomment">     * @throws  CmisRuntimeException</em>
<a name="140" href="#140">140</a> <em class="jxr_javadoccomment">     */</em>
<a name="141" href="#141">141</a>     <strong class="jxr_keyword">public</strong> String getId() {
<a name="142" href="#142">142</a>         <strong class="jxr_keyword">try</strong> {
<a name="143" href="#143">143</a>             <strong class="jxr_keyword">return</strong> getObjectId();
<a name="144" href="#144">144</a>         }
<a name="145" href="#145">145</a>         <strong class="jxr_keyword">catch</strong> (RepositoryException e) {
<a name="146" href="#146">146</a>             log.debug(e.getMessage(), e);
<a name="147" href="#147">147</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(e.getMessage(), e);
<a name="148" href="#148">148</a>         }
<a name="149" href="#149">149</a>     }
<a name="150" href="#150">150</a> 
<a name="151" href="#151">151</a>     <em class="jxr_javadoccomment">/**</em>
<a name="152" href="#152">152</a> <em class="jxr_javadoccomment">     * @return  the typeId of the CMIS object represented by this instance</em>
<a name="153" href="#153">153</a> <em class="jxr_javadoccomment">     */</em>
<a name="154" href="#154">154</a>     <strong class="jxr_keyword">public</strong> String getTypeId() {
<a name="155" href="#155">155</a>         <strong class="jxr_keyword">return</strong> getTypeIdInternal();
<a name="156" href="#156">156</a>     }
<a name="157" href="#157">157</a> 
<a name="158" href="#158">158</a>     <em class="jxr_javadoccomment">/**</em>
<a name="159" href="#159">159</a> <em class="jxr_javadoccomment">     * @return  &lt;code&gt;true&lt;/code&gt; iff this instance represent the root of the CMIS folder hierarchy.</em>
<a name="160" href="#160">160</a> <em class="jxr_javadoccomment">     */</em>
<a name="161" href="#161">161</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isRoot() {
<a name="162" href="#162">162</a>         <strong class="jxr_keyword">return</strong> pathManager.isRoot(node);
<a name="163" href="#163">163</a>     }
<a name="164" href="#164">164</a> 
<a name="165" href="#165">165</a>     <em class="jxr_javadoccomment">/**</em>
<a name="166" href="#166">166</a> <em class="jxr_javadoccomment">     * @return  &lt;code&gt;true&lt;/code&gt; iff this instance represents a cmis:document type</em>
<a name="167" href="#167">167</a> <em class="jxr_javadoccomment">     */</em>
<a name="168" href="#168">168</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isDocument() {
<a name="169" href="#169">169</a>         <strong class="jxr_keyword">return</strong> BaseTypeId.CMIS_DOCUMENT == getBaseTypeId();
<a name="170" href="#170">170</a>     }
<a name="171" href="#171">171</a> 
<a name="172" href="#172">172</a>     <em class="jxr_javadoccomment">/**</em>
<a name="173" href="#173">173</a> <em class="jxr_javadoccomment">     * @return  &lt;code&gt;true&lt;/code&gt; iff this instance represents a cmis:folder type</em>
<a name="174" href="#174">174</a> <em class="jxr_javadoccomment">     */</em>
<a name="175" href="#175">175</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isFolder() {
<a name="176" href="#176">176</a>         <strong class="jxr_keyword">return</strong> BaseTypeId.CMIS_FOLDER == getBaseTypeId();
<a name="177" href="#177">177</a>     }
<a name="178" href="#178">178</a> 
<a name="179" href="#179">179</a>     <em class="jxr_javadoccomment">/**</em>
<a name="180" href="#180">180</a> <em class="jxr_javadoccomment">     * @return  &lt;code&gt;true&lt;/code&gt; iff this instance represents a versionable CMIS object</em>
<a name="181" href="#181">181</a> <em class="jxr_javadoccomment">     */</em>
<a name="182" href="#182">182</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isVersionable() {
<a name="183" href="#183">183</a>         TypeDefinition typeDef = typeManager.getType(getTypeIdInternal());
<a name="184" href="#184">184</a>         <strong class="jxr_keyword">return</strong> typeDef instanceof DocumentTypeDefinition
<a name="185" href="#185">185</a>                 ? ((DocumentTypeDefinition) typeDef).isVersionable()
<a name="186" href="#186">186</a>                 : false;
<a name="187" href="#187">187</a>     }
<a name="188" href="#188">188</a> 
<a name="189" href="#189">189</a>     <em class="jxr_javadoccomment">/**</em>
<a name="190" href="#190">190</a> <em class="jxr_javadoccomment">     * @return  this instance as a &lt;code&gt;JcrDocument&lt;/code&gt;</em>
<a name="191" href="#191">191</a> <em class="jxr_javadoccomment">     * @throws CmisConstraintException if &lt;code&gt;this.isDocument() == false&lt;/code&gt;</em>
<a name="192" href="#192">192</a> <em class="jxr_javadoccomment">     */</em>
<a name="193" href="#193">193</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/chemistry/opencmis/jcr/JcrDocument.html">JcrDocument</a> asDocument() {
<a name="194" href="#194">194</a>         <strong class="jxr_keyword">if</strong> (isDocument()) {
<a name="195" href="#195">195</a>             <strong class="jxr_keyword">return</strong> (JcrDocument) <strong class="jxr_keyword">this</strong>;
<a name="196" href="#196">196</a>         }
<a name="197" href="#197">197</a>         <strong class="jxr_keyword">else</strong> {
<a name="198" href="#198">198</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisConstraintException(<span class="jxr_string">"Not a document: "</span> + <strong class="jxr_keyword">this</strong>);
<a name="199" href="#199">199</a>         }
<a name="200" href="#200">200</a>     }
<a name="201" href="#201">201</a> 
<a name="202" href="#202">202</a>     <em class="jxr_javadoccomment">/**</em>
<a name="203" href="#203">203</a> <em class="jxr_javadoccomment">     * @return  this instance as a &lt;code&gt;JcrFolder&lt;/code&gt;</em>
<a name="204" href="#204">204</a> <em class="jxr_javadoccomment">     * @throws CmisConstraintException if &lt;code&gt;this.isFolder() == false&lt;/code&gt;</em>
<a name="205" href="#205">205</a> <em class="jxr_javadoccomment">     */</em>
<a name="206" href="#206">206</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/chemistry/opencmis/jcr/JcrFolder.html">JcrFolder</a> asFolder() {
<a name="207" href="#207">207</a>         <strong class="jxr_keyword">if</strong> (isFolder()) {
<a name="208" href="#208">208</a>             <strong class="jxr_keyword">return</strong> (JcrFolder) <strong class="jxr_keyword">this</strong>;
<a name="209" href="#209">209</a>         }
<a name="210" href="#210">210</a>         <strong class="jxr_keyword">else</strong> {
<a name="211" href="#211">211</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisObjectNotFoundException(<span class="jxr_string">"Not a folder: "</span> + <strong class="jxr_keyword">this</strong>);
<a name="212" href="#212">212</a>         }
<a name="213" href="#213">213</a>     }
<a name="214" href="#214">214</a> 
<a name="215" href="#215">215</a>     <em class="jxr_javadoccomment">/**</em>
<a name="216" href="#216">216</a> <em class="jxr_javadoccomment">     * @return  this instance as a &lt;code&gt;JcrVersionBase&lt;/code&gt;</em>
<a name="217" href="#217">217</a> <em class="jxr_javadoccomment">     * @throws CmisConstraintException if &lt;code&gt;this.isVersionable() == false&lt;/code&gt;</em>
<a name="218" href="#218">218</a> <em class="jxr_javadoccomment">     */</em>
<a name="219" href="#219">219</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/chemistry/opencmis/jcr/JcrVersionBase.html">JcrVersionBase</a> asVersion() {
<a name="220" href="#220">220</a>         <strong class="jxr_keyword">if</strong> (isVersionable()) {
<a name="221" href="#221">221</a>             <strong class="jxr_keyword">return</strong> (JcrVersionBase) <strong class="jxr_keyword">this</strong>;
<a name="222" href="#222">222</a>         }
<a name="223" href="#223">223</a>         <strong class="jxr_keyword">else</strong> {
<a name="224" href="#224">224</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisObjectNotFoundException(<span class="jxr_string">"Not a version: "</span> + <strong class="jxr_keyword">this</strong>);
<a name="225" href="#225">225</a>         }
<a name="226" href="#226">226</a>     }
<a name="227" href="#227">227</a> 
<a name="228" href="#228">228</a>     <em class="jxr_javadoccomment">/**</em>
<a name="229" href="#229">229</a> <em class="jxr_javadoccomment">     * Factory method creating a new &lt;code&gt;JcrNode&lt;/code&gt; from a node at a given JCR path.</em>
<a name="230" href="#230">230</a> <em class="jxr_javadoccomment">     *</em>
<a name="231" href="#231">231</a> <em class="jxr_javadoccomment">     * @param path  JCR path of the node</em>
<a name="232" href="#232">232</a> <em class="jxr_javadoccomment">     * @return  A new instance representing the JCR node at &lt;code&gt;path&lt;/code&gt;</em>
<a name="233" href="#233">233</a> <em class="jxr_javadoccomment">     * @throws CmisObjectNotFoundException  if &lt;code&gt;path&lt;/code&gt; does not identify a JCR node</em>
<a name="234" href="#234">234</a> <em class="jxr_javadoccomment">     * @throws CmisRuntimeException</em>
<a name="235" href="#235">235</a> <em class="jxr_javadoccomment">     */</em>
<a name="236" href="#236">236</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/chemistry/opencmis/jcr/JcrNode.html">JcrNode</a> getNode(String path) {
<a name="237" href="#237">237</a>         <strong class="jxr_keyword">try</strong> {
<a name="238" href="#238">238</a>             <strong class="jxr_keyword">return</strong> create(node.getNode(path));
<a name="239" href="#239">239</a>         }
<a name="240" href="#240">240</a>         <strong class="jxr_keyword">catch</strong> (PathNotFoundException e) {
<a name="241" href="#241">241</a>             log.debug(e.getMessage(), e);
<a name="242" href="#242">242</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisObjectNotFoundException(e.getMessage(), e);
<a name="243" href="#243">243</a>         }
<a name="244" href="#244">244</a>         <strong class="jxr_keyword">catch</strong> (RepositoryException e) {
<a name="245" href="#245">245</a>             log.debug(e.getMessage(), e);
<a name="246" href="#246">246</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(e.getMessage(), e);
<a name="247" href="#247">247</a>         }
<a name="248" href="#248">248</a>     }
<a name="249" href="#249">249</a> 
<a name="250" href="#250">250</a>     <em class="jxr_javadoccomment">/**</em>
<a name="251" href="#251">251</a> <em class="jxr_javadoccomment">     * Compile the &lt;code&gt;ObjectData&lt;/code&gt; for this node</em>
<a name="252" href="#252">252</a> <em class="jxr_javadoccomment">     */</em>
<a name="253" href="#253">253</a>     <strong class="jxr_keyword">public</strong> ObjectData compileObjectType(Set&lt;String&gt; filter, Boolean includeAllowableActions,
<a name="254" href="#254">254</a>             ObjectInfoHandler objectInfos, <strong class="jxr_keyword">boolean</strong> requiresObjectInfo) {
<a name="255" href="#255">255</a> 
<a name="256" href="#256">256</a>         <strong class="jxr_keyword">try</strong> {
<a name="257" href="#257">257</a>             ObjectDataImpl result = <strong class="jxr_keyword">new</strong> ObjectDataImpl();
<a name="258" href="#258">258</a>             ObjectInfoImpl objectInfo = <strong class="jxr_keyword">new</strong> ObjectInfoImpl();
<a name="259" href="#259">259</a> 
<a name="260" href="#260">260</a>             PropertiesImpl properties = <strong class="jxr_keyword">new</strong> PropertiesImpl();
<a name="261" href="#261">261</a>             filter = filter == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">null</strong> : <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;(filter);
<a name="262" href="#262">262</a>             compileProperties(properties, filter, objectInfo);
<a name="263" href="#263">263</a>             result.setProperties(properties);
<a name="264" href="#264">264</a>             <strong class="jxr_keyword">if</strong> (filter != <strong class="jxr_keyword">null</strong> &amp;&amp; !filter.isEmpty()) {
<a name="265" href="#265">265</a>                 log.debug(<span class="jxr_string">"Unknown filter properties: "</span> + filter.toString());
<a name="266" href="#266">266</a>             }
<a name="267" href="#267">267</a> 
<a name="268" href="#268">268</a>             <strong class="jxr_keyword">if</strong> (Boolean.TRUE.equals(includeAllowableActions)) {
<a name="269" href="#269">269</a>                 result.setAllowableActions(getAllowableActions());
<a name="270" href="#270">270</a>             }
<a name="271" href="#271">271</a> 
<a name="272" href="#272">272</a>             <strong class="jxr_keyword">if</strong> (requiresObjectInfo) {
<a name="273" href="#273">273</a>                 objectInfo.setObject(result);
<a name="274" href="#274">274</a>                 objectInfos.addObjectInfo(objectInfo);
<a name="275" href="#275">275</a>             }
<a name="276" href="#276">276</a> 
<a name="277" href="#277">277</a>             <strong class="jxr_keyword">return</strong> result;
<a name="278" href="#278">278</a>         }
<a name="279" href="#279">279</a>         <strong class="jxr_keyword">catch</strong> (RepositoryException e) {
<a name="280" href="#280">280</a>             log.debug(e.getMessage(), e);
<a name="281" href="#281">281</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(e.getMessage(), e);
<a name="282" href="#282">282</a>         }
<a name="283" href="#283">283</a>     }
<a name="284" href="#284">284</a> 
<a name="285" href="#285">285</a>     <em class="jxr_javadoccomment">/**</em>
<a name="286" href="#286">286</a> <em class="jxr_javadoccomment">     * See CMIS 1.0 section 2.2.4.6 getAllowableActions</em>
<a name="287" href="#287">287</a> <em class="jxr_javadoccomment">     */</em>
<a name="288" href="#288">288</a>     <strong class="jxr_keyword">public</strong> AllowableActions getAllowableActions() {
<a name="289" href="#289">289</a>         AllowableActionsImpl aas = <strong class="jxr_keyword">new</strong> AllowableActionsImpl();
<a name="290" href="#290">290</a>         aas.setAllowableActions(compileAllowableActions(<strong class="jxr_keyword">new</strong> HashSet&lt;Action&gt;()));
<a name="291" href="#291">291</a>         <strong class="jxr_keyword">return</strong> aas;
<a name="292" href="#292">292</a>     }
<a name="293" href="#293">293</a> 
<a name="294" href="#294">294</a>     <em class="jxr_javadoccomment">/**</em>
<a name="295" href="#295">295</a> <em class="jxr_javadoccomment">     * See CMIS 1.0 section 2.2.3.5 getObjectParents</em>
<a name="296" href="#296">296</a> <em class="jxr_javadoccomment">     *</em>
<a name="297" href="#297">297</a> <em class="jxr_javadoccomment">     * @return  parent of this object</em>
<a name="298" href="#298">298</a> <em class="jxr_javadoccomment">     * @throws  CmisObjectNotFoundException  if this is the root folder</em>
<a name="299" href="#299">299</a> <em class="jxr_javadoccomment">     * @throws  CmisRuntimeException</em>
<a name="300" href="#300">300</a> <em class="jxr_javadoccomment">     */</em>
<a name="301" href="#301">301</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/chemistry/opencmis/jcr/JcrFolder.html">JcrFolder</a> getParent() {
<a name="302" href="#302">302</a>         <strong class="jxr_keyword">try</strong> {
<a name="303" href="#303">303</a>             <strong class="jxr_keyword">return</strong> create(node.getParent()).asFolder();
<a name="304" href="#304">304</a>         }
<a name="305" href="#305">305</a>         <strong class="jxr_keyword">catch</strong> (ItemNotFoundException e) {
<a name="306" href="#306">306</a>             log.debug(e.getMessage(), e);
<a name="307" href="#307">307</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisObjectNotFoundException(e.getMessage(), e);
<a name="308" href="#308">308</a>         }
<a name="309" href="#309">309</a>         <strong class="jxr_keyword">catch</strong> (RepositoryException e) {
<a name="310" href="#310">310</a>             log.debug(e.getMessage(), e);
<a name="311" href="#311">311</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(e.getMessage(), e);
<a name="312" href="#312">312</a>         }
<a name="313" href="#313">313</a>     }
<a name="314" href="#314">314</a> 
<a name="315" href="#315">315</a>     <em class="jxr_javadoccomment">/**</em>
<a name="316" href="#316">316</a> <em class="jxr_javadoccomment">     * See CMIS 1.0 section 2.2.4.12 updateProperties</em>
<a name="317" href="#317">317</a> <em class="jxr_javadoccomment">     *</em>
<a name="318" href="#318">318</a> <em class="jxr_javadoccomment">     * @throws CmisStorageException</em>
<a name="319" href="#319">319</a> <em class="jxr_javadoccomment">     */</em>
<a name="320" href="#320">320</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/chemistry/opencmis/jcr/JcrNode.html">JcrNode</a> updateProperties(Properties properties) {
<a name="321" href="#321">321</a>         <em class="jxr_comment">// get and check the new name</em>
<a name="322" href="#322">322</a>         String newName = PropertyHelper.getStringProperty(properties, PropertyIds.NAME);
<a name="323" href="#323">323</a>         <strong class="jxr_keyword">boolean</strong> rename = newName != <strong class="jxr_keyword">null</strong> &amp;&amp; !getName().equals(newName);
<a name="324" href="#324">324</a>         <strong class="jxr_keyword">if</strong> (rename &amp;&amp; !JcrConverter.isValidJcrName(newName)) {
<a name="325" href="#325">325</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisNameConstraintViolationException(<span class="jxr_string">"Name is not valid: "</span> + newName);
<a name="326" href="#326">326</a>         }
<a name="327" href="#327">327</a>         <strong class="jxr_keyword">if</strong> (rename &amp;&amp; isRoot()) {
<a name="328" href="#328">328</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisUpdateConflictException(<span class="jxr_string">"Cannot rename root node"</span>);
<a name="329" href="#329">329</a>         }
<a name="330" href="#330">330</a> 
<a name="331" href="#331">331</a>         <strong class="jxr_keyword">try</strong> {
<a name="332" href="#332">332</a>             <em class="jxr_comment">// rename file or folder if necessary</em>
<a name="333" href="#333">333</a>             Session session = getNode().getSession();
<a name="334" href="#334">334</a>             Node newNode;
<a name="335" href="#335">335</a>             <strong class="jxr_keyword">if</strong> (rename) {
<a name="336" href="#336">336</a>                 String destPath = PathManager.createCmisPath(node.getParent().getPath(), newName);
<a name="337" href="#337">337</a>                 session.move(node.getPath(), destPath);
<a name="338" href="#338">338</a>                 newNode = session.getNode(destPath);
<a name="339" href="#339">339</a>             }
<a name="340" href="#340">340</a>             <strong class="jxr_keyword">else</strong> {
<a name="341" href="#341">341</a>                 newNode = node;
<a name="342" href="#342">342</a>             }
<a name="343" href="#343">343</a> 
<a name="344" href="#344">344</a>             <em class="jxr_comment">// Are there properties to update?</em>
<a name="345" href="#345">345</a>             <a href="../../../../../org/apache/chemistry/opencmis/jcr/JcrNode.html">PropertyUpdater</a> propertyUpdater = PropertyUpdater.create(typeManager, getTypeId(), properties);
<a name="346" href="#346">346</a> 
<a name="347" href="#347">347</a>             <a href="../../../../../org/apache/chemistry/opencmis/jcr/JcrVersionBase.html">JcrVersionBase</a> jcrVersion = isVersionable()
<a name="348" href="#348">348</a>                     ? asVersion()
<a name="349" href="#349">349</a>                     : <strong class="jxr_keyword">null</strong>;
<a name="350" href="#350">350</a> 
<a name="351" href="#351">351</a>             <em class="jxr_comment">// Update properties. Checkout if required</em>
<a name="352" href="#352">352</a>             <strong class="jxr_keyword">boolean</strong> autoCheckout = false;
<a name="353" href="#353">353</a>             <strong class="jxr_keyword">if</strong> (!propertyUpdater.isEmpty()) {
<a name="354" href="#354">354</a>                 autoCheckout = jcrVersion != <strong class="jxr_keyword">null</strong> &amp;&amp; !jcrVersion.isCheckedOut();
<a name="355" href="#355">355</a>                 <strong class="jxr_keyword">if</strong> (autoCheckout) {
<a name="356" href="#356">356</a>                     jcrVersion.checkout();
<a name="357" href="#357">357</a>                 }
<a name="358" href="#358">358</a> 
<a name="359" href="#359">359</a>                 <em class="jxr_comment">// update the properties</em>
<a name="360" href="#360">360</a>                 propertyUpdater.apply(node);
<a name="361" href="#361">361</a>             }
<a name="362" href="#362">362</a> 
<a name="363" href="#363">363</a>             session.save();
<a name="364" href="#364">364</a> 
<a name="365" href="#365">365</a>             <strong class="jxr_keyword">if</strong> (autoCheckout) {
<a name="366" href="#366">366</a>                 <em class="jxr_comment">// auto versioning -&gt; return new version created by checkin</em>
<a name="367" href="#367">367</a>                 <strong class="jxr_keyword">return</strong> jcrVersion.checkin(<strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <span class="jxr_string">"auto checkout"</span>);
<a name="368" href="#368">368</a>             }
<a name="369" href="#369">369</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (jcrVersion != <strong class="jxr_keyword">null</strong> &amp;&amp; jcrVersion.isCheckedOut()) {
<a name="370" href="#370">370</a>                 <em class="jxr_comment">// the node is checked out -&gt; return pwc.</em>
<a name="371" href="#371">371</a>                 <a href="../../../../../org/apache/chemistry/opencmis/jcr/JcrVersionBase.html">JcrVersionBase</a> jcrNewVersion = create(newNode).asVersion();
<a name="372" href="#372">372</a>                 <strong class="jxr_keyword">return</strong> jcrNewVersion.getPwc();
<a name="373" href="#373">373</a>             }
<a name="374" href="#374">374</a>             <strong class="jxr_keyword">else</strong> {
<a name="375" href="#375">375</a>                 <em class="jxr_comment">// non versionable or not a new node -&gt; return this</em>
<a name="376" href="#376">376</a>                 <strong class="jxr_keyword">return</strong> create(newNode);
<a name="377" href="#377">377</a>             }
<a name="378" href="#378">378</a>         }
<a name="379" href="#379">379</a>         <strong class="jxr_keyword">catch</strong> (RepositoryException e) {
<a name="380" href="#380">380</a>             log.debug(e.getMessage(), e);
<a name="381" href="#381">381</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisStorageException(e.getMessage(), e);
<a name="382" href="#382">382</a>         }
<a name="383" href="#383">383</a> 
<a name="384" href="#384">384</a>     }
<a name="385" href="#385">385</a> 
<a name="386" href="#386">386</a>     <em class="jxr_javadoccomment">/**</em>
<a name="387" href="#387">387</a> <em class="jxr_javadoccomment">     * See CMIS 1.0 section 2.2.4.14 deleteObject</em>
<a name="388" href="#388">388</a> <em class="jxr_javadoccomment">     *</em>
<a name="389" href="#389">389</a> <em class="jxr_javadoccomment">     * @throws CmisRuntimeException</em>
<a name="390" href="#390">390</a> <em class="jxr_javadoccomment">     */</em>
<a name="391" href="#391">391</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> delete(<strong class="jxr_keyword">boolean</strong> allVersions, <strong class="jxr_keyword">boolean</strong> isPwc) {
<a name="392" href="#392">392</a>         <strong class="jxr_keyword">try</strong> {
<a name="393" href="#393">393</a>             Session session = getNode().getSession();
<a name="394" href="#394">394</a>             getNode().remove();
<a name="395" href="#395">395</a>             session.save();
<a name="396" href="#396">396</a>         }
<a name="397" href="#397">397</a>         <strong class="jxr_keyword">catch</strong> (RepositoryException e) {
<a name="398" href="#398">398</a>             log.debug(e.getMessage(), e);
<a name="399" href="#399">399</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisRuntimeException(e.getMessage(), e);
<a name="400" href="#400">400</a>         }
<a name="401" href="#401">401</a>     }
<a name="402" href="#402">402</a> 
<a name="403" href="#403">403</a>     <em class="jxr_javadoccomment">/**</em>
<a name="404" href="#404">404</a> <em class="jxr_javadoccomment">     * See CMIS 1.0 section 2.2.4.13 moveObject</em>
<a name="405" href="#405">405</a> <em class="jxr_javadoccomment">     *</em>
<a name="406" href="#406">406</a> <em class="jxr_javadoccomment">     * @throws CmisStorageException</em>
<a name="407" href="#407">407</a> <em class="jxr_javadoccomment">     */</em>
<a name="408" href="#408">408</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/chemistry/opencmis/jcr/JcrNode.html">JcrNode</a> move(<a href="../../../../../org/apache/chemistry/opencmis/jcr/JcrFolder.html">JcrFolder</a> parent) {
<a name="409" href="#409">409</a>         <strong class="jxr_keyword">try</strong> {
<a name="410" href="#410">410</a>             <em class="jxr_comment">// move it if target location is not same as source location</em>
<a name="411" href="#411">411</a>             String destPath = PathManager.createCmisPath(parent.getNode().getPath(), node.getName());
<a name="412" href="#412">412</a>             String srcPath = node.getPath();
<a name="413" href="#413">413</a>             Node newNode;
<a name="414" href="#414">414</a>             <strong class="jxr_keyword">if</strong> (srcPath.equals(destPath)) {
<a name="415" href="#415">415</a>                 newNode = node;
<a name="416" href="#416">416</a>             }
<a name="417" href="#417">417</a>             <strong class="jxr_keyword">else</strong> {
<a name="418" href="#418">418</a>                 Session session = getNode().getSession();
<a name="419" href="#419">419</a>                 session.move(srcPath, destPath);
<a name="420" href="#420">420</a>                 newNode = session.getNode(destPath);
<a name="421" href="#421">421</a>                 session.save();
<a name="422" href="#422">422</a>             }
<a name="423" href="#423">423</a> 
<a name="424" href="#424">424</a>             <strong class="jxr_keyword">return</strong> create(newNode);
<a name="425" href="#425">425</a>         }
<a name="426" href="#426">426</a>         <strong class="jxr_keyword">catch</strong> (RepositoryException e) {
<a name="427" href="#427">427</a>             log.debug(e.getMessage(), e);
<a name="428" href="#428">428</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisStorageException(e.getMessage(), e);
<a name="429" href="#429">429</a>         }
<a name="430" href="#430">430</a>     }
<a name="431" href="#431">431</a> 
<a name="432" href="#432">432</a>     @Override
<a name="433" href="#433">433</a>     <strong class="jxr_keyword">public</strong> String toString() {
<a name="434" href="#434">434</a>         <strong class="jxr_keyword">try</strong> {
<a name="435" href="#435">435</a>             <strong class="jxr_keyword">return</strong> node.getPath();
<a name="436" href="#436">436</a>         }
<a name="437" href="#437">437</a>         <strong class="jxr_keyword">catch</strong> (RepositoryException e) {
<a name="438" href="#438">438</a>             log.debug(e.getMessage(), e);
<a name="439" href="#439">439</a>             <strong class="jxr_keyword">return</strong> e.getMessage();
<a name="440" href="#440">440</a>         }
<a name="441" href="#441">441</a>     }
<a name="442" href="#442">442</a> 
<a name="443" href="#443">443</a>     <em class="jxr_comment">//------------------------------------------&lt; protected &gt;---</em>
<a name="444" href="#444">444</a> 
<a name="445" href="#445">445</a>     <em class="jxr_javadoccomment">/**</em>
<a name="446" href="#446">446</a> <em class="jxr_javadoccomment">     * Retrieve the context node of the CMIS object represented by this instance. The</em>
<a name="447" href="#447">447</a> <em class="jxr_javadoccomment">     * context node is the node which is used to derive the common properties from</em>
<a name="448" href="#448">448</a> <em class="jxr_javadoccomment">     * (creation date, modification date, ...)</em>
<a name="449" href="#449">449</a> <em class="jxr_javadoccomment">     *</em>
<a name="450" href="#450">450</a> <em class="jxr_javadoccomment">     * @return  the context node</em>
<a name="451" href="#451">451</a> <em class="jxr_javadoccomment">     * @throws RepositoryException</em>
<a name="452" href="#452">452</a> <em class="jxr_javadoccomment">     */</em>
<a name="453" href="#453">453</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> Node getContextNode() <strong class="jxr_keyword">throws</strong> RepositoryException;
<a name="454" href="#454">454</a> 
<a name="455" href="#455">455</a>     <em class="jxr_javadoccomment">/**</em>
<a name="456" href="#456">456</a> <em class="jxr_javadoccomment">     * @return  the value of the &lt;code&gt;cmis:baseTypeId&lt;/code&gt; property</em>
<a name="457" href="#457">457</a> <em class="jxr_javadoccomment">     */</em>
<a name="458" href="#458">458</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> BaseTypeId getBaseTypeId();
<a name="459" href="#459">459</a> 
<a name="460" href="#460">460</a>     <em class="jxr_javadoccomment">/**</em>
<a name="461" href="#461">461</a> <em class="jxr_javadoccomment">     * @return  the value of the &lt;code&gt;cmis:objectTypeId&lt;/code&gt; property</em>
<a name="462" href="#462">462</a> <em class="jxr_javadoccomment">     */</em>
<a name="463" href="#463">463</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> String getTypeIdInternal();
<a name="464" href="#464">464</a> 
<a name="465" href="#465">465</a>     <em class="jxr_javadoccomment">/**</em>
<a name="466" href="#466">466</a> <em class="jxr_javadoccomment">     * Compile the properties of the CMIS object represented by this instance.</em>
<a name="467" href="#467">467</a> <em class="jxr_javadoccomment">     * See CMIS 1.0 section 2.2.4.7 getObject</em>
<a name="468" href="#468">468</a> <em class="jxr_javadoccomment">     *</em>
<a name="469" href="#469">469</a> <em class="jxr_javadoccomment">     * @param properties  compilation of properties</em>
<a name="470" href="#470">470</a> <em class="jxr_javadoccomment">     * @param filter</em>
<a name="471" href="#471">471</a> <em class="jxr_javadoccomment">     * @param objectInfo</em>
<a name="472" href="#472">472</a> <em class="jxr_javadoccomment">     * @throws RepositoryException</em>
<a name="473" href="#473">473</a> <em class="jxr_javadoccomment">     */</em>
<a name="474" href="#474">474</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> compileProperties(PropertiesImpl properties, Set&lt;String&gt; filter, ObjectInfoImpl objectInfo)
<a name="475" href="#475">475</a>             <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="476" href="#476">476</a> 
<a name="477" href="#477">477</a>         String typeId = getTypeIdInternal();
<a name="478" href="#478">478</a>         BaseTypeId baseTypeId = getBaseTypeId();
<a name="479" href="#479">479</a> 
<a name="480" href="#480">480</a>         objectInfo.setBaseType(baseTypeId);
<a name="481" href="#481">481</a>         objectInfo.setTypeId(typeId);
<a name="482" href="#482">482</a>         objectInfo.setHasAcl(false);
<a name="483" href="#483">483</a>         objectInfo.setVersionSeriesId(getVersionSeriesId());
<a name="484" href="#484">484</a>         objectInfo.setRelationshipSourceIds(<strong class="jxr_keyword">null</strong>);
<a name="485" href="#485">485</a>         objectInfo.setRelationshipTargetIds(<strong class="jxr_keyword">null</strong>);
<a name="486" href="#486">486</a>         objectInfo.setRenditionInfos(<strong class="jxr_keyword">null</strong>);
<a name="487" href="#487">487</a>         objectInfo.setSupportsPolicies(false);
<a name="488" href="#488">488</a>         objectInfo.setSupportsRelationships(false);
<a name="489" href="#489">489</a> 
<a name="490" href="#490">490</a>         <em class="jxr_comment">// id</em>
<a name="491" href="#491">491</a>         String objectId = getObjectId();
<a name="492" href="#492">492</a>         addPropertyId(properties, typeId, filter, PropertyIds.OBJECT_ID, objectId);
<a name="493" href="#493">493</a>         objectInfo.setId(objectId);
<a name="494" href="#494">494</a> 
<a name="495" href="#495">495</a>         <em class="jxr_comment">// name</em>
<a name="496" href="#496">496</a>         String name = getNodeName();
<a name="497" href="#497">497</a>         addPropertyString(properties, typeId, filter, PropertyIds.NAME, name);
<a name="498" href="#498">498</a>         objectInfo.setName(name);
<a name="499" href="#499">499</a> 
<a name="500" href="#500">500</a>         <em class="jxr_comment">// base type and type name</em>
<a name="501" href="#501">501</a>         addPropertyId(properties, typeId, filter, PropertyIds.BASE_TYPE_ID, baseTypeId.value());
<a name="502" href="#502">502</a>         addPropertyId(properties, typeId, filter, PropertyIds.OBJECT_TYPE_ID, typeId);
<a name="503" href="#503">503</a> 
<a name="504" href="#504">504</a>         <em class="jxr_comment">// created and modified by</em>
<a name="505" href="#505">505</a>         String createdBy = getCreatedBy();
<a name="506" href="#506">506</a>         addPropertyString(properties, typeId, filter, PropertyIds.CREATED_BY, createdBy);
<a name="507" href="#507">507</a>         objectInfo.setCreatedBy(createdBy);
<a name="508" href="#508">508</a> 
<a name="509" href="#509">509</a>         addPropertyString(properties, typeId, filter, PropertyIds.LAST_MODIFIED_BY, getLastModifiedBy());
<a name="510" href="#510">510</a> 
<a name="511" href="#511">511</a>         <em class="jxr_comment">// creation and modification date</em>
<a name="512" href="#512">512</a>         GregorianCalendar created = getCreated();
<a name="513" href="#513">513</a>         addPropertyDateTime(properties, typeId, filter, PropertyIds.CREATION_DATE, created);
<a name="514" href="#514">514</a>         objectInfo.setCreationDate(created);
<a name="515" href="#515">515</a> 
<a name="516" href="#516">516</a>         GregorianCalendar lastModified = getLastModified();
<a name="517" href="#517">517</a>         addPropertyDateTime(properties, typeId, filter, PropertyIds.LAST_MODIFICATION_DATE, lastModified);
<a name="518" href="#518">518</a>         objectInfo.setLastModificationDate(lastModified);
<a name="519" href="#519">519</a> 
<a name="520" href="#520">520</a>         addPropertyString(properties, typeId, filter, PropertyIds.CHANGE_TOKEN, getChangeToken());
<a name="521" href="#521">521</a>     }
<a name="522" href="#522">522</a> 
<a name="523" href="#523">523</a>     <em class="jxr_javadoccomment">/**</em>
<a name="524" href="#524">524</a> <em class="jxr_javadoccomment">     * Compile the allowed actions on the CMIS object represented by this instance</em>
<a name="525" href="#525">525</a> <em class="jxr_javadoccomment">     * See CMIS 1.0 section 2.2.4.6 getAllowableActions</em>
<a name="526" href="#526">526</a> <em class="jxr_javadoccomment">     *</em>
<a name="527" href="#527">527</a> <em class="jxr_javadoccomment">     * @param aas  compilation of allowed actions</em>
<a name="528" href="#528">528</a> <em class="jxr_javadoccomment">     * @return</em>
<a name="529" href="#529">529</a> <em class="jxr_javadoccomment">     */</em>
<a name="530" href="#530">530</a>     <strong class="jxr_keyword">protected</strong> Set&lt;Action&gt; compileAllowableActions(Set&lt;Action&gt; aas) {
<a name="531" href="#531">531</a>         setAction(aas, Action.CAN_GET_OBJECT_PARENTS, <strong class="jxr_keyword">true</strong>);
<a name="532" href="#532">532</a>         setAction(aas, Action.CAN_GET_PROPERTIES, <strong class="jxr_keyword">true</strong>);
<a name="533" href="#533">533</a>         setAction(aas, Action.CAN_UPDATE_PROPERTIES, <strong class="jxr_keyword">true</strong>);
<a name="534" href="#534">534</a>         setAction(aas, Action.CAN_MOVE_OBJECT, <strong class="jxr_keyword">true</strong>);
<a name="535" href="#535">535</a>         setAction(aas, Action.CAN_DELETE_OBJECT, <strong class="jxr_keyword">true</strong>);
<a name="536" href="#536">536</a>         setAction(aas, Action.CAN_GET_ACL, false);
<a name="537" href="#537">537</a>         setAction(aas, Action.CAN_APPLY_ACL, false);
<a name="538" href="#538">538</a>         setAction(aas, Action.CAN_GET_OBJECT_RELATIONSHIPS, false);
<a name="539" href="#539">539</a>         setAction(aas, Action.CAN_ADD_OBJECT_TO_FOLDER, false);
<a name="540" href="#540">540</a>         setAction(aas, Action.CAN_REMOVE_OBJECT_FROM_FOLDER, false);
<a name="541" href="#541">541</a>         setAction(aas, Action.CAN_APPLY_POLICY, false);
<a name="542" href="#542">542</a>         setAction(aas, Action.CAN_GET_APPLIED_POLICIES, false);
<a name="543" href="#543">543</a>         setAction(aas, Action.CAN_REMOVE_POLICY, false);
<a name="544" href="#544">544</a>         setAction(aas, Action.CAN_CREATE_RELATIONSHIP, false);
<a name="545" href="#545">545</a>         <strong class="jxr_keyword">return</strong> aas;
<a name="546" href="#546">546</a>     }
<a name="547" href="#547">547</a> 
<a name="548" href="#548">548</a>     <em class="jxr_javadoccomment">/**</em>
<a name="549" href="#549">549</a> <em class="jxr_javadoccomment">     * @return  the change token of the CMIS object represented by this instance</em>
<a name="550" href="#550">550</a> <em class="jxr_javadoccomment">     * @throws RepositoryException</em>
<a name="551" href="#551">551</a> <em class="jxr_javadoccomment">     */</em>
<a name="552" href="#552">552</a>     <strong class="jxr_keyword">protected</strong> String getChangeToken() <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="553" href="#553">553</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="554" href="#554">554</a>     }
<a name="555" href="#555">555</a> 
<a name="556" href="#556">556</a>     <em class="jxr_javadoccomment">/**</em>
<a name="557" href="#557">557</a> <em class="jxr_javadoccomment">     * @return  the last modifier of the CMIS object represented by this instance</em>
<a name="558" href="#558">558</a> <em class="jxr_javadoccomment">     * @throws RepositoryException</em>
<a name="559" href="#559">559</a> <em class="jxr_javadoccomment">     */</em>
<a name="560" href="#560">560</a>     <strong class="jxr_keyword">protected</strong> String getLastModifiedBy() <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="561" href="#561">561</a>         <strong class="jxr_keyword">return</strong> getPropertyOrElse(getContextNode(), Property.JCR_LAST_MODIFIED_BY, USER_UNKNOWN);
<a name="562" href="#562">562</a>     }
<a name="563" href="#563">563</a> 
<a name="564" href="#564">564</a>     <em class="jxr_javadoccomment">/**</em>
<a name="565" href="#565">565</a> <em class="jxr_javadoccomment">     * @return  the last modification date of the CMIS object represented by this instance</em>
<a name="566" href="#566">566</a> <em class="jxr_javadoccomment">     * @throws RepositoryException</em>
<a name="567" href="#567">567</a> <em class="jxr_javadoccomment">     */</em>
<a name="568" href="#568">568</a>     <strong class="jxr_keyword">protected</strong> GregorianCalendar getLastModified() <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="569" href="#569">569</a>         <strong class="jxr_keyword">return</strong> getPropertyOrElse(getContextNode(), Property.JCR_LAST_MODIFIED, DATE_UNKNOWN);
<a name="570" href="#570">570</a>     }
<a name="571" href="#571">571</a> 
<a name="572" href="#572">572</a>     <em class="jxr_javadoccomment">/**</em>
<a name="573" href="#573">573</a> <em class="jxr_javadoccomment">     * @return  the creation date of the CMIS object represented by this instance</em>
<a name="574" href="#574">574</a> <em class="jxr_javadoccomment">     * @throws RepositoryException</em>
<a name="575" href="#575">575</a> <em class="jxr_javadoccomment">     */</em>
<a name="576" href="#576">576</a>     <strong class="jxr_keyword">protected</strong> GregorianCalendar getCreated() <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="577" href="#577">577</a>         <strong class="jxr_keyword">return</strong> getPropertyOrElse(getContextNode(), Property.JCR_CREATED, DATE_UNKNOWN);
<a name="578" href="#578">578</a>     }
<a name="579" href="#579">579</a> 
<a name="580" href="#580">580</a>     <em class="jxr_javadoccomment">/**</em>
<a name="581" href="#581">581</a> <em class="jxr_javadoccomment">     * @return  the creator of the CMIS object represented by this instance</em>
<a name="582" href="#582">582</a> <em class="jxr_javadoccomment">     * @throws RepositoryException</em>
<a name="583" href="#583">583</a> <em class="jxr_javadoccomment">     */</em>
<a name="584" href="#584">584</a>     <strong class="jxr_keyword">protected</strong> String getCreatedBy() <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="585" href="#585">585</a>         <strong class="jxr_keyword">return</strong> getPropertyOrElse(getContextNode(), Property.JCR_CREATED_BY, USER_UNKNOWN);
<a name="586" href="#586">586</a>     }
<a name="587" href="#587">587</a> 
<a name="588" href="#588">588</a>     <em class="jxr_javadoccomment">/**</em>
<a name="589" href="#589">589</a> <em class="jxr_javadoccomment">     * @return  the name of the underlying JCR &lt;code&gt;node&lt;/code&gt;.</em>
<a name="590" href="#590">590</a> <em class="jxr_javadoccomment">     * @throws RepositoryException</em>
<a name="591" href="#591">591</a> <em class="jxr_javadoccomment">     */</em>
<a name="592" href="#592">592</a>     <strong class="jxr_keyword">protected</strong> String getNodeName() <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="593" href="#593">593</a>         <strong class="jxr_keyword">return</strong> node.getName();
<a name="594" href="#594">594</a>     }
<a name="595" href="#595">595</a> 
<a name="596" href="#596">596</a>     <em class="jxr_javadoccomment">/**</em>
<a name="597" href="#597">597</a> <em class="jxr_javadoccomment">     * @return  the object id of the CMIS object represented by this instance</em>
<a name="598" href="#598">598</a> <em class="jxr_javadoccomment">     * @throws RepositoryException</em>
<a name="599" href="#599">599</a> <em class="jxr_javadoccomment">     */</em>
<a name="600" href="#600">600</a>     <strong class="jxr_keyword">protected</strong> String getObjectId() <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="601" href="#601">601</a>         <strong class="jxr_keyword">return</strong> getVersionSeriesId();
<a name="602" href="#602">602</a>     }
<a name="603" href="#603">603</a> 
<a name="604" href="#604">604</a>     <em class="jxr_javadoccomment">/**</em>
<a name="605" href="#605">605</a> <em class="jxr_javadoccomment">     * @return  the versions series id of the CMIS object represented by this instance</em>
<a name="606" href="#606">606</a> <em class="jxr_javadoccomment">     * @throws RepositoryException</em>
<a name="607" href="#607">607</a> <em class="jxr_javadoccomment">     */</em>
<a name="608" href="#608">608</a>     <strong class="jxr_keyword">protected</strong> String getVersionSeriesId() <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="609" href="#609">609</a>         <strong class="jxr_keyword">return</strong> node.getIdentifier();
<a name="610" href="#610">610</a>     }
<a name="611" href="#611">611</a> 
<a name="612" href="#612">612</a>     <em class="jxr_javadoccomment">/**</em>
<a name="613" href="#613">613</a> <em class="jxr_javadoccomment">     * Factory method for creating a new &lt;code&gt;JcrNode&lt;/code&gt; instance from a JCR &lt;code&gt;Node&lt;/code&gt;</em>
<a name="614" href="#614">614</a> <em class="jxr_javadoccomment">     *</em>
<a name="615" href="#615">615</a> <em class="jxr_javadoccomment">     * @param node  the JCR &lt;code&gt;Node&lt;/code&gt;</em>
<a name="616" href="#616">616</a> <em class="jxr_javadoccomment">     * @return  a new &lt;code&gt;JcrNode&lt;/code&gt;</em>
<a name="617" href="#617">617</a> <em class="jxr_javadoccomment">     */</em>
<a name="618" href="#618">618</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/chemistry/opencmis/jcr/JcrNode.html">JcrNode</a> create(Node node) {
<a name="619" href="#619">619</a>         <strong class="jxr_keyword">return</strong> typeHandlerManager.create(node);
<a name="620" href="#620">620</a>     }
<a name="621" href="#621">621</a> 
<a name="622" href="#622">622</a>     <em class="jxr_javadoccomment">/**</em>
<a name="623" href="#623">623</a> <em class="jxr_javadoccomment">     * Add Id property to the CMIS object represented by this instance</em>
<a name="624" href="#624">624</a> <em class="jxr_javadoccomment">     */</em>
<a name="625" href="#625">625</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> addPropertyId(PropertiesImpl props, String typeId, Set&lt;String&gt; filter, String id, String value) {
<a name="626" href="#626">626</a>         <strong class="jxr_keyword">if</strong> (value == <strong class="jxr_keyword">null</strong>) {
<a name="627" href="#627">627</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Value must not be null!"</span>);
<a name="628" href="#628">628</a>         }
<a name="629" href="#629">629</a> 
<a name="630" href="#630">630</a>         <strong class="jxr_keyword">if</strong> (!checkAddProperty(props, typeId, filter, id)) {
<a name="631" href="#631">631</a>             <strong class="jxr_keyword">return</strong>;
<a name="632" href="#632">632</a>         }
<a name="633" href="#633">633</a> 
<a name="634" href="#634">634</a>         PropertyIdImpl prop = <strong class="jxr_keyword">new</strong> PropertyIdImpl(id, value);
<a name="635" href="#635">635</a>         prop.setQueryName(id);
<a name="636" href="#636">636</a>         props.addProperty(prop);
<a name="637" href="#637">637</a>     }
<a name="638" href="#638">638</a> 
<a name="639" href="#639">639</a>     <em class="jxr_javadoccomment">/**</em>
<a name="640" href="#640">640</a> <em class="jxr_javadoccomment">     * Add string property to the CMIS object represented by this instance</em>
<a name="641" href="#641">641</a> <em class="jxr_javadoccomment">     */</em>
<a name="642" href="#642">642</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> addPropertyString(PropertiesImpl props, String typeId, Set&lt;String&gt; filter, String id, String value) {
<a name="643" href="#643">643</a>         <strong class="jxr_keyword">if</strong> (!checkAddProperty(props, typeId, filter, id)) {
<a name="644" href="#644">644</a>             <strong class="jxr_keyword">return</strong>;
<a name="645" href="#645">645</a>         }
<a name="646" href="#646">646</a> 
<a name="647" href="#647">647</a>         PropertyStringImpl prop = <strong class="jxr_keyword">new</strong> PropertyStringImpl(id, value);
<a name="648" href="#648">648</a>         prop.setQueryName(id);
<a name="649" href="#649">649</a>         props.addProperty(prop);
<a name="650" href="#650">650</a>     }
<a name="651" href="#651">651</a> 
<a name="652" href="#652">652</a>     <em class="jxr_javadoccomment">/**</em>
<a name="653" href="#653">653</a> <em class="jxr_javadoccomment">     * Add integer property to the CMIS object represented by this instance</em>
<a name="654" href="#654">654</a> <em class="jxr_javadoccomment">     */</em>
<a name="655" href="#655">655</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> addPropertyInteger(PropertiesImpl props, String typeId, Set&lt;String&gt; filter, String id, <strong class="jxr_keyword">long</strong> value) {
<a name="656" href="#656">656</a>         <strong class="jxr_keyword">if</strong> (!checkAddProperty(props, typeId, filter, id)) {
<a name="657" href="#657">657</a>             <strong class="jxr_keyword">return</strong>;
<a name="658" href="#658">658</a>         }
<a name="659" href="#659">659</a> 
<a name="660" href="#660">660</a>         PropertyIntegerImpl prop = <strong class="jxr_keyword">new</strong> PropertyIntegerImpl(id, BigInteger.valueOf(value));
<a name="661" href="#661">661</a>         prop.setQueryName(id);
<a name="662" href="#662">662</a>         props.addProperty(prop);
<a name="663" href="#663">663</a>     }
<a name="664" href="#664">664</a> 
<a name="665" href="#665">665</a>     <em class="jxr_javadoccomment">/**</em>
<a name="666" href="#666">666</a> <em class="jxr_javadoccomment">     * Add boolean property to the CMIS object represented by this instance</em>
<a name="667" href="#667">667</a> <em class="jxr_javadoccomment">     */</em>
<a name="668" href="#668">668</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> addPropertyBoolean(PropertiesImpl props, String typeId, Set&lt;String&gt; filter, String id, <strong class="jxr_keyword">boolean</strong> value) {
<a name="669" href="#669">669</a>         <strong class="jxr_keyword">if</strong> (!checkAddProperty(props, typeId, filter, id)) {
<a name="670" href="#670">670</a>             <strong class="jxr_keyword">return</strong>;
<a name="671" href="#671">671</a>         }
<a name="672" href="#672">672</a> 
<a name="673" href="#673">673</a>         PropertyBooleanImpl prop = <strong class="jxr_keyword">new</strong> PropertyBooleanImpl(id, value);
<a name="674" href="#674">674</a>         prop.setQueryName(id);
<a name="675" href="#675">675</a>         props.addProperty(prop);
<a name="676" href="#676">676</a>     }
<a name="677" href="#677">677</a> 
<a name="678" href="#678">678</a>     <em class="jxr_javadoccomment">/**</em>
<a name="679" href="#679">679</a> <em class="jxr_javadoccomment">     * Add date-time property to the CMIS object represented by this instance</em>
<a name="680" href="#680">680</a> <em class="jxr_javadoccomment">     */</em>
<a name="681" href="#681">681</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> addPropertyDateTime(PropertiesImpl props, String typeId, Set&lt;String&gt; filter, String id,
<a name="682" href="#682">682</a>             GregorianCalendar value) {
<a name="683" href="#683">683</a> 
<a name="684" href="#684">684</a>         <strong class="jxr_keyword">if</strong> (!checkAddProperty(props, typeId, filter, id)) {
<a name="685" href="#685">685</a>             <strong class="jxr_keyword">return</strong>;
<a name="686" href="#686">686</a>         }
<a name="687" href="#687">687</a> 
<a name="688" href="#688">688</a>         PropertyDateTimeImpl prop = <strong class="jxr_keyword">new</strong> PropertyDateTimeImpl(id, value);
<a name="689" href="#689">689</a>         prop.setQueryName(id);
<a name="690" href="#690">690</a>         props.addProperty(prop);
<a name="691" href="#691">691</a>     }
<a name="692" href="#692">692</a> 
<a name="693" href="#693">693</a>     <em class="jxr_javadoccomment">/**</em>
<a name="694" href="#694">694</a> <em class="jxr_javadoccomment">     * Validate a set of properties against a filter and its definitions</em>
<a name="695" href="#695">695</a> <em class="jxr_javadoccomment">     */</em>
<a name="696" href="#696">696</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> checkAddProperty(Properties properties, String typeId, Set&lt;String&gt; filter, String id) {
<a name="697" href="#697">697</a>         <strong class="jxr_keyword">if</strong> (properties == <strong class="jxr_keyword">null</strong> || properties.getProperties() == <strong class="jxr_keyword">null</strong>) {
<a name="698" href="#698">698</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Properties must not be null!"</span>);
<a name="699" href="#699">699</a>         }
<a name="700" href="#700">700</a> 
<a name="701" href="#701">701</a>         <strong class="jxr_keyword">if</strong> (id == <strong class="jxr_keyword">null</strong>) {
<a name="702" href="#702">702</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Id must not be null!"</span>);
<a name="703" href="#703">703</a>         }
<a name="704" href="#704">704</a> 
<a name="705" href="#705">705</a>         TypeDefinition type = typeManager.getType(typeId);
<a name="706" href="#706">706</a>         <strong class="jxr_keyword">if</strong> (type == <strong class="jxr_keyword">null</strong>) {
<a name="707" href="#707">707</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Unknown type: "</span> + typeId);
<a name="708" href="#708">708</a>         }
<a name="709" href="#709">709</a>         <strong class="jxr_keyword">if</strong> (!type.getPropertyDefinitions().containsKey(id)) {
<a name="710" href="#710">710</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Unknown property: "</span> + id);
<a name="711" href="#711">711</a>         }
<a name="712" href="#712">712</a> 
<a name="713" href="#713">713</a>         String queryName = type.getPropertyDefinitions().get(id).getQueryName();
<a name="714" href="#714">714</a> 
<a name="715" href="#715">715</a>         <strong class="jxr_keyword">if</strong> (queryName != <strong class="jxr_keyword">null</strong> &amp;&amp; filter != <strong class="jxr_keyword">null</strong>) {
<a name="716" href="#716">716</a>             <strong class="jxr_keyword">if</strong> (filter.contains(queryName)) {
<a name="717" href="#717">717</a>                 filter.remove(queryName);
<a name="718" href="#718">718</a>             }
<a name="719" href="#719">719</a>             <strong class="jxr_keyword">else</strong> {
<a name="720" href="#720">720</a>                 <strong class="jxr_keyword">return</strong> false;
<a name="721" href="#721">721</a>             }
<a name="722" href="#722">722</a>         }
<a name="723" href="#723">723</a> 
<a name="724" href="#724">724</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="725" href="#725">725</a>     }
<a name="726" href="#726">726</a> 
<a name="727" href="#727">727</a>     <em class="jxr_javadoccomment">/**</em>
<a name="728" href="#728">728</a> <em class="jxr_javadoccomment">     * Thunk for {@link JcrNode#updateProperties(Node, String, Properties)}</em>
<a name="729" href="#729">729</a> <em class="jxr_javadoccomment">     */</em>
<a name="730" href="#730">730</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/chemistry/opencmis/jcr/JcrNode.html">PropertyUpdater</a> {
<a name="731" href="#731">731</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> List&lt;PropertyData&lt;?&gt;&gt; removeProperties = <strong class="jxr_keyword">new</strong> ArrayList&lt;PropertyData&lt;?&gt;&gt;();
<a name="732" href="#732">732</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> List&lt;PropertyData&lt;?&gt;&gt; updateProperties = <strong class="jxr_keyword">new</strong> ArrayList&lt;PropertyData&lt;?&gt;&gt;();
<a name="733" href="#733">733</a> 
<a name="734" href="#734">734</a>         <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/chemistry/opencmis/jcr/JcrNode.html">PropertyUpdater</a>() { }
<a name="735" href="#735">735</a> 
<a name="736" href="#736">736</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../org/apache/chemistry/opencmis/jcr/JcrNode.html">PropertyUpdater</a> create(<a href="../../../../../org/apache/chemistry/opencmis/jcr/JcrTypeManager.html">JcrTypeManager</a> typeManager, String typeId, Properties properties) {
<a name="737" href="#737">737</a>             <strong class="jxr_keyword">if</strong> (properties == <strong class="jxr_keyword">null</strong>) {
<a name="738" href="#738">738</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisConstraintException(<span class="jxr_string">"No properties!"</span>);
<a name="739" href="#739">739</a>             }
<a name="740" href="#740">740</a> 
<a name="741" href="#741">741</a>             <em class="jxr_comment">// get the property definitions</em>
<a name="742" href="#742">742</a>             TypeDefinition type = typeManager.getType(typeId);
<a name="743" href="#743">743</a>             <strong class="jxr_keyword">if</strong> (type == <strong class="jxr_keyword">null</strong>) {
<a name="744" href="#744">744</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisObjectNotFoundException(<span class="jxr_string">"Type '"</span> + typeId + <span class="jxr_string">"' is unknown!"</span>);
<a name="745" href="#745">745</a>             }
<a name="746" href="#746">746</a> 
<a name="747" href="#747">747</a>             <a href="../../../../../org/apache/chemistry/opencmis/jcr/JcrNode.html">PropertyUpdater</a> propertyUpdater = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/chemistry/opencmis/jcr/JcrNode.html">PropertyUpdater</a>();
<a name="748" href="#748">748</a>             <em class="jxr_comment">// update properties</em>
<a name="749" href="#749">749</a>             <strong class="jxr_keyword">for</strong> (PropertyData&lt;?&gt; prop : properties.getProperties().values()) {
<a name="750" href="#750">750</a>                 PropertyDefinition&lt;?&gt; propDef = type.getPropertyDefinitions().get(prop.getId());
<a name="751" href="#751">751</a> 
<a name="752" href="#752">752</a>                 <em class="jxr_comment">// do we know that property?</em>
<a name="753" href="#753">753</a>                 <strong class="jxr_keyword">if</strong> (propDef == <strong class="jxr_keyword">null</strong>) {
<a name="754" href="#754">754</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Property '"</span> + prop.getId() + <span class="jxr_string">"' is unknown!"</span>);
<a name="755" href="#755">755</a>                 }
<a name="756" href="#756">756</a> 
<a name="757" href="#757">757</a>                 <em class="jxr_comment">// skip content stream file name</em>
<a name="758" href="#758">758</a>                 <strong class="jxr_keyword">if</strong> (propDef.getId().equals(PropertyIds.CONTENT_STREAM_FILE_NAME)) {
<a name="759" href="#759">759</a>                     log.warn(<span class="jxr_string">"Cannot set "</span> + PropertyIds.CONTENT_STREAM_FILE_NAME + <span class="jxr_string">". Ignoring"</span>);
<a name="760" href="#760">760</a>                     <strong class="jxr_keyword">continue</strong>;
<a name="761" href="#761">761</a>                 }
<a name="762" href="#762">762</a> 
<a name="763" href="#763">763</a>                 <em class="jxr_comment">// silently skip name</em>
<a name="764" href="#764">764</a>                 <strong class="jxr_keyword">if</strong> (propDef.getId().equals(PropertyIds.NAME)) {
<a name="765" href="#765">765</a>                     <strong class="jxr_keyword">continue</strong>;
<a name="766" href="#766">766</a>                 }
<a name="767" href="#767">767</a> 
<a name="768" href="#768">768</a>                 <em class="jxr_comment">// can it be set?</em>
<a name="769" href="#769">769</a>                 <strong class="jxr_keyword">if</strong> (propDef.getUpdatability() == Updatability.READONLY) {
<a name="770" href="#770">770</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisConstraintException(<span class="jxr_string">"Property '"</span> + prop.getId() + <span class="jxr_string">"' is readonly!"</span>);
<a name="771" href="#771">771</a>                 }
<a name="772" href="#772">772</a> 
<a name="773" href="#773">773</a>                 <strong class="jxr_keyword">if</strong> (propDef.getUpdatability() == Updatability.ONCREATE) {
<a name="774" href="#774">774</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisConstraintException(<span class="jxr_string">"Property '"</span> + prop.getId() + <span class="jxr_string">"' can only be set on create!"</span>);
<a name="775" href="#775">775</a>                 }
<a name="776" href="#776">776</a> 
<a name="777" href="#777">777</a>                 <em class="jxr_comment">// default or value</em>
<a name="778" href="#778">778</a>                 PropertyData&lt;?&gt; newProp;
<a name="779" href="#779">779</a>                 newProp = PropertyHelper.isPropertyEmpty(prop)
<a name="780" href="#780">780</a>                         ? PropertyHelper.getDefaultValue(propDef)
<a name="781" href="#781">781</a>                         : prop;
<a name="782" href="#782">782</a> 
<a name="783" href="#783">783</a>                 <em class="jxr_comment">// Schedule for remove or update</em>
<a name="784" href="#784">784</a>                 <strong class="jxr_keyword">if</strong> (newProp == <strong class="jxr_keyword">null</strong>) {
<a name="785" href="#785">785</a>                     propertyUpdater.removeProperties.add(prop);
<a name="786" href="#786">786</a>                 }
<a name="787" href="#787">787</a>                 <strong class="jxr_keyword">else</strong> {
<a name="788" href="#788">788</a>                     propertyUpdater.updateProperties.add(newProp);
<a name="789" href="#789">789</a>                 }
<a name="790" href="#790">790</a>             }
<a name="791" href="#791">791</a> 
<a name="792" href="#792">792</a>             <strong class="jxr_keyword">return</strong> propertyUpdater;
<a name="793" href="#793">793</a>         }
<a name="794" href="#794">794</a> 
<a name="795" href="#795">795</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isEmpty() {
<a name="796" href="#796">796</a>             <strong class="jxr_keyword">return</strong> removeProperties.isEmpty() &amp;&amp; updateProperties.isEmpty();
<a name="797" href="#797">797</a>         }
<a name="798" href="#798">798</a> 
<a name="799" href="#799">799</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> apply(Node node) {
<a name="800" href="#800">800</a>             <strong class="jxr_keyword">try</strong> {
<a name="801" href="#801">801</a>                 <strong class="jxr_keyword">for</strong> (PropertyData&lt;?&gt; prop: removeProperties) {
<a name="802" href="#802">802</a>                     JcrConverter.removeProperty(node, prop);
<a name="803" href="#803">803</a>                 }
<a name="804" href="#804">804</a>                 <strong class="jxr_keyword">for</strong> (PropertyData&lt;?&gt; prop: updateProperties) {
<a name="805" href="#805">805</a>                     JcrConverter.setProperty(node, prop);
<a name="806" href="#806">806</a>                 }
<a name="807" href="#807">807</a>             }
<a name="808" href="#808">808</a>             <strong class="jxr_keyword">catch</strong> (RepositoryException e) {
<a name="809" href="#809">809</a>                 log.debug(e.getMessage(), e);
<a name="810" href="#810">810</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisStorageException(e.getMessage(), e);
<a name="811" href="#811">811</a>             }
<a name="812" href="#812">812</a>         }
<a name="813" href="#813">813</a>     }
<a name="814" href="#814">814</a> 
<a name="815" href="#815">815</a>     <em class="jxr_javadoccomment">/**</em>
<a name="816" href="#816">816</a> <em class="jxr_javadoccomment">     * Update the properties of the CMIS object represented by this instance</em>
<a name="817" href="#817">817</a> <em class="jxr_javadoccomment">     */</em>
<a name="818" href="#818">818</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> updateProperties(Node node, String typeId, Properties properties) {
<a name="819" href="#819">819</a>         PropertyUpdater.create(typeManager, typeId, properties).apply(node);
<a name="820" href="#820">820</a>     }
<a name="821" href="#821">821</a> 
<a name="822" href="#822">822</a>     <em class="jxr_javadoccomment">/**</em>
<a name="823" href="#823">823</a> <em class="jxr_javadoccomment">     * Utility function for retrieving the version history of a JCR &lt;code&gt;Node&lt;/code&gt;.</em>
<a name="824" href="#824">824</a> <em class="jxr_javadoccomment">     *</em>
<a name="825" href="#825">825</a> <em class="jxr_javadoccomment">     * @param node  the node for which to retrieve the version history</em>
<a name="826" href="#826">826</a> <em class="jxr_javadoccomment">     * @return  version history of &lt;code&gt;node&lt;/code&gt;</em>
<a name="827" href="#827">827</a> <em class="jxr_javadoccomment">     * @throws RepositoryException  if &lt;code&gt;node&lt;/code&gt; is not versionable</em>
<a name="828" href="#828">828</a> <em class="jxr_javadoccomment">     */</em>
<a name="829" href="#829">829</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> VersionHistory getVersionHistory(Node node) <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="830" href="#830">830</a>         <strong class="jxr_keyword">return</strong> getVersionManager(node).getVersionHistory(node.getPath());
<a name="831" href="#831">831</a>     }
<a name="832" href="#832">832</a> 
<a name="833" href="#833">833</a>     <em class="jxr_javadoccomment">/**</em>
<a name="834" href="#834">834</a> <em class="jxr_javadoccomment">     * Utility function for retrieving the version manager from a JCR &lt;code&gt;Node&lt;/code&gt;.</em>
<a name="835" href="#835">835</a> <em class="jxr_javadoccomment">     *</em>
<a name="836" href="#836">836</a> <em class="jxr_javadoccomment">     * @param node</em>
<a name="837" href="#837">837</a> <em class="jxr_javadoccomment">     * @return</em>
<a name="838" href="#838">838</a> <em class="jxr_javadoccomment">     * @throws RepositoryException</em>
<a name="839" href="#839">839</a> <em class="jxr_javadoccomment">     */</em>
<a name="840" href="#840">840</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> VersionManager getVersionManager(Node node) <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="841" href="#841">841</a>         <strong class="jxr_keyword">return</strong> node.getSession().getWorkspace().getVersionManager();
<a name="842" href="#842">842</a>     }
<a name="843" href="#843">843</a> 
<a name="844" href="#844">844</a>     <em class="jxr_javadoccomment">/**</em>
<a name="845" href="#845">845</a> <em class="jxr_javadoccomment">     * Utility function for retrieving the base version of a JCR &lt;code&gt;Node&lt;/code&gt;.</em>
<a name="846" href="#846">846</a> <em class="jxr_javadoccomment">     *</em>
<a name="847" href="#847">847</a> <em class="jxr_javadoccomment">     * @param node  the node for which to retrieve the base version</em>
<a name="848" href="#848">848</a> <em class="jxr_javadoccomment">     * @return  version base version of &lt;code&gt;node&lt;/code&gt;</em>
<a name="849" href="#849">849</a> <em class="jxr_javadoccomment">     * @throws RepositoryException  if &lt;code&gt;node&lt;/code&gt; is not versionable</em>
<a name="850" href="#850">850</a> <em class="jxr_javadoccomment">     */</em>
<a name="851" href="#851">851</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> Version getBaseVersion(Node node) <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="852" href="#852">852</a>         <strong class="jxr_keyword">return</strong> getVersionManager(node).getBaseVersion(node.getPath());
<a name="853" href="#853">853</a>     }
<a name="854" href="#854">854</a> 
<a name="855" href="#855">855</a>     <em class="jxr_javadoccomment">/**</em>
<a name="856" href="#856">856</a> <em class="jxr_javadoccomment">     * Utility function to retrieve the length of a property of a JCR &lt;code&gt;Node&lt;/code&gt;.</em>
<a name="857" href="#857">857</a> <em class="jxr_javadoccomment">     *</em>
<a name="858" href="#858">858</a> <em class="jxr_javadoccomment">     * @param node</em>
<a name="859" href="#859">859</a> <em class="jxr_javadoccomment">     * @param propertyName</em>
<a name="860" href="#860">860</a> <em class="jxr_javadoccomment">     * @return</em>
<a name="861" href="#861">861</a> <em class="jxr_javadoccomment">     * @throws RepositoryException</em>
<a name="862" href="#862">862</a> <em class="jxr_javadoccomment">     */</em>
<a name="863" href="#863">863</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">long</strong> getPropertyLength(Node node, String propertyName) <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="864" href="#864">864</a>         <strong class="jxr_keyword">return</strong> node.hasProperty(propertyName)
<a name="865" href="#865">865</a>             ? node.getProperty(propertyName).getLength()
<a name="866" href="#866">866</a>             : -1;
<a name="867" href="#867">867</a>     }
<a name="868" href="#868">868</a> 
<a name="869" href="#869">869</a>     <em class="jxr_javadoccomment">/**</em>
<a name="870" href="#870">870</a> <em class="jxr_javadoccomment">     * Utility function for retrieving a string property from a JCR &lt;code&gt;Node&lt;/code&gt; or a default</em>
<a name="871" href="#871">871</a> <em class="jxr_javadoccomment">     * value in case of an error.</em>
<a name="872" href="#872">872</a> <em class="jxr_javadoccomment">     *</em>
<a name="873" href="#873">873</a> <em class="jxr_javadoccomment">     * @param node</em>
<a name="874" href="#874">874</a> <em class="jxr_javadoccomment">     * @param propertyName</em>
<a name="875" href="#875">875</a> <em class="jxr_javadoccomment">     * @param defaultValue</em>
<a name="876" href="#876">876</a> <em class="jxr_javadoccomment">     * @return</em>
<a name="877" href="#877">877</a> <em class="jxr_javadoccomment">     * @throws RepositoryException</em>
<a name="878" href="#878">878</a> <em class="jxr_javadoccomment">     */</em>
<a name="879" href="#879">879</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> String getPropertyOrElse(Node node, String propertyName, String defaultValue)
<a name="880" href="#880">880</a>             <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="881" href="#881">881</a> 
<a name="882" href="#882">882</a>         <strong class="jxr_keyword">return</strong> node.hasProperty(propertyName)
<a name="883" href="#883">883</a>             ? node.getProperty(propertyName).getString()
<a name="884" href="#884">884</a>             : defaultValue;
<a name="885" href="#885">885</a>     }
<a name="886" href="#886">886</a> 
<a name="887" href="#887">887</a>     <em class="jxr_javadoccomment">/**</em>
<a name="888" href="#888">888</a> <em class="jxr_javadoccomment">     * Utility function for retrieving a date property from a JCR &lt;code&gt;Node&lt;/code&gt; or a default</em>
<a name="889" href="#889">889</a> <em class="jxr_javadoccomment">     * value in case of an error.</em>
<a name="890" href="#890">890</a> <em class="jxr_javadoccomment">     *</em>
<a name="891" href="#891">891</a> <em class="jxr_javadoccomment">     * @param node</em>
<a name="892" href="#892">892</a> <em class="jxr_javadoccomment">     * @param propertyName</em>
<a name="893" href="#893">893</a> <em class="jxr_javadoccomment">     * @param defaultValue</em>
<a name="894" href="#894">894</a> <em class="jxr_javadoccomment">     * @return</em>
<a name="895" href="#895">895</a> <em class="jxr_javadoccomment">     * @throws RepositoryException</em>
<a name="896" href="#896">896</a> <em class="jxr_javadoccomment">     */</em>
<a name="897" href="#897">897</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> GregorianCalendar getPropertyOrElse(Node node, String propertyName, GregorianCalendar defaultValue)
<a name="898" href="#898">898</a>             <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="899" href="#899">899</a> 
<a name="900" href="#900">900</a>         <strong class="jxr_keyword">if</strong> (node.hasProperty(propertyName)) {
<a name="901" href="#901">901</a>             Calendar date = node.getProperty(propertyName).getDate();
<a name="902" href="#902">902</a>             <strong class="jxr_keyword">return</strong> Util.toCalendar(date);
<a name="903" href="#903">903</a>         }
<a name="904" href="#904">904</a>         <strong class="jxr_keyword">else</strong> {
<a name="905" href="#905">905</a>             <strong class="jxr_keyword">return</strong> defaultValue;
<a name="906" href="#906">906</a>         }
<a name="907" href="#907">907</a>     }
<a name="908" href="#908">908</a> 
<a name="909" href="#909">909</a>     <em class="jxr_javadoccomment">/**</em>
<a name="910" href="#910">910</a> <em class="jxr_javadoccomment">     * Add &lt;code&gt;action&lt;/code&gt; to &lt;code&gt;actions&lt;/code&gt; iff &lt;code&gt;condition&lt;/code&gt; is true.</em>
<a name="911" href="#911">911</a> <em class="jxr_javadoccomment">     *</em>
<a name="912" href="#912">912</a> <em class="jxr_javadoccomment">     * @param actions</em>
<a name="913" href="#913">913</a> <em class="jxr_javadoccomment">     * @param action</em>
<a name="914" href="#914">914</a> <em class="jxr_javadoccomment">     * @param condition</em>
<a name="915" href="#915">915</a> <em class="jxr_javadoccomment">     */</em>
<a name="916" href="#916">916</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> setAction(Set&lt;Action&gt; actions, Action action, <strong class="jxr_keyword">boolean</strong> condition) {
<a name="917" href="#917">917</a>         <strong class="jxr_keyword">if</strong> (condition) {
<a name="918" href="#918">918</a>             actions.add(action);
<a name="919" href="#919">919</a>         }
<a name="920" href="#920">920</a>         <strong class="jxr_keyword">else</strong> {
<a name="921" href="#921">921</a>             actions.remove(action);
<a name="922" href="#922">922</a>         }
<a name="923" href="#923">923</a>     }
<a name="924" href="#924">924</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

