Author: fmui
Date: Wed Aug 29 08:32:30 2012
New Revision: 1378475

URL: http://svn.apache.org/viewvc?rev=1378475&view=rev
Log:
CMIS-565: fixed createDocument with versioning state checkedout

Modified:
    
chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/SessionImpl.java

Modified: 
chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/SessionImpl.java
URL: 
http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/SessionImpl.java?rev=1378475&r1=1378474&r2=1378475&view=diff
==============================================================================
--- 
chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/SessionImpl.java
 (original)
+++ 
chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/SessionImpl.java
 Wed Aug 29 08:32:30 2012
@@ -88,9 +88,14 @@ public class SessionImpl implements Sess
             IncludeRelationships.NONE, null, true, null, true, 100);
 
     private static final Set<Updatability> CREATE_UPDATABILITY = new 
HashSet<Updatability>();
+    private static final Set<Updatability> CREATE_AND_CHECKOUT_UPDATABILITY = 
new HashSet<Updatability>();
+
     static {
         CREATE_UPDATABILITY.add(Updatability.ONCREATE);
         CREATE_UPDATABILITY.add(Updatability.READWRITE);
+        CREATE_AND_CHECKOUT_UPDATABILITY.add(Updatability.ONCREATE);
+        CREATE_AND_CHECKOUT_UPDATABILITY.add(Updatability.READWRITE);
+        CREATE_AND_CHECKOUT_UPDATABILITY.add(Updatability.WHENCHECKEDOUT);
     }
 
     // private static Logger log = LoggerFactory.getLogger(SessionImpl.class);
@@ -718,10 +723,13 @@ public class SessionImpl implements Sess
             throw new IllegalArgumentException("Properties must not be 
empty!");
         }
 
-        String newId = 
getBinding().getObjectService().createDocument(getRepositoryId(),
-                objectFactory.convertProperties(properties, null, 
CREATE_UPDATABILITY),
-                (folderId == null ? null : folderId.getId()), 
objectFactory.convertContentStream(contentStream),
-                versioningState, objectFactory.convertPolicies(policies), 
objectFactory.convertAces(addAces),
+        String newId = getBinding().getObjectService().createDocument(
+                getRepositoryId(),
+                objectFactory.convertProperties(properties, null,
+                        (versioningState == VersioningState.CHECKEDOUT ? 
CREATE_AND_CHECKOUT_UPDATABILITY
+                                : CREATE_UPDATABILITY)), (folderId == null ? 
null : folderId.getId()),
+                objectFactory.convertContentStream(contentStream), 
versioningState,
+                objectFactory.convertPolicies(policies), 
objectFactory.convertAces(addAces),
                 objectFactory.convertAces(removeAces), null);
 
         if (newId == null) {
@@ -750,10 +758,14 @@ public class SessionImpl implements Sess
             throw new IllegalArgumentException("Source object must be a 
document!");
         }
 
-        String newId = 
getBinding().getObjectService().createDocumentFromSource(getRepositoryId(), 
source.getId(),
-                objectFactory.convertProperties(properties, type, 
CREATE_UPDATABILITY),
-                (folderId == null ? null : folderId.getId()), versioningState, 
objectFactory.convertPolicies(policies),
-                objectFactory.convertAces(addAces), 
objectFactory.convertAces(removeAces), null);
+        String newId = 
getBinding().getObjectService().createDocumentFromSource(
+                getRepositoryId(),
+                source.getId(),
+                objectFactory.convertProperties(properties, type,
+                        (versioningState == VersioningState.CHECKEDOUT ? 
CREATE_AND_CHECKOUT_UPDATABILITY
+                                : CREATE_UPDATABILITY)), (folderId == null ? 
null : folderId.getId()), versioningState,
+                objectFactory.convertPolicies(policies), 
objectFactory.convertAces(addAces),
+                objectFactory.convertAces(removeAces), null);
 
         if (newId == null) {
             return null;


Reply via email to