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 2010/06/10 14:51:18 UTC
svn commit: r953310 - in
/incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory:
./ server/ types/
Author: jens
Date: Thu Jun 10 12:51:17 2010
New Revision: 953310
URL: http://svn.apache.org/viewvc?rev=953310&view=rev
Log:
cleanup some ugly dependencies
Modified:
incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/DataObjectCreator.java
incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryMultiFilingServiceImpl.java
incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryNavigationServiceImpl.java
incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryObjectServiceImpl.java
incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryVersioningServiceImpl.java
incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/types/PropertyCreationHelper.java
Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/DataObjectCreator.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/DataObjectCreator.java?rev=953310&r1=953309&r2=953310&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/DataObjectCreator.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/DataObjectCreator.java Thu Jun 10 12:51:17 2010
@@ -48,7 +48,7 @@ import org.apache.chemistry.opencmis.inm
*/
public class DataObjectCreator {
- public static AllowableActions fillAllowableActions(ObjectStore objStore, StoredObject so, String user) {
+ public static AllowableActions fillAllowableActions(StoredObject so, String user) {
boolean isFolder = so instanceof Folder;
boolean isDocument = so instanceof Content;
@@ -57,7 +57,8 @@ public class DataObjectCreator {
boolean canCheckIn = false;
boolean isVersioned = so instanceof Version || so instanceof VersionedDocument;
boolean hasContent = so instanceof Content && ((Content) so).hasContent();
-
+ boolean isRootFolder = isFolder && ((Folder)so).getParent() == null;
+
if (so instanceof Version) {
isCheckedOut = ((Version) so).isPwc();
canCheckIn = isCheckedOut && ((Version) so).getParentDocument().getCheckedOutBy().equals(user);
@@ -66,7 +67,7 @@ public class DataObjectCreator {
canCheckOut = !((VersionedDocument) so).isCheckedOut();
canCheckIn = isCheckedOut && ((VersionedDocument) so).getCheckedOutBy().equals(user);
}
-
+
AllowableActionsImpl allowableActions = new AllowableActionsImpl();
Set<Action> set = allowableActions.getAllowableActions();
@@ -75,14 +76,14 @@ public class DataObjectCreator {
if (isFolder || isDocument) {
set.add(Action.CAN_GET_PROPERTIES);
- if (!so.equals(objStore.getRootFolder())) {
+ if (!isRootFolder) {
set.add(Action.CAN_GET_OBJECT_PARENTS);
}
set.add(Action.CAN_MOVE_OBJECT);
}
if (isFolder) {
- if (!so.equals(objStore.getRootFolder())) {
+ if (!isRootFolder) {
set.add(Action.CAN_GET_FOLDER_PARENT);
}
set.add(Action.CAN_GET_FOLDER_TREE);
Modified: incubator/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/incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryMultiFilingServiceImpl.java?rev=953310&r1=953309&r2=953310&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryMultiFilingServiceImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryMultiFilingServiceImpl.java Thu Jun 10 12:51:17 2010
@@ -20,6 +20,7 @@ package org.apache.chemistry.opencmis.in
import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
import org.apache.chemistry.opencmis.commons.data.ObjectData;
+import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
import org.apache.chemistry.opencmis.commons.exceptions.CmisConstraintException;
import org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException;
@@ -70,9 +71,9 @@ public class InMemoryMultiFilingServiceI
objectInfos.addObjectInfo(objectInfo);
}
-
+ TypeDefinition td = fStoreManager.getTypeById(repositoryId, so.getTypeId()).getTypeDefinition();
String user = context.getUsername();
- ObjectData od = PropertyCreationHelper.getObjectData(fStoreManager, so, null, user, false,
+ ObjectData od = PropertyCreationHelper.getObjectData(td, so, null, user, false,
IncludeRelationships.NONE, null, false, false, extension);
LOG.debug("End addObjectToFolder()");
@@ -103,7 +104,8 @@ public class InMemoryMultiFilingServiceI
}
String user = context.getUsername();
- ObjectData od = PropertyCreationHelper.getObjectData(fStoreManager, so, null, user, false,
+ TypeDefinition td = fStoreManager.getTypeById(repositoryId, so.getTypeId()).getTypeDefinition();
+ ObjectData od = PropertyCreationHelper.getObjectData(td, so, null, user, false,
IncludeRelationships.NONE, null, false, false, extension);
LOG.debug("End removeObjectFromFolder()");
Modified: incubator/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/incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryNavigationServiceImpl.java?rev=953310&r1=953309&r2=953310&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryNavigationServiceImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryNavigationServiceImpl.java Thu Jun 10 12:51:17 2010
@@ -33,6 +33,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.data.Properties;
+import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
import org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
import org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException;
@@ -90,7 +91,8 @@ public class InMemoryNavigationServiceIm
List<VersionedDocument> checkedOuts = fStoreManager.getObjectStore(repositoryId).getCheckedOutDocuments(
orderBy);
for (VersionedDocument checkedOut : checkedOuts) {
- ObjectData od = PropertyCreationHelper.getObjectData(fStoreManager, checkedOut, filter, user,
+ TypeDefinition td = fStoreManager.getTypeById(repositoryId, checkedOut.getTypeId()).getTypeDefinition();
+ ObjectData od = PropertyCreationHelper.getObjectData(td, checkedOut, filter, user,
includeAllowableActions, includeRelationships, renditionFilter, false, false, extension);
if (context.isObjectInfoRequired()) {
ObjectInfoImpl objectInfo = new ObjectInfoImpl();
@@ -290,7 +292,7 @@ public class InMemoryNavigationServiceIm
if (includePathSegments != null && includePathSegments)
oifd.setPathSegment(spo.getName());
if (includeAllowableActions != null && includeAllowableActions) {
- AllowableActions allowableActions = DataObjectCreator.fillAllowableActions(fs, spo, user);
+ AllowableActions allowableActions = DataObjectCreator.fillAllowableActions(spo, user);
objectData.setAllowableActions(allowableActions);
}
if (includeRelationships != null && includeRelationships != IncludeRelationships.NONE) {
@@ -303,8 +305,8 @@ public class InMemoryNavigationServiceIm
*/);
}
- Properties props = PropertyCreationHelper.getPropertiesFromObject(repositoryId, spo, fStoreManager,
- requestedIds);
+ TypeDefinition td = fStoreManager.getTypeById(repositoryId, spo.getTypeId()).getTypeDefinition();
+ Properties props = PropertyCreationHelper.getPropertiesFromObject(spo, td, requestedIds);
objectData.setProperties(props);
oifd.setObject(objectData);
@@ -428,8 +430,8 @@ public class InMemoryNavigationServiceIm
void copyFilteredProperties(String repositoryId, StoredObject so, String filter, ObjectDataImpl objData) {
List<String> requestedIds = FilterParser.getRequestedIdsFromFilter(filter);
- Properties props = PropertyCreationHelper
- .getPropertiesFromObject(repositoryId, so, fStoreManager, requestedIds);
+ TypeDefinition td = fStoreManager.getTypeById(repositoryId, so.getTypeId()).getTypeDefinition();
+ Properties props = PropertyCreationHelper.getPropertiesFromObject(so, td, requestedIds);
objData.setProperties(props);
}
Modified: incubator/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/incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryObjectServiceImpl.java?rev=953310&r1=953309&r2=953310&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryObjectServiceImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryObjectServiceImpl.java Thu Jun 10 12:51:17 2010
@@ -116,8 +116,8 @@ public class InMemoryObjectServiceImpl e
// build properties collection
List<String> requestedIds = FilterParser.getRequestedIdsFromFilter("*");
- Properties existingProps = PropertyCreationHelper.getPropertiesFromObject(repositoryId, so, fStoreManager,
- requestedIds);
+ TypeDefinition td = fStoreManager.getTypeById(repositoryId, so.getTypeId()).getTypeDefinition();
+ Properties existingProps = PropertyCreationHelper.getPropertiesFromObject(so, td, requestedIds);
PropertiesImpl newPD = new PropertiesImpl();
// copy all existing properties
@@ -223,7 +223,8 @@ public class InMemoryObjectServiceImpl e
// Make a call to getObject to convert the resulting id into an
// ObjectData
- ObjectData od = PropertyCreationHelper.getObjectData(fStoreManager, so, null, user, false,
+ TypeDefinition td = typeDefC.getTypeDefinition();
+ ObjectData od = PropertyCreationHelper.getObjectData(td, so, null, user, false,
IncludeRelationships.NONE, null, false, false, extension);
if (context.isObjectInfoRequired()) {
@@ -317,7 +318,7 @@ public class InMemoryObjectServiceImpl e
throw new CmisObjectNotFoundException("Unknown object id: " + objectId);
String user = context.getUsername();
- AllowableActions allowableActions = DataObjectCreator.fillAllowableActions(objectStore, so, user);
+ AllowableActions allowableActions = DataObjectCreator.fillAllowableActions(so, user);
LOG.debug("stop getAllowableActions()");
return allowableActions;
}
@@ -352,7 +353,8 @@ public class InMemoryObjectServiceImpl e
throw new CmisObjectNotFoundException("Unknown object id: " + objectId);
String user = context.getUsername();
- ObjectData od = PropertyCreationHelper.getObjectData(fStoreManager, so, filter, user, includeAllowableActions,
+ TypeDefinition td = fStoreManager.getTypeById(repositoryId, so.getTypeId()).getTypeDefinition();
+ ObjectData od = PropertyCreationHelper.getObjectData(td, so, filter, user, includeAllowableActions,
includeRelationships, renditionFilter, includePolicyIds, includeAcl, extension);
if (context.isObjectInfoRequired()) {
@@ -379,7 +381,8 @@ public class InMemoryObjectServiceImpl e
throw new CmisObjectNotFoundException("Unknown path: " + path);
String user = context.getUsername();
- ObjectData od = PropertyCreationHelper.getObjectData(fStoreManager, so, filter, user, includeAllowableActions,
+ TypeDefinition td = fStoreManager.getTypeById(repositoryId, so.getTypeId()).getTypeDefinition();
+ ObjectData od = PropertyCreationHelper.getObjectData(td, so, filter, user, includeAllowableActions,
includeRelationships, renditionFilter, includePolicyIds, includeAcl, extension);
LOG.debug("stop getObjectByPath()");
@@ -406,8 +409,8 @@ public class InMemoryObjectServiceImpl e
// build properties collection
List<String> requestedIds = FilterParser.getRequestedIdsFromFilter(filter);
- Properties props = PropertyCreationHelper
- .getPropertiesFromObject(repositoryId, so, fStoreManager, requestedIds);
+ TypeDefinition td = fStoreManager.getTypeById(repositoryId, so.getTypeId()).getTypeDefinition();
+ Properties props = PropertyCreationHelper.getPropertiesFromObject(so, td, requestedIds);
LOG.debug("stop getProperties()");
return props;
}
@@ -475,8 +478,9 @@ public class InMemoryObjectServiceImpl e
objectId.setValue(so.getId());
LOG.debug("stop moveObject()");
+ TypeDefinition td = fStoreManager.getTypeById(repositoryId, so.getTypeId()).getTypeDefinition();
String user = context.getUsername();
- ObjectData od = PropertyCreationHelper.getObjectData(fStoreManager, so, null, user, false,
+ ObjectData od = PropertyCreationHelper.getObjectData(td, so, null, user, false,
IncludeRelationships.NONE, null, false, false, extension);
// To be able to provide all Atom links in the response we need
@@ -624,8 +628,9 @@ public class InMemoryObjectServiceImpl e
// extension);
}
+ TypeDefinition td = fStoreManager.getTypeById(repositoryId, so.getTypeId()).getTypeDefinition();
String user = context.getUsername();
- ObjectData od = PropertyCreationHelper.getObjectData(fStoreManager, so, null, user, false,
+ ObjectData od = PropertyCreationHelper.getObjectData(td, so, null, user, false,
IncludeRelationships.NONE, null, false, false, extension);
// To be able to provide all Atom links in the response we need
Modified: incubator/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/incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryVersioningServiceImpl.java?rev=953310&r1=953309&r2=953310&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryVersioningServiceImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryVersioningServiceImpl.java Thu Jun 10 12:51:17 2010
@@ -95,7 +95,8 @@ public class InMemoryVersioningServiceIm
objectInfos.addObjectInfo(objectInfo);
}
- ObjectData od = PropertyCreationHelper.getObjectData(fStoreManager, so, null, user, false,
+ TypeDefinition td = fStoreManager.getTypeById(repositoryId, so.getTypeId()).getTypeDefinition();
+ ObjectData od = PropertyCreationHelper.getObjectData(td, so, null, user, false,
IncludeRelationships.NONE, null, false, false, extension);
return od;
@@ -141,7 +142,8 @@ public class InMemoryVersioningServiceIm
objectInfos.addObjectInfo(objectInfo);
}
- ObjectData od = PropertyCreationHelper.getObjectData(fStoreManager, so, null, user, false,
+ TypeDefinition td = fStoreManager.getTypeById(repositoryId, so.getTypeId()).getTypeDefinition();
+ ObjectData od = PropertyCreationHelper.getObjectData(td, so, null, user, false,
IncludeRelationships.NONE, null, false, false, extension);
return od;
@@ -218,8 +220,9 @@ public class InMemoryVersioningServiceIm
throw new RuntimeException("Object is not instance of a document (version series)");
List<String> requestedIds = FilterParser.getRequestedIdsFromFilter(filter);
- Properties props = PropertyCreationHelper.getPropertiesFromObject(repositoryId, latestVersionObject,
- fStoreManager, requestedIds);
+ TypeDefinition td = fStoreManager.getTypeById(repositoryId, so.getTypeId()).getTypeDefinition();
+ Properties props = PropertyCreationHelper.getPropertiesFromObject(latestVersionObject, td,
+ requestedIds);
return props;
}
Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/types/PropertyCreationHelper.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/types/PropertyCreationHelper.java?rev=953310&r1=953309&r2=953310&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/types/PropertyCreationHelper.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/types/PropertyCreationHelper.java Thu Jun 10 12:51:17 2010
@@ -40,6 +40,7 @@ import org.apache.chemistry.opencmis.com
import org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
import org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException;
import org.apache.chemistry.opencmis.commons.impl.dataobjects.AbstractPropertyDefinition;
+import org.apache.chemistry.opencmis.commons.impl.dataobjects.BindingsObjectFactoryImpl;
import org.apache.chemistry.opencmis.commons.impl.dataobjects.ChoiceImpl;
import org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectDataImpl;
import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyBooleanDefinitionImpl;
@@ -203,11 +204,10 @@ public class PropertyCreationHelper {
prop.setUpdatability(Updatability.READWRITE);
}
- public static Properties getPropertiesFromObject(String repositoryId, StoredObject so, StoreManager storeManager,
- List<String> requestedIds) {
+ public static Properties getPropertiesFromObject(StoredObject so, TypeDefinition td, List<String> requestedIds) {
// build properties collection
- BindingsObjectFactory objectFactory = storeManager.getObjectFactory();
+ BindingsObjectFactory objectFactory = new BindingsObjectFactoryImpl();
Map<String, PropertyData<?>> properties = new HashMap<String, PropertyData<?>>();
so.fillProperties(properties, objectFactory, requestedIds);
@@ -215,13 +215,11 @@ public class PropertyCreationHelper {
// (String) props.getProperties().get(PropertyIds.CMIS_OBJECT_TYPE_ID).
// getFirstValue();
if (FilterParser.isContainedInFilter(PropertyIds.BASE_TYPE_ID, requestedIds)) {
- TypeDefinitionContainer typeDefC = storeManager.getTypeById(repositoryId, typeId);
- if (typeDefC == null) {
+ if (td == null) {
log.warn("getPropertiesFromObject(), cannot get type definition, a type with id " + typeId
+ " is unknown");
} else {
- TypeDefinition typeDef = typeDefC.getTypeDefinition();
- String baseTypeId = typeDef.getBaseTypeId().value();
+ String baseTypeId = td.getBaseTypeId().value();
properties.put(PropertyIds.BASE_TYPE_ID, objectFactory.createPropertyIdData(PropertyIds.BASE_TYPE_ID,
baseTypeId));
}
@@ -231,7 +229,7 @@ public class PropertyCreationHelper {
return props;
}
- public static ObjectData getObjectData(StoreManager sm, StoredObject so, String filter, String user,
+ public static ObjectData getObjectData(TypeDefinition typeDef, StoredObject so, String filter, String user,
Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
Boolean includePolicyIds, Boolean includeACL, ExtensionsData extension) {
@@ -242,12 +240,11 @@ public class PropertyCreationHelper {
// build properties collection
List<String> requestedIds = FilterParser.getRequestedIdsFromFilter(filter);
- Properties props = getPropertiesFromObject(so.getRepositoryId(), so, sm, requestedIds);
+ Properties props = getPropertiesFromObject(so, typeDef, requestedIds);
// fill output object
if (null != includeAllowableActions && includeAllowableActions) {
- ObjectStore objectStore = sm.getObjectStore(so.getRepositoryId());
- AllowableActions allowableActions = DataObjectCreator.fillAllowableActions(objectStore, so, user);
+ AllowableActions allowableActions = DataObjectCreator.fillAllowableActions(so, user);
od.setAllowableActions(allowableActions);
}
if (null != includeACL && includeACL)