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

<a class="jxr_linenumber" name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a class="jxr_linenumber" name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="10" href="#10">10</a>  <em class="jxr_comment"> * <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a class="jxr_linenumber" name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a class="jxr_linenumber" name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
<a class="jxr_linenumber" name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.chemistry.opencmis.server.support;
<a class="jxr_linenumber" name="20" href="#20">20</a>  
<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.chemistry.opencmis.commons.impl.CollectionsHelper.*;
<a class="jxr_linenumber" name="22" href="#22">22</a>  
<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.math.BigDecimal;
<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.math.BigInteger;
<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a class="jxr_linenumber" name="30" href="#30">30</a>  
<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.PropertyIds;
<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Acl;
<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Properties;
<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyData;
<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.Choice;
<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.DocumentTypeDefinition;
<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyDecimalDefinition;
<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition;
<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyIntegerDefinition;
<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyStringDefinition;
<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.RelationshipTypeDefinition;
<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Cardinality;
<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.ContentStreamAllowed;
<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.VersioningState;
<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisConstraintException;
<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
<a class="jxr_linenumber" name="49" href="#49">49</a>  
<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/chemistry/opencmis/server/support/TypeValidator.html">TypeValidator</a> {
<a class="jxr_linenumber" name="51" href="#51">51</a>  
<a class="jxr_linenumber" name="52" href="#52">52</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/chemistry/opencmis/server/support/TypeValidator.html">TypeValidator</a>() {
<a class="jxr_linenumber" name="53" href="#53">53</a>      }
<a class="jxr_linenumber" name="54" href="#54">54</a>  
<a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> validateRequiredSystemProperties(Properties properties) {
<a class="jxr_linenumber" name="56" href="#56">56</a>          <strong class="jxr_keyword">if</strong> (properties == <strong class="jxr_keyword">null</strong> || properties.getProperties() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="57" href="#57">57</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Cannot create object, no properties are given"</span>);
<a class="jxr_linenumber" name="58" href="#58">58</a>          }
<a class="jxr_linenumber" name="59" href="#59">59</a>  
<a class="jxr_linenumber" name="60" href="#60">60</a>          <strong class="jxr_keyword">if</strong> (!properties.getProperties().containsKey(PropertyIds.OBJECT_TYPE_ID)) {
<a class="jxr_linenumber" name="61" href="#61">61</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Cannot create object, type id is missing"</span>);
<a class="jxr_linenumber" name="62" href="#62">62</a>          }
<a class="jxr_linenumber" name="63" href="#63">63</a>      }
<a class="jxr_linenumber" name="64" href="#64">64</a>  
<a class="jxr_linenumber" name="65" href="#65">65</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> isMandatorySystemProperty(String propertyId) {
<a class="jxr_linenumber" name="66" href="#66">66</a>          <strong class="jxr_keyword">return</strong> propertyId.equals(PropertyIds.OBJECT_TYPE_ID);
<a class="jxr_linenumber" name="67" href="#67">67</a>      }
<a class="jxr_linenumber" name="68" href="#68">68</a>  
<a class="jxr_linenumber" name="69" href="#69">69</a>      @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="70" href="#70">70</a>      <strong class="jxr_keyword">static</strong> &lt;T&gt; PropertyValidator&lt;T&gt; createPropertyValidator(PropertyDefinition&lt;?&gt; propDef) {
<a class="jxr_linenumber" name="71" href="#71">71</a>          PropertyValidator&lt;T&gt; result = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="72" href="#72">72</a>          <strong class="jxr_keyword">if</strong> (propDef instanceof PropertyIntegerDefinition) {
<a class="jxr_linenumber" name="73" href="#73">73</a>              result = (PropertyValidator&lt;T&gt;) <strong class="jxr_keyword">new</strong> PropertyValidatorInteger();
<a class="jxr_linenumber" name="74" href="#74">74</a>          } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propDef instanceof PropertyDecimalDefinition) {
<a class="jxr_linenumber" name="75" href="#75">75</a>              result = (PropertyValidator&lt;T&gt;) <strong class="jxr_keyword">new</strong> PropertyValidatorDecimal();
<a class="jxr_linenumber" name="76" href="#76">76</a>          } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propDef instanceof PropertyStringDefinition) {
<a class="jxr_linenumber" name="77" href="#77">77</a>              result = (PropertyValidator&lt;T&gt;) <strong class="jxr_keyword">new</strong> PropertyValidatorString();
<a class="jxr_linenumber" name="78" href="#78">78</a>          } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="79" href="#79">79</a>              result = <strong class="jxr_keyword">new</strong> PropertyValidator&lt;T&gt;();
<a class="jxr_linenumber" name="80" href="#80">80</a>          }
<a class="jxr_linenumber" name="81" href="#81">81</a>          <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="82" href="#82">82</a>      }
<a class="jxr_linenumber" name="83" href="#83">83</a>  
<a class="jxr_linenumber" name="84" href="#84">84</a>      <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="85" href="#85">85</a>  <em class="jxr_comment">     * property validations: not readonly, all required are given, all are known</em>
<a class="jxr_linenumber" name="86" href="#86">86</a>  <em class="jxr_comment">     * in type cardinality: no multi values for single value, def min max check</em>
<a class="jxr_linenumber" name="87" href="#87">87</a>  <em class="jxr_comment">     * for Integer and Decimal, choices and in list Strings, max length set</em>
<a class="jxr_linenumber" name="88" href="#88">88</a>  <em class="jxr_comment">     * default value for omitted properties</em>
<a class="jxr_linenumber" name="89" href="#89">89</a>  <em class="jxr_comment">     */</em>
<a class="jxr_linenumber" name="90" href="#90">90</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> PropertyValidator&lt;T&gt; {
<a class="jxr_linenumber" name="91" href="#91">91</a>  
<a class="jxr_linenumber" name="92" href="#92">92</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> validate(PropertyDefinition&lt;T&gt; propDef, PropertyData&lt;T&gt; prop) {
<a class="jxr_linenumber" name="93" href="#93">93</a>  
<a class="jxr_linenumber" name="94" href="#94">94</a>              <em class="jxr_comment">// check general constraints for all property types</em>
<a class="jxr_linenumber" name="95" href="#95">95</a>              <strong class="jxr_keyword">if</strong> (propDef.getCardinality() == Cardinality.SINGLE) {
<a class="jxr_linenumber" name="96" href="#96">96</a>                  <strong class="jxr_keyword">if</strong> (prop.getValues() != <strong class="jxr_keyword">null</strong> &amp;&amp; prop.getValues().size() &gt; 1) {
<a class="jxr_linenumber" name="97" href="#97">97</a>                      <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisConstraintException(<span class="jxr_string">"The property with id "</span> + propDef.getId()
<a class="jxr_linenumber" name="98" href="#98">98</a>                              + <span class="jxr_string">" is single valued, but multiple values are passed "</span> + prop.getValues());
<a class="jxr_linenumber" name="99" href="#99">99</a>                  }
<a class="jxr_linenumber" name="100" href="#100">100</a>             }
<a class="jxr_linenumber" name="101" href="#101">101</a> 
<a class="jxr_linenumber" name="102" href="#102">102</a>             <strong class="jxr_keyword">if</strong> (isNotEmpty(propDef.getChoices())) {
<a class="jxr_linenumber" name="103" href="#103">103</a>                 validateChoices(propDef, prop);
<a class="jxr_linenumber" name="104" href="#104">104</a>             }
<a class="jxr_linenumber" name="105" href="#105">105</a>         }
<a class="jxr_linenumber" name="106" href="#106">106</a> 
<a class="jxr_linenumber" name="107" href="#107">107</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> validateChoices(PropertyDefinition&lt;T&gt; propDef, PropertyData&lt;T&gt; prop) {
<a class="jxr_linenumber" name="108" href="#108">108</a>             <strong class="jxr_keyword">boolean</strong> isAllowedValue = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="109" href="#109">109</a>             <strong class="jxr_keyword">boolean</strong> hasMultiValueChoiceLists = false;
<a class="jxr_linenumber" name="110" href="#110">110</a>             <strong class="jxr_keyword">for</strong> (Choice&lt;?&gt; allowedValue : propDef.getChoices()) {
<a class="jxr_linenumber" name="111" href="#111">111</a>                 <strong class="jxr_keyword">if</strong> (allowedValue.getValue() != <strong class="jxr_keyword">null</strong> &amp;&amp; allowedValue.getValue().size() &gt; 1) {
<a class="jxr_linenumber" name="112" href="#112">112</a>                     hasMultiValueChoiceLists = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="113" href="#113">113</a>                 }
<a class="jxr_linenumber" name="114" href="#114">114</a>             }
<a class="jxr_linenumber" name="115" href="#115">115</a> 
<a class="jxr_linenumber" name="116" href="#116">116</a>             <strong class="jxr_keyword">if</strong> (propDef.isOpenChoice() != <strong class="jxr_keyword">null</strong> &amp;&amp; propDef.isOpenChoice()) {
<a class="jxr_linenumber" name="117" href="#117">117</a>             	isAllowedValue = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="118" href="#118">118</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (hasMultiValueChoiceLists) {
<a class="jxr_linenumber" name="119" href="#119">119</a>                 <em class="jxr_comment">// check if value is in list</em>
<a class="jxr_linenumber" name="120" href="#120">120</a> 
<a class="jxr_linenumber" name="121" href="#121">121</a>             	<em class="jxr_comment">// do a complex check if this combination of actual values is</em>
<a class="jxr_linenumber" name="122" href="#122">122</a>                 <em class="jxr_comment">// allowed check if value is in list</em>
<a class="jxr_linenumber" name="123" href="#123">123</a>                 isAllowedValue = false;
<a class="jxr_linenumber" name="124" href="#124">124</a>                 List&lt;?&gt; actualValues = prop.getValues();
<a class="jxr_linenumber" name="125" href="#125">125</a>                 <strong class="jxr_keyword">for</strong> (Choice&lt;?&gt; allowedValue : propDef.getChoices()) {
<a class="jxr_linenumber" name="126" href="#126">126</a>                     <strong class="jxr_keyword">if</strong> (allowedValue.getValue().size() == actualValues.size()) {
<a class="jxr_linenumber" name="127" href="#127">127</a>                         <strong class="jxr_keyword">boolean</strong> listValuesAreEqual = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="128" href="#128">128</a>                         Iterator&lt;?&gt; it = allowedValue.getValue().iterator();
<a class="jxr_linenumber" name="129" href="#129">129</a>                         <strong class="jxr_keyword">for</strong> (Object actualValue : actualValues) {
<a class="jxr_linenumber" name="130" href="#130">130</a>                             <strong class="jxr_keyword">if</strong> (!actualValue.equals(it.next())) {
<a class="jxr_linenumber" name="131" href="#131">131</a>                                 listValuesAreEqual = false;
<a class="jxr_linenumber" name="132" href="#132">132</a>                                 <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="133" href="#133">133</a>                             }
<a class="jxr_linenumber" name="134" href="#134">134</a>                         }
<a class="jxr_linenumber" name="135" href="#135">135</a>                         <strong class="jxr_keyword">if</strong> (listValuesAreEqual) {
<a class="jxr_linenumber" name="136" href="#136">136</a>                             isAllowedValue = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="137" href="#137">137</a>                         }
<a class="jxr_linenumber" name="138" href="#138">138</a>                     }
<a class="jxr_linenumber" name="139" href="#139">139</a> 
<a class="jxr_linenumber" name="140" href="#140">140</a>                     <strong class="jxr_keyword">if</strong> (isAllowedValue) {
<a class="jxr_linenumber" name="141" href="#141">141</a>                         <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="142" href="#142">142</a>                     }
<a class="jxr_linenumber" name="143" href="#143">143</a>                 }
<a class="jxr_linenumber" name="144" href="#144">144</a> 
<a class="jxr_linenumber" name="145" href="#145">145</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="146" href="#146">146</a>                 List&lt;T&gt; allowedValues = getAllowedValues(propDef.getChoices());
<a class="jxr_linenumber" name="147" href="#147">147</a>                 <em class="jxr_comment">// do a simpler check if all values are choice elements</em>
<a class="jxr_linenumber" name="148" href="#148">148</a> 
<a class="jxr_linenumber" name="149" href="#149">149</a>                 <strong class="jxr_keyword">for</strong> (Object actualValue : prop.getValues()) {
<a class="jxr_linenumber" name="150" href="#150">150</a>                     <strong class="jxr_keyword">if</strong> (!allowedValues.contains(actualValue)) {
<a class="jxr_linenumber" name="151" href="#151">151</a>                         isAllowedValue = false;
<a class="jxr_linenumber" name="152" href="#152">152</a>                         <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="153" href="#153">153</a>                     }
<a class="jxr_linenumber" name="154" href="#154">154</a>                 }
<a class="jxr_linenumber" name="155" href="#155">155</a>             }
<a class="jxr_linenumber" name="156" href="#156">156</a> 
<a class="jxr_linenumber" name="157" href="#157">157</a>             <strong class="jxr_keyword">if</strong> (!isAllowedValue) {
<a class="jxr_linenumber" name="158" href="#158">158</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisConstraintException(<span class="jxr_string">"The property with id "</span> + propDef.getId()
<a class="jxr_linenumber" name="159" href="#159">159</a>                         + <span class="jxr_string">" has a fixed set of values. Value(s) "</span> + prop.getValues() + <span class="jxr_string">" are not listed."</span>);
<a class="jxr_linenumber" name="160" href="#160">160</a>             }
<a class="jxr_linenumber" name="161" href="#161">161</a>         }
<a class="jxr_linenumber" name="162" href="#162">162</a> 
<a class="jxr_linenumber" name="163" href="#163">163</a>         <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="164" href="#164">164</a> <em class="jxr_javadoccomment">         * Calculate the list of allowed values for this property definition by</em>
<a class="jxr_linenumber" name="165" href="#165">165</a> <em class="jxr_javadoccomment">         * recursively collecting all choice values from property definition</em>
<a class="jxr_linenumber" name="166" href="#166">166</a> <em class="jxr_javadoccomment">         * </em>
<a class="jxr_linenumber" name="167" href="#167">167</a> <em class="jxr_javadoccomment">         * @param propDef</em>
<a class="jxr_linenumber" name="168" href="#168">168</a> <em class="jxr_javadoccomment">         *            property definition</em>
<a class="jxr_linenumber" name="169" href="#169">169</a> <em class="jxr_javadoccomment">         * @return list of possible values in complete hierarchy</em>
<a class="jxr_linenumber" name="170" href="#170">170</a> <em class="jxr_javadoccomment">         */</em>
<a class="jxr_linenumber" name="171" href="#171">171</a>         <strong class="jxr_keyword">private</strong> List&lt;T&gt; getAllowedValues(List&lt;Choice&lt;T&gt;&gt; choices) {
<a class="jxr_linenumber" name="172" href="#172">172</a>             List&lt;T&gt; allowedValues = <strong class="jxr_keyword">new</strong> ArrayList&lt;T&gt;(choices.size());
<a class="jxr_linenumber" name="173" href="#173">173</a>             <strong class="jxr_keyword">for</strong> (Choice&lt;T&gt; choice : choices) {
<a class="jxr_linenumber" name="174" href="#174">174</a>                 <strong class="jxr_keyword">if</strong> (isNotEmpty(choice.getValue())) {
<a class="jxr_linenumber" name="175" href="#175">175</a>                     allowedValues.add(choice.getValue().get(0));
<a class="jxr_linenumber" name="176" href="#176">176</a>                 }
<a class="jxr_linenumber" name="177" href="#177">177</a>                 <strong class="jxr_keyword">if</strong> (isNotEmpty(choice.getChoice())) {
<a class="jxr_linenumber" name="178" href="#178">178</a>                     List&lt;Choice&lt;T&gt;&gt; x = choice.getChoice();
<a class="jxr_linenumber" name="179" href="#179">179</a>                     allowedValues.addAll(getAllowedValues(x));
<a class="jxr_linenumber" name="180" href="#180">180</a>                 }
<a class="jxr_linenumber" name="181" href="#181">181</a>             }
<a class="jxr_linenumber" name="182" href="#182">182</a>             <strong class="jxr_keyword">return</strong> allowedValues;
<a class="jxr_linenumber" name="183" href="#183">183</a>         }
<a class="jxr_linenumber" name="184" href="#184">184</a>     }
<a class="jxr_linenumber" name="185" href="#185">185</a> 
<a class="jxr_linenumber" name="186" href="#186">186</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/chemistry/opencmis/server/support/TypeValidator.html">PropertyValidatorInteger</a> <strong class="jxr_keyword">extends</strong> PropertyValidator&lt;BigInteger&gt; {
<a class="jxr_linenumber" name="187" href="#187">187</a> 
<a class="jxr_linenumber" name="188" href="#188">188</a>         @Override
<a class="jxr_linenumber" name="189" href="#189">189</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> validate(PropertyDefinition&lt;BigInteger&gt; propDef, PropertyData&lt;BigInteger&gt; property) {
<a class="jxr_linenumber" name="190" href="#190">190</a> 
<a class="jxr_linenumber" name="191" href="#191">191</a>             <strong class="jxr_keyword">super</strong>.validate(propDef, property);
<a class="jxr_linenumber" name="192" href="#192">192</a> 
<a class="jxr_linenumber" name="193" href="#193">193</a>             BigInteger propVal = property.getFirstValue();
<a class="jxr_linenumber" name="194" href="#194">194</a>             BigInteger minVal = ((PropertyIntegerDefinition) propDef).getMinValue();
<a class="jxr_linenumber" name="195" href="#195">195</a>             BigInteger maxVal = ((PropertyIntegerDefinition) propDef).getMaxValue();
<a class="jxr_linenumber" name="196" href="#196">196</a> 
<a class="jxr_linenumber" name="197" href="#197">197</a>             <em class="jxr_comment">// check min and max</em>
<a class="jxr_linenumber" name="198" href="#198">198</a>             <strong class="jxr_keyword">if</strong> (minVal != <strong class="jxr_keyword">null</strong> &amp;&amp; propVal != <strong class="jxr_keyword">null</strong> &amp;&amp; propVal.compareTo(minVal) == -1) {
<a class="jxr_linenumber" name="199" href="#199">199</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisConstraintException(<span class="jxr_string">"For property with id "</span> + propDef.getId() + <span class="jxr_string">" the value "</span> + propVal
<a class="jxr_linenumber" name="200" href="#200">200</a>                         + <span class="jxr_string">" is less than the minimum value "</span> + minVal);
<a class="jxr_linenumber" name="201" href="#201">201</a>             }
<a class="jxr_linenumber" name="202" href="#202">202</a>             <strong class="jxr_keyword">if</strong> (maxVal != <strong class="jxr_keyword">null</strong> &amp;&amp; propVal != <strong class="jxr_keyword">null</strong> &amp;&amp; propVal.compareTo(maxVal) == 1) {
<a class="jxr_linenumber" name="203" href="#203">203</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisConstraintException(<span class="jxr_string">"For property with id "</span> + propDef.getId() + <span class="jxr_string">" the value "</span> + propVal
<a class="jxr_linenumber" name="204" href="#204">204</a>                         + <span class="jxr_string">" is bigger than the maximum value "</span> + maxVal);
<a class="jxr_linenumber" name="205" href="#205">205</a>             }
<a class="jxr_linenumber" name="206" href="#206">206</a>         }
<a class="jxr_linenumber" name="207" href="#207">207</a>     }
<a class="jxr_linenumber" name="208" href="#208">208</a> 
<a class="jxr_linenumber" name="209" href="#209">209</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/chemistry/opencmis/server/support/TypeValidator.html">PropertyValidatorDecimal</a> <strong class="jxr_keyword">extends</strong> PropertyValidator&lt;BigDecimal&gt; {
<a class="jxr_linenumber" name="210" href="#210">210</a> 
<a class="jxr_linenumber" name="211" href="#211">211</a>         @Override
<a class="jxr_linenumber" name="212" href="#212">212</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> validate(PropertyDefinition&lt;BigDecimal&gt; propDef, PropertyData&lt;BigDecimal&gt; property) {
<a class="jxr_linenumber" name="213" href="#213">213</a> 
<a class="jxr_linenumber" name="214" href="#214">214</a>             <strong class="jxr_keyword">super</strong>.validate(propDef, property);
<a class="jxr_linenumber" name="215" href="#215">215</a> 
<a class="jxr_linenumber" name="216" href="#216">216</a>             BigDecimal propVal = property.getFirstValue();
<a class="jxr_linenumber" name="217" href="#217">217</a>             BigDecimal minVal = ((PropertyDecimalDefinition) propDef).getMinValue();
<a class="jxr_linenumber" name="218" href="#218">218</a>             BigDecimal maxVal = ((PropertyDecimalDefinition) propDef).getMaxValue();
<a class="jxr_linenumber" name="219" href="#219">219</a> 
<a class="jxr_linenumber" name="220" href="#220">220</a>             <em class="jxr_comment">// check min and max</em>
<a class="jxr_linenumber" name="221" href="#221">221</a>             <strong class="jxr_keyword">if</strong> (minVal != <strong class="jxr_keyword">null</strong> &amp;&amp; propVal != <strong class="jxr_keyword">null</strong> &amp;&amp; propVal.compareTo(minVal) == -1) {
<a class="jxr_linenumber" name="222" href="#222">222</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisConstraintException(<span class="jxr_string">"For property with id "</span> + propDef.getId() + <span class="jxr_string">" the value "</span> + propVal
<a class="jxr_linenumber" name="223" href="#223">223</a>                         + <span class="jxr_string">" is less than the minimum value "</span> + minVal);
<a class="jxr_linenumber" name="224" href="#224">224</a>             }
<a class="jxr_linenumber" name="225" href="#225">225</a>             <strong class="jxr_keyword">if</strong> (maxVal != <strong class="jxr_keyword">null</strong> &amp;&amp; propVal != <strong class="jxr_keyword">null</strong> &amp;&amp; propVal.compareTo(maxVal) == 1) {
<a class="jxr_linenumber" name="226" href="#226">226</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisConstraintException(<span class="jxr_string">"For property with id "</span> + propDef.getId() + <span class="jxr_string">" the value "</span> + propVal
<a class="jxr_linenumber" name="227" href="#227">227</a>                         + <span class="jxr_string">" is bigger than the maximum value "</span> + maxVal);
<a class="jxr_linenumber" name="228" href="#228">228</a>             }
<a class="jxr_linenumber" name="229" href="#229">229</a>         }
<a class="jxr_linenumber" name="230" href="#230">230</a>     }
<a class="jxr_linenumber" name="231" href="#231">231</a> 
<a class="jxr_linenumber" name="232" href="#232">232</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/chemistry/opencmis/server/support/TypeValidator.html">PropertyValidatorString</a> <strong class="jxr_keyword">extends</strong> PropertyValidator&lt;String&gt; {
<a class="jxr_linenumber" name="233" href="#233">233</a> 
<a class="jxr_linenumber" name="234" href="#234">234</a>         @Override
<a class="jxr_linenumber" name="235" href="#235">235</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> validate(PropertyDefinition&lt;String&gt; propDef, PropertyData&lt;String&gt; property) {
<a class="jxr_linenumber" name="236" href="#236">236</a> 
<a class="jxr_linenumber" name="237" href="#237">237</a>             <strong class="jxr_keyword">super</strong>.validate(propDef, property);
<a class="jxr_linenumber" name="238" href="#238">238</a> 
<a class="jxr_linenumber" name="239" href="#239">239</a>             <strong class="jxr_keyword">long</strong> maxLen = ((PropertyStringDefinition) propDef).getMaxLength() == <strong class="jxr_keyword">null</strong> ? -1
<a class="jxr_linenumber" name="240" href="#240">240</a>                     : ((PropertyStringDefinition) propDef).getMaxLength().longValue();
<a class="jxr_linenumber" name="241" href="#241">241</a>             <strong class="jxr_keyword">long</strong> len = property.getFirstValue() == <strong class="jxr_keyword">null</strong> ? -1 : property.getFirstValue().length();
<a class="jxr_linenumber" name="242" href="#242">242</a> 
<a class="jxr_linenumber" name="243" href="#243">243</a>             <em class="jxr_comment">// check max length</em>
<a class="jxr_linenumber" name="244" href="#244">244</a>             <strong class="jxr_keyword">if</strong> (maxLen &gt;= 0 &amp;&amp; len &gt;= 0 &amp;&amp; maxLen &lt; len) {
<a class="jxr_linenumber" name="245" href="#245">245</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisConstraintException(<span class="jxr_string">"For property with id "</span> + propDef.getId() + <span class="jxr_string">" the length of "</span> + len
<a class="jxr_linenumber" name="246" href="#246">246</a>                         + <span class="jxr_string">" is bigger than the maximum allowed length  "</span> + maxLen);
<a class="jxr_linenumber" name="247" href="#247">247</a>             }
<a class="jxr_linenumber" name="248" href="#248">248</a>         }
<a class="jxr_linenumber" name="249" href="#249">249</a>     }
<a class="jxr_linenumber" name="250" href="#250">250</a> 
<a class="jxr_linenumber" name="251" href="#251">251</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> &lt;T&gt; <strong class="jxr_keyword">void</strong> validateProperties(TypeDefinition typeDef, Properties properties, <strong class="jxr_keyword">boolean</strong> checkMandatory) {
<a class="jxr_linenumber" name="252" href="#252">252</a>         validateProperties(typeDef, properties, checkMandatory, false);
<a class="jxr_linenumber" name="253" href="#253">253</a>     }
<a class="jxr_linenumber" name="254" href="#254">254</a> 
<a class="jxr_linenumber" name="255" href="#255">255</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> &lt;T&gt; <strong class="jxr_keyword">void</strong> validateProperties(TypeDefinition typeDef, Properties properties, <strong class="jxr_keyword">boolean</strong> checkMandatory,
<a class="jxr_linenumber" name="256" href="#256">256</a>             <strong class="jxr_keyword">boolean</strong> cmis11) {
<a class="jxr_linenumber" name="257" href="#257">257</a>         List&lt;String&gt; propDefsRequired = getMandatoryPropDefs(typeDef.getPropertyDefinitions());
<a class="jxr_linenumber" name="258" href="#258">258</a> 
<a class="jxr_linenumber" name="259" href="#259">259</a>         <strong class="jxr_keyword">if</strong> (properties != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="260" href="#260">260</a>             <strong class="jxr_keyword">for</strong> (PropertyData&lt;?&gt; prop : properties.getProperties().values()) {
<a class="jxr_linenumber" name="261" href="#261">261</a>                 String propertyId = prop.getId();
<a class="jxr_linenumber" name="262" href="#262">262</a>                 <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == propertyId) {
<a class="jxr_linenumber" name="263" href="#263">263</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Property id cannot be null"</span>);
<a class="jxr_linenumber" name="264" href="#264">264</a>                 }
<a class="jxr_linenumber" name="265" href="#265">265</a>                 BaseTypeId baseTypeId = typeDef.getBaseTypeId();
<a class="jxr_linenumber" name="266" href="#266">266</a> 
<a class="jxr_linenumber" name="267" href="#267">267</a>                 <em class="jxr_comment">// check that all mandatory attributes are present</em>
<a class="jxr_linenumber" name="268" href="#268">268</a>                 <strong class="jxr_keyword">if</strong> (checkMandatory &amp;&amp; propDefsRequired.contains(propertyId)) {
<a class="jxr_linenumber" name="269" href="#269">269</a>                     propDefsRequired.remove(propertyId);
<a class="jxr_linenumber" name="270" href="#270">270</a>                 }
<a class="jxr_linenumber" name="271" href="#271">271</a> 
<a class="jxr_linenumber" name="272" href="#272">272</a>                 <strong class="jxr_keyword">if</strong> (isSystemProperty(baseTypeId, propertyId, cmis11)) {
<a class="jxr_linenumber" name="273" href="#273">273</a>                     <strong class="jxr_keyword">continue</strong>; <em class="jxr_comment">// ignore system properties for validation</em>
<a class="jxr_linenumber" name="274" href="#274">274</a>                 }
<a class="jxr_linenumber" name="275" href="#275">275</a> 
<a class="jxr_linenumber" name="276" href="#276">276</a>                 <em class="jxr_comment">// Check if all properties are known in the type</em>
<a class="jxr_linenumber" name="277" href="#277">277</a>                 <strong class="jxr_keyword">if</strong> (typeContainsProperty(typeDef, propertyId)) {
<a class="jxr_linenumber" name="278" href="#278">278</a>                     <em class="jxr_comment">// check all type specific constraints:</em>
<a class="jxr_linenumber" name="279" href="#279">279</a>                     PropertyDefinition&lt;T&gt; propDef = getPropertyDefinition(typeDef, propertyId);
<a class="jxr_linenumber" name="280" href="#280">280</a>                     PropertyValidator&lt;T&gt; validator = createPropertyValidator(propDef);
<a class="jxr_linenumber" name="281" href="#281">281</a>                     validator.validate(propDef, (PropertyData&lt;T&gt;) prop);
<a class="jxr_linenumber" name="282" href="#282">282</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="283" href="#283">283</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisConstraintException(<span class="jxr_string">"Unknown property "</span> + propertyId + <span class="jxr_string">" in type "</span> + typeDef.getId());
<a class="jxr_linenumber" name="284" href="#284">284</a>                 }
<a class="jxr_linenumber" name="285" href="#285">285</a>             }
<a class="jxr_linenumber" name="286" href="#286">286</a>         }
<a class="jxr_linenumber" name="287" href="#287">287</a> 
<a class="jxr_linenumber" name="288" href="#288">288</a>         <strong class="jxr_keyword">if</strong> (checkMandatory &amp;&amp; !propDefsRequired.isEmpty()) {
<a class="jxr_linenumber" name="289" href="#289">289</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisConstraintException(<span class="jxr_string">"The following mandatory properties are missing: "</span> + propDefsRequired);
<a class="jxr_linenumber" name="290" href="#290">290</a>         }
<a class="jxr_linenumber" name="291" href="#291">291</a>     }
<a class="jxr_linenumber" name="292" href="#292">292</a> 
<a class="jxr_linenumber" name="293" href="#293">293</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> &lt;T&gt; <strong class="jxr_keyword">void</strong> validateProperties(List&lt;TypeDefinition&gt; typeDefs, Properties properties,
<a class="jxr_linenumber" name="294" href="#294">294</a>             <strong class="jxr_keyword">boolean</strong> checkMandatory) {
<a class="jxr_linenumber" name="295" href="#295">295</a>         <strong class="jxr_keyword">if</strong> (properties == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="296" href="#296">296</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="297" href="#297">297</a>         }
<a class="jxr_linenumber" name="298" href="#298">298</a> 
<a class="jxr_linenumber" name="299" href="#299">299</a>         Map&lt;String, Boolean&gt; checkedProperties = <strong class="jxr_keyword">new</strong> HashMap&lt;String, Boolean&gt;();
<a class="jxr_linenumber" name="300" href="#300">300</a>         <strong class="jxr_keyword">for</strong> (String propId : properties.getProperties().keySet()) {
<a class="jxr_linenumber" name="301" href="#301">301</a>             checkedProperties.put(propId, false);
<a class="jxr_linenumber" name="302" href="#302">302</a>         }
<a class="jxr_linenumber" name="303" href="#303">303</a> 
<a class="jxr_linenumber" name="304" href="#304">304</a>         <strong class="jxr_keyword">for</strong> (TypeDefinition typeDef : typeDefs) {
<a class="jxr_linenumber" name="305" href="#305">305</a> 
<a class="jxr_linenumber" name="306" href="#306">306</a>             List&lt;String&gt; propDefsRequired = getMandatoryPropDefs(typeDef.getPropertyDefinitions());
<a class="jxr_linenumber" name="307" href="#307">307</a> 
<a class="jxr_linenumber" name="308" href="#308">308</a>             <strong class="jxr_keyword">for</strong> (PropertyData&lt;?&gt; prop : properties.getProperties().values()) {
<a class="jxr_linenumber" name="309" href="#309">309</a>                 String propertyId = prop.getId();
<a class="jxr_linenumber" name="310" href="#310">310</a>                 <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == propertyId) {
<a class="jxr_linenumber" name="311" href="#311">311</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Property id cannot be null"</span>);
<a class="jxr_linenumber" name="312" href="#312">312</a>                 }
<a class="jxr_linenumber" name="313" href="#313">313</a>                 BaseTypeId baseTypeId = typeDef.getBaseTypeId();
<a class="jxr_linenumber" name="314" href="#314">314</a> 
<a class="jxr_linenumber" name="315" href="#315">315</a>                 <em class="jxr_comment">// check that all mandatory attributes are present</em>
<a class="jxr_linenumber" name="316" href="#316">316</a>                 <strong class="jxr_keyword">if</strong> (checkMandatory &amp;&amp; propDefsRequired.contains(propertyId)) {
<a class="jxr_linenumber" name="317" href="#317">317</a>                     propDefsRequired.remove(propertyId);
<a class="jxr_linenumber" name="318" href="#318">318</a>                 }
<a class="jxr_linenumber" name="319" href="#319">319</a> 
<a class="jxr_linenumber" name="320" href="#320">320</a>                 <strong class="jxr_keyword">if</strong> (isSystemProperty(baseTypeId, propertyId, <strong class="jxr_keyword">true</strong>)) {
<a class="jxr_linenumber" name="321" href="#321">321</a>                     checkedProperties.put(prop.getId(), <strong class="jxr_keyword">true</strong>); <em class="jxr_comment">// ignore system</em>
<a class="jxr_linenumber" name="322" href="#322">322</a>                                                                <em class="jxr_comment">// properties for</em>
<a class="jxr_linenumber" name="323" href="#323">323</a>                                                                <em class="jxr_comment">// validation</em>
<a class="jxr_linenumber" name="324" href="#324">324</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (typeContainsProperty(typeDef, propertyId)) {
<a class="jxr_linenumber" name="325" href="#325">325</a>                     <em class="jxr_comment">// Check if all properties are known in the type</em>
<a class="jxr_linenumber" name="326" href="#326">326</a>                     <em class="jxr_comment">// marked the property as found in a type of primary or</em>
<a class="jxr_linenumber" name="327" href="#327">327</a>                     <em class="jxr_comment">// secondary types</em>
<a class="jxr_linenumber" name="328" href="#328">328</a>                     checkedProperties.put(prop.getId(), <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="329" href="#329">329</a> 
<a class="jxr_linenumber" name="330" href="#330">330</a>                     <em class="jxr_comment">// check all type specific constraints:</em>
<a class="jxr_linenumber" name="331" href="#331">331</a>                     PropertyDefinition&lt;T&gt; propDef = getPropertyDefinition(typeDef, propertyId);
<a class="jxr_linenumber" name="332" href="#332">332</a>                     PropertyValidator&lt;T&gt; validator = createPropertyValidator(propDef);
<a class="jxr_linenumber" name="333" href="#333">333</a>                     validator.validate(propDef, (PropertyData&lt;T&gt;) prop);
<a class="jxr_linenumber" name="334" href="#334">334</a>                 }
<a class="jxr_linenumber" name="335" href="#335">335</a>             }
<a class="jxr_linenumber" name="336" href="#336">336</a> 
<a class="jxr_linenumber" name="337" href="#337">337</a>             <strong class="jxr_keyword">if</strong> (checkMandatory &amp;&amp; !propDefsRequired.isEmpty()) {
<a class="jxr_linenumber" name="338" href="#338">338</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisConstraintException(<span class="jxr_string">"The following mandatory properties are missing: "</span> + propDefsRequired);
<a class="jxr_linenumber" name="339" href="#339">339</a>             }
<a class="jxr_linenumber" name="340" href="#340">340</a>         }
<a class="jxr_linenumber" name="341" href="#341">341</a> 
<a class="jxr_linenumber" name="342" href="#342">342</a>         <em class="jxr_comment">// check if all properties are known in a type definition</em>
<a class="jxr_linenumber" name="343" href="#343">343</a>         List&lt;String&gt; unknownProperties = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a class="jxr_linenumber" name="344" href="#344">344</a>         <strong class="jxr_keyword">for</strong> (String propId : properties.getProperties().keySet()) {
<a class="jxr_linenumber" name="345" href="#345">345</a>             <strong class="jxr_keyword">if</strong> (!checkedProperties.get(propId)) {
<a class="jxr_linenumber" name="346" href="#346">346</a>                 unknownProperties.add(propId);
<a class="jxr_linenumber" name="347" href="#347">347</a>             }
<a class="jxr_linenumber" name="348" href="#348">348</a>         }
<a class="jxr_linenumber" name="349" href="#349">349</a>         <strong class="jxr_keyword">if</strong> (!unknownProperties.isEmpty()) {
<a class="jxr_linenumber" name="350" href="#350">350</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisConstraintException(
<a class="jxr_linenumber" name="351" href="#351">351</a>                     <span class="jxr_string">"The following properties are not known in any of the types of this object: "</span> + unknownProperties);
<a class="jxr_linenumber" name="352" href="#352">352</a>         }
<a class="jxr_linenumber" name="353" href="#353">353</a>     }
<a class="jxr_linenumber" name="354" href="#354">354</a> 
<a class="jxr_linenumber" name="355" href="#355">355</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> validateVersionStateForCreate(DocumentTypeDefinition typeDef, VersioningState verState) {
<a class="jxr_linenumber" name="356" href="#356">356</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == verState) {
<a class="jxr_linenumber" name="357" href="#357">357</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="358" href="#358">358</a>         }
<a class="jxr_linenumber" name="359" href="#359">359</a>         <strong class="jxr_keyword">if</strong> (typeDef.isVersionable() &amp;&amp; verState.equals(VersioningState.NONE) || !typeDef.isVersionable()
<a class="jxr_linenumber" name="360" href="#360">360</a>                 &amp;&amp; !verState.equals(VersioningState.NONE)) {
<a class="jxr_linenumber" name="361" href="#361">361</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisConstraintException(<span class="jxr_string">"The versioning state flag is imcompatible to the type definition."</span>);
<a class="jxr_linenumber" name="362" href="#362">362</a>         }
<a class="jxr_linenumber" name="363" href="#363">363</a> 
<a class="jxr_linenumber" name="364" href="#364">364</a>     }
<a class="jxr_linenumber" name="365" href="#365">365</a> 
<a class="jxr_linenumber" name="366" href="#366">366</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> validateAllowedChildObjectTypes(TypeDefinition childTypeDef, List&lt;String&gt; allowedChildTypes) {
<a class="jxr_linenumber" name="367" href="#367">367</a> 
<a class="jxr_linenumber" name="368" href="#368">368</a>         validateAllowedTypes(childTypeDef, allowedChildTypes, <span class="jxr_string">"in this folder"</span>);
<a class="jxr_linenumber" name="369" href="#369">369</a>     }
<a class="jxr_linenumber" name="370" href="#370">370</a> 
<a class="jxr_linenumber" name="371" href="#371">371</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> validateAllowedRelationshipTypes(RelationshipTypeDefinition relationshipTypeDef,
<a class="jxr_linenumber" name="372" href="#372">372</a>             TypeDefinition sourceTypeDef, TypeDefinition targetTypeDef) {
<a class="jxr_linenumber" name="373" href="#373">373</a>         List&lt;String&gt; allowedSourceTypes = relationshipTypeDef.getAllowedSourceTypeIds();
<a class="jxr_linenumber" name="374" href="#374">374</a>         validateAllowedTypes(sourceTypeDef, allowedSourceTypes, <span class="jxr_string">" as source type in this relationship"</span>);
<a class="jxr_linenumber" name="375" href="#375">375</a>         List&lt;String&gt; allowedTargetTypes = relationshipTypeDef.getAllowedTargetTypeIds();
<a class="jxr_linenumber" name="376" href="#376">376</a>         validateAllowedTypes(targetTypeDef, allowedTargetTypes, <span class="jxr_string">" as target type in this relationship"</span>);
<a class="jxr_linenumber" name="377" href="#377">377</a>     }
<a class="jxr_linenumber" name="378" href="#378">378</a> 
<a class="jxr_linenumber" name="379" href="#379">379</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> validateAllowedTypes(TypeDefinition typeDef, List&lt;String&gt; allowedTypes, String description) {
<a class="jxr_linenumber" name="380" href="#380">380</a>         <strong class="jxr_keyword">if</strong> (isNullOrEmpty(allowedTypes)) {
<a class="jxr_linenumber" name="381" href="#381">381</a>             <strong class="jxr_keyword">return</strong>; <em class="jxr_comment">// all types are allowed</em>
<a class="jxr_linenumber" name="382" href="#382">382</a>         }
<a class="jxr_linenumber" name="383" href="#383">383</a> 
<a class="jxr_linenumber" name="384" href="#384">384</a>         <strong class="jxr_keyword">for</strong> (String allowedType : allowedTypes) {
<a class="jxr_linenumber" name="385" href="#385">385</a>             <strong class="jxr_keyword">if</strong> (allowedType.equals(typeDef.getId())) {
<a class="jxr_linenumber" name="386" href="#386">386</a>                 <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="387" href="#387">387</a>             }
<a class="jxr_linenumber" name="388" href="#388">388</a>         }
<a class="jxr_linenumber" name="389" href="#389">389</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisConstraintException(<span class="jxr_string">"The requested type "</span> + typeDef.getId() + <span class="jxr_string">" is not allowed "</span> + description);
<a class="jxr_linenumber" name="390" href="#390">390</a>     }
<a class="jxr_linenumber" name="391" href="#391">391</a> 
<a class="jxr_linenumber" name="392" href="#392">392</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> validateAcl(TypeDefinition typeDef, Acl addACEs, Acl removeACEs) {
<a class="jxr_linenumber" name="393" href="#393">393</a>         <strong class="jxr_keyword">if</strong> (!typeDef.isControllableAcl() &amp;&amp; (addACEs != <strong class="jxr_keyword">null</strong> || removeACEs != <strong class="jxr_keyword">null</strong>)) {
<a class="jxr_linenumber" name="394" href="#394">394</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisConstraintException(<span class="jxr_string">"acl set for type: "</span> + typeDef.getDisplayName()
<a class="jxr_linenumber" name="395" href="#395">395</a>                     + <span class="jxr_string">" that is not controllableACL"</span>);
<a class="jxr_linenumber" name="396" href="#396">396</a>         }
<a class="jxr_linenumber" name="397" href="#397">397</a>     }
<a class="jxr_linenumber" name="398" href="#398">398</a> 
<a class="jxr_linenumber" name="399" href="#399">399</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> validateContentAllowed(DocumentTypeDefinition typeDef, <strong class="jxr_keyword">boolean</strong> hasContent) {
<a class="jxr_linenumber" name="400" href="#400">400</a>         ContentStreamAllowed contentAllowed = typeDef.getContentStreamAllowed();
<a class="jxr_linenumber" name="401" href="#401">401</a>         <strong class="jxr_keyword">if</strong> (ContentStreamAllowed.REQUIRED == contentAllowed &amp;&amp; !hasContent) {
<a class="jxr_linenumber" name="402" href="#402">402</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisConstraintException(<span class="jxr_string">"Type "</span> + typeDef.getId()
<a class="jxr_linenumber" name="403" href="#403">403</a>                     + <span class="jxr_string">" requires content but document has no content."</span>);
<a class="jxr_linenumber" name="404" href="#404">404</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (ContentStreamAllowed.NOTALLOWED == contentAllowed &amp;&amp; hasContent) {
<a class="jxr_linenumber" name="405" href="#405">405</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisConstraintException(<span class="jxr_string">"Type "</span> + typeDef.getId()
<a class="jxr_linenumber" name="406" href="#406">406</a>                     + <span class="jxr_string">" does not allow content but document has content."</span>);
<a class="jxr_linenumber" name="407" href="#407">407</a>         }
<a class="jxr_linenumber" name="408" href="#408">408</a>     }
<a class="jxr_linenumber" name="409" href="#409">409</a> 
<a class="jxr_linenumber" name="410" href="#410">410</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;String&gt; getMandatoryPropDefs(Map&lt;String, PropertyDefinition&lt;?&gt;&gt; propDefs) {
<a class="jxr_linenumber" name="411" href="#411">411</a>         List&lt;String&gt; res = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a class="jxr_linenumber" name="412" href="#412">412</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> != propDefs) {
<a class="jxr_linenumber" name="413" href="#413">413</a>             <strong class="jxr_keyword">for</strong> (PropertyDefinition&lt;?&gt; propDef : propDefs.values()) {
<a class="jxr_linenumber" name="414" href="#414">414</a>                 <strong class="jxr_keyword">if</strong> (propDef.isRequired() &amp;&amp; !isMandatorySystemProperty(propDef.getId())) {
<a class="jxr_linenumber" name="415" href="#415">415</a>                     res.add(propDef.getId());
<a class="jxr_linenumber" name="416" href="#416">416</a>                 }
<a class="jxr_linenumber" name="417" href="#417">417</a>             }
<a class="jxr_linenumber" name="418" href="#418">418</a>         }
<a class="jxr_linenumber" name="419" href="#419">419</a>         <strong class="jxr_keyword">return</strong> res;
<a class="jxr_linenumber" name="420" href="#420">420</a>     }
<a class="jxr_linenumber" name="421" href="#421">421</a> 
<a class="jxr_linenumber" name="422" href="#422">422</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> typeContainsProperty(TypeDefinition typeDef, String propertyId) {
<a class="jxr_linenumber" name="423" href="#423">423</a> 
<a class="jxr_linenumber" name="424" href="#424">424</a>         Map&lt;String, PropertyDefinition&lt;?&gt;&gt; propDefs = typeDef.getPropertyDefinitions();
<a class="jxr_linenumber" name="425" href="#425">425</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == propDefs) {
<a class="jxr_linenumber" name="426" href="#426">426</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="427" href="#427">427</a>         }
<a class="jxr_linenumber" name="428" href="#428">428</a> 
<a class="jxr_linenumber" name="429" href="#429">429</a>         PropertyDefinition&lt;?&gt; propDef = propDefs.get(propertyId);
<a class="jxr_linenumber" name="430" href="#430">430</a> 
<a class="jxr_linenumber" name="431" href="#431">431</a>         <strong class="jxr_keyword">return</strong> propDef != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="432" href="#432">432</a>     }
<a class="jxr_linenumber" name="433" href="#433">433</a> 
<a class="jxr_linenumber" name="434" href="#434">434</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> typeContainsPropertyWithQueryName(TypeDefinition typeDef, String propertyQueryName) {
<a class="jxr_linenumber" name="435" href="#435">435</a> 
<a class="jxr_linenumber" name="436" href="#436">436</a>         Map&lt;String, PropertyDefinition&lt;?&gt;&gt; propDefs = typeDef.getPropertyDefinitions();
<a class="jxr_linenumber" name="437" href="#437">437</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == propDefs) {
<a class="jxr_linenumber" name="438" href="#438">438</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="439" href="#439">439</a>         }
<a class="jxr_linenumber" name="440" href="#440">440</a> 
<a class="jxr_linenumber" name="441" href="#441">441</a>         <strong class="jxr_keyword">for</strong> (PropertyDefinition&lt;?&gt; propDef : propDefs.values()) {
<a class="jxr_linenumber" name="442" href="#442">442</a>             <strong class="jxr_keyword">if</strong> (propDef.getQueryName().equalsIgnoreCase(propertyQueryName)) {
<a class="jxr_linenumber" name="443" href="#443">443</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="444" href="#444">444</a>             }
<a class="jxr_linenumber" name="445" href="#445">445</a>         }
<a class="jxr_linenumber" name="446" href="#446">446</a> 
<a class="jxr_linenumber" name="447" href="#447">447</a>         <strong class="jxr_keyword">return</strong> false; <em class="jxr_comment">// unknown property query name in this type</em>
<a class="jxr_linenumber" name="448" href="#448">448</a>     }
<a class="jxr_linenumber" name="449" href="#449">449</a> 
<a class="jxr_linenumber" name="450" href="#450">450</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="451" href="#451">451</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> &lt;T&gt; PropertyDefinition&lt;T&gt; getPropertyDefinition(TypeDefinition typeDef, String propertyId) {
<a class="jxr_linenumber" name="452" href="#452">452</a> 
<a class="jxr_linenumber" name="453" href="#453">453</a>         Map&lt;String, PropertyDefinition&lt;?&gt;&gt; propDefs = typeDef.getPropertyDefinitions();
<a class="jxr_linenumber" name="454" href="#454">454</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == propDefs) {
<a class="jxr_linenumber" name="455" href="#455">455</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="456" href="#456">456</a>         }
<a class="jxr_linenumber" name="457" href="#457">457</a> 
<a class="jxr_linenumber" name="458" href="#458">458</a>         PropertyDefinition&lt;?&gt; propDef = propDefs.get(propertyId);
<a class="jxr_linenumber" name="459" href="#459">459</a> 
<a class="jxr_linenumber" name="460" href="#460">460</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == propDef) {
<a class="jxr_linenumber" name="461" href="#461">461</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>; <em class="jxr_comment">// not found</em>
<a class="jxr_linenumber" name="462" href="#462">462</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="463" href="#463">463</a>             <strong class="jxr_keyword">return</strong> (PropertyDefinition&lt;T&gt;) propDef;
<a class="jxr_linenumber" name="464" href="#464">464</a>         }
<a class="jxr_linenumber" name="465" href="#465">465</a>     }
<a class="jxr_linenumber" name="466" href="#466">466</a> 
<a class="jxr_linenumber" name="467" href="#467">467</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> isSystemProperty(BaseTypeId baseTypeId, String propertyId, <strong class="jxr_keyword">boolean</strong> cmis11) {
<a class="jxr_linenumber" name="468" href="#468">468</a> 
<a class="jxr_linenumber" name="469" href="#469">469</a>         <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.NAME)) {
<a class="jxr_linenumber" name="470" href="#470">470</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="471" href="#471">471</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.OBJECT_ID)) {
<a class="jxr_linenumber" name="472" href="#472">472</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="473" href="#473">473</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.OBJECT_TYPE_ID)) {
<a class="jxr_linenumber" name="474" href="#474">474</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="475" href="#475">475</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.BASE_TYPE_ID)) {
<a class="jxr_linenumber" name="476" href="#476">476</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="477" href="#477">477</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.CREATED_BY)) {
<a class="jxr_linenumber" name="478" href="#478">478</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="479" href="#479">479</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.CREATION_DATE)) {
<a class="jxr_linenumber" name="480" href="#480">480</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="481" href="#481">481</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.LAST_MODIFIED_BY)) {
<a class="jxr_linenumber" name="482" href="#482">482</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="483" href="#483">483</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.LAST_MODIFICATION_DATE)) {
<a class="jxr_linenumber" name="484" href="#484">484</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="485" href="#485">485</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.CHANGE_TOKEN)) {
<a class="jxr_linenumber" name="486" href="#486">486</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="487" href="#487">487</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (cmis11 &amp;&amp; propertyId.equals(PropertyIds.DESCRIPTION)) {
<a class="jxr_linenumber" name="488" href="#488">488</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="489" href="#489">489</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (cmis11 &amp;&amp; propertyId.equals(PropertyIds.SECONDARY_OBJECT_TYPE_IDS)) {
<a class="jxr_linenumber" name="490" href="#490">490</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="491" href="#491">491</a>         }
<a class="jxr_linenumber" name="492" href="#492">492</a> 
<a class="jxr_linenumber" name="493" href="#493">493</a>         <strong class="jxr_keyword">if</strong> (baseTypeId.equals(BaseTypeId.CMIS_DOCUMENT)) {
<a class="jxr_linenumber" name="494" href="#494">494</a>             <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.IS_IMMUTABLE)) {
<a class="jxr_linenumber" name="495" href="#495">495</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="496" href="#496">496</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.IS_LATEST_VERSION)) {
<a class="jxr_linenumber" name="497" href="#497">497</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="498" href="#498">498</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.IS_MAJOR_VERSION)) {
<a class="jxr_linenumber" name="499" href="#499">499</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="500" href="#500">500</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.VERSION_SERIES_ID)) {
<a class="jxr_linenumber" name="501" href="#501">501</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="502" href="#502">502</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.IS_LATEST_MAJOR_VERSION)) {
<a class="jxr_linenumber" name="503" href="#503">503</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="504" href="#504">504</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.VERSION_LABEL)) {
<a class="jxr_linenumber" name="505" href="#505">505</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="506" href="#506">506</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.VERSION_SERIES_ID)) {
<a class="jxr_linenumber" name="507" href="#507">507</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="508" href="#508">508</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.IS_VERSION_SERIES_CHECKED_OUT)) {
<a class="jxr_linenumber" name="509" href="#509">509</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="510" href="#510">510</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.VERSION_SERIES_CHECKED_OUT_BY)) {
<a class="jxr_linenumber" name="511" href="#511">511</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="512" href="#512">512</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.VERSION_SERIES_CHECKED_OUT_ID)) {
<a class="jxr_linenumber" name="513" href="#513">513</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="514" href="#514">514</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.CHECKIN_COMMENT)) {
<a class="jxr_linenumber" name="515" href="#515">515</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="516" href="#516">516</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.CONTENT_STREAM_LENGTH)) {
<a class="jxr_linenumber" name="517" href="#517">517</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="518" href="#518">518</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.CONTENT_STREAM_MIME_TYPE)) {
<a class="jxr_linenumber" name="519" href="#519">519</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="520" href="#520">520</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.CONTENT_STREAM_FILE_NAME)) {
<a class="jxr_linenumber" name="521" href="#521">521</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="522" href="#522">522</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.CONTENT_STREAM_ID)) {
<a class="jxr_linenumber" name="523" href="#523">523</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="524" href="#524">524</a>             }
<a class="jxr_linenumber" name="525" href="#525">525</a> 
<a class="jxr_linenumber" name="526" href="#526">526</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="527" href="#527">527</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (baseTypeId.equals(BaseTypeId.CMIS_FOLDER)) {
<a class="jxr_linenumber" name="528" href="#528">528</a>             <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.PARENT_ID)) {
<a class="jxr_linenumber" name="529" href="#529">529</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="530" href="#530">530</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.ALLOWED_CHILD_OBJECT_TYPE_IDS)) {
<a class="jxr_linenumber" name="531" href="#531">531</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="532" href="#532">532</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.PATH)) {
<a class="jxr_linenumber" name="533" href="#533">533</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="534" href="#534">534</a>             }
<a class="jxr_linenumber" name="535" href="#535">535</a> 
<a class="jxr_linenumber" name="536" href="#536">536</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="537" href="#537">537</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (baseTypeId.equals(BaseTypeId.CMIS_POLICY)) {
<a class="jxr_linenumber" name="538" href="#538">538</a>             <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.SOURCE_ID)) {
<a class="jxr_linenumber" name="539" href="#539">539</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="540" href="#540">540</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.TARGET_ID)) {
<a class="jxr_linenumber" name="541" href="#541">541</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="542" href="#542">542</a>             }
<a class="jxr_linenumber" name="543" href="#543">543</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="544" href="#544">544</a>         } <strong class="jxr_keyword">else</strong> { <em class="jxr_comment">// relationship</em>
<a class="jxr_linenumber" name="545" href="#545">545</a>             <strong class="jxr_keyword">if</strong> (propertyId.equals(PropertyIds.POLICY_TEXT)) {
<a class="jxr_linenumber" name="546" href="#546">546</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="547" href="#547">547</a>             }
<a class="jxr_linenumber" name="548" href="#548">548</a> 
<a class="jxr_linenumber" name="549" href="#549">549</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="550" href="#550">550</a>         }
<a class="jxr_linenumber" name="551" href="#551">551</a>     }
<a class="jxr_linenumber" name="552" href="#552">552</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

