<!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>JcrTypeManager xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> * <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.chemistry.opencmis.jcr;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.PropertyIds;
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.DocumentTypeDefinition;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionList;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Cardinality;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.PropertyType;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.Updatability;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.Converter;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AbstractPropertyDefinition;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.AbstractTypeDefinition;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.DocumentTypeDefinitionImpl;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.FolderTypeDefinitionImpl;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyBooleanDefinitionImpl;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDateTimeDefinitionImpl;
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDecimalDefinitionImpl;
<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyHtmlDefinitionImpl;
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIdDefinitionImpl;
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIntegerDefinitionImpl;
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyStringDefinitionImpl;
<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyUriDefinitionImpl;
<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.TypeDefinitionContainerImpl;
<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.TypeDefinitionListImpl;
<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.server.support.TypeManager;
<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.Log;
<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.LogFactory;
<a name="50" href="#50">50</a>  
<a name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> java.math.BigInteger;
<a name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
<a name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a name="57" href="#57">57</a>  
<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment">/**</em>
<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment"> * Type Manager.</em>
<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment"> */</em>
<a name="61" href="#61">61</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/chemistry/opencmis/jcr/JcrTypeManager.html">JcrTypeManager</a> implements TypeManager { 
<a name="62" href="#62">62</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Log log = LogFactory.getLog(JcrTypeManager.<strong class="jxr_keyword">class</strong>);
<a name="63" href="#63">63</a>  
<a name="64" href="#64">64</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String DOCUMENT_TYPE_ID = <span class="jxr_string">"cmis:document"</span>;
<a name="65" href="#65">65</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String FOLDER_TYPE_ID = <span class="jxr_string">"cmis:folder"</span>;
<a name="66" href="#66">66</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String RELATIONSHIP_TYPE_ID = <span class="jxr_string">"cmis:relationship"</span>;
<a name="67" href="#67">67</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String POLICY_TYPE_ID = <span class="jxr_string">"cmis:policy"</span>;
<a name="68" href="#68">68</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String NAMESPACE = <span class="jxr_string">"http://opencmis.org/jcr"</span>;
<a name="69" href="#69">69</a>  
<a name="70" href="#70">70</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map&lt;String, TypeDefinitionContainerImpl&gt; fTypes;
<a name="71" href="#71">71</a>  
<a name="72" href="#72">72</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/chemistry/opencmis/jcr/JcrTypeManager.html">JcrTypeManager</a>() {
<a name="73" href="#73">73</a>          fTypes = <strong class="jxr_keyword">new</strong> HashMap&lt;String, TypeDefinitionContainerImpl&gt;();
<a name="74" href="#74">74</a>      }
<a name="75" href="#75">75</a>  
<a name="76" href="#76">76</a>      <em class="jxr_javadoccomment">/**</em>
<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     * Adds a type to collection with inheriting base type properties.</em>
<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">     * @param type  type to add</em>
<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment">     * @return  &lt;code&gt;true&lt;/code&gt; iff the type was successfully added</em>
<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">     */</em>
<a name="81" href="#81">81</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> addType(TypeDefinition type) {
<a name="82" href="#82">82</a>          <strong class="jxr_keyword">if</strong> (type == <strong class="jxr_keyword">null</strong>) {
<a name="83" href="#83">83</a>              <strong class="jxr_keyword">return</strong> false;
<a name="84" href="#84">84</a>          }
<a name="85" href="#85">85</a>  
<a name="86" href="#86">86</a>          <strong class="jxr_keyword">if</strong> (fTypes.containsKey(type.getId())) {
<a name="87" href="#87">87</a>              <em class="jxr_comment">// can't overwrite a type</em>
<a name="88" href="#88">88</a>              <strong class="jxr_keyword">return</strong> false;
<a name="89" href="#89">89</a>          }
<a name="90" href="#90">90</a>  
<a name="91" href="#91">91</a>          AbstractTypeDefinition newType = (AbstractTypeDefinition) copyTypeDefinition(type);
<a name="92" href="#92">92</a>  
<a name="93" href="#93">93</a>          <strong class="jxr_keyword">if</strong> (!newType.getBaseTypeId().value().equals(newType.getId())) {
<a name="94" href="#94">94</a>  
<a name="95" href="#95">95</a>              <em class="jxr_comment">// find base type</em>
<a name="96" href="#96">96</a>              TypeDefinition baseType;
<a name="97" href="#97">97</a>              <strong class="jxr_keyword">if</strong> (newType.getBaseTypeId() == BaseTypeId.CMIS_DOCUMENT) {
<a name="98" href="#98">98</a>                  baseType = copyTypeDefinition(fTypes.get(DOCUMENT_TYPE_ID).getTypeDefinition());
<a name="99" href="#99">99</a>              }
<a name="100" href="#100">100</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (newType.getBaseTypeId() == BaseTypeId.CMIS_FOLDER) {
<a name="101" href="#101">101</a>                 baseType = copyTypeDefinition(fTypes.get(FOLDER_TYPE_ID).getTypeDefinition());
<a name="102" href="#102">102</a>             }
<a name="103" href="#103">103</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (newType.getBaseTypeId() == BaseTypeId.CMIS_RELATIONSHIP) {
<a name="104" href="#104">104</a>                 baseType = copyTypeDefinition(fTypes.get(RELATIONSHIP_TYPE_ID).getTypeDefinition());
<a name="105" href="#105">105</a>             }
<a name="106" href="#106">106</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (newType.getBaseTypeId() == BaseTypeId.CMIS_POLICY) {
<a name="107" href="#107">107</a>                 baseType = copyTypeDefinition(fTypes.get(POLICY_TYPE_ID).getTypeDefinition());
<a name="108" href="#108">108</a>             }
<a name="109" href="#109">109</a>             <strong class="jxr_keyword">else</strong> {
<a name="110" href="#110">110</a>                 <strong class="jxr_keyword">return</strong> false;
<a name="111" href="#111">111</a>             }
<a name="112" href="#112">112</a> 
<a name="113" href="#113">113</a>             <em class="jxr_comment">// copy property definition</em>
<a name="114" href="#114">114</a>             <strong class="jxr_keyword">for</strong> (PropertyDefinition&lt;?&gt; propDef : baseType.getPropertyDefinitions().values()) {
<a name="115" href="#115">115</a>                 ((AbstractPropertyDefinition&lt;?&gt;) propDef).setIsInherited(<strong class="jxr_keyword">true</strong>);
<a name="116" href="#116">116</a>                 newType.addPropertyDefinition(propDef);
<a name="117" href="#117">117</a>             }
<a name="118" href="#118">118</a> 
<a name="119" href="#119">119</a>         }
<a name="120" href="#120">120</a> 
<a name="121" href="#121">121</a>         <em class="jxr_comment">// add it</em>
<a name="122" href="#122">122</a>         addTypeInternal(newType);
<a name="123" href="#123">123</a> 
<a name="124" href="#124">124</a>         log.info(<span class="jxr_string">"Added type '"</span> + newType.getId() + <span class="jxr_string">"'."</span>);
<a name="125" href="#125">125</a> 
<a name="126" href="#126">126</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="127" href="#127">127</a>     }
<a name="128" href="#128">128</a> 
<a name="129" href="#129">129</a>     <strong class="jxr_keyword">public</strong> TypeDefinition getType(String typeId) {
<a name="130" href="#130">130</a>         TypeDefinitionContainer tc = fTypes.get(typeId);
<a name="131" href="#131">131</a>         <strong class="jxr_keyword">return</strong> tc == <strong class="jxr_keyword">null</strong> ? <strong class="jxr_keyword">null</strong> : tc.getTypeDefinition();
<a name="132" href="#132">132</a>     }
<a name="133" href="#133">133</a> 
<a name="134" href="#134">134</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> isVersionable(TypeDefinition typeDef) {
<a name="135" href="#135">135</a>         <strong class="jxr_keyword">return</strong> typeDef instanceof DocumentTypeDefinition
<a name="136" href="#136">136</a>                 ? ((DocumentTypeDefinition) typeDef).isVersionable()
<a name="137" href="#137">137</a>                 : false;
<a name="138" href="#138">138</a>     }
<a name="139" href="#139">139</a> 
<a name="140" href="#140">140</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> TypeDefinition copyTypeDefinition(TypeDefinition type) {
<a name="141" href="#141">141</a>         <strong class="jxr_keyword">return</strong> Converter.convert(Converter.convert(type));
<a name="142" href="#142">142</a>     }
<a name="143" href="#143">143</a>     
<a name="144" href="#144">144</a>     <em class="jxr_javadoccomment">/**</em>
<a name="145" href="#145">145</a> <em class="jxr_javadoccomment">     * See CMIS 1.0 section 2.2.2.3 getTypeChildren</em>
<a name="146" href="#146">146</a> <em class="jxr_javadoccomment">     */</em>
<a name="147" href="#147">147</a>     <strong class="jxr_keyword">public</strong> TypeDefinitionList getTypeChildren(String typeId, <strong class="jxr_keyword">boolean</strong> includePropertyDefinitions,
<a name="148" href="#148">148</a>             BigInteger maxItems, BigInteger skipCount) {
<a name="149" href="#149">149</a> 
<a name="150" href="#150">150</a>         TypeDefinitionListImpl result = <strong class="jxr_keyword">new</strong> TypeDefinitionListImpl(<strong class="jxr_keyword">new</strong> ArrayList&lt;TypeDefinition&gt;());
<a name="151" href="#151">151</a> 
<a name="152" href="#152">152</a>         <strong class="jxr_keyword">int</strong> skip = skipCount == <strong class="jxr_keyword">null</strong> ? 0 : skipCount.intValue();
<a name="153" href="#153">153</a>         <strong class="jxr_keyword">if</strong> (skip &lt; 0) {
<a name="154" href="#154">154</a>             skip = 0;
<a name="155" href="#155">155</a>         }
<a name="156" href="#156">156</a> 
<a name="157" href="#157">157</a>         <strong class="jxr_keyword">int</strong> max = maxItems == <strong class="jxr_keyword">null</strong> ? Integer.MAX_VALUE : maxItems.intValue();
<a name="158" href="#158">158</a>         <strong class="jxr_keyword">if</strong> (max &lt; 1) {
<a name="159" href="#159">159</a>             <strong class="jxr_keyword">return</strong> result;
<a name="160" href="#160">160</a>         }
<a name="161" href="#161">161</a> 
<a name="162" href="#162">162</a>         <strong class="jxr_keyword">if</strong> (typeId == <strong class="jxr_keyword">null</strong>) {
<a name="163" href="#163">163</a>             <strong class="jxr_keyword">if</strong> (skip &lt; 1) {
<a name="164" href="#164">164</a>                 result.getList().add(copyTypeDefinition(fTypes.get(FOLDER_TYPE_ID).getTypeDefinition()));
<a name="165" href="#165">165</a>                 max--;
<a name="166" href="#166">166</a>             }
<a name="167" href="#167">167</a>             <strong class="jxr_keyword">if</strong> (skip &lt; 2 &amp;&amp; max &gt; 0) {
<a name="168" href="#168">168</a>                 result.getList().add(copyTypeDefinition(fTypes.get(DOCUMENT_TYPE_ID).getTypeDefinition()));
<a name="169" href="#169">169</a>             }
<a name="170" href="#170">170</a> 
<a name="171" href="#171">171</a>             result.setHasMoreItems(result.getList().size() + skip &lt; 2);
<a name="172" href="#172">172</a>             result.setNumItems(BigInteger.valueOf(2));
<a name="173" href="#173">173</a>         }
<a name="174" href="#174">174</a>         <strong class="jxr_keyword">else</strong> {
<a name="175" href="#175">175</a>             TypeDefinitionContainer tc = fTypes.get(typeId);
<a name="176" href="#176">176</a>             <strong class="jxr_keyword">if</strong> (tc == <strong class="jxr_keyword">null</strong> || tc.getChildren() == <strong class="jxr_keyword">null</strong>) {
<a name="177" href="#177">177</a>                 <strong class="jxr_keyword">return</strong> result;
<a name="178" href="#178">178</a>             }
<a name="179" href="#179">179</a> 
<a name="180" href="#180">180</a>             <strong class="jxr_keyword">for</strong> (TypeDefinitionContainer child : tc.getChildren()) {
<a name="181" href="#181">181</a>                 <strong class="jxr_keyword">if</strong> (skip &gt; 0) {
<a name="182" href="#182">182</a>                     skip--;
<a name="183" href="#183">183</a>                     <strong class="jxr_keyword">continue</strong>;
<a name="184" href="#184">184</a>                 }
<a name="185" href="#185">185</a> 
<a name="186" href="#186">186</a>                 result.getList().add(copyTypeDefinition(child.getTypeDefinition()));
<a name="187" href="#187">187</a> 
<a name="188" href="#188">188</a>                 max--;
<a name="189" href="#189">189</a>                 <strong class="jxr_keyword">if</strong> (max == 0) {
<a name="190" href="#190">190</a>                     <strong class="jxr_keyword">break</strong>;
<a name="191" href="#191">191</a>                 }
<a name="192" href="#192">192</a>             }
<a name="193" href="#193">193</a> 
<a name="194" href="#194">194</a>             result.setHasMoreItems(result.getList().size() + skip &lt; tc.getChildren().size());
<a name="195" href="#195">195</a>             result.setNumItems(BigInteger.valueOf(tc.getChildren().size()));
<a name="196" href="#196">196</a>         }
<a name="197" href="#197">197</a> 
<a name="198" href="#198">198</a>         <strong class="jxr_keyword">if</strong> (!includePropertyDefinitions) {
<a name="199" href="#199">199</a>             <strong class="jxr_keyword">for</strong> (TypeDefinition type : result.getList()) {
<a name="200" href="#200">200</a>                 type.getPropertyDefinitions().clear();
<a name="201" href="#201">201</a>             }
<a name="202" href="#202">202</a>         }
<a name="203" href="#203">203</a> 
<a name="204" href="#204">204</a>         <strong class="jxr_keyword">return</strong> result;
<a name="205" href="#205">205</a>     }
<a name="206" href="#206">206</a> 
<a name="207" href="#207">207</a>     <em class="jxr_javadoccomment">/**</em>
<a name="208" href="#208">208</a> <em class="jxr_javadoccomment">     * See CMIS 1.0 section 2.2.2.4 getTypeDescendants</em>
<a name="209" href="#209">209</a> <em class="jxr_javadoccomment">     */</em>
<a name="210" href="#210">210</a>     <strong class="jxr_keyword">public</strong> List&lt;TypeDefinitionContainer&gt; getTypesDescendants(String typeId, BigInteger depth,
<a name="211" href="#211">211</a>             Boolean includePropertyDefinitions) {
<a name="212" href="#212">212</a> 
<a name="213" href="#213">213</a>         List&lt;TypeDefinitionContainer&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;TypeDefinitionContainer&gt;();
<a name="214" href="#214">214</a> 
<a name="215" href="#215">215</a>         <em class="jxr_comment">// check depth</em>
<a name="216" href="#216">216</a>         <strong class="jxr_keyword">int</strong> d = depth == <strong class="jxr_keyword">null</strong> ? -1 : depth.intValue();
<a name="217" href="#217">217</a>         <strong class="jxr_keyword">if</strong> (d == 0) {
<a name="218" href="#218">218</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisInvalidArgumentException(<span class="jxr_string">"Depth must not be 0!"</span>);
<a name="219" href="#219">219</a>         }
<a name="220" href="#220">220</a> 
<a name="221" href="#221">221</a>         <em class="jxr_comment">// set property definition flag to default value if not set</em>
<a name="222" href="#222">222</a>         <strong class="jxr_keyword">boolean</strong> ipd = Boolean.TRUE.equals(includePropertyDefinitions);
<a name="223" href="#223">223</a> 
<a name="224" href="#224">224</a>         <strong class="jxr_keyword">if</strong> (typeId == <strong class="jxr_keyword">null</strong>) {
<a name="225" href="#225">225</a>             result.add(getTypesDescendants(d, fTypes.get(FOLDER_TYPE_ID), ipd));
<a name="226" href="#226">226</a>             result.add(getTypesDescendants(d, fTypes.get(DOCUMENT_TYPE_ID), ipd));
<a name="227" href="#227">227</a>         }
<a name="228" href="#228">228</a>         <strong class="jxr_keyword">else</strong> {
<a name="229" href="#229">229</a>             TypeDefinitionContainer tc = fTypes.get(typeId);
<a name="230" href="#230">230</a>             <strong class="jxr_keyword">if</strong> (tc != <strong class="jxr_keyword">null</strong>) {
<a name="231" href="#231">231</a>                 result.add(getTypesDescendants(d, tc, ipd));
<a name="232" href="#232">232</a>             }
<a name="233" href="#233">233</a>         }
<a name="234" href="#234">234</a> 
<a name="235" href="#235">235</a>         <strong class="jxr_keyword">return</strong> result;
<a name="236" href="#236">236</a>     }
<a name="237" href="#237">237</a> 
<a name="238" href="#238">238</a>     <em class="jxr_comment">//------------------------------------------&lt; JcrTypeManager &gt;---</em>
<a name="239" href="#239">239</a> 
<a name="240" href="#240">240</a>     <strong class="jxr_keyword">public</strong> TypeDefinitionContainer getTypeById(String typeId) {
<a name="241" href="#241">241</a>         <strong class="jxr_keyword">return</strong> fTypes.get(typeId);
<a name="242" href="#242">242</a>     }
<a name="243" href="#243">243</a> 
<a name="244" href="#244">244</a>     <strong class="jxr_keyword">public</strong> TypeDefinition getTypeByQueryName(String typeQueryName) {
<a name="245" href="#245">245</a>         <strong class="jxr_keyword">for</strong> (TypeDefinitionContainerImpl type : fTypes.values()) {
<a name="246" href="#246">246</a>             TypeDefinition typeDef = type.getTypeDefinition();
<a name="247" href="#247">247</a>             <strong class="jxr_keyword">if</strong> (typeDef.getQueryName().equals(typeQueryName)) {
<a name="248" href="#248">248</a>                 <strong class="jxr_keyword">return</strong> typeDef;
<a name="249" href="#249">249</a>             }
<a name="250" href="#250">250</a>         }
<a name="251" href="#251">251</a>         
<a name="252" href="#252">252</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="253" href="#253">253</a>     }
<a name="254" href="#254">254</a> 
<a name="255" href="#255">255</a>     <strong class="jxr_keyword">public</strong> Collection&lt;TypeDefinitionContainer&gt; getTypeDefinitionList() {
<a name="256" href="#256">256</a>         Collection&lt;TypeDefinitionContainer&gt; types = <strong class="jxr_keyword">new</strong> ArrayList&lt;TypeDefinitionContainer&gt;(fTypes.size());
<a name="257" href="#257">257</a>         types.addAll(fTypes.values());
<a name="258" href="#258">258</a>         <strong class="jxr_keyword">return</strong> types;
<a name="259" href="#259">259</a>     }
<a name="260" href="#260">260</a> 
<a name="261" href="#261">261</a>     <strong class="jxr_keyword">public</strong> List&lt;TypeDefinitionContainer&gt; getRootTypes() {
<a name="262" href="#262">262</a>         List&lt;TypeDefinitionContainer&gt; types = <strong class="jxr_keyword">new</strong> ArrayList&lt;TypeDefinitionContainer&gt;(2);
<a name="263" href="#263">263</a>         types.add(fTypes.get(FOLDER_TYPE_ID));
<a name="264" href="#264">264</a>         types.add(fTypes.get(DOCUMENT_TYPE_ID));
<a name="265" href="#265">265</a>         <strong class="jxr_keyword">return</strong> types; 
<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">public</strong> String getPropertyIdForQueryName(TypeDefinition typeDefinition, String propQueryName) {
<a name="269" href="#269">269</a>         <strong class="jxr_keyword">for</strong> (PropertyDefinition&lt;?&gt; pd : typeDefinition.getPropertyDefinitions().values()) {
<a name="270" href="#270">270</a>             <strong class="jxr_keyword">if</strong> (pd.getQueryName().equals(propQueryName)) {
<a name="271" href="#271">271</a>                 <strong class="jxr_keyword">return</strong> pd.getId();
<a name="272" href="#272">272</a>             }
<a name="273" href="#273">273</a>         }
<a name="274" href="#274">274</a> 
<a name="275" href="#275">275</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="276" href="#276">276</a>     }
<a name="277" href="#277">277</a> 
<a name="278" href="#278">278</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> addBasePropertyDefinitions(AbstractTypeDefinition type) {
<a name="279" href="#279">279</a>         type.addPropertyDefinition(createPropDef(PropertyIds.BASE_TYPE_ID, <span class="jxr_string">"Base Type Id"</span>, <span class="jxr_string">"Base Type Id"</span>,
<a name="280" href="#280">280</a>                 PropertyType.ID, Cardinality.SINGLE, Updatability.READONLY, false, <strong class="jxr_keyword">true</strong>));
<a name="281" href="#281">281</a> 
<a name="282" href="#282">282</a>         type.addPropertyDefinition(createPropDef(PropertyIds.OBJECT_ID, <span class="jxr_string">"Object Id"</span>, <span class="jxr_string">"Object Id"</span>, PropertyType.ID,
<a name="283" href="#283">283</a>                 Cardinality.SINGLE, Updatability.READONLY, false, <strong class="jxr_keyword">true</strong>));
<a name="284" href="#284">284</a> 
<a name="285" href="#285">285</a>         type.addPropertyDefinition(createPropDef(PropertyIds.OBJECT_TYPE_ID, <span class="jxr_string">"Type Id"</span>, <span class="jxr_string">"Type Id"</span>, PropertyType.ID,
<a name="286" href="#286">286</a>                 Cardinality.SINGLE, Updatability.ONCREATE, false, <strong class="jxr_keyword">true</strong>));
<a name="287" href="#287">287</a> 
<a name="288" href="#288">288</a>         type.addPropertyDefinition(createPropDef(PropertyIds.NAME, <span class="jxr_string">"Name"</span>, <span class="jxr_string">"Name"</span>, PropertyType.STRING,
<a name="289" href="#289">289</a>                 Cardinality.SINGLE, Updatability.READWRITE, false, <strong class="jxr_keyword">true</strong>));
<a name="290" href="#290">290</a> 
<a name="291" href="#291">291</a>         type.addPropertyDefinition(createPropDef(PropertyIds.CREATED_BY, <span class="jxr_string">"Created By"</span>, <span class="jxr_string">"Created By"</span>,
<a name="292" href="#292">292</a>                 PropertyType.STRING, Cardinality.SINGLE, Updatability.READONLY, false, <strong class="jxr_keyword">true</strong>));
<a name="293" href="#293">293</a> 
<a name="294" href="#294">294</a>         type.addPropertyDefinition(createPropDef(PropertyIds.CREATION_DATE, <span class="jxr_string">"Creation Date"</span>, <span class="jxr_string">"Creation Date"</span>,
<a name="295" href="#295">295</a>                 PropertyType.DATETIME, Cardinality.SINGLE, Updatability.READONLY, false, <strong class="jxr_keyword">true</strong>));
<a name="296" href="#296">296</a> 
<a name="297" href="#297">297</a>         type.addPropertyDefinition(createPropDef(PropertyIds.LAST_MODIFIED_BY, <span class="jxr_string">"Last Modified By"</span>, <span class="jxr_string">"Last Modified By"</span>,
<a name="298" href="#298">298</a>                 PropertyType.STRING, Cardinality.SINGLE, Updatability.READONLY, false, <strong class="jxr_keyword">true</strong>));
<a name="299" href="#299">299</a> 
<a name="300" href="#300">300</a>         type.addPropertyDefinition(createPropDef(PropertyIds.LAST_MODIFICATION_DATE, <span class="jxr_string">"Last Modification Date"</span>,
<a name="301" href="#301">301</a>                 <span class="jxr_string">"Last Modification Date"</span>, PropertyType.DATETIME, Cardinality.SINGLE, Updatability.READONLY, false, <strong class="jxr_keyword">true</strong>));
<a name="302" href="#302">302</a> 
<a name="303" href="#303">303</a>         type.addPropertyDefinition(createPropDef(PropertyIds.CHANGE_TOKEN, <span class="jxr_string">"Change Token"</span>, <span class="jxr_string">"Change Token"</span>,
<a name="304" href="#304">304</a>                 PropertyType.STRING, Cardinality.SINGLE, Updatability.READONLY, false, false));
<a name="305" href="#305">305</a>     }
<a name="306" href="#306">306</a> 
<a name="307" href="#307">307</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> addFolderPropertyDefinitions(FolderTypeDefinitionImpl type) {
<a name="308" href="#308">308</a>         type.addPropertyDefinition(createPropDef(PropertyIds.PARENT_ID, <span class="jxr_string">"Parent Id"</span>, <span class="jxr_string">"Parent Id"</span>, PropertyType.ID,
<a name="309" href="#309">309</a>                 Cardinality.SINGLE, Updatability.READONLY, false, false));
<a name="310" href="#310">310</a> 
<a name="311" href="#311">311</a>         type.addPropertyDefinition(createPropDef(PropertyIds.ALLOWED_CHILD_OBJECT_TYPE_IDS,
<a name="312" href="#312">312</a>                 <span class="jxr_string">"Allowed Child Object Type Ids"</span>, <span class="jxr_string">"Allowed Child Object Type Ids"</span>, PropertyType.ID, Cardinality.MULTI,
<a name="313" href="#313">313</a>                 Updatability.READONLY, false, false));
<a name="314" href="#314">314</a> 
<a name="315" href="#315">315</a>         type.addPropertyDefinition(createPropDef(PropertyIds.PATH, <span class="jxr_string">"Path"</span>, <span class="jxr_string">"Path"</span>, PropertyType.STRING,
<a name="316" href="#316">316</a>                 Cardinality.SINGLE, Updatability.READONLY, false, false));
<a name="317" href="#317">317</a>     }
<a name="318" href="#318">318</a> 
<a name="319" href="#319">319</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> addDocumentPropertyDefinitions(DocumentTypeDefinitionImpl type) {
<a name="320" href="#320">320</a>         type.addPropertyDefinition(createPropDef(PropertyIds.IS_IMMUTABLE, <span class="jxr_string">"Is Immutable"</span>, <span class="jxr_string">"Is Immutable"</span>,
<a name="321" href="#321">321</a>                 PropertyType.BOOLEAN, Cardinality.SINGLE, Updatability.READONLY, false, false));
<a name="322" href="#322">322</a> 
<a name="323" href="#323">323</a>         type.addPropertyDefinition(createPropDef(PropertyIds.IS_LATEST_VERSION, <span class="jxr_string">"Is Latest Version"</span>,
<a name="324" href="#324">324</a>                 <span class="jxr_string">"Is Latest Version"</span>, PropertyType.BOOLEAN, Cardinality.SINGLE, Updatability.READONLY, false, false));
<a name="325" href="#325">325</a> 
<a name="326" href="#326">326</a>         type.addPropertyDefinition(createPropDef(PropertyIds.IS_MAJOR_VERSION, <span class="jxr_string">"Is Major Version"</span>, <span class="jxr_string">"Is Major Version"</span>,
<a name="327" href="#327">327</a>                 PropertyType.BOOLEAN, Cardinality.SINGLE, Updatability.READONLY, false, false));
<a name="328" href="#328">328</a> 
<a name="329" href="#329">329</a>         type.addPropertyDefinition(createPropDef(PropertyIds.IS_LATEST_MAJOR_VERSION, <span class="jxr_string">"Is Latest Major Version"</span>,
<a name="330" href="#330">330</a>                 <span class="jxr_string">"Is Latest Major Version"</span>, PropertyType.BOOLEAN, Cardinality.SINGLE, Updatability.READONLY, false,
<a name="331" href="#331">331</a>                 false));
<a name="332" href="#332">332</a> 
<a name="333" href="#333">333</a>         type.addPropertyDefinition(createPropDef(PropertyIds.VERSION_LABEL, <span class="jxr_string">"Version Label"</span>, <span class="jxr_string">"Version Label"</span>,
<a name="334" href="#334">334</a>                 PropertyType.STRING, Cardinality.SINGLE, Updatability.READONLY, false, false));
<a name="335" href="#335">335</a> 
<a name="336" href="#336">336</a>         type.addPropertyDefinition(createPropDef(PropertyIds.VERSION_SERIES_ID, <span class="jxr_string">"Version Series Id"</span>,
<a name="337" href="#337">337</a>                 <span class="jxr_string">"Version Series Id"</span>, PropertyType.ID, Cardinality.SINGLE, Updatability.READONLY, false, <strong class="jxr_keyword">true</strong>));
<a name="338" href="#338">338</a> 
<a name="339" href="#339">339</a>         type.addPropertyDefinition(createPropDef(PropertyIds.IS_VERSION_SERIES_CHECKED_OUT,
<a name="340" href="#340">340</a>                 <span class="jxr_string">"Is Version Series Checked Out"</span>, <span class="jxr_string">"Is Version Series Checked Out"</span>, PropertyType.BOOLEAN,
<a name="341" href="#341">341</a>                 Cardinality.SINGLE, Updatability.READONLY, false, <strong class="jxr_keyword">true</strong>));
<a name="342" href="#342">342</a> 
<a name="343" href="#343">343</a>         type.addPropertyDefinition(createPropDef(PropertyIds.VERSION_SERIES_CHECKED_OUT_ID,
<a name="344" href="#344">344</a>                 <span class="jxr_string">"Version Series Checked Out Id"</span>, <span class="jxr_string">"Version Series Checked Out Id"</span>, PropertyType.ID, Cardinality.SINGLE,
<a name="345" href="#345">345</a>                 Updatability.READONLY, false, false));
<a name="346" href="#346">346</a> 
<a name="347" href="#347">347</a>         type.addPropertyDefinition(createPropDef(PropertyIds.VERSION_SERIES_CHECKED_OUT_BY,
<a name="348" href="#348">348</a>                 <span class="jxr_string">"Version Series Checked Out By"</span>, <span class="jxr_string">"Version Series Checked Out By"</span>, PropertyType.ID, Cardinality.SINGLE,
<a name="349" href="#349">349</a>                 Updatability.READONLY, false, false));
<a name="350" href="#350">350</a> 
<a name="351" href="#351">351</a>         type.addPropertyDefinition(createPropDef(PropertyIds.CHECKIN_COMMENT, <span class="jxr_string">"Checkin Comment"</span>, <span class="jxr_string">"Checkin Comment"</span>,
<a name="352" href="#352">352</a>                 PropertyType.STRING, Cardinality.SINGLE, Updatability.READONLY, false, false));
<a name="353" href="#353">353</a> 
<a name="354" href="#354">354</a>         type.addPropertyDefinition(createPropDef(PropertyIds.CONTENT_STREAM_LENGTH, <span class="jxr_string">"Content Stream Length"</span>,
<a name="355" href="#355">355</a>                 <span class="jxr_string">"Content Stream Length"</span>, PropertyType.INTEGER, Cardinality.SINGLE, Updatability.READONLY, false, false));
<a name="356" href="#356">356</a> 
<a name="357" href="#357">357</a>         type.addPropertyDefinition(createPropDef(PropertyIds.CONTENT_STREAM_MIME_TYPE, <span class="jxr_string">"MIME Type"</span>, <span class="jxr_string">"MIME Type"</span>,
<a name="358" href="#358">358</a>                 PropertyType.STRING, Cardinality.SINGLE, Updatability.READONLY, false, false));
<a name="359" href="#359">359</a> 
<a name="360" href="#360">360</a>         type.addPropertyDefinition(createPropDef(PropertyIds.CONTENT_STREAM_FILE_NAME, <span class="jxr_string">"Filename"</span>, <span class="jxr_string">"Filename"</span>,
<a name="361" href="#361">361</a>                 PropertyType.STRING, Cardinality.SINGLE, Updatability.READONLY, false, false));
<a name="362" href="#362">362</a> 
<a name="363" href="#363">363</a>         type.addPropertyDefinition(createPropDef(PropertyIds.CONTENT_STREAM_ID, <span class="jxr_string">"Content Stream Id"</span>,
<a name="364" href="#364">364</a>                 <span class="jxr_string">"Content Stream Id"</span>, PropertyType.ID, Cardinality.SINGLE, Updatability.READONLY, false, false));
<a name="365" href="#365">365</a>     }
<a name="366" href="#366">366</a> 
<a name="367" href="#367">367</a>     <em class="jxr_javadoccomment">/**</em>
<a name="368" href="#368">368</a> <em class="jxr_javadoccomment">     * Creates a property definition object.</em>
<a name="369" href="#369">369</a> <em class="jxr_javadoccomment">     */</em>
<a name="370" href="#370">370</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> PropertyDefinition&lt;?&gt; createPropDef(String id, String displayName, String description,
<a name="371" href="#371">371</a>             PropertyType datatype, Cardinality cardinality, Updatability updateability, <strong class="jxr_keyword">boolean</strong> inherited,
<a name="372" href="#372">372</a>             <strong class="jxr_keyword">boolean</strong> required) {
<a name="373" href="#373">373</a> 
<a name="374" href="#374">374</a>         AbstractPropertyDefinition&lt;?&gt; result;
<a name="375" href="#375">375</a> 
<a name="376" href="#376">376</a>         <strong class="jxr_keyword">switch</strong> (datatype) {
<a name="377" href="#377">377</a>             <strong class="jxr_keyword">case</strong> BOOLEAN:
<a name="378" href="#378">378</a>                 result = <strong class="jxr_keyword">new</strong> PropertyBooleanDefinitionImpl();
<a name="379" href="#379">379</a>                 <strong class="jxr_keyword">break</strong>;
<a name="380" href="#380">380</a>             <strong class="jxr_keyword">case</strong> DATETIME:
<a name="381" href="#381">381</a>                 result = <strong class="jxr_keyword">new</strong> PropertyDateTimeDefinitionImpl();
<a name="382" href="#382">382</a>                 <strong class="jxr_keyword">break</strong>;
<a name="383" href="#383">383</a>             <strong class="jxr_keyword">case</strong> DECIMAL:
<a name="384" href="#384">384</a>                 result = <strong class="jxr_keyword">new</strong> PropertyDecimalDefinitionImpl();
<a name="385" href="#385">385</a>                 <strong class="jxr_keyword">break</strong>;
<a name="386" href="#386">386</a>             <strong class="jxr_keyword">case</strong> HTML:
<a name="387" href="#387">387</a>                 result = <strong class="jxr_keyword">new</strong> PropertyHtmlDefinitionImpl();
<a name="388" href="#388">388</a>                 <strong class="jxr_keyword">break</strong>;
<a name="389" href="#389">389</a>             <strong class="jxr_keyword">case</strong> ID:
<a name="390" href="#390">390</a>                 result = <strong class="jxr_keyword">new</strong> PropertyIdDefinitionImpl();
<a name="391" href="#391">391</a>                 <strong class="jxr_keyword">break</strong>;
<a name="392" href="#392">392</a>             <strong class="jxr_keyword">case</strong> INTEGER:
<a name="393" href="#393">393</a>                 result = <strong class="jxr_keyword">new</strong> PropertyIntegerDefinitionImpl();
<a name="394" href="#394">394</a>                 <strong class="jxr_keyword">break</strong>;
<a name="395" href="#395">395</a>             <strong class="jxr_keyword">case</strong> STRING:
<a name="396" href="#396">396</a>                 result = <strong class="jxr_keyword">new</strong> PropertyStringDefinitionImpl();
<a name="397" href="#397">397</a>                 <strong class="jxr_keyword">break</strong>;
<a name="398" href="#398">398</a>             <strong class="jxr_keyword">case</strong> URI:
<a name="399" href="#399">399</a>                 result = <strong class="jxr_keyword">new</strong> PropertyUriDefinitionImpl();
<a name="400" href="#400">400</a>                 <strong class="jxr_keyword">break</strong>;
<a name="401" href="#401">401</a>             <strong class="jxr_keyword">default</strong>:
<a name="402" href="#402">402</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException(<span class="jxr_string">"Unknown datatype! Spec change?"</span>);
<a name="403" href="#403">403</a>         }
<a name="404" href="#404">404</a> 
<a name="405" href="#405">405</a>         result.setId(id);
<a name="406" href="#406">406</a>         result.setLocalName(id);
<a name="407" href="#407">407</a>         result.setDisplayName(displayName);
<a name="408" href="#408">408</a>         result.setDescription(description);
<a name="409" href="#409">409</a>         result.setPropertyType(datatype);
<a name="410" href="#410">410</a>         result.setCardinality(cardinality);
<a name="411" href="#411">411</a>         result.setUpdatability(updateability);
<a name="412" href="#412">412</a>         result.setIsInherited(inherited);
<a name="413" href="#413">413</a>         result.setIsRequired(required);
<a name="414" href="#414">414</a>         result.setIsQueryable(false);
<a name="415" href="#415">415</a>         result.setQueryName(id);
<a name="416" href="#416">416</a> 
<a name="417" href="#417">417</a>         <strong class="jxr_keyword">return</strong> result;
<a name="418" href="#418">418</a>     }
<a name="419" href="#419">419</a> 
<a name="420" href="#420">420</a>     <em class="jxr_comment">//------------------------------------------&lt; private &gt;---</em>
<a name="421" href="#421">421</a> 
<a name="422" href="#422">422</a>     <em class="jxr_javadoccomment">/**</em>
<a name="423" href="#423">423</a> <em class="jxr_javadoccomment">     * Adds a type to collection.</em>
<a name="424" href="#424">424</a> <em class="jxr_javadoccomment">     */</em>
<a name="425" href="#425">425</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> addTypeInternal(AbstractTypeDefinition type) {
<a name="426" href="#426">426</a>         <strong class="jxr_keyword">if</strong> (type == <strong class="jxr_keyword">null</strong>) {
<a name="427" href="#427">427</a>             <strong class="jxr_keyword">return</strong>;
<a name="428" href="#428">428</a>         }
<a name="429" href="#429">429</a> 
<a name="430" href="#430">430</a>         TypeDefinitionContainerImpl tc = <strong class="jxr_keyword">new</strong> TypeDefinitionContainerImpl();
<a name="431" href="#431">431</a>         tc.setTypeDefinition(type);
<a name="432" href="#432">432</a> 
<a name="433" href="#433">433</a>         <em class="jxr_comment">// add to parent</em>
<a name="434" href="#434">434</a>         <strong class="jxr_keyword">if</strong> (type.getParentTypeId() != <strong class="jxr_keyword">null</strong>) {
<a name="435" href="#435">435</a>             TypeDefinitionContainerImpl tdc = fTypes.get(type.getParentTypeId());
<a name="436" href="#436">436</a>             <strong class="jxr_keyword">if</strong> (tdc != <strong class="jxr_keyword">null</strong>) {
<a name="437" href="#437">437</a>                 <strong class="jxr_keyword">if</strong> (tdc.getChildren() == <strong class="jxr_keyword">null</strong>) {
<a name="438" href="#438">438</a>                     tdc.setChildren(<strong class="jxr_keyword">new</strong> ArrayList&lt;TypeDefinitionContainer&gt;());
<a name="439" href="#439">439</a>                 }
<a name="440" href="#440">440</a>                 tdc.getChildren().add(tc);
<a name="441" href="#441">441</a>             }
<a name="442" href="#442">442</a>         }
<a name="443" href="#443">443</a> 
<a name="444" href="#444">444</a>         fTypes.put(type.getId(), tc);
<a name="445" href="#445">445</a>     }
<a name="446" href="#446">446</a> 
<a name="447" href="#447">447</a>     <em class="jxr_javadoccomment">/**</em>
<a name="448" href="#448">448</a> <em class="jxr_javadoccomment">     * Gathers the type descendants tree.</em>
<a name="449" href="#449">449</a> <em class="jxr_javadoccomment">     */</em>
<a name="450" href="#450">450</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> TypeDefinitionContainer getTypesDescendants(<strong class="jxr_keyword">int</strong> depth, TypeDefinitionContainer tc,
<a name="451" href="#451">451</a>             <strong class="jxr_keyword">boolean</strong> includePropertyDefinitions) {
<a name="452" href="#452">452</a> 
<a name="453" href="#453">453</a>         TypeDefinitionContainerImpl result = <strong class="jxr_keyword">new</strong> TypeDefinitionContainerImpl();
<a name="454" href="#454">454</a> 
<a name="455" href="#455">455</a>         TypeDefinition type = copyTypeDefinition(tc.getTypeDefinition());
<a name="456" href="#456">456</a>         <strong class="jxr_keyword">if</strong> (!includePropertyDefinitions) {
<a name="457" href="#457">457</a>             type.getPropertyDefinitions().clear();
<a name="458" href="#458">458</a>         }
<a name="459" href="#459">459</a> 
<a name="460" href="#460">460</a>         result.setTypeDefinition(type);
<a name="461" href="#461">461</a> 
<a name="462" href="#462">462</a>         <strong class="jxr_keyword">if</strong> (depth != 0) {
<a name="463" href="#463">463</a>             <strong class="jxr_keyword">if</strong> (tc.getChildren() != <strong class="jxr_keyword">null</strong>) {
<a name="464" href="#464">464</a>                 result.setChildren(<strong class="jxr_keyword">new</strong> ArrayList&lt;TypeDefinitionContainer&gt;());
<a name="465" href="#465">465</a>                 <strong class="jxr_keyword">for</strong> (TypeDefinitionContainer tdc : tc.getChildren()) {
<a name="466" href="#466">466</a>                     result.getChildren().add(
<a name="467" href="#467">467</a>                             getTypesDescendants(depth &lt; 0 ? -1 : depth - 1, tdc, includePropertyDefinitions));
<a name="468" href="#468">468</a>                 }
<a name="469" href="#469">469</a>             }
<a name="470" href="#470">470</a>         }
<a name="471" href="#471">471</a> 
<a name="472" href="#472">472</a>         <strong class="jxr_keyword">return</strong> result;
<a name="473" href="#473">473</a>     }
<a name="474" href="#474">474</a> 
<a name="475" href="#475">475</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

