<!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>ObjectGenerator 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.util.repository;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.io.ByteArrayInputStream;
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.ByteArrayOutputStream;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.math.BigInteger;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.text.SimpleDateFormat;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.GregorianCalendar;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.UUID;
<a name="31" href="#31">31</a>  
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.PropertyIds;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Acl;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ContentStream;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ExtensionsData;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectData;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectInFolderData;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.ObjectInFolderList;
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Properties;
<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.PropertyData;
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionList;
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.UnfileObject;
<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.VersioningState;
<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.ContentStreamImpl;
<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.spi.BindingsObjectFactory;
<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.spi.NavigationService;
<a name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.spi.ObjectService;
<a name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.spi.RepositoryService;
<a name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.util.content.fractal.FractalGenerator;
<a name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.util.content.loremipsum.LoremIpsum;
<a name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.Log;
<a name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.LogFactory;
<a name="56" href="#56">56</a>  
<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment">/**</em>
<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment"> * A simple helper class for the tests that generates a sample folder hierarchy</em>
<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment"> * and optionally documents in it.</em>
<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment"> *</em>
<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment"> * @author Jens</em>
<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment"> *</em>
<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment"> */</em>
<a name="64" href="#64">64</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/ObjectGenerator.html">ObjectGenerator</a> {
<a name="65" href="#65">65</a>  
<a name="66" href="#66">66</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Log log = LogFactory.getLog(ObjectGenerator.<strong class="jxr_keyword">class</strong>);
<a name="67" href="#67">67</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> BindingsObjectFactory fFactory;
<a name="68" href="#68">68</a>      NavigationService fNavSvc;
<a name="69" href="#69">69</a>      ObjectService fObjSvc;
<a name="70" href="#70">70</a>      RepositoryService fRepSvc;
<a name="71" href="#71">71</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String fRepositoryId;
<a name="72" href="#72">72</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/TimeLogger.html">TimeLogger</a> fTimeLoggerCreateDoc;
<a name="73" href="#73">73</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/TimeLogger.html">TimeLogger</a> fTimeLoggerCreateFolder;
<a name="74" href="#74">74</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/TimeLogger.html">TimeLogger</a> fTimeLoggerDelete;
<a name="75" href="#75">75</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/TimeLogger.html">TimeLogger</a> fTimeLoggerCreateType;
<a name="76" href="#76">76</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> fCleanup;
<a name="77" href="#77">77</a>      List&lt;String&gt; fTopLevelDocsCreated; <em class="jxr_comment">// list of ids created on first level</em>
<a name="78" href="#78">78</a>      List&lt;String&gt; fTopLevelFoldersCreated; <em class="jxr_comment">// list of ids created on first level</em>
<a name="79" href="#79">79</a>  
<a name="80" href="#80">80</a>      <em class="jxr_javadoccomment">/**</em>
<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     * supported kinds of content</em>
<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment">     *</em>
<a name="83" href="#83">83</a>  <em class="jxr_javadoccomment">     */</em>
<a name="84" href="#84">84</a>      <strong class="jxr_keyword">public</strong> enum CONTENT_KIND {StaticText, LoremIpsumText, LoremIpsumHtml, ImageFractalJpeg};
<a name="85" href="#85">85</a>  
<a name="86" href="#86">86</a>      <em class="jxr_javadoccomment">/**</em>
<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     * Indicates if / how many documents are created in each folder</em>
<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     */</em>
<a name="89" href="#89">89</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> fNoDocumentsToCreate;
<a name="90" href="#90">90</a>  
<a name="91" href="#91">91</a>      <em class="jxr_javadoccomment">/**</em>
<a name="92" href="#92">92</a>  <em class="jxr_javadoccomment">     * The type id of the document id that is created.</em>
<a name="93" href="#93">93</a>  <em class="jxr_javadoccomment">     */</em>
<a name="94" href="#94">94</a>      <strong class="jxr_keyword">private</strong> String fDocTypeId = BaseTypeId.CMIS_DOCUMENT.value();
<a name="95" href="#95">95</a>  
<a name="96" href="#96">96</a>      <em class="jxr_javadoccomment">/**</em>
<a name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     * The type id of the folder that is created.</em>
<a name="98" href="#98">98</a>  <em class="jxr_javadoccomment">     */</em>
<a name="99" href="#99">99</a>      <strong class="jxr_keyword">private</strong> String fFolderTypeId = BaseTypeId.CMIS_FOLDER.value();
<a name="100" href="#100">100</a> 
<a name="101" href="#101">101</a>     <em class="jxr_javadoccomment">/**</em>
<a name="102" href="#102">102</a> <em class="jxr_javadoccomment">     * A list of property ids. For each element in this list a String property</em>
<a name="103" href="#103">103</a> <em class="jxr_javadoccomment">     * value is created for each creation of a document. All ids must be valid</em>
<a name="104" href="#104">104</a> <em class="jxr_javadoccomment">     * string property id of the type fDocTypeId</em>
<a name="105" href="#105">105</a> <em class="jxr_javadoccomment">     */</em>
<a name="106" href="#106">106</a>     <strong class="jxr_keyword">private</strong> List&lt;String&gt; fStringPropertyIdsToSetForDocument;
<a name="107" href="#107">107</a> 
<a name="108" href="#108">108</a>     <em class="jxr_javadoccomment">/**</em>
<a name="109" href="#109">109</a> <em class="jxr_javadoccomment">     * A list of property ids. For each element in this list a String property</em>
<a name="110" href="#110">110</a> <em class="jxr_javadoccomment">     * value is created for each creation of a folder. All ids must be valid</em>
<a name="111" href="#111">111</a> <em class="jxr_javadoccomment">     * string property id of the type fFolderTypeId</em>
<a name="112" href="#112">112</a> <em class="jxr_javadoccomment">     */</em>
<a name="113" href="#113">113</a>     <strong class="jxr_keyword">private</strong> List&lt;String&gt; fStringPropertyIdsToSetForFolder;
<a name="114" href="#114">114</a> 
<a name="115" href="#115">115</a>     <em class="jxr_javadoccomment">/**</em>
<a name="116" href="#116">116</a> <em class="jxr_javadoccomment">     * number of documents created in total</em>
<a name="117" href="#117">117</a> <em class="jxr_javadoccomment">     */</em>
<a name="118" href="#118">118</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> fDocumentsInTotalCount = 0;
<a name="119" href="#119">119</a> 
<a name="120" href="#120">120</a>     <em class="jxr_javadoccomment">/**</em>
<a name="121" href="#121">121</a> <em class="jxr_javadoccomment">     * number of folders created in total</em>
<a name="122" href="#122">122</a> <em class="jxr_javadoccomment">     */</em>
<a name="123" href="#123">123</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> fFoldersInTotalCount = 0;
<a name="124" href="#124">124</a> 
<a name="125" href="#125">125</a>     <em class="jxr_javadoccomment">/**</em>
<a name="126" href="#126">126</a> <em class="jxr_javadoccomment">     * size of content in KB, if 0 create documents without content</em>
<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">     */</em>
<a name="128" href="#128">128</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> fContentSizeInK = 0;
<a name="129" href="#129">129</a>     
<a name="130" href="#130">130</a>     <em class="jxr_javadoccomment">/**</em>
<a name="131" href="#131">131</a> <em class="jxr_javadoccomment">     * Kind of content to create</em>
<a name="132" href="#132">132</a> <em class="jxr_javadoccomment">     */</em>
<a name="133" href="#133">133</a>     <strong class="jxr_keyword">private</strong> CONTENT_KIND fContentKind;
<a name="134" href="#134">134</a>     
<a name="135" href="#135">135</a> 
<a name="136" href="#136">136</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String NAMEPROPVALPREFIXDOC = <span class="jxr_string">"My_Document-"</span>;
<a name="137" href="#137">137</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String NAMEPROPVALPREFIXFOLDER = <span class="jxr_string">"My_Folder-"</span>;
<a name="138" href="#138">138</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String STRINGPROPVALPREFIXDOC = <span class="jxr_string">"My Doc StringProperty "</span>;
<a name="139" href="#139">139</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String STRINGPROPVALPREFIXFOLDER = <span class="jxr_string">"My Folder StringProperty "</span>;
<a name="140" href="#140">140</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> propValCounterDocString = 0;
<a name="141" href="#141">141</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> propValCounterFolderString = 0;
<a name="142" href="#142">142</a>     <em class="jxr_javadoccomment">/**</em>
<a name="143" href="#143">143</a> <em class="jxr_javadoccomment">     * use UUIDs to generate folder and document names</em>
<a name="144" href="#144">144</a> <em class="jxr_javadoccomment">     */</em>
<a name="145" href="#145">145</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> fUseUuids;
<a name="146" href="#146">146</a>     
<a name="147" href="#147">147</a>     <em class="jxr_javadoccomment">/**</em>
<a name="148" href="#148">148</a> <em class="jxr_javadoccomment">     * generator for images</em>
<a name="149" href="#149">149</a> <em class="jxr_javadoccomment">     */</em>
<a name="150" href="#150">150</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/content/fractal/FractalGenerator.html">FractalGenerator</a> fractalGenerator = <strong class="jxr_keyword">null</strong>;
<a name="151" href="#151">151</a> 
<a name="152" href="#152">152</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/ObjectGenerator.html">ObjectGenerator</a>(BindingsObjectFactory factory, NavigationService navSvc, ObjectService objSvc,
<a name="153" href="#153">153</a>             RepositoryService repSvc, String repositoryId, CONTENT_KIND contentKind) {
<a name="154" href="#154">154</a>         <strong class="jxr_keyword">super</strong>();
<a name="155" href="#155">155</a>         fFactory = factory;
<a name="156" href="#156">156</a>         fNavSvc = navSvc;
<a name="157" href="#157">157</a>         fObjSvc = objSvc;
<a name="158" href="#158">158</a>         fRepSvc = repSvc;
<a name="159" href="#159">159</a>         fRepositoryId = repositoryId;
<a name="160" href="#160">160</a>         <em class="jxr_comment">// create an empty list of properties to generate by default for folder</em>
<a name="161" href="#161">161</a>         <em class="jxr_comment">// and document</em>
<a name="162" href="#162">162</a>         fStringPropertyIdsToSetForDocument = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a name="163" href="#163">163</a>         fStringPropertyIdsToSetForFolder = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a name="164" href="#164">164</a>         fNoDocumentsToCreate = 0;
<a name="165" href="#165">165</a>         fUseUuids = false;
<a name="166" href="#166">166</a>         fTimeLoggerCreateDoc = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/TimeLogger.html">TimeLogger</a>(<span class="jxr_string">"createDocument()"</span>);
<a name="167" href="#167">167</a>         fTimeLoggerCreateFolder = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/TimeLogger.html">TimeLogger</a>(<span class="jxr_string">"createFolder()"</span>);
<a name="168" href="#168">168</a>         fTimeLoggerDelete = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/TimeLogger.html">TimeLogger</a>(<span class="jxr_string">"Delete"</span>);
<a name="169" href="#169">169</a>         fTimeLoggerCreateType = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/TimeLogger.html">TimeLogger</a>(<span class="jxr_string">"createType()"</span>);
<a name="170" href="#170">170</a>         fCleanup = false;
<a name="171" href="#171">171</a>         fTopLevelDocsCreated = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a name="172" href="#172">172</a>         fTopLevelFoldersCreated = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a name="173" href="#173">173</a>         fContentKind = contentKind;
<a name="174" href="#174">174</a>     }
<a name="175" href="#175">175</a> 
<a name="176" href="#176">176</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setNumberOfDocumentsToCreatePerFolder(<strong class="jxr_keyword">int</strong> noDocumentsToCreate) {
<a name="177" href="#177">177</a>         fNoDocumentsToCreate = noDocumentsToCreate;
<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">public</strong> <strong class="jxr_keyword">void</strong> setFolderTypeId(String folderTypeId) {
<a name="181" href="#181">181</a>         fFolderTypeId = folderTypeId;
<a name="182" href="#182">182</a>     }
<a name="183" href="#183">183</a> 
<a name="184" href="#184">184</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setDocumentTypeId(String docTypeId) {
<a name="185" href="#185">185</a>         fDocTypeId = docTypeId;
<a name="186" href="#186">186</a>     }
<a name="187" href="#187">187</a> 
<a name="188" href="#188">188</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setDocumentPropertiesToGenerate(List&lt;String&gt; propertyIds) {
<a name="189" href="#189">189</a>         fStringPropertyIdsToSetForDocument = propertyIds;
<a name="190" href="#190">190</a>     }
<a name="191" href="#191">191</a> 
<a name="192" href="#192">192</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setFolderPropertiesToGenerate(List&lt;String&gt; propertyIds) {
<a name="193" href="#193">193</a>         fStringPropertyIdsToSetForFolder = propertyIds;
<a name="194" href="#194">194</a>     }
<a name="195" href="#195">195</a> 
<a name="196" href="#196">196</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setContentSizeInKB(<strong class="jxr_keyword">int</strong> sizeInK) {
<a name="197" href="#197">197</a>         fContentSizeInK = sizeInK;
<a name="198" href="#198">198</a>     }
<a name="199" href="#199">199</a>     
<a name="200" href="#200">200</a>     <strong class="jxr_keyword">public</strong> CONTENT_KIND getContentKind() {
<a name="201" href="#201">201</a>         <strong class="jxr_keyword">return</strong> fContentKind;
<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">public</strong> <strong class="jxr_keyword">void</strong> setLoreIpsumGenerator(CONTENT_KIND contentKind) {
<a name="205" href="#205">205</a>         fContentKind = contentKind;
<a name="206" href="#206">206</a>     }
<a name="207" href="#207">207</a> 
<a name="208" href="#208">208</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setCleanUpAfterCreate(<strong class="jxr_keyword">boolean</strong> doCleanup) {
<a name="209" href="#209">209</a>         fCleanup = doCleanup;
<a name="210" href="#210">210</a>     }
<a name="211" href="#211">211</a> 
<a name="212" href="#212">212</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/TimeLogger.html">TimeLogger</a> getCreateDocumentTimeLogger() {
<a name="213" href="#213">213</a>         <strong class="jxr_keyword">return</strong> fTimeLoggerCreateDoc;
<a name="214" href="#214">214</a>     }
<a name="215" href="#215">215</a> 
<a name="216" href="#216">216</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/TimeLogger.html">TimeLogger</a> getCreateFolderTimeLogger() {
<a name="217" href="#217">217</a>         <strong class="jxr_keyword">return</strong> fTimeLoggerCreateFolder;
<a name="218" href="#218">218</a>     }
<a name="219" href="#219">219</a> 
<a name="220" href="#220">220</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/TimeLogger.html">TimeLogger</a> getDeleteTimeLogger() {
<a name="221" href="#221">221</a>         <strong class="jxr_keyword">return</strong> fTimeLoggerDelete;
<a name="222" href="#222">222</a>     }
<a name="223" href="#223">223</a> 
<a name="224" href="#224">224</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> createFolderHierachy(<strong class="jxr_keyword">int</strong> levels, <strong class="jxr_keyword">int</strong> childrenPerLevel, String rootFolderId) {
<a name="225" href="#225">225</a>         resetCounters();
<a name="226" href="#226">226</a>         fTimeLoggerCreateDoc.reset();
<a name="227" href="#227">227</a>         fTimeLoggerCreateFolder.reset();
<a name="228" href="#228">228</a>         fTopLevelFoldersCreated.clear();
<a name="229" href="#229">229</a>         fTopLevelDocsCreated.clear();
<a name="230" href="#230">230</a>         createFolderHierachy(rootFolderId, 0, levels, childrenPerLevel);
<a name="231" href="#231">231</a>         <strong class="jxr_keyword">if</strong> (fCleanup) {
<a name="232" href="#232">232</a>             deleteTree();
<a name="233" href="#233">233</a>         }
<a name="234" href="#234">234</a>     }
<a name="235" href="#235">235</a> 
<a name="236" href="#236">236</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setUseUuidsForNames(<strong class="jxr_keyword">boolean</strong> useUuids) {
<a name="237" href="#237">237</a>         <em class="jxr_javadoccomment">/**</em>
<a name="238" href="#238">238</a> <em class="jxr_javadoccomment">         * use UUIDs to generate folder and document names</em>
<a name="239" href="#239">239</a> <em class="jxr_javadoccomment">         */</em>
<a name="240" href="#240">240</a>         fUseUuids = useUuids;
<a name="241" href="#241">241</a>     }
<a name="242" href="#242">242</a> 
<a name="243" href="#243">243</a>     <em class="jxr_javadoccomment">/**</em>
<a name="244" href="#244">244</a> <em class="jxr_javadoccomment">     * retrieve the index-th folder from given level of the hierarchy starting</em>
<a name="245" href="#245">245</a> <em class="jxr_javadoccomment">     * at rootId</em>
<a name="246" href="#246">246</a> <em class="jxr_javadoccomment">     *</em>
<a name="247" href="#247">247</a> <em class="jxr_javadoccomment">     * @param rootId</em>
<a name="248" href="#248">248</a> <em class="jxr_javadoccomment">     * @param level</em>
<a name="249" href="#249">249</a> <em class="jxr_javadoccomment">     * @param index</em>
<a name="250" href="#250">250</a> <em class="jxr_javadoccomment">     * @return</em>
<a name="251" href="#251">251</a> <em class="jxr_javadoccomment">     */</em>
<a name="252" href="#252">252</a>     <strong class="jxr_keyword">public</strong> String getFolderId(String rootId, <strong class="jxr_keyword">int</strong> level, <strong class="jxr_keyword">int</strong> index) {
<a name="253" href="#253">253</a>         String objectId = rootId;
<a name="254" href="#254">254</a>         <strong class="jxr_keyword">final</strong> String requiredProperties = PropertyIds.OBJECT_ID + <span class="jxr_string">","</span> + PropertyIds.OBJECT_TYPE_ID + <span class="jxr_string">","</span>
<a name="255" href="#255">255</a>                 + PropertyIds.BASE_TYPE_ID;
<a name="256" href="#256">256</a>         <em class="jxr_comment">// Note: This works because first folders are created then documents</em>
<a name="257" href="#257">257</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; level; i++) {
<a name="258" href="#258">258</a>             ObjectInFolderList result = fNavSvc.getChildren(fRepositoryId, objectId, requiredProperties,
<a name="259" href="#259">259</a>                     PropertyIds.OBJECT_TYPE_ID, false, IncludeRelationships.NONE, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">true</strong>, BigInteger.valueOf(-1),
<a name="260" href="#260">260</a>                     BigInteger.valueOf(-1), <strong class="jxr_keyword">null</strong>);
<a name="261" href="#261">261</a>             List&lt;ObjectInFolderData&gt; children = result.getObjects();
<a name="262" href="#262">262</a>             ObjectData child = children.get(index).getObject();
<a name="263" href="#263">263</a>             objectId = (String) child.getProperties().getProperties().get(PropertyIds.OBJECT_ID).getFirstValue();
<a name="264" href="#264">264</a>         }
<a name="265" href="#265">265</a>         <strong class="jxr_keyword">return</strong> objectId;
<a name="266" href="#266">266</a>     }
<a name="267" href="#267">267</a> 
<a name="268" href="#268">268</a>     <em class="jxr_javadoccomment">/**</em>
<a name="269" href="#269">269</a> <em class="jxr_javadoccomment">     * retrieve the index-th document from given folder</em>
<a name="270" href="#270">270</a> <em class="jxr_javadoccomment">     *</em>
<a name="271" href="#271">271</a> <em class="jxr_javadoccomment">     * @param folderId</em>
<a name="272" href="#272">272</a> <em class="jxr_javadoccomment">     *            folder to retrieve document from</em>
<a name="273" href="#273">273</a> <em class="jxr_javadoccomment">     * @param index</em>
<a name="274" href="#274">274</a> <em class="jxr_javadoccomment">     *            index of document to retrieve from this folder</em>
<a name="275" href="#275">275</a> <em class="jxr_javadoccomment">     * @return</em>
<a name="276" href="#276">276</a> <em class="jxr_javadoccomment">     */</em>
<a name="277" href="#277">277</a>     <strong class="jxr_keyword">public</strong> String getDocumentId(String folderId, <strong class="jxr_keyword">int</strong> index) {
<a name="278" href="#278">278</a>         String docId = <strong class="jxr_keyword">null</strong>;
<a name="279" href="#279">279</a>         <strong class="jxr_keyword">final</strong> String requiredProperties = PropertyIds.OBJECT_ID + <span class="jxr_string">","</span> + PropertyIds.OBJECT_TYPE_ID + <span class="jxr_string">","</span>
<a name="280" href="#280">280</a>                 + PropertyIds.BASE_TYPE_ID;
<a name="281" href="#281">281</a>         ObjectInFolderList result = fNavSvc.getChildren(fRepositoryId, folderId, requiredProperties,
<a name="282" href="#282">282</a>                 PropertyIds.OBJECT_TYPE_ID, false, IncludeRelationships.NONE, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">true</strong>, BigInteger.valueOf(-1),
<a name="283" href="#283">283</a>                 BigInteger.valueOf(-1), <strong class="jxr_keyword">null</strong>);
<a name="284" href="#284">284</a>         List&lt;ObjectInFolderData&gt; children = result.getObjects();
<a name="285" href="#285">285</a>         <strong class="jxr_keyword">int</strong> numDocsFound = 0;
<a name="286" href="#286">286</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; children.size(); i++) {
<a name="287" href="#287">287</a>             ObjectData child = children.get(i).getObject();
<a name="288" href="#288">288</a>             docId = (String) child.getProperties().getProperties().get(PropertyIds.OBJECT_ID).getFirstValue();
<a name="289" href="#289">289</a>             <strong class="jxr_keyword">if</strong> (child.getBaseTypeId().equals(BaseTypeId.CMIS_DOCUMENT)) {
<a name="290" href="#290">290</a>                 <strong class="jxr_keyword">if</strong> (numDocsFound == index) {
<a name="291" href="#291">291</a>                     <strong class="jxr_keyword">return</strong> docId;
<a name="292" href="#292">292</a>                 } <strong class="jxr_keyword">else</strong> {
<a name="293" href="#293">293</a>                     numDocsFound++;
<a name="294" href="#294">294</a>                 }
<a name="295" href="#295">295</a>             }
<a name="296" href="#296">296</a>         }
<a name="297" href="#297">297</a>         <strong class="jxr_keyword">return</strong> docId;
<a name="298" href="#298">298</a>     }
<a name="299" href="#299">299</a> 
<a name="300" href="#300">300</a>     <em class="jxr_javadoccomment">/**</em>
<a name="301" href="#301">301</a> <em class="jxr_javadoccomment">     * return the total number of documents created</em>
<a name="302" href="#302">302</a> <em class="jxr_javadoccomment">     *</em>
<a name="303" href="#303">303</a> <em class="jxr_javadoccomment">     * @return</em>
<a name="304" href="#304">304</a> <em class="jxr_javadoccomment">     */</em>
<a name="305" href="#305">305</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getDocumentsInTotal() {
<a name="306" href="#306">306</a>         <strong class="jxr_keyword">return</strong> fDocumentsInTotalCount;
<a name="307" href="#307">307</a>     }
<a name="308" href="#308">308</a> 
<a name="309" href="#309">309</a>     <em class="jxr_javadoccomment">/**</em>
<a name="310" href="#310">310</a> <em class="jxr_javadoccomment">     * return the total number of folders created</em>
<a name="311" href="#311">311</a> <em class="jxr_javadoccomment">     *</em>
<a name="312" href="#312">312</a> <em class="jxr_javadoccomment">     * @return</em>
<a name="313" href="#313">313</a> <em class="jxr_javadoccomment">     */</em>
<a name="314" href="#314">314</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getFoldersInTotal() {
<a name="315" href="#315">315</a>         <strong class="jxr_keyword">return</strong> fFoldersInTotalCount;
<a name="316" href="#316">316</a>     }
<a name="317" href="#317">317</a> 
<a name="318" href="#318">318</a>     <em class="jxr_javadoccomment">/**</em>
<a name="319" href="#319">319</a> <em class="jxr_javadoccomment">     * return the total number of objects created</em>
<a name="320" href="#320">320</a> <em class="jxr_javadoccomment">     */</em>
<a name="321" href="#321">321</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> getObjectsInTotal() {
<a name="322" href="#322">322</a>         <strong class="jxr_keyword">return</strong> fDocumentsInTotalCount + fFoldersInTotalCount;
<a name="323" href="#323">323</a>     }
<a name="324" href="#324">324</a> 
<a name="325" href="#325">325</a>     <strong class="jxr_keyword">public</strong> String createSingleDocument(String folderId) {
<a name="326" href="#326">326</a>         fTimeLoggerCreateDoc.reset();
<a name="327" href="#327">327</a>         String objectId = createDocument(folderId, 0, 0);
<a name="328" href="#328">328</a>         <strong class="jxr_keyword">if</strong> (fCleanup) {
<a name="329" href="#329">329</a>             deleteObject(objectId);
<a name="330" href="#330">330</a>         }
<a name="331" href="#331">331</a>         <strong class="jxr_keyword">return</strong> objectId;
<a name="332" href="#332">332</a>     }
<a name="333" href="#333">333</a> 
<a name="334" href="#334">334</a>     <strong class="jxr_keyword">public</strong> String[] createDocuments(String folderId, <strong class="jxr_keyword">int</strong> count) {
<a name="335" href="#335">335</a> 
<a name="336" href="#336">336</a>         String[] result;
<a name="337" href="#337">337</a> 
<a name="338" href="#338">338</a>         fTimeLoggerCreateDoc.reset();
<a name="339" href="#339">339</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; count; i++) {
<a name="340" href="#340">340</a>             String id = createDocument(folderId, 0, 0);
<a name="341" href="#341">341</a>             fTopLevelDocsCreated.add(id);
<a name="342" href="#342">342</a>         }
<a name="343" href="#343">343</a>         <strong class="jxr_keyword">if</strong> (fCleanup) {
<a name="344" href="#344">344</a>             deleteTree();
<a name="345" href="#345">345</a>             result = <strong class="jxr_keyword">null</strong>;
<a name="346" href="#346">346</a>         } <strong class="jxr_keyword">else</strong> {
<a name="347" href="#347">347</a>             result = <strong class="jxr_keyword">new</strong> String[count];
<a name="348" href="#348">348</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; fTopLevelDocsCreated.size(); i++) {
<a name="349" href="#349">349</a>                 result[i] = fTopLevelDocsCreated.get(i);
<a name="350" href="#350">350</a>             }
<a name="351" href="#351">351</a>         }
<a name="352" href="#352">352</a>         <strong class="jxr_keyword">return</strong> result;
<a name="353" href="#353">353</a>     }
<a name="354" href="#354">354</a> 
<a name="355" href="#355">355</a>     <strong class="jxr_keyword">public</strong> String[] createFolders(String folderId, <strong class="jxr_keyword">int</strong> count) {
<a name="356" href="#356">356</a> 
<a name="357" href="#357">357</a>         String[] result;
<a name="358" href="#358">358</a> 
<a name="359" href="#359">359</a>         fTimeLoggerCreateFolder.reset();
<a name="360" href="#360">360</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; count; i++) {
<a name="361" href="#361">361</a>             createFolder(folderId);
<a name="362" href="#362">362</a>         }
<a name="363" href="#363">363</a>         <strong class="jxr_keyword">if</strong> (fCleanup) {
<a name="364" href="#364">364</a>             deleteTree();
<a name="365" href="#365">365</a>             result = <strong class="jxr_keyword">null</strong>;
<a name="366" href="#366">366</a>         } <strong class="jxr_keyword">else</strong> {
<a name="367" href="#367">367</a>             result = <strong class="jxr_keyword">new</strong> String[count];
<a name="368" href="#368">368</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; fTopLevelFoldersCreated.size(); i++) {
<a name="369" href="#369">369</a>                 result[i] = fTopLevelFoldersCreated.get(i);
<a name="370" href="#370">370</a>             }
<a name="371" href="#371">371</a>         }
<a name="372" href="#372">372</a>         <strong class="jxr_keyword">return</strong> result;
<a name="373" href="#373">373</a>     }
<a name="374" href="#374">374</a> 
<a name="375" href="#375">375</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> resetCounters() {
<a name="376" href="#376">376</a>         fDocumentsInTotalCount = fFoldersInTotalCount = 0;
<a name="377" href="#377">377</a>     }
<a name="378" href="#378">378</a> 
<a name="379" href="#379">379</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> printTimings() {
<a name="380" href="#380">380</a>         fTimeLoggerCreateDoc.printTimes();
<a name="381" href="#381">381</a>         fTimeLoggerCreateFolder.printTimes();
<a name="382" href="#382">382</a>         <strong class="jxr_keyword">if</strong> (fCleanup) {
<a name="383" href="#383">383</a>             fTimeLoggerDelete.printTimes();
<a name="384" href="#384">384</a>         }
<a name="385" href="#385">385</a>     }
<a name="386" href="#386">386</a> 
<a name="387" href="#387">387</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> logTimings() {
<a name="388" href="#388">388</a>         fTimeLoggerCreateDoc.logTimes();
<a name="389" href="#389">389</a>         fTimeLoggerCreateFolder.logTimes();
<a name="390" href="#390">390</a>         <strong class="jxr_keyword">if</strong> (fCleanup) {
<a name="391" href="#391">391</a>             fTimeLoggerDelete.logTimes();
<a name="392" href="#392">392</a>         }
<a name="393" href="#393">393</a>     }
<a name="394" href="#394">394</a> 
<a name="395" href="#395">395</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> createFolderHierachy(String parentId, <strong class="jxr_keyword">int</strong> level, <strong class="jxr_keyword">int</strong> levels, <strong class="jxr_keyword">int</strong> childrenPerLevel) {
<a name="396" href="#396">396</a>         String id = <strong class="jxr_keyword">null</strong>;
<a name="397" href="#397">397</a> 
<a name="398" href="#398">398</a>         <strong class="jxr_keyword">if</strong> (level &gt;= levels) {
<a name="399" href="#399">399</a>             <strong class="jxr_keyword">return</strong>;
<a name="400" href="#400">400</a>         }
<a name="401" href="#401">401</a> 
<a name="402" href="#402">402</a>         log.debug(<span class="jxr_string">" create folder for parent id: "</span> + parentId + <span class="jxr_string">", in level "</span> + level + <span class="jxr_string">", max levels "</span> + levels);
<a name="403" href="#403">403</a> 
<a name="404" href="#404">404</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; childrenPerLevel; i++) {
<a name="405" href="#405">405</a>             Properties props = createFolderProperties(i, level);
<a name="406" href="#406">406</a>             <strong class="jxr_keyword">try</strong> {
<a name="407" href="#407">407</a>                 fTimeLoggerCreateFolder.start();
<a name="408" href="#408">408</a>                 id = fObjSvc.createFolder(fRepositoryId, props, parentId, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a name="409" href="#409">409</a>                 <strong class="jxr_keyword">if</strong> (level == 0) {
<a name="410" href="#410">410</a>                     fTopLevelFoldersCreated.add(id);
<a name="411" href="#411">411</a>                 }
<a name="412" href="#412">412</a>             } <strong class="jxr_keyword">finally</strong> {
<a name="413" href="#413">413</a>                 fTimeLoggerCreateFolder.stop();
<a name="414" href="#414">414</a>             }
<a name="415" href="#415">415</a> 
<a name="416" href="#416">416</a>             <strong class="jxr_keyword">if</strong> (id != <strong class="jxr_keyword">null</strong>) {
<a name="417" href="#417">417</a>                 ++fFoldersInTotalCount;
<a name="418" href="#418">418</a>                 createFolderHierachy(id, level + 1, levels, childrenPerLevel);
<a name="419" href="#419">419</a>             }
<a name="420" href="#420">420</a>         }
<a name="421" href="#421">421</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> j = 0; j &lt; fNoDocumentsToCreate; j++) {
<a name="422" href="#422">422</a>             id = createDocument(parentId, j, level);
<a name="423" href="#423">423</a>             <strong class="jxr_keyword">if</strong> (level == 0) {
<a name="424" href="#424">424</a>                 fTopLevelDocsCreated.add(id);
<a name="425" href="#425">425</a>             }
<a name="426" href="#426">426</a>         }
<a name="427" href="#427">427</a>     }
<a name="428" href="#428">428</a> 
<a name="429" href="#429">429</a>     <strong class="jxr_keyword">private</strong> String createFolder(String parentId) {
<a name="430" href="#430">430</a>         Properties props = createFolderProperties(0, 0);
<a name="431" href="#431">431</a>         String id = <strong class="jxr_keyword">null</strong>;
<a name="432" href="#432">432</a>         <strong class="jxr_keyword">try</strong> {
<a name="433" href="#433">433</a>             fTimeLoggerCreateFolder.start();
<a name="434" href="#434">434</a>             id = fObjSvc.createFolder(fRepositoryId, props, parentId, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a name="435" href="#435">435</a>             fTopLevelFoldersCreated.add(id);
<a name="436" href="#436">436</a>         } <strong class="jxr_keyword">finally</strong> {
<a name="437" href="#437">437</a>             fTimeLoggerCreateFolder.stop();
<a name="438" href="#438">438</a>         }
<a name="439" href="#439">439</a>         <strong class="jxr_keyword">return</strong> id;
<a name="440" href="#440">440</a>     }
<a name="441" href="#441">441</a> 
<a name="442" href="#442">442</a>     <strong class="jxr_keyword">private</strong> String createDocument(String folderId, <strong class="jxr_keyword">int</strong> no, <strong class="jxr_keyword">int</strong> level) {
<a name="443" href="#443">443</a>         ContentStream contentStream = <strong class="jxr_keyword">null</strong>;
<a name="444" href="#444">444</a>         VersioningState versioningState = VersioningState.NONE;
<a name="445" href="#445">445</a>         List&lt;String&gt; policies = <strong class="jxr_keyword">null</strong>;
<a name="446" href="#446">446</a>         Acl addACEs = <strong class="jxr_keyword">null</strong>;
<a name="447" href="#447">447</a>         Acl removeACEs = <strong class="jxr_keyword">null</strong>;
<a name="448" href="#448">448</a>         ExtensionsData extension = <strong class="jxr_keyword">null</strong>;
<a name="449" href="#449">449</a> 
<a name="450" href="#450">450</a>         log.debug(<span class="jxr_string">"create document in folder "</span> + folderId);
<a name="451" href="#451">451</a>         Properties props = createDocumentProperties(no, level);
<a name="452" href="#452">452</a>         String id = <strong class="jxr_keyword">null</strong>;
<a name="453" href="#453">453</a>         
<a name="454" href="#454">454</a>         <strong class="jxr_keyword">if</strong> (fContentSizeInK &gt; 0) {
<a name="455" href="#455">455</a>             <strong class="jxr_keyword">switch</strong> (fContentKind) {
<a name="456" href="#456">456</a>             <strong class="jxr_keyword">case</strong> StaticText:
<a name="457" href="#457">457</a>                 contentStream = createContentStaticText();
<a name="458" href="#458">458</a>                 <strong class="jxr_keyword">break</strong>;
<a name="459" href="#459">459</a>             <strong class="jxr_keyword">case</strong> LoremIpsumText:
<a name="460" href="#460">460</a>                 contentStream = createContentLoremIpsumText();
<a name="461" href="#461">461</a>                 <strong class="jxr_keyword">break</strong>;
<a name="462" href="#462">462</a>             <strong class="jxr_keyword">case</strong> LoremIpsumHtml:
<a name="463" href="#463">463</a>                 contentStream = createContentLoremIpsumHtml();
<a name="464" href="#464">464</a>                 <strong class="jxr_keyword">break</strong>;
<a name="465" href="#465">465</a>             <strong class="jxr_keyword">case</strong> ImageFractalJpeg:
<a name="466" href="#466">466</a>                 contentStream = createContentFractalimageJpeg();
<a name="467" href="#467">467</a>                 <strong class="jxr_keyword">break</strong>;
<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>         <strong class="jxr_keyword">try</strong> {
<a name="472" href="#472">472</a>             fTimeLoggerCreateDoc.start();
<a name="473" href="#473">473</a>             id = fObjSvc.createDocument(fRepositoryId, props, folderId, contentStream, versioningState, policies,
<a name="474" href="#474">474</a>                     addACEs, removeACEs, extension);
<a name="475" href="#475">475</a>         } <strong class="jxr_keyword">finally</strong> {
<a name="476" href="#476">476</a>             fTimeLoggerCreateDoc.stop();
<a name="477" href="#477">477</a>         }
<a name="478" href="#478">478</a> 
<a name="479" href="#479">479</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == id) {
<a name="480" href="#480">480</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException(<span class="jxr_string">"createDocument failed."</span>);
<a name="481" href="#481">481</a>         }
<a name="482" href="#482">482</a>         ++fDocumentsInTotalCount;
<a name="483" href="#483">483</a>         <strong class="jxr_keyword">return</strong> id;
<a name="484" href="#484">484</a>     }
<a name="485" href="#485">485</a> 
<a name="486" href="#486">486</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> deleteTree() {
<a name="487" href="#487">487</a> 
<a name="488" href="#488">488</a>         <em class="jxr_comment">// delete all documents from first level</em>
<a name="489" href="#489">489</a>         <strong class="jxr_keyword">for</strong> (String id : fTopLevelDocsCreated) {
<a name="490" href="#490">490</a>             deleteObject(id);
<a name="491" href="#491">491</a>         }
<a name="492" href="#492">492</a> 
<a name="493" href="#493">493</a>         <em class="jxr_comment">// delete recursively all folders from first level</em>
<a name="494" href="#494">494</a>         <strong class="jxr_keyword">for</strong> (String id : fTopLevelFoldersCreated) {
<a name="495" href="#495">495</a>             <strong class="jxr_keyword">try</strong> {
<a name="496" href="#496">496</a>                 fTimeLoggerDelete.start();
<a name="497" href="#497">497</a>                 fObjSvc.deleteTree(fRepositoryId, id, <strong class="jxr_keyword">true</strong>, UnfileObject.DELETE, <strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">null</strong>);
<a name="498" href="#498">498</a>             } <strong class="jxr_keyword">finally</strong> {
<a name="499" href="#499">499</a>                 fTimeLoggerDelete.stop();
<a name="500" href="#500">500</a>             }
<a name="501" href="#501">501</a>         }
<a name="502" href="#502">502</a>     }
<a name="503" href="#503">503</a> 
<a name="504" href="#504">504</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> deleteObject(String objectId) {
<a name="505" href="#505">505</a>         <strong class="jxr_keyword">try</strong> {
<a name="506" href="#506">506</a>             fTimeLoggerDelete.start();
<a name="507" href="#507">507</a>             fObjSvc.deleteObject(fRepositoryId, objectId, <strong class="jxr_keyword">true</strong>, <strong class="jxr_keyword">null</strong>);
<a name="508" href="#508">508</a>         } <strong class="jxr_keyword">finally</strong> {
<a name="509" href="#509">509</a>             fTimeLoggerDelete.stop();
<a name="510" href="#510">510</a>         }
<a name="511" href="#511">511</a>     }
<a name="512" href="#512">512</a> 
<a name="513" href="#513">513</a>     <strong class="jxr_keyword">public</strong> ContentStream createContentLoremIpsumHtml() {
<a name="514" href="#514">514</a>         ContentStreamImpl content = <strong class="jxr_keyword">new</strong> ContentStreamImpl();
<a name="515" href="#515">515</a>         content.setFileName(<span class="jxr_string">"data.html"</span>);
<a name="516" href="#516">516</a>         content.setMimeType(<span class="jxr_string">"text/html"</span>);
<a name="517" href="#517">517</a>         <strong class="jxr_keyword">int</strong> len = fContentSizeInK * 1024; <em class="jxr_comment">// size of document in K</em>
<a name="518" href="#518">518</a>         
<a name="519" href="#519">519</a>         <a href="../../../../../../org/apache/chemistry/opencmis/util/content/loremipsum/LoremIpsum.html">LoremIpsum</a> ipsum = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/content/loremipsum/LoremIpsum.html">LoremIpsum</a>();
<a name="520" href="#520">520</a>         String text = ipsum.generateParagraphsFullHtml(len, <strong class="jxr_keyword">true</strong>);
<a name="521" href="#521">521</a>         content.setStream(<strong class="jxr_keyword">new</strong> ByteArrayInputStream(text.getBytes()));
<a name="522" href="#522">522</a>         <strong class="jxr_keyword">return</strong> content;
<a name="523" href="#523">523</a>     }
<a name="524" href="#524">524</a> 
<a name="525" href="#525">525</a>     <strong class="jxr_keyword">public</strong> ContentStream createContentLoremIpsumText() {
<a name="526" href="#526">526</a>         ContentStreamImpl content = <strong class="jxr_keyword">new</strong> ContentStreamImpl();
<a name="527" href="#527">527</a>         content.setFileName(<span class="jxr_string">"data.txt"</span>);
<a name="528" href="#528">528</a>         content.setMimeType(<span class="jxr_string">"text/plain"</span>);
<a name="529" href="#529">529</a>         <strong class="jxr_keyword">int</strong> len = fContentSizeInK * 1024; <em class="jxr_comment">// size of document in K</em>
<a name="530" href="#530">530</a>         
<a name="531" href="#531">531</a>         <a href="../../../../../../org/apache/chemistry/opencmis/util/content/loremipsum/LoremIpsum.html">LoremIpsum</a> ipsum = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/content/loremipsum/LoremIpsum.html">LoremIpsum</a>();
<a name="532" href="#532">532</a>         String text = ipsum.generateParagraphsPlainText(len, 80, <strong class="jxr_keyword">true</strong>);
<a name="533" href="#533">533</a>         content.setStream(<strong class="jxr_keyword">new</strong> ByteArrayInputStream(text.getBytes()));
<a name="534" href="#534">534</a>         <strong class="jxr_keyword">return</strong> content;
<a name="535" href="#535">535</a>     }
<a name="536" href="#536">536</a> 
<a name="537" href="#537">537</a>     <strong class="jxr_keyword">public</strong> ContentStream createContentStaticText() {
<a name="538" href="#538">538</a>         ContentStreamImpl content = <strong class="jxr_keyword">new</strong> ContentStreamImpl();
<a name="539" href="#539">539</a>         content.setFileName(<span class="jxr_string">"data.txt"</span>);
<a name="540" href="#540">540</a>         content.setMimeType(<span class="jxr_string">"text/plain"</span>);
<a name="541" href="#541">541</a>         <strong class="jxr_keyword">int</strong> len = fContentSizeInK * 1024; <em class="jxr_comment">// size of document in K</em>
<a name="542" href="#542">542</a>         byte[] b = { 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x0c, 0x0a,
<a name="543" href="#543">543</a>                 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x0c, 0x0a }; <em class="jxr_comment">// 32</em>
<a name="544" href="#544">544</a>         <em class="jxr_comment">// Bytes</em>
<a name="545" href="#545">545</a>         ByteArrayOutputStream ba = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream(len);
<a name="546" href="#546">546</a>         <strong class="jxr_keyword">try</strong> {
<a name="547" href="#547">547</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> j = 0; j &lt; fContentSizeInK; j++) {
<a name="548" href="#548">548</a>                 <em class="jxr_comment">// write 1K of data</em>
<a name="549" href="#549">549</a>                 <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; 32; i++) {
<a name="550" href="#550">550</a>                     ba.write(b);
<a name="551" href="#551">551</a>                 }
<a name="552" href="#552">552</a>             }
<a name="553" href="#553">553</a>         } <strong class="jxr_keyword">catch</strong> (IOException e) {
<a name="554" href="#554">554</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException(<span class="jxr_string">"Failed to fill content stream with data"</span>, e);
<a name="555" href="#555">555</a>         }
<a name="556" href="#556">556</a>         content.setStream(<strong class="jxr_keyword">new</strong> ByteArrayInputStream(ba.toByteArray()));
<a name="557" href="#557">557</a>         <strong class="jxr_keyword">return</strong> content;
<a name="558" href="#558">558</a>     }
<a name="559" href="#559">559</a> 
<a name="560" href="#560">560</a>     <strong class="jxr_keyword">public</strong> ContentStream createContentFractalimageJpeg() {
<a name="561" href="#561">561</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == fractalGenerator)
<a name="562" href="#562">562</a>             fractalGenerator = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/content/fractal/FractalGenerator.html">FractalGenerator</a>();
<a name="563" href="#563">563</a> 
<a name="564" href="#564">564</a>         ContentStreamImpl content = <strong class="jxr_keyword">null</strong>;
<a name="565" href="#565">565</a> 
<a name="566" href="#566">566</a>         <strong class="jxr_keyword">try</strong> {
<a name="567" href="#567">567</a>             ByteArrayOutputStream bos = fractalGenerator.generateFractal();
<a name="568" href="#568">568</a>             content = <strong class="jxr_keyword">new</strong> ContentStreamImpl();
<a name="569" href="#569">569</a>             content.setFileName(<span class="jxr_string">"image.jpg"</span>);
<a name="570" href="#570">570</a>             content.setMimeType(<span class="jxr_string">"image/jpeg"</span>);
<a name="571" href="#571">571</a>             content.setStream(<strong class="jxr_keyword">new</strong> ByteArrayInputStream(bos.toByteArray()));
<a name="572" href="#572">572</a>             bos.close();            
<a name="573" href="#573">573</a>         } <strong class="jxr_keyword">catch</strong> (IOException e) {
<a name="574" href="#574">574</a>             System.err.println(<span class="jxr_string">"Error when generating fractal image: "</span> + e);
<a name="575" href="#575">575</a>             e.printStackTrace();
<a name="576" href="#576">576</a>         }
<a name="577" href="#577">577</a> 
<a name="578" href="#578">578</a>         <strong class="jxr_keyword">return</strong> content;
<a name="579" href="#579">579</a>     }
<a name="580" href="#580">580</a> 
<a name="581" href="#581">581</a>     <strong class="jxr_keyword">private</strong> Properties createFolderProperties(<strong class="jxr_keyword">int</strong> no, <strong class="jxr_keyword">int</strong> level) {
<a name="582" href="#582">582</a>         List&lt;PropertyData&lt;?&gt;&gt; properties = <strong class="jxr_keyword">new</strong> ArrayList&lt;PropertyData&lt;?&gt;&gt;();
<a name="583" href="#583">583</a>         properties.add(fFactory.createPropertyStringData(PropertyIds.NAME, generateFolderNameValue(no, level)));
<a name="584" href="#584">584</a>         properties.add(fFactory.createPropertyIdData(PropertyIds.OBJECT_TYPE_ID, fFolderTypeId));
<a name="585" href="#585">585</a>         <em class="jxr_comment">// Generate some property values for custom attributes</em>
<a name="586" href="#586">586</a>         <strong class="jxr_keyword">for</strong> (String stringPropId : fStringPropertyIdsToSetForFolder) {
<a name="587" href="#587">587</a>             properties.add(fFactory.createPropertyStringData(stringPropId, generateStringPropValueFolder()));
<a name="588" href="#588">588</a>         }
<a name="589" href="#589">589</a>         Properties props = fFactory.createPropertiesData(properties);
<a name="590" href="#590">590</a>         <strong class="jxr_keyword">return</strong> props;
<a name="591" href="#591">591</a>     }
<a name="592" href="#592">592</a> 
<a name="593" href="#593">593</a>     <strong class="jxr_keyword">private</strong> Properties createDocumentProperties(<strong class="jxr_keyword">int</strong> no, <strong class="jxr_keyword">int</strong> level) {
<a name="594" href="#594">594</a>         List&lt;PropertyData&lt;?&gt;&gt; properties = <strong class="jxr_keyword">new</strong> ArrayList&lt;PropertyData&lt;?&gt;&gt;();
<a name="595" href="#595">595</a>         properties.add(fFactory.createPropertyStringData(PropertyIds.NAME, generateDocNameValue(no, level)));
<a name="596" href="#596">596</a>         properties.add(fFactory.createPropertyIdData(PropertyIds.OBJECT_TYPE_ID, fDocTypeId));
<a name="597" href="#597">597</a>         <em class="jxr_comment">// Generate some property values for custom attributes</em>
<a name="598" href="#598">598</a>         <strong class="jxr_keyword">for</strong> (String stringPropId : fStringPropertyIdsToSetForDocument) {
<a name="599" href="#599">599</a>             properties.add(fFactory.createPropertyStringData(stringPropId, generateStringPropValueDoc()));
<a name="600" href="#600">600</a>         }
<a name="601" href="#601">601</a>         Properties props = fFactory.createPropertiesData(properties);
<a name="602" href="#602">602</a>         <strong class="jxr_keyword">return</strong> props;
<a name="603" href="#603">603</a>     }
<a name="604" href="#604">604</a> 
<a name="605" href="#605">605</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">synchronized</strong> <strong class="jxr_keyword">int</strong> incrementPropCounterDocStringProp() {
<a name="606" href="#606">606</a>         <strong class="jxr_keyword">return</strong> propValCounterDocString++;
<a name="607" href="#607">607</a>     }
<a name="608" href="#608">608</a> 
<a name="609" href="#609">609</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">synchronized</strong> <strong class="jxr_keyword">int</strong> incrementPropCounterFolderStringProp() {
<a name="610" href="#610">610</a>         <strong class="jxr_keyword">return</strong> propValCounterFolderString++;
<a name="611" href="#611">611</a>     }
<a name="612" href="#612">612</a> 
<a name="613" href="#613">613</a>     <strong class="jxr_keyword">private</strong> String generateDocNameValue(<strong class="jxr_keyword">int</strong> no, <strong class="jxr_keyword">int</strong> level) {
<a name="614" href="#614">614</a>         <strong class="jxr_keyword">if</strong> (fUseUuids) {
<a name="615" href="#615">615</a>             <strong class="jxr_keyword">return</strong> UUID.randomUUID().toString();
<a name="616" href="#616">616</a>         } <strong class="jxr_keyword">else</strong> {
<a name="617" href="#617">617</a>             <strong class="jxr_keyword">return</strong> NAMEPROPVALPREFIXDOC + level + <span class="jxr_string">"-"</span> + no;
<a name="618" href="#618">618</a>         }
<a name="619" href="#619">619</a>     }
<a name="620" href="#620">620</a> 
<a name="621" href="#621">621</a>     <strong class="jxr_keyword">private</strong> String generateFolderNameValue(<strong class="jxr_keyword">int</strong> no, <strong class="jxr_keyword">int</strong> level) {
<a name="622" href="#622">622</a>         <strong class="jxr_keyword">if</strong> (fUseUuids) {
<a name="623" href="#623">623</a>             <strong class="jxr_keyword">return</strong> UUID.randomUUID().toString();
<a name="624" href="#624">624</a>         } <strong class="jxr_keyword">else</strong> {
<a name="625" href="#625">625</a>             <strong class="jxr_keyword">return</strong> NAMEPROPVALPREFIXFOLDER + level + <span class="jxr_string">"-"</span> + no;
<a name="626" href="#626">626</a>         }
<a name="627" href="#627">627</a>     }
<a name="628" href="#628">628</a> 
<a name="629" href="#629">629</a>     <strong class="jxr_keyword">private</strong> String generateStringPropValueDoc() {
<a name="630" href="#630">630</a>         <strong class="jxr_keyword">return</strong> STRINGPROPVALPREFIXDOC + incrementPropCounterDocStringProp();
<a name="631" href="#631">631</a>     }
<a name="632" href="#632">632</a> 
<a name="633" href="#633">633</a>     <strong class="jxr_keyword">private</strong> String generateStringPropValueFolder() {
<a name="634" href="#634">634</a>         <strong class="jxr_keyword">return</strong> STRINGPROPVALPREFIXFOLDER + incrementPropCounterFolderStringProp();
<a name="635" href="#635">635</a>     }
<a name="636" href="#636">636</a> 
<a name="637" href="#637">637</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> dumpFolder(String folderId, String propertyFilter) {
<a name="638" href="#638">638</a>         log.debug(<span class="jxr_string">"starting dumpFolder() id "</span> + folderId + <span class="jxr_string">" ..."</span>);
<a name="639" href="#639">639</a>         <strong class="jxr_keyword">boolean</strong> allRequiredPropertiesArePresent = propertyFilter != <strong class="jxr_keyword">null</strong> &amp;&amp; propertyFilter.equals(<span class="jxr_string">"*"</span>); <em class="jxr_comment">// can</em>
<a name="640" href="#640">640</a>         <em class="jxr_comment">// be</em>
<a name="641" href="#641">641</a>         <em class="jxr_comment">// optimized</em>
<a name="642" href="#642">642</a>         <strong class="jxr_keyword">final</strong> String requiredProperties = allRequiredPropertiesArePresent ? propertyFilter : PropertyIds.OBJECT_ID
<a name="643" href="#643">643</a>                 + <span class="jxr_string">","</span> + PropertyIds.NAME + <span class="jxr_string">","</span> + PropertyIds.OBJECT_TYPE_ID + <span class="jxr_string">","</span> + PropertyIds.BASE_TYPE_ID;
<a name="644" href="#644">644</a>         <em class="jxr_comment">// if all required properties are contained in the filter use we use the</em>
<a name="645" href="#645">645</a>         <em class="jxr_comment">// filter otherwise</em>
<a name="646" href="#646">646</a>         <em class="jxr_comment">// we use our own set and get those from the filter later in an extra</em>
<a name="647" href="#647">647</a>         <em class="jxr_comment">// call</em>
<a name="648" href="#648">648</a>         String propertyFilterIntern = allRequiredPropertiesArePresent ? propertyFilter : requiredProperties;
<a name="649" href="#649">649</a>         dumpFolder(folderId, propertyFilterIntern, 0);
<a name="650" href="#650">650</a>     }
<a name="651" href="#651">651</a> 
<a name="652" href="#652">652</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> dumpFolder(String folderId, String propertyFilter, <strong class="jxr_keyword">int</strong> depth) {
<a name="653" href="#653">653</a>         <strong class="jxr_keyword">boolean</strong> allRequiredPropertiesArePresent = propertyFilter.equals(<span class="jxr_string">"*"</span>); <em class="jxr_comment">// can</em>
<a name="654" href="#654">654</a>         <em class="jxr_comment">// be</em>
<a name="655" href="#655">655</a>         <em class="jxr_comment">// optimized</em>
<a name="656" href="#656">656</a>         StringBuilder prefix = <strong class="jxr_keyword">new</strong> StringBuilder();
<a name="657" href="#657">657</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; depth; i++) {
<a name="658" href="#658">658</a>             prefix.append(<span class="jxr_string">"   "</span>);
<a name="659" href="#659">659</a>         }
<a name="660" href="#660">660</a> 
<a name="661" href="#661">661</a>         ObjectInFolderList result = fNavSvc.getChildren(fRepositoryId, folderId, propertyFilter, <strong class="jxr_keyword">null</strong>, false,
<a name="662" href="#662">662</a>                 IncludeRelationships.NONE, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">true</strong>, BigInteger.valueOf(-1), BigInteger.valueOf(-1), <strong class="jxr_keyword">null</strong>);
<a name="663" href="#663">663</a>         List&lt;ObjectInFolderData&gt; folders = result.getObjects();
<a name="664" href="#664">664</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> != folders) {
<a name="665" href="#665">665</a>             log.debug(prefix + <span class="jxr_string">"found "</span> + folders.size() + <span class="jxr_string">" children in folder "</span> + folderId);
<a name="666" href="#666">666</a>             <strong class="jxr_keyword">int</strong> no = 0;
<a name="667" href="#667">667</a>             <strong class="jxr_keyword">for</strong> (ObjectInFolderData folder : folders) {
<a name="668" href="#668">668</a>                 log.debug(prefix.toString() + ++no + <span class="jxr_string">": found object with id: "</span> + folder.getObject().getId()
<a name="669" href="#669">669</a>                         + <span class="jxr_string">" and path segment: "</span> + folder.getPathSegment());
<a name="670" href="#670">670</a>                 dumpObjectProperties(folder.getObject(), depth, propertyFilter, !allRequiredPropertiesArePresent);
<a name="671" href="#671">671</a>                 String objectTypeBaseId = folder.getObject().getBaseTypeId().value();
<a name="672" href="#672">672</a>                 <strong class="jxr_keyword">if</strong> (objectTypeBaseId.equals(BaseTypeId.CMIS_FOLDER.value())) {
<a name="673" href="#673">673</a>                     dumpFolder(folder.getObject().getId(), propertyFilter, depth + 1);
<a name="674" href="#674">674</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (objectTypeBaseId.equals(BaseTypeId.CMIS_DOCUMENT.value())) {
<a name="675" href="#675">675</a>                     dumpObjectProperties(folder.getObject(), depth + 1, propertyFilter,
<a name="676" href="#676">676</a>                             !allRequiredPropertiesArePresent);
<a name="677" href="#677">677</a>                 }
<a name="678" href="#678">678</a>             }
<a name="679" href="#679">679</a>         }
<a name="680" href="#680">680</a>         log.debug(<span class="jxr_string">""</span>); <em class="jxr_comment">// add empty line</em>
<a name="681" href="#681">681</a>     }
<a name="682" href="#682">682</a> 
<a name="683" href="#683">683</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> dumpObjectProperties(ObjectData object, <strong class="jxr_keyword">int</strong> depth, String propertyFilter, <strong class="jxr_keyword">boolean</strong> mustFetchProperties) {
<a name="684" href="#684">684</a>         <strong class="jxr_keyword">final</strong> SimpleDateFormat df = <strong class="jxr_keyword">new</strong> SimpleDateFormat(<span class="jxr_string">"yyyy-MM-dd'T'HH:mm:ssZ"</span>);
<a name="685" href="#685">685</a>         StringBuilder prefix = <strong class="jxr_keyword">new</strong> StringBuilder();
<a name="686" href="#686">686</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; depth; i++) {
<a name="687" href="#687">687</a>             prefix.append(<span class="jxr_string">"   "</span>);
<a name="688" href="#688">688</a>         }
<a name="689" href="#689">689</a> 
<a name="690" href="#690">690</a>         log.debug(prefix + <span class="jxr_string">"found object id "</span> + object.getId());
<a name="691" href="#691">691</a>         Map&lt;String, PropertyData&lt;?&gt;&gt; propMap;
<a name="692" href="#692">692</a>         <strong class="jxr_keyword">if</strong> (mustFetchProperties) {
<a name="693" href="#693">693</a>             String objId = (String) object.getProperties().getProperties().get(PropertyIds.OBJECT_ID).getFirstValue();
<a name="694" href="#694">694</a>             Properties props = fObjSvc.getProperties(fRepositoryId, objId, propertyFilter, <strong class="jxr_keyword">null</strong>);
<a name="695" href="#695">695</a>             propMap = props.getProperties();
<a name="696" href="#696">696</a>         } <strong class="jxr_keyword">else</strong> {
<a name="697" href="#697">697</a>             propMap = object.getProperties().getProperties();
<a name="698" href="#698">698</a>         }
<a name="699" href="#699">699</a>         StringBuilder valueStr = <strong class="jxr_keyword">new</strong> StringBuilder(<span class="jxr_string">"["</span>);
<a name="700" href="#700">700</a>         <strong class="jxr_keyword">for</strong> (Map.Entry&lt;String, PropertyData&lt;?&gt;&gt; entry : propMap.entrySet()) {
<a name="701" href="#701">701</a>             <strong class="jxr_keyword">if</strong> (entry.getValue().getValues().size() &gt; 1) {
<a name="702" href="#702">702</a>                 <strong class="jxr_keyword">if</strong> (entry.getValue().getFirstValue() instanceof GregorianCalendar) {
<a name="703" href="#703">703</a>                     <strong class="jxr_keyword">for</strong> (Object obj : entry.getValue().getValues()) {
<a name="704" href="#704">704</a>                         GregorianCalendar cal = (GregorianCalendar) obj;
<a name="705" href="#705">705</a>                         valueStr.append(df.format(cal.getTime())).append(<span class="jxr_string">", "</span>);
<a name="706" href="#706">706</a>                     }
<a name="707" href="#707">707</a>                     valueStr.append(<span class="jxr_string">"]"</span>);
<a name="708" href="#708">708</a>                 } <strong class="jxr_keyword">else</strong> {
<a name="709" href="#709">709</a>                     valueStr = <strong class="jxr_keyword">new</strong> StringBuilder(entry.getValue().getValues().toString());
<a name="710" href="#710">710</a>                 }
<a name="711" href="#711">711</a>             } <strong class="jxr_keyword">else</strong> {
<a name="712" href="#712">712</a>                 Object value = entry.getValue().getFirstValue();
<a name="713" href="#713">713</a>                 <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> != value) {
<a name="714" href="#714">714</a>                     valueStr = <strong class="jxr_keyword">new</strong> StringBuilder(value.toString());
<a name="715" href="#715">715</a>                     <strong class="jxr_keyword">if</strong> (value instanceof GregorianCalendar) {
<a name="716" href="#716">716</a>                         valueStr = <strong class="jxr_keyword">new</strong> StringBuilder(df.format(((GregorianCalendar) entry.getValue().getFirstValue())
<a name="717" href="#717">717</a>                                 .getTime()));
<a name="718" href="#718">718</a>                     }
<a name="719" href="#719">719</a>                 }
<a name="720" href="#720">720</a>             }
<a name="721" href="#721">721</a>             log.debug(prefix + entry.getKey() + <span class="jxr_string">": "</span> + valueStr);
<a name="722" href="#722">722</a>         }
<a name="723" href="#723">723</a>         log.debug(<span class="jxr_string">""</span>); <em class="jxr_comment">// add empty line</em>
<a name="724" href="#724">724</a>     }
<a name="725" href="#725">725</a> 
<a name="726" href="#726">726</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> createTypes(TypeDefinitionList typeDefList) {
<a name="727" href="#727">727</a>         
<a name="728" href="#728">728</a>         fTimeLoggerCreateType.reset();         
<a name="729" href="#729">729</a>         <strong class="jxr_keyword">for</strong> (TypeDefinition td : typeDefList.getList()) {
<a name="730" href="#730">730</a>             <em class="jxr_comment">// TODO: enable this if available!</em>
<a name="731" href="#731">731</a> <em class="jxr_comment">//            fRepSvc.createTypeDefinition(fRepositoryId, td);</em>
<a name="732" href="#732">732</a>         }
<a name="733" href="#733">733</a>     }
<a name="734" href="#734">734</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

