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

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> * <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.chemistry.opencmis.jcr.impl;
<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.ContentStream;
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Properties;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.ContentStreamAllowed;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.VersioningState;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.exceptions.CmisStorageException;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.impl.dataobjects.DocumentTypeDefinitionImpl;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.jcr.JcrBinary;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.jcr.JcrDocument;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.jcr.JcrFolder;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.jcr.JcrNode;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.jcr.JcrTypeManager;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.jcr.JcrVersion;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.jcr.JcrVersionBase;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.jcr.query.IdentifierMap;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.jcr.type.JcrDocumentTypeHandler;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.Log;
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.LogFactory;
<a name="40" href="#40">40</a>  
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> javax.jcr.Binary;
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> javax.jcr.Node;
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> javax.jcr.Property;
<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> javax.jcr.RepositoryException;
<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> javax.jcr.nodetype.NodeType;
<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> javax.jcr.version.Version;
<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> javax.jcr.version.VersionManager;
<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> java.io.BufferedInputStream;
<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a name="50" href="#50">50</a>  
<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment">/**</em>
<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment"> * Type handler that provides cmis:document.</em>
<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment"> */</em>
<a name="54" href="#54">54</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/chemistry/opencmis/jcr/impl/DefaultDocumentTypeHandler.html">DefaultDocumentTypeHandler</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../../org/apache/chemistry/opencmis/jcr/impl/AbstractJcrTypeHandler.html">AbstractJcrTypeHandler</a> implements <a href="../../../../../../org/apache/chemistry/opencmis/jcr/type/JcrDocumentTypeHandler.html">JcrDocumentTypeHandler</a> {
<a name="55" href="#55">55</a>  
<a name="56" href="#56">56</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Log log = LogFactory.getLog(JcrFolder.<strong class="jxr_keyword">class</strong>);
<a name="57" href="#57">57</a>  
<a name="58" href="#58">58</a>      <strong class="jxr_keyword">public</strong> String getTypeId() {
<a name="59" href="#59">59</a>          <strong class="jxr_keyword">return</strong> BaseTypeId.CMIS_DOCUMENT.value();
<a name="60" href="#60">60</a>      }
<a name="61" href="#61">61</a>  
<a name="62" href="#62">62</a>      <strong class="jxr_keyword">public</strong> TypeDefinition getTypeDefinition() {
<a name="63" href="#63">63</a>          DocumentTypeDefinitionImpl documentType = <strong class="jxr_keyword">new</strong> DocumentTypeDefinitionImpl();
<a name="64" href="#64">64</a>          documentType.setBaseTypeId(BaseTypeId.CMIS_DOCUMENT);
<a name="65" href="#65">65</a>          documentType.setIsControllableAcl(false);
<a name="66" href="#66">66</a>          documentType.setIsControllablePolicy(false);
<a name="67" href="#67">67</a>          documentType.setIsCreatable(<strong class="jxr_keyword">true</strong>);
<a name="68" href="#68">68</a>          documentType.setDescription(<span class="jxr_string">"Document"</span>);
<a name="69" href="#69">69</a>          documentType.setDisplayName(<span class="jxr_string">"Document"</span>);
<a name="70" href="#70">70</a>          documentType.setIsFileable(<strong class="jxr_keyword">true</strong>);
<a name="71" href="#71">71</a>          documentType.setIsFulltextIndexed(false);
<a name="72" href="#72">72</a>          documentType.setIsIncludedInSupertypeQuery(<strong class="jxr_keyword">true</strong>);
<a name="73" href="#73">73</a>          documentType.setLocalName(<span class="jxr_string">"Document"</span>);
<a name="74" href="#74">74</a>          documentType.setLocalNamespace(JcrTypeManager.NAMESPACE);
<a name="75" href="#75">75</a>          documentType.setIsQueryable(<strong class="jxr_keyword">true</strong>);
<a name="76" href="#76">76</a>          documentType.setQueryName(JcrTypeManager.DOCUMENT_TYPE_ID);
<a name="77" href="#77">77</a>          documentType.setId(JcrTypeManager.DOCUMENT_TYPE_ID);
<a name="78" href="#78">78</a>          documentType.setIsVersionable(<strong class="jxr_keyword">true</strong>);
<a name="79" href="#79">79</a>          documentType.setContentStreamAllowed(ContentStreamAllowed.ALLOWED);
<a name="80" href="#80">80</a>  
<a name="81" href="#81">81</a>          JcrTypeManager.addBasePropertyDefinitions(documentType);
<a name="82" href="#82">82</a>          JcrTypeManager.addDocumentPropertyDefinitions(documentType);
<a name="83" href="#83">83</a>  
<a name="84" href="#84">84</a>          <strong class="jxr_keyword">return</strong> documentType;
<a name="85" href="#85">85</a>      }
<a name="86" href="#86">86</a>  
<a name="87" href="#87">87</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/jcr/query/IdentifierMap.html">IdentifierMap</a> getIdentifierMap() {
<a name="88" href="#88">88</a>          <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/jcr/impl/DefaultDocumentIdentifierMap.html">DefaultDocumentIdentifierMap</a>(<strong class="jxr_keyword">true</strong>);
<a name="89" href="#89">89</a>      }
<a name="90" href="#90">90</a>  
<a name="91" href="#91">91</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/jcr/JcrDocument.html">JcrDocument</a> getJcrNode(Node node) <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="92" href="#92">92</a>          VersionManager versionManager = node.getSession().getWorkspace().getVersionManager();
<a name="93" href="#93">93</a>          Version version = versionManager.getBaseVersion(node.getPath());
<a name="94" href="#94">94</a>          <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/jcr/JcrVersion.html">JcrVersion</a>(node, version, typeManager, pathManager, typeHandlerManager);
<a name="95" href="#95">95</a>      }
<a name="96" href="#96">96</a>  
<a name="97" href="#97">97</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> canHandle(Node node) <strong class="jxr_keyword">throws</strong> RepositoryException {
<a name="98" href="#98">98</a>          <strong class="jxr_keyword">return</strong> node.isNodeType(NodeType.NT_FILE) &amp;&amp; node.isNodeType(NodeType.MIX_SIMPLE_VERSIONABLE);
<a name="99" href="#99">99</a>      }
<a name="100" href="#100">100</a> 
<a name="101" href="#101">101</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/chemistry/opencmis/jcr/JcrNode.html">JcrNode</a> createDocument(<a href="../../../../../../org/apache/chemistry/opencmis/jcr/JcrFolder.html">JcrFolder</a> parentFolder, String name, Properties properties, ContentStream contentStream, VersioningState versioningState) {
<a name="102" href="#102">102</a>         <strong class="jxr_keyword">try</strong> {
<a name="103" href="#103">103</a>             Node fileNode = parentFolder.getNode().addNode(name, NodeType.NT_FILE);
<a name="104" href="#104">104</a>             <strong class="jxr_keyword">if</strong> (versioningState != VersioningState.NONE) {
<a name="105" href="#105">105</a>                 fileNode.addMixin(NodeType.MIX_SIMPLE_VERSIONABLE);
<a name="106" href="#106">106</a>             }
<a name="107" href="#107">107</a> 
<a name="108" href="#108">108</a>             Node contentNode = fileNode.addNode(Node.JCR_CONTENT, NodeType.NT_RESOURCE);
<a name="109" href="#109">109</a>             contentNode.addMixin(NodeType.MIX_CREATED);
<a name="110" href="#110">110</a> 
<a name="111" href="#111">111</a>             <em class="jxr_comment">// compile the properties</em>
<a name="112" href="#112">112</a>             JcrFolder.setProperties(contentNode, getTypeDefinition(), properties);
<a name="113" href="#113">113</a> 
<a name="114" href="#114">114</a>             <em class="jxr_comment">// write content, if available</em>
<a name="115" href="#115">115</a>             Binary binary = contentStream == <strong class="jxr_keyword">null</strong> || contentStream.getStream() == <strong class="jxr_keyword">null</strong>
<a name="116" href="#116">116</a>                     ? JcrBinary.EMPTY
<a name="117" href="#117">117</a>                     : <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/chemistry/opencmis/jcr/JcrBinary.html">JcrBinary</a>(<strong class="jxr_keyword">new</strong> BufferedInputStream(contentStream.getStream()));
<a name="118" href="#118">118</a>             <strong class="jxr_keyword">try</strong> {
<a name="119" href="#119">119</a>                 contentNode.setProperty(Property.JCR_DATA, binary);
<a name="120" href="#120">120</a>                 <strong class="jxr_keyword">if</strong> (contentStream != <strong class="jxr_keyword">null</strong> &amp;&amp; contentStream.getMimeType() != <strong class="jxr_keyword">null</strong>) {
<a name="121" href="#121">121</a>                     contentNode.setProperty(Property.JCR_MIMETYPE, contentStream.getMimeType());
<a name="122" href="#122">122</a>                 }
<a name="123" href="#123">123</a>             }
<a name="124" href="#124">124</a>             <strong class="jxr_keyword">finally</strong> {
<a name="125" href="#125">125</a>                 binary.dispose();
<a name="126" href="#126">126</a>             }
<a name="127" href="#127">127</a> 
<a name="128" href="#128">128</a>             fileNode.getSession().save();
<a name="129" href="#129">129</a>             <a href="../../../../../../org/apache/chemistry/opencmis/jcr/JcrNode.html">JcrNode</a> jcrFileNode = getJcrNode(fileNode);
<a name="130" href="#130">130</a>             <strong class="jxr_keyword">if</strong> (versioningState == VersioningState.NONE) {
<a name="131" href="#131">131</a>                 <strong class="jxr_keyword">return</strong> jcrFileNode;
<a name="132" href="#132">132</a>             }
<a name="133" href="#133">133</a> 
<a name="134" href="#134">134</a>             <a href="../../../../../../org/apache/chemistry/opencmis/jcr/JcrVersionBase.html">JcrVersionBase</a> jcrVersion = jcrFileNode.asVersion();
<a name="135" href="#135">135</a>             <strong class="jxr_keyword">if</strong> (versioningState == VersioningState.MINOR || versioningState == VersioningState.MAJOR) {
<a name="136" href="#136">136</a>                 <strong class="jxr_keyword">return</strong> jcrVersion.checkin(<strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, <span class="jxr_string">"auto checkin"</span>);
<a name="137" href="#137">137</a>             } <strong class="jxr_keyword">else</strong> {
<a name="138" href="#138">138</a>                 <strong class="jxr_keyword">return</strong> jcrVersion.getPwc();
<a name="139" href="#139">139</a>             }
<a name="140" href="#140">140</a>         }
<a name="141" href="#141">141</a>         <strong class="jxr_keyword">catch</strong> (RepositoryException e) {
<a name="142" href="#142">142</a>             log.debug(e.getMessage(), e);
<a name="143" href="#143">143</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisStorageException(e.getMessage(), e);
<a name="144" href="#144">144</a>         }
<a name="145" href="#145">145</a>         <strong class="jxr_keyword">catch</strong> (IOException e) {
<a name="146" href="#146">146</a>             log.debug(e.getMessage(), e);
<a name="147" href="#147">147</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> CmisStorageException(e.getMessage(), e);
<a name="148" href="#148">148</a>         }
<a name="149" href="#149">149</a>     }
<a name="150" href="#150">150</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

