You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fm...@apache.org on 2012/08/29 10:32:31 UTC

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

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;