<!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>MultiThreadedObjectGenerator 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> org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionList;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.spi.BindingsObjectFactory;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.spi.CmisBinding;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.spi.NavigationService;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.spi.ObjectService;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.spi.RepositoryService;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.util.repository.ObjectGenerator.CONTENT_KIND;
<a name="29" href="#29">29</a>  
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">MultiThreadedObjectGenerator</a> {
<a name="31" href="#31">31</a>  
<a name="32" href="#32">32</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> enum <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">Action</a> {
<a name="33" href="#33">33</a>          CreateDocument, CreateTree, CreateFolders, CreateTypes
<a name="34" href="#34">34</a>      }
<a name="35" href="#35">35</a>  
<a name="36" href="#36">36</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">MultiThreadedObjectGenerator</a>() {
<a name="37" href="#37">37</a>      }
<a name="38" href="#38">38</a>  
<a name="39" href="#39">39</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a> implements Runnable {
<a name="40" href="#40">40</a>          <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">Action</a> fAction;
<a name="41" href="#41">41</a>          <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/ObjectGenerator.html">ObjectGenerator</a> fObjGen;
<a name="42" href="#42">42</a>          <strong class="jxr_keyword">private</strong> String fRootFolderId;
<a name="43" href="#43">43</a>          <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> fFoldersPerFolders;
<a name="44" href="#44">44</a>          <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> fDepth;
<a name="45" href="#45">45</a>          <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> fCount;
<a name="46" href="#46">46</a>          <strong class="jxr_keyword">private</strong> TypeDefinitionList fTypeDefList;
<a name="47" href="#47">47</a>  
<a name="48" href="#48">48</a>          <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a>(<a href="../../../../../../org/apache/chemistry/opencmis/util/repository/ObjectGenerator.html">ObjectGenerator</a> objGen, <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">Action</a> action) {
<a name="49" href="#49">49</a>              fObjGen = objGen;
<a name="50" href="#50">50</a>              fAction = action;
<a name="51" href="#51">51</a>          }
<a name="52" href="#52">52</a>  
<a name="53" href="#53">53</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
<a name="54" href="#54">54</a>              <strong class="jxr_keyword">if</strong> (fAction == Action.CreateDocument) {
<a name="55" href="#55">55</a>                  doCreateDocument();
<a name="56" href="#56">56</a>              } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (fAction == Action.CreateTree) {
<a name="57" href="#57">57</a>                  doCreateTree();
<a name="58" href="#58">58</a>              } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (fAction == Action.CreateFolders) {
<a name="59" href="#59">59</a>                  doCreateFolder();
<a name="60" href="#60">60</a>              } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (fAction == Action.CreateTypes) {
<a name="61" href="#61">61</a>                  doCreateTypes();
<a name="62" href="#62">62</a>              }
<a name="63" href="#63">63</a>          }
<a name="64" href="#64">64</a>  
<a name="65" href="#65">65</a>          <strong class="jxr_keyword">public</strong> String[] doCreateDocument() {
<a name="66" href="#66">66</a>              String[] ids = fObjGen.createDocuments(fRootFolderId, fCount);
<a name="67" href="#67">67</a>              <strong class="jxr_keyword">return</strong> ids;
<a name="68" href="#68">68</a>          }
<a name="69" href="#69">69</a>  
<a name="70" href="#70">70</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> doCreateTree() {
<a name="71" href="#71">71</a>              fObjGen.createFolderHierachy(fDepth, fFoldersPerFolders, fRootFolderId);
<a name="72" href="#72">72</a>          }
<a name="73" href="#73">73</a>  
<a name="74" href="#74">74</a>          <strong class="jxr_keyword">public</strong> String[] doCreateFolder() {
<a name="75" href="#75">75</a>              <strong class="jxr_keyword">return</strong> fObjGen.createFolders(fRootFolderId, fCount);
<a name="76" href="#76">76</a>          }
<a name="77" href="#77">77</a>          
<a name="78" href="#78">78</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> doCreateTypes() {
<a name="79" href="#79">79</a>              fObjGen.createTypes(fTypeDefList);
<a name="80" href="#80">80</a>          }
<a name="81" href="#81">81</a>  
<a name="82" href="#82">82</a>          <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/ObjectGenerator.html">ObjectGenerator</a> getObjectGenerator() {
<a name="83" href="#83">83</a>              <strong class="jxr_keyword">return</strong> fObjGen;
<a name="84" href="#84">84</a>          }
<a name="85" href="#85">85</a>  
<a name="86" href="#86">86</a>      } <em class="jxr_comment">// ObjectCreatorRunner</em>
<a name="87" href="#87">87</a>  
<a name="88" href="#88">88</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/ObjectGenerator.html">ObjectGenerator</a> createObjectGenerator(CmisBinding binding, String repoId, <strong class="jxr_keyword">int</strong> docsPerFolder,
<a name="89" href="#89">89</a>              <strong class="jxr_keyword">int</strong> foldersPerFolders, <strong class="jxr_keyword">int</strong> depth, String documentType, String folderType, <strong class="jxr_keyword">int</strong> contentSizeInKB,
<a name="90" href="#90">90</a>              String rootFolderId, CONTENT_KIND contentKind, <strong class="jxr_keyword">boolean</strong> doCleanup) {
<a name="91" href="#91">91</a>  
<a name="92" href="#92">92</a>          BindingsObjectFactory objectFactory = binding.getObjectFactory();
<a name="93" href="#93">93</a>          NavigationService navSvc = binding.getNavigationService();
<a name="94" href="#94">94</a>          ObjectService objSvc = binding.getObjectService();
<a name="95" href="#95">95</a>          RepositoryService repSvc = binding.getRepositoryService();
<a name="96" href="#96">96</a>          
<a name="97" href="#97">97</a>          <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/ObjectGenerator.html">ObjectGenerator</a> gen = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/ObjectGenerator.html">ObjectGenerator</a>(objectFactory, navSvc, objSvc, repSvc, repoId, contentKind);
<a name="98" href="#98">98</a>          gen.setUseUuidsForNames(<strong class="jxr_keyword">true</strong>);
<a name="99" href="#99">99</a>          gen.setNumberOfDocumentsToCreatePerFolder(docsPerFolder);
<a name="100" href="#100">100</a>         <em class="jxr_comment">// Set the type id for all created documents:</em>
<a name="101" href="#101">101</a>         gen.setDocumentTypeId(documentType);
<a name="102" href="#102">102</a>         <em class="jxr_comment">// Set the type id for all created folders:</em>
<a name="103" href="#103">103</a>         gen.setFolderTypeId(folderType);
<a name="104" href="#104">104</a>         <em class="jxr_comment">// Set contentSize</em>
<a name="105" href="#105">105</a>         gen.setContentSizeInKB(contentSizeInKB);
<a name="106" href="#106">106</a>         gen.setCleanUpAfterCreate(doCleanup);
<a name="107" href="#107">107</a> 
<a name="108" href="#108">108</a>         <strong class="jxr_keyword">return</strong> gen;
<a name="109" href="#109">109</a>     }
<a name="110" href="#110">110</a> 
<a name="111" href="#111">111</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String getRootFolderId(CmisBinding binding, String repositoryId, String rootFolderId) {
<a name="112" href="#112">112</a>         RepositoryService repSvc = binding.getRepositoryService();
<a name="113" href="#113">113</a> 
<a name="114" href="#114">114</a>         RepositoryInfo rep = repSvc.getRepositoryInfo(repositoryId, <strong class="jxr_keyword">null</strong>);
<a name="115" href="#115">115</a>         <strong class="jxr_keyword">if</strong> (<strong class="jxr_keyword">null</strong> == rootFolderId || rootFolderId.length() == 0) {
<a name="116" href="#116">116</a>             rootFolderId = rep.getRootFolderId();
<a name="117" href="#117">117</a>         }
<a name="118" href="#118">118</a> 
<a name="119" href="#119">119</a>         <strong class="jxr_keyword">return</strong> rootFolderId;
<a name="120" href="#120">120</a>     }
<a name="121" href="#121">121</a> 
<a name="122" href="#122">122</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a> prepareForCreateTree(CmisBinding binding, String repoId, <strong class="jxr_keyword">int</strong> docsPerFolder,
<a name="123" href="#123">123</a>             <strong class="jxr_keyword">int</strong> foldersPerFolders, <strong class="jxr_keyword">int</strong> depth, String documentType, String folderType, <strong class="jxr_keyword">int</strong> contentSizeInKB,
<a name="124" href="#124">124</a>             String rootFolderId, CONTENT_KIND contentKind, <strong class="jxr_keyword">boolean</strong> doCleanup) {
<a name="125" href="#125">125</a> 
<a name="126" href="#126">126</a>         <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/ObjectGenerator.html">ObjectGenerator</a> objGen = createObjectGenerator(binding, repoId, docsPerFolder, foldersPerFolders, depth,
<a name="127" href="#127">127</a>                 documentType, folderType, contentSizeInKB, rootFolderId, contentKind, doCleanup);
<a name="128" href="#128">128</a> 
<a name="129" href="#129">129</a>         <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a> gen = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a>(objGen, Action.CreateTree);
<a name="130" href="#130">130</a>         gen.fFoldersPerFolders = foldersPerFolders;
<a name="131" href="#131">131</a>         gen.fDepth = depth;
<a name="132" href="#132">132</a>         gen.fRootFolderId = getRootFolderId(binding, repoId, rootFolderId);
<a name="133" href="#133">133</a>         <strong class="jxr_keyword">return</strong> gen;
<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">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a>[] prepareForCreateTreeMT(CmisBinding provider, String repoId,
<a name="137" href="#137">137</a>             <strong class="jxr_keyword">int</strong> docsPerFolder, <strong class="jxr_keyword">int</strong> foldersPerFolders, <strong class="jxr_keyword">int</strong> depth, String documentType, String folderType,
<a name="138" href="#138">138</a>             <strong class="jxr_keyword">int</strong> contentSizeInKB, String[] rootFolderIds, CONTENT_KIND contentKind, <strong class="jxr_keyword">boolean</strong> doCleanup) {
<a name="139" href="#139">139</a> 
<a name="140" href="#140">140</a>         <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a>[] runners = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a>[rootFolderIds.length];
<a name="141" href="#141">141</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; rootFolderIds.length; i++) {
<a name="142" href="#142">142</a>             <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/ObjectGenerator.html">ObjectGenerator</a> objGen = createObjectGenerator(provider, repoId, docsPerFolder, foldersPerFolders, depth,
<a name="143" href="#143">143</a>                     documentType, folderType, contentSizeInKB, rootFolderIds[i], contentKind,
<a name="144" href="#144">144</a>                     doCleanup);
<a name="145" href="#145">145</a> 
<a name="146" href="#146">146</a>             <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a> gen = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a>(objGen, Action.CreateTree);
<a name="147" href="#147">147</a>             gen.fFoldersPerFolders = foldersPerFolders;
<a name="148" href="#148">148</a>             gen.fDepth = depth;
<a name="149" href="#149">149</a>             gen.fRootFolderId = rootFolderIds[i];
<a name="150" href="#150">150</a>             runners[i] = gen;
<a name="151" href="#151">151</a>         }
<a name="152" href="#152">152</a>         <strong class="jxr_keyword">return</strong> runners;
<a name="153" href="#153">153</a>     }
<a name="154" href="#154">154</a> 
<a name="155" href="#155">155</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a> prepareForCreateDocument(CmisBinding provider, String repoId,
<a name="156" href="#156">156</a>             String documentType, <strong class="jxr_keyword">int</strong> contentSizeInKB, String rootFolderId, <strong class="jxr_keyword">int</strong> noDocuments, 
<a name="157" href="#157">157</a>             CONTENT_KIND contentKind, <strong class="jxr_keyword">boolean</strong> doCleanup) {
<a name="158" href="#158">158</a> 
<a name="159" href="#159">159</a>         <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/ObjectGenerator.html">ObjectGenerator</a> objGen = createObjectGenerator(provider, repoId, 0, 0, 0, documentType, <strong class="jxr_keyword">null</strong>, contentSizeInKB,
<a name="160" href="#160">160</a>                 rootFolderId, contentKind, doCleanup);
<a name="161" href="#161">161</a> 
<a name="162" href="#162">162</a>         <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a> gen = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a>(objGen, Action.CreateDocument);
<a name="163" href="#163">163</a>         gen.fRootFolderId = getRootFolderId(provider, repoId, rootFolderId);
<a name="164" href="#164">164</a>         gen.fCount = noDocuments;
<a name="165" href="#165">165</a>         <strong class="jxr_keyword">return</strong> gen;
<a name="166" href="#166">166</a>     }
<a name="167" href="#167">167</a> 
<a name="168" href="#168">168</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a>[] prepareForCreateDocumentMT(<strong class="jxr_keyword">int</strong> threadCount, CmisBinding binding,
<a name="169" href="#169">169</a>             String repoId, String documentType, <strong class="jxr_keyword">int</strong> contentSizeInKB, String rootFolderId, <strong class="jxr_keyword">int</strong> noDocuments,
<a name="170" href="#170">170</a>             CONTENT_KIND contentKind, <strong class="jxr_keyword">boolean</strong> doCleanup) {
<a name="171" href="#171">171</a> 
<a name="172" href="#172">172</a>         <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a>[] runners = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a>[threadCount];
<a name="173" href="#173">173</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; threadCount; i++) {
<a name="174" href="#174">174</a>             <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/ObjectGenerator.html">ObjectGenerator</a> objGen = createObjectGenerator(binding, repoId, 0, 0, 0, documentType, <strong class="jxr_keyword">null</strong>,
<a name="175" href="#175">175</a>                     contentSizeInKB, rootFolderId, contentKind, doCleanup);
<a name="176" href="#176">176</a> 
<a name="177" href="#177">177</a>             <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a> gen = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a>(objGen, Action.CreateDocument);
<a name="178" href="#178">178</a>             gen.fRootFolderId = getRootFolderId(binding, repoId, rootFolderId);
<a name="179" href="#179">179</a>             gen.fCount = noDocuments;
<a name="180" href="#180">180</a>             runners[i] = gen;
<a name="181" href="#181">181</a>         }
<a name="182" href="#182">182</a>         <strong class="jxr_keyword">return</strong> runners;
<a name="183" href="#183">183</a>     }
<a name="184" href="#184">184</a> 
<a name="185" href="#185">185</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a> prepareForCreateFolder(CmisBinding provider, String repoId, String folderType,
<a name="186" href="#186">186</a>             String rootFolderId, <strong class="jxr_keyword">int</strong> noFolders, <strong class="jxr_keyword">boolean</strong> doCleanup) {
<a name="187" href="#187">187</a> 
<a name="188" href="#188">188</a>         <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/ObjectGenerator.html">ObjectGenerator</a> objGen = createObjectGenerator(provider, repoId, 0, 0, 0, <strong class="jxr_keyword">null</strong>, folderType, 0, rootFolderId,
<a name="189" href="#189">189</a>                 <strong class="jxr_keyword">null</strong>, doCleanup);
<a name="190" href="#190">190</a> 
<a name="191" href="#191">191</a>         <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a> gen = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a>(objGen, Action.CreateFolders);
<a name="192" href="#192">192</a>         gen.fRootFolderId = getRootFolderId(provider, repoId, rootFolderId);
<a name="193" href="#193">193</a>         gen.fCount = noFolders;
<a name="194" href="#194">194</a>         <strong class="jxr_keyword">return</strong> gen;
<a name="195" href="#195">195</a>     }
<a name="196" href="#196">196</a> 
<a name="197" href="#197">197</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a>[] prepareForCreateFolderMT(<strong class="jxr_keyword">int</strong> threadCount, CmisBinding binding, String repoId,
<a name="198" href="#198">198</a>             String folderType, String rootFolderId, <strong class="jxr_keyword">int</strong> noFolders, <strong class="jxr_keyword">boolean</strong> doCleanup) {
<a name="199" href="#199">199</a> 
<a name="200" href="#200">200</a>         <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a>[] runners = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a>[threadCount];
<a name="201" href="#201">201</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; threadCount; i++) {
<a name="202" href="#202">202</a>             <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/ObjectGenerator.html">ObjectGenerator</a> objGen = createObjectGenerator(binding, repoId, 0, 0, 0, <strong class="jxr_keyword">null</strong>, folderType, 0, rootFolderId,
<a name="203" href="#203">203</a>                     <strong class="jxr_keyword">null</strong>, doCleanup);
<a name="204" href="#204">204</a> 
<a name="205" href="#205">205</a>             <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a> gen = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a>(objGen, Action.CreateFolders);
<a name="206" href="#206">206</a>             gen.fRootFolderId = getRootFolderId(binding, repoId, rootFolderId);
<a name="207" href="#207">207</a>             gen.fCount = noFolders;
<a name="208" href="#208">208</a>             runners[i] = gen;
<a name="209" href="#209">209</a>         }
<a name="210" href="#210">210</a>         <strong class="jxr_keyword">return</strong> runners;
<a name="211" href="#211">211</a>     }
<a name="212" href="#212">212</a> 
<a name="213" href="#213">213</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a> prepareForCreateTypes(CmisBinding provider, String repoId, TypeDefinitionList typeDefList) {
<a name="214" href="#214">214</a> 
<a name="215" href="#215">215</a>         <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/ObjectGenerator.html">ObjectGenerator</a> objGen = createObjectGenerator(provider, repoId, 0, 0, 0, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, 0, <strong class="jxr_keyword">null</strong>,
<a name="216" href="#216">216</a>                 <strong class="jxr_keyword">null</strong>, false);
<a name="217" href="#217">217</a> 
<a name="218" href="#218">218</a>         <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a> gen = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a>(objGen, Action.CreateTypes);
<a name="219" href="#219">219</a>         gen.fTypeDefList = typeDefList;
<a name="220" href="#220">220</a>         <strong class="jxr_keyword">return</strong> gen;
<a name="221" href="#221">221</a>     }
<a name="222" href="#222">222</a> 
<a name="223" href="#223">223</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> runMultiThreaded(<a href="../../../../../../org/apache/chemistry/opencmis/util/repository/MultiThreadedObjectGenerator.html">ObjectGeneratorRunner</a>[] runner) {
<a name="224" href="#224">224</a>         <strong class="jxr_keyword">int</strong> threadCount = runner.length;
<a name="225" href="#225">225</a>         Thread[] threads = <strong class="jxr_keyword">new</strong> Thread[threadCount];
<a name="226" href="#226">226</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; threadCount; i++) {
<a name="227" href="#227">227</a>             Thread thread = <strong class="jxr_keyword">new</strong> Thread(runner[i], <span class="jxr_string">"ObjectGeneratorThread-"</span> + i);
<a name="228" href="#228">228</a>             threads[i] = thread;
<a name="229" href="#229">229</a>             thread.start();
<a name="230" href="#230">230</a>         }
<a name="231" href="#231">231</a> 
<a name="232" href="#232">232</a>         <strong class="jxr_keyword">try</strong> {
<a name="233" href="#233">233</a>             <strong class="jxr_keyword">for</strong> (Thread thread : threads) {
<a name="234" href="#234">234</a>                 thread.join();
<a name="235" href="#235">235</a>             }
<a name="236" href="#236">236</a>             <em class="jxr_comment">// Print all timings to System.out</em>
<a name="237" href="#237">237</a>             System.out.println();
<a name="238" href="#238">238</a>             System.out.println(<span class="jxr_string">"Result:"</span>);
<a name="239" href="#239">239</a>             <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/TimeLogger.html">TimeLogger</a>[] loggersCreateDoc = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/TimeLogger.html">TimeLogger</a>[threadCount];
<a name="240" href="#240">240</a>             <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/TimeLogger.html">TimeLogger</a>[] loggersCreateFolder = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/TimeLogger.html">TimeLogger</a>[threadCount];
<a name="241" href="#241">241</a>             <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/TimeLogger.html">TimeLogger</a>[] loggersDelete = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/util/repository/TimeLogger.html">TimeLogger</a>[threadCount];
<a name="242" href="#242">242</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; threadCount; i++) {
<a name="243" href="#243">243</a>                 loggersCreateDoc[i] = runner[i].fObjGen.getCreateDocumentTimeLogger();
<a name="244" href="#244">244</a>                 loggersCreateFolder[i] = runner[i].fObjGen.getCreateFolderTimeLogger();
<a name="245" href="#245">245</a>                 loggersDelete[i] = runner[i].fObjGen.getDeleteTimeLogger();
<a name="246" href="#246">246</a>             }
<a name="247" href="#247">247</a>             TimeLogger.printTimes(loggersCreateDoc);
<a name="248" href="#248">248</a>             TimeLogger.printTimes(loggersCreateFolder);
<a name="249" href="#249">249</a>             TimeLogger.printTimes(loggersDelete);
<a name="250" href="#250">250</a> 
<a name="251" href="#251">251</a>         } <strong class="jxr_keyword">catch</strong> (InterruptedException e) {
<a name="252" href="#252">252</a>             System.out.println(<span class="jxr_string">"Failed to wait for termination of threads: "</span> + e);
<a name="253" href="#253">253</a>         }
<a name="254" href="#254">254</a>     }
<a name="255" href="#255">255</a> 
<a name="256" href="#256">256</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

