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 2013/08/19 21:24:23 UTC

svn commit: r1515570 - in /chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory: query/ server/ storedobj/api/ storedobj/impl/

Author: jens
Date: Mon Aug 19 19:24:22 2013
New Revision: 1515570

URL: http://svn.apache.org/r1515570
Log:
InMemory: minor internal interface change

Modified:
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/query/InMemoryQueryProcessor.java
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryMultiFilingServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryNavigationServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryObjectServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/api/ObjectStore.java
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/ObjectStoreImpl.java

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/query/InMemoryQueryProcessor.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/query/InMemoryQueryProcessor.java?rev=1515570&r1=1515569&r2=1515570&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/query/InMemoryQueryProcessor.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/query/InMemoryQueryProcessor.java Mon Aug 19 19:24:22 2013
@@ -517,7 +517,7 @@ public class InMemoryQueryProcessor {
 
             // check if object is in folder
             if (so instanceof Filing) {
-                return hasParent((Filing) so, folderId, user);
+                return hasParent(so, folderId, user);
             } else {
                 return false;
             }
@@ -538,7 +538,7 @@ public class InMemoryQueryProcessor {
 
             // check if object is in folder
             if (so instanceof Filing) {
-                return hasAncestor((Filing) so, folderId, user);
+                return hasAncestor(so, folderId, user);
             } else {
                 return false;
             }
@@ -642,7 +642,7 @@ public class InMemoryQueryProcessor {
 
     }
 
-    private boolean hasParent(Filing objInFolder, String folderId, String user) {
+    private boolean hasParent(StoredObject objInFolder, String folderId, String user) {
         List<String> parents = objStore.getParentIds(objInFolder, user);
 
         for (String parentId : parents) {
@@ -653,7 +653,7 @@ public class InMemoryQueryProcessor {
         return false;
     }
 
-    private boolean hasAncestor(Filing objInFolder, String folderId, String user) {
+    private boolean hasAncestor(StoredObject objInFolder, String folderId, String user) {
         List<String> parents = objStore.getParentIds(objInFolder, user);
 
         for (String parentId : parents) {

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryMultiFilingServiceImpl.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/InMemoryMultiFilingServiceImpl.java?rev=1515570&r1=1515569&r2=1515570&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryMultiFilingServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryMultiFilingServiceImpl.java Mon Aug 19 19:24:22 2013
@@ -95,7 +95,7 @@ public class InMemoryMultiFilingServiceI
             }
         } else {
             checkObjects(repositoryId, so, null);
-            List<String> parentIds = objStore.getParentIds((Filing) so,  context.getUsername());
+            List<String> parentIds = objStore.getParentIds(so,  context.getUsername());
             for (String parentId: parentIds) {
                 Folder parent = (Folder) objStore.getObjectById(parentId);
                 objStore.removeParent(so, parent);

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryNavigationServiceImpl.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/InMemoryNavigationServiceImpl.java?rev=1515570&r1=1515569&r2=1515570&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryNavigationServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryNavigationServiceImpl.java Mon Aug 19 19:24:22 2013
@@ -243,13 +243,11 @@ public class InMemoryNavigationServiceIm
         List<ObjectParentData> result = null;
 
         Filing spo = null;
-        if (so instanceof Filing) {
-            spo = (Filing) so;
-        } else {
+        if (!(so instanceof Filing)) {
             return Collections.emptyList();
         }
 
-        result = getObjectParentsIntern(repositoryId, spo, filter, context.isObjectInfoRequired() ? objectInfos : null,
+        result = getObjectParentsIntern(repositoryId, so, filter, context.isObjectInfoRequired() ? objectInfos : null,
                 includeAllowableActions, includeRelationships, renditionFilter, includeRelativePathSegment,
                 context.getUsername());
 
@@ -358,14 +356,14 @@ public class InMemoryNavigationServiceIm
         return childrenOfFolderId;
     }
 
-    private List<ObjectParentData> getObjectParentsIntern(String repositoryId, Filing sop, String filter,
+    private List<ObjectParentData> getObjectParentsIntern(String repositoryId, StoredObject so, String filter,
             ObjectInfoHandler objectInfos, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
             String renditionFilter, Boolean includeRelativePathSegment, String user) {
 
         List<ObjectParentData> result = null;
         result = new ArrayList<ObjectParentData>();
         ObjectStore objStore = fStoreManager.getObjectStore(repositoryId);
-        List<String> parentIds = objStore.getParentIds(sop, user);
+        List<String> parentIds = objStore.getParentIds(so, user);
         if (null != parentIds) {
             for (String parentId : parentIds) {
                 ObjectParentDataImpl parentData = new ObjectParentDataImpl();
@@ -374,8 +372,8 @@ public class InMemoryNavigationServiceIm
                 ObjectData objData = PropertyCreationHelper.getObjectData(tm, objStore, parent, filter, user,
                         includeAllowableActions, includeRelationships, renditionFilter, false, true, null);
                 parentData.setObject(objData);
-                if (null != includeRelativePathSegment && includeRelativePathSegment) {
-                    parentData.setRelativePathSegment(sop.getPathSegment());
+                if (null != includeRelativePathSegment && includeRelativePathSegment && so instanceof Fileable) {
+                    parentData.setRelativePathSegment(((Fileable)so).getPathSegment());
                 }
                 result.add(parentData);
                 if (objectInfos != null) {
@@ -389,14 +387,14 @@ public class InMemoryNavigationServiceIm
         return result;
     }
 
-    private ObjectData getFolderParentIntern(String repositoryId, Filing sop, String filter,
+    private ObjectData getFolderParentIntern(String repositoryId, StoredObject so, String filter,
             Boolean includeAllowableActions, IncludeRelationships includeRelationships, String user,
             ObjectInfoHandler objectInfos) {
 
         ObjectDataImpl parent = new ObjectDataImpl();
 
         ObjectStore objStore = fStoreManager.getObjectStore(repositoryId);
-        List<String> parents = objStore.getParentIds(sop, user);
+        List<String> parents = objStore.getParentIds(so, user);
         if (null == parents || parents.isEmpty()) {
             return null;
         }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryObjectServiceImpl.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/InMemoryObjectServiceImpl.java?rev=1515570&r1=1515569&r2=1515570&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryObjectServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryObjectServiceImpl.java Mon Aug 19 19:24:22 2013
@@ -485,14 +485,11 @@ public class InMemoryObjectServiceImpl e
         Folder targetFolder = null;
         Folder sourceFolder = null;
         ObjectStore objectStore = fStoreManager.getObjectStore(repositoryId);
-        Filing spo = null;
         String user = context.getUsername();
 
         if (null == so) {
             throw new CmisObjectNotFoundException("Unknown object: " + objectId.getValue());
-        } else if (so instanceof Filing) {
-            spo = (Filing) so;
-        } else {
+        } else if (!(so instanceof Filing)) {
             throw new CmisInvalidArgumentException("Object must be fileable: " + objectId.getValue());
         }
 
@@ -516,7 +513,7 @@ public class InMemoryObjectServiceImpl e
         }
 
         boolean foundOldParent = false;
-        for (String parentId : objectStore.getParentIds(spo, user)) {
+        for (String parentId : objectStore.getParentIds(so, user)) {
             if (parentId.equals(soSource.getId())) {
                 foundOldParent = true;
                 break;

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/api/ObjectStore.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/storedobj/api/ObjectStore.java?rev=1515570&r1=1515569&r2=1515570&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/api/ObjectStore.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/api/ObjectStore.java Mon Aug 19 19:24:22 2013
@@ -424,7 +424,7 @@ public interface ObjectStore {
      *            user who can see parents
      * @return list of folder ids
      */
-    List<String> getParentIds(Filing spo, String user);
+    List<String> getParentIds(StoredObject so, String user);
 
     /**
      * Add this document to a new parent folder as child object

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/ObjectStoreImpl.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/storedobj/impl/ObjectStoreImpl.java?rev=1515570&r1=1515569&r2=1515570&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/ObjectStoreImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/ObjectStoreImpl.java Mon Aug 19 19:24:22 2013
@@ -745,12 +745,16 @@ public class ObjectStoreImpl implements 
     }
 
     @Override
-    public List<String> getParentIds(Filing fileable, String user) {
-        List<String> visibleParents = new ArrayList<String>(); 
+    public List<String> getParentIds(StoredObject so, String user) {
+        List<String> visibleParents = new ArrayList<String>();
+        if (!(so instanceof Fileable)) {
+            throw new CmisInvalidArgumentException("Object is not fileable: " + so.getId());
+        }
+        Filing fileable = (Fileable) so;
         List<String> parents = fileable.getParentIds();
         for (String id: parents) {
-            StoredObject so = getObjectById(id);
-            if (hasReadAccess(user, so)) {
+            StoredObject parent = getObjectById(id);
+            if (hasReadAccess(user, parent)) {
                 visibleParents.add(id);
             }
         }