You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by je...@apache.org on 2011/04/27 18:14:32 UTC

svn commit: r1097167 - in /chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server: AtomLinkInfoProvider.java InMemoryVersioningServiceImpl.java

Author: jens
Date: Wed Apr 27 16:14:32 2011
New Revision: 1097167

URL: http://svn.apache.org/viewvc?rev=1097167&view=rev
Log:
Fill ObjectData in ObjectInfoHolder
Check

Modified:
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/AtomLinkInfoProvider.java
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryVersioningServiceImpl.java

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/AtomLinkInfoProvider.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/AtomLinkInfoProvider.java?rev=1097167&r1=1097166&r2=1097167&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/AtomLinkInfoProvider.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/AtomLinkInfoProvider.java Wed Apr 27 16:14:32 2011
@@ -27,6 +27,7 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.data.ObjectList;
 import org.apache.chemistry.opencmis.commons.data.ObjectParentData;
 import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
+import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
 import org.apache.chemistry.opencmis.commons.impl.server.ObjectInfoImpl;
 import org.apache.chemistry.opencmis.commons.server.ObjectInfoHandler;
 import org.apache.chemistry.opencmis.inmemory.storedobj.api.Content;
@@ -36,6 +37,7 @@ import org.apache.chemistry.opencmis.inm
 import org.apache.chemistry.opencmis.inmemory.storedobj.api.StoreManager;
 import org.apache.chemistry.opencmis.inmemory.storedobj.api.StoredObject;
 import org.apache.chemistry.opencmis.inmemory.storedobj.api.VersionedDocument;
+import org.apache.chemistry.opencmis.inmemory.types.PropertyCreationHelper;
 
 /**
  * For the Atom binding more information might be required than the result of a
@@ -142,7 +144,10 @@ public class AtomLinkInfoProvider {
     }
 
     public void fillInformationForAtomLinks(String repositoryId, StoredObject so, ObjectInfoImpl objectInfo) {
-        fillInformationForAtomLinks(repositoryId, so, null, objectInfo);
+        TypeDefinition td = fStoreManager.getTypeById(repositoryId, so.getTypeId()).getTypeDefinition();
+        ObjectData od = PropertyCreationHelper.getObjectData(td, so, null, null, false,
+                IncludeRelationships.NONE, null, false, false, null);
+        fillInformationForAtomLinks(repositoryId, so, od, objectInfo);
     }
 
     /**

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryVersioningServiceImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryVersioningServiceImpl.java?rev=1097167&r1=1097166&r2=1097167&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryVersioningServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryVersioningServiceImpl.java Wed Apr 27 16:14:32 2011
@@ -147,26 +147,32 @@ public class InMemoryVersioningServiceIm
 
     public List<ObjectData> getAllVersions(CallContext context, String repositoryId, String objectId, String versionSeriesId,
             String filter, Boolean includeAllowableActions, ExtensionsData extension, ObjectInfoHandler objectInfos) {
-
-        if (null == versionSeriesId) {
-            throw new CmisInvalidArgumentException("getAllVersions requires a version series id, but ist was null.");
-        }
-
-        StoredObject so = validator.getAllVersions(context, repositoryId, objectId, versionSeriesId, extension);
-
-        if (!(so instanceof VersionedDocument)) {
-            throw new CmisInvalidArgumentException("Object is not instance of a VersionedDocument (version series)");
-        }
-
-        VersionedDocument verDoc = (VersionedDocument) so;
+        
+        StoredObject so;
         List<ObjectData> res = new ArrayList<ObjectData>();
-        List<DocumentVersion> versions = verDoc.getAllVersions();
-        for (DocumentVersion version : versions) {
-            ObjectData objData = getObject(context, repositoryId, version.getId(), filter, includeAllowableActions,
-                    extension, objectInfos);
-            res.add(objData);
-        }
+        if (null == versionSeriesId)
+            versionSeriesId = objectId;
+        if (null == versionSeriesId)
+            throw new CmisInvalidArgumentException("getAllVersions requires a version series id, but ist was null.");
+            so = validator.getAllVersions(context, repositoryId, objectId, versionSeriesId, extension);
+    
+            if (!(so instanceof VersionedDocument)) {
+              so = validator.getObject(context, repositoryId, objectId, extension);  
+              ObjectData objData = getObject(context, repositoryId, objectId, filter, includeAllowableActions,
+                      extension, objectInfos);
+              res.add(objData);
+            }
+    
+            VersionedDocument verDoc = (VersionedDocument) so;
+            res = new ArrayList<ObjectData>();
+            List<DocumentVersion> versions = verDoc.getAllVersions();
+            for (DocumentVersion version : versions) {
+                ObjectData objData = getObject(context, repositoryId, version.getId(), filter, includeAllowableActions,
+                        extension, objectInfos);
+                res.add(objData);
+            }
 
+        
         // provide information for Atom links for version series:
         if (context.isObjectInfoRequired()) {
             ObjectInfoImpl objectInfo = new ObjectInfoImpl();