Author: fmui
Date: Tue Mar 9 20:58:59 2010
New Revision: 921124
URL: http://svn.apache.org/viewvc?rev=921124&view=rev
Log:
introduced ObjectId
Added:
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/ObjectId.java
(with props)
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/ObjectIdImpl.java
(with props)
Modified:
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/CmisObject.java
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Document.java
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/FileableCmisObject.java
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Folder.java
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Session.java
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AbstractPersistentCmisObject.java
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AbstractPersistentFilableCmisObject.java
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentDocumentImpl.java
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentFolderImpl.java
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentRelationshipImpl.java
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentSessionImpl.java
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/RenditionImpl.java
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/ReadOnlySessionTest.java
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/mock/MockSessionFactory.java
Modified:
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/CmisObject.java
URL:
http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/CmisObject.java?rev=921124&r1=921123&r2=921124&view=diff
==============================================================================
---
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/CmisObject.java
(original)
+++
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/CmisObject.java
Tue Mar 9 20:58:59 2010
@@ -32,17 +32,11 @@ import org.apache.opencmis.commons.enums
*
* See CMIS Domain Model - section 2.1.2.
*/
-public interface CmisObject {
+public interface CmisObject extends ObjectId {
// common properties
/**
- * Get the object's unique id (maintained by the repository). {...@code
Property<String>
- * 'cmis:objectId'}
- */
- String getId();
-
- /**
* Get the name of this object. {...@code Property<String> 'cmis:name'}
*/
String getName();
@@ -134,13 +128,9 @@ public interface CmisObject {
// policy service
- void applyPolicy(Policy policy);
-
- void removePolicy(Policy policy);
-
- void applyPolicy(String policyId);
+ void applyPolicy(ObjectId policyId);
- void removePolicy(String policyId);
+ void removePolicy(ObjectId policyId);
List<Policy> getPolicies();
Modified:
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Document.java
URL:
http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Document.java?rev=921124&r1=921123&r2=921124&view=diff
==============================================================================
---
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Document.java
(original)
+++
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Document.java
Tue Mar 9 20:58:59 2010
@@ -29,11 +29,13 @@ public interface Document extends Fileab
// object service
+ void deleteAllVersions();
+
ContentStream getContentStream();
- String setContentStream(boolean overwrite, ContentStream contentStream);
+ ObjectId setContentStream(boolean overwrite, ContentStream contentStream);
- String deleteContentStream();
+ ObjectId deleteContentStream();
// versioning service
@@ -72,8 +74,6 @@ public interface Document extends Fileab
String getVersionSeriesCheckedOutId(); // cmis:versionSeriesCheckedOutId
- void deleteAllVersions();
-
String getCheckinComment(); // cmis:checkinComment
long getContentStreamLength(); // cmis:contentStreamLength
Modified:
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/FileableCmisObject.java
URL:
http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/FileableCmisObject.java?rev=921124&r1=921123&r2=921124&view=diff
==============================================================================
---
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/FileableCmisObject.java
(original)
+++
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/FileableCmisObject.java
Tue Mar 9 20:58:59 2010
@@ -30,12 +30,7 @@ public interface FileableCmisObject exte
/**
* Moves the object.
*/
- FileableCmisObject move(Folder sourceFolder, Folder targetFolder);
-
- /**
- * Moves the object.
- */
- FileableCmisObject move(String sourceFolderId, String targetFolderId);
+ FileableCmisObject move(ObjectId sourceFolderId, ObjectId targetFolderId);
// navigation service
@@ -54,10 +49,10 @@ public interface FileableCmisObject exte
/**
* Adds this object to a folder.
*/
- void addToFolder(Folder folder, boolean allVersions);
+ void addToFolder(ObjectId folderId, boolean allVersions);
/**
* Removes this object from a folder.
*/
- void removeFromFolder(Folder folder);
+ void removeFromFolder(ObjectId folderId);
}
Modified:
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Folder.java
URL:
http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Folder.java?rev=921124&r1=921123&r2=921124&view=diff
==============================================================================
---
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Folder.java
(original)
+++
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Folder.java
Tue Mar 9 20:58:59 2010
@@ -36,7 +36,7 @@ public interface Folder extends Fileable
VersioningState versioningState, List<Policy> policies, List<Ace>
addAces,
List<Ace> removeAces, OperationContext context);
- Document createDocumentFromSource(Document source, List<Property<?>>
properties,
+ Document createDocumentFromSource(ObjectId source, List<Property<?>>
properties,
VersioningState versioningState, List<Policy> policies, List<Ace>
addAces,
List<Ace> removeAces, OperationContext context);
Added:
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/ObjectId.java
URL:
http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/ObjectId.java?rev=921124&view=auto
==============================================================================
---
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/ObjectId.java
(added)
+++
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/ObjectId.java
Tue Mar 9 20:58:59 2010
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.opencmis.client.api;
+
+/**
+ * Holds an object id.
+ */
+public interface ObjectId {
+
+ /**
+ * Returns the id.
+ */
+ String getId();
+}
Propchange:
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/ObjectId.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Session.java
URL:
http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Session.java?rev=921124&r1=921123&r2=921124&view=diff
==============================================================================
---
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Session.java
(original)
+++
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Session.java
Tue Mar 9 20:58:59 2010
@@ -73,6 +73,11 @@ public interface Session {
IncludeRelationships includeRelationships, Set<String> renditionFilter,
boolean includePathSegments, String orderBy, boolean cacheEnabled);
+ /**
+ * Creates an object id.
+ */
+ ObjectId createObjectId(String id);
+
// localization
/**
@@ -138,9 +143,9 @@ public interface Session {
/**
* Object service <code>getObject</code>.
*/
- CmisObject getObject(String objectId);
+ CmisObject getObject(ObjectId objectId);
- CmisObject getObject(String objectId, OperationContext context);
+ CmisObject getObject(ObjectId objectId, OperationContext context);
/**
* Object service <code>getObjectByPath</code>.
@@ -166,20 +171,20 @@ public interface Session {
// create
- String createDocument(List<Property<?>> properties, String folderId,
ContentStream contentStream,
- VersioningState versioningState, List<Policy> policies, List<Ace>
addAces,
- List<Ace> removeAces);
+ ObjectId createDocument(List<Property<?>> properties, ObjectId folderId,
+ ContentStream contentStream, VersioningState versioningState,
List<Policy> policies,
+ List<Ace> addAces, List<Ace> removeAces);
- String createDocumentFromSource(Document source, List<Property<?>>
properties, String folderId,
- VersioningState versioningState, List<Policy> policies, List<Ace>
addAces,
+ ObjectId createDocumentFromSource(ObjectId source, List<Property<?>>
properties,
+ ObjectId folderId, VersioningState versioningState, List<Policy>
policies, List<Ace> addAces,
List<Ace> removeAces);
- String createFolder(List<Property<?>> properties, String folderId,
List<Policy> policies,
+ ObjectId createFolder(List<Property<?>> properties, ObjectId folderId,
List<Policy> policies,
List<Ace> addAces, List<Ace> removeAces);
- String createPolicy(List<Property<?>> properties, String folderId,
List<Policy> policies,
+ ObjectId createPolicy(List<Property<?>> properties, ObjectId folderId,
List<Policy> policies,
List<Ace> addAces, List<Ace> removeAces);
- String createRelationship(List<Property<?>> properties, List<Policy>
policies, List<Ace> addAces,
- List<Ace> removeAces);
+ ObjectId createRelationship(List<Property<?>> properties, List<Policy>
policies,
+ List<Ace> addAces, List<Ace> removeAces);
}
Modified:
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AbstractPersistentCmisObject.java
URL:
http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AbstractPersistentCmisObject.java?rev=921124&r1=921123&r2=921124&view=diff
==============================================================================
---
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AbstractPersistentCmisObject.java
(original)
+++
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AbstractPersistentCmisObject.java
Tue Mar 9 20:58:59 2010
@@ -30,6 +30,7 @@ import org.apache.opencmis.client.api.Ac
import org.apache.opencmis.client.api.Acl;
import org.apache.opencmis.client.api.AllowableActions;
import org.apache.opencmis.client.api.CmisObject;
+import org.apache.opencmis.client.api.ObjectId;
import org.apache.opencmis.client.api.OperationContext;
import org.apache.opencmis.client.api.Policy;
import org.apache.opencmis.client.api.Property;
@@ -120,7 +121,7 @@ public abstract class AbstractPersistent
if ((objectData.getPolicyIds() != null) &&
(objectData.getPolicyIds().getPolicyIds() != null)) {
policies = new ArrayList<Policy>();
for (String pid : objectData.getPolicyIds().getPolicyIds()) {
- CmisObject policy = session.getObject(pid);
+ CmisObject policy =
session.getObject(getSession().createObjectId(pid));
if (policy instanceof Policy) {
policies.add((Policy) policy);
}
@@ -527,56 +528,38 @@ public abstract class AbstractPersistent
* (non-Javadoc)
*
* @see
- *
org.apache.opencmis.client.api.CmisObject#applyPolicy(org.apache.opencmis.client.api.Policy)
+ *
org.apache.opencmis.client.api.CmisObject#applyPolicy(org.apache.opencmis.client.api.ObjectId)
*/
- public void applyPolicy(Policy policy) {
- if (policy == null) {
+ public void applyPolicy(ObjectId policyId) {
+ if (policyId == null) {
throw new IllegalArgumentException("Policy is not set!");
}
-
- applyPolicy(policy.getId());
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
org.apache.opencmis.client.api.CmisObject#applyPolicy(java.lang.String)
- */
- public void applyPolicy(String policyId) {
- if (policyId == null) {
+ if (policyId.getId() == null) {
throw new IllegalArgumentException("Policy id is not set!");
}
String objectId = getObjectId();
- getProvider().getPolicyService().applyPolicy(getRepositoryId(), policyId,
objectId, null);
+ getProvider().getPolicyService().applyPolicy(getRepositoryId(),
policyId.getId(), objectId,
+ null);
}
/*
* (non-Javadoc)
*
* @see
- *
org.apache.opencmis.client.api.CmisObject#removePolicy(org.apache.opencmis.client.api.Policy)
+ *
org.apache.opencmis.client.api.CmisObject#removePolicy(org.apache.opencmis.client.api.ObjectId)
*/
- public void removePolicy(Policy policy) {
- if (policy == null) {
+ public void removePolicy(ObjectId policyId) {
+ if (policyId == null) {
throw new IllegalArgumentException("Policy is not set!");
}
-
- removePolicy(policy.getId());
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
org.apache.opencmis.client.api.CmisObject#removePolicy(java.lang.String)
- */
- public void removePolicy(String policyId) {
- if (policyId == null) {
+ if (policyId.getId() == null) {
throw new IllegalArgumentException("Policy id is not set!");
}
String objectId = getObjectId();
- getProvider().getPolicyService().removePolicy(getRepositoryId(), policyId,
objectId, null);
+ getProvider().getPolicyService().removePolicy(getRepositoryId(),
policyId.getId(), objectId,
+ null);
}
/*
Modified:
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AbstractPersistentFilableCmisObject.java
URL:
http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AbstractPersistentFilableCmisObject.java?rev=921124&r1=921123&r2=921124&view=diff
==============================================================================
---
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AbstractPersistentFilableCmisObject.java
(original)
+++
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AbstractPersistentFilableCmisObject.java
Tue Mar 9 20:58:59 2010
@@ -24,6 +24,7 @@ import java.util.List;
import org.apache.opencmis.client.api.CmisObject;
import org.apache.opencmis.client.api.FileableCmisObject;
import org.apache.opencmis.client.api.Folder;
+import org.apache.opencmis.client.api.ObjectId;
import org.apache.opencmis.commons.PropertyIds;
import org.apache.opencmis.commons.enums.IncludeRelationships;
import org.apache.opencmis.commons.exceptions.CmisRuntimeException;
@@ -68,7 +69,8 @@ public abstract class AbstractPersistent
}
// fetch the object and make sure it is a folder
- CmisObject parentFolder = getSession().getObject((String)
idProperty.getFirstValue());
+ ObjectId parentId = getSession().createObjectId((String)
idProperty.getFirstValue());
+ CmisObject parentFolder = getSession().getObject(parentId);
if (!(parentFolder instanceof Folder)) {
// the repository sent an object that is not a folder...
throw new CmisRuntimeException("Repository sent invalid data! Object
is not a folder!");
@@ -124,51 +126,35 @@ public abstract class AbstractPersistent
* (non-Javadoc)
*
* @see
- *
org.apache.opencmis.client.api.FileableCmisObject#move(org.apache.opencmis.client.api.Folder,
- * org.apache.opencmis.client.api.Folder)
+ *
org.apache.opencmis.client.api.FileableCmisObject#move(org.apache.opencmis.client.api.ObjectId,
+ * org.apache.opencmis.client.api.ObjectId)
*/
- public FileableCmisObject move(Folder sourceFolder, Folder targetFolder) {
- if (sourceFolder == null) {
- throw new IllegalArgumentException("Source folder must be set!");
- }
-
- if (targetFolder == null) {
- throw new IllegalArgumentException("Target folder must be set!");
- }
-
- return move(sourceFolder.getId(), targetFolder.getId());
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
org.apache.opencmis.client.api.FileableCmisObject#move(java.lang.String,
java.lang.String)
- */
- public FileableCmisObject move(String sourceFolderId, String targetFolderId)
{
+ public FileableCmisObject move(ObjectId sourceFolderId, ObjectId
targetFolderId) {
String objectId = getObjectId();
Holder<String> objectIdHolder = new Holder<String>(objectId);
- if (sourceFolderId == null) {
+ if ((sourceFolderId == null) || (sourceFolderId.getId() == null)) {
throw new IllegalArgumentException("Source folder id must be set!");
}
- if (targetFolderId == null) {
+ if ((targetFolderId == null) || (targetFolderId.getId() == null)) {
throw new IllegalArgumentException("Target folder id must be set!");
}
- getProvider().getObjectService().moveObject(getRepositoryId(),
objectIdHolder, targetFolderId,
- sourceFolderId, null);
+ getProvider().getObjectService().moveObject(getRepositoryId(),
objectIdHolder,
+ targetFolderId.getId(), sourceFolderId.getId(), null);
if (objectIdHolder.getValue() == null) {
return null;
}
- CmisObject movedObject = getSession().getObject(objectIdHolder.getValue());
- if (movedObject instanceof FileableCmisObject) {
- return (FileableCmisObject) movedObject;
+ CmisObject movedObject = getSession().getObject(
+ getSession().createObjectId(objectIdHolder.getValue()));
+ if (!(movedObject instanceof FileableCmisObject)) {
+ throw new CmisRuntimeException("Moved object is invalid!");
}
- return null;
+ return (FileableCmisObject) movedObject;
}
/*
@@ -176,21 +162,17 @@ public abstract class AbstractPersistent
*
* @see
*
org.apache.opencmis.client.api.FileableCmisObject#addToFolder(org.apache.opencmis.client.api
- * .Folder, boolean)
+ * .ObjectId, boolean)
*/
- public void addToFolder(Folder folder, boolean allVersions) {
+ public void addToFolder(ObjectId folderId, boolean allVersions) {
String objectId = getObjectId();
- if (folder == null) {
- throw new IllegalArgumentException("Folder must be set!");
- }
-
- if (folder.getId() == null) {
- throw new IllegalArgumentException("Folder must contain an object id!");
+ if ((folderId == null) || (folderId.getId() == null)) {
+ throw new IllegalArgumentException("Folder Id must be set!");
}
getProvider().getMultiFilingService().addObjectToFolder(getRepositoryId(),
objectId,
- folder.getId(), allVersions, null);
+ folderId.getId(), allVersions, null);
}
/*
@@ -198,20 +180,16 @@ public abstract class AbstractPersistent
*
* @see
*
org.apache.opencmis.client.api.FileableCmisObject#removeFromFolder(org.apache.opencmis.client
- * .api.Folder)
+ * .api.ObjectId)
*/
- public void removeFromFolder(Folder folder) {
+ public void removeFromFolder(ObjectId folderId) {
String objectId = getObjectId();
- if (folder == null) {
- throw new IllegalArgumentException("Folder must be set!");
- }
-
- if (folder.getId() == null) {
- throw new IllegalArgumentException("Folder must contain an object id!");
+ if ((folderId == null) || (folderId.getId() == null)) {
+ throw new IllegalArgumentException("Folder Id must be set!");
}
getProvider().getMultiFilingService().removeObjectFromFolder(getRepositoryId(),
objectId,
- folder.getId(), null);
+ folderId.getId(), null);
}
}
Added:
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/ObjectIdImpl.java
URL:
http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/ObjectIdImpl.java?rev=921124&view=auto
==============================================================================
---
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/ObjectIdImpl.java
(added)
+++
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/ObjectIdImpl.java
Tue Mar 9 20:58:59 2010
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.opencmis.client.runtime;
+
+import org.apache.opencmis.client.api.ObjectId;
+
+/**
+ * Implementation of <code>ObjectId</code>.
+ */
+public class ObjectIdImpl implements ObjectId {
+
+ private String id;
+
+ /**
+ * Constructor.
+ */
+ public ObjectIdImpl(String id) {
+ setId(id);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.opencmis.client.api.ObjectId#getId()
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Sets the id.
+ */
+ public void setId(String id) {
+ if ((id == null) || (id.length() == 0)) {
+ throw new IllegalArgumentException("Id must be set!");
+ }
+
+ this.id = id;
+ }
+}
Propchange:
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/ObjectIdImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentDocumentImpl.java
URL:
http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentDocumentImpl.java?rev=921124&r1=921123&r2=921124&view=diff
==============================================================================
---
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentDocumentImpl.java
(original)
+++
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentDocumentImpl.java
Tue Mar 9 20:58:59 2010
@@ -26,6 +26,7 @@ import org.apache.opencmis.client.api.Ac
import org.apache.opencmis.client.api.CmisObject;
import org.apache.opencmis.client.api.ContentStream;
import org.apache.opencmis.client.api.Document;
+import org.apache.opencmis.client.api.ObjectId;
import org.apache.opencmis.client.api.OperationContext;
import org.apache.opencmis.client.api.Policy;
import org.apache.opencmis.client.api.Property;
@@ -220,7 +221,7 @@ public class PersistentDocumentImpl exte
* @see org.apache.opencmis.client.api.Document#setContentStream(boolean,
* org.apache.opencmis.client.api.ContentStream)
*/
- public String setContentStream(boolean overwrite, ContentStream
contentStream) {
+ public ObjectId setContentStream(boolean overwrite, ContentStream
contentStream) {
String objectId = getObjectId();
Holder<String> objectIdHolder = new Holder<String>(objectId);
@@ -230,7 +231,11 @@ public class PersistentDocumentImpl exte
getProvider().getObjectService().setContentStream(getRepositoryId(),
objectIdHolder, overwrite,
changeTokenHolder, SessionUtil.convertContentStream(getSession(),
contentStream), null);
- return objectIdHolder.getValue();
+ if (objectIdHolder.getValue() == null) {
+ return null;
+ }
+
+ return getSession().createObjectId(objectIdHolder.getValue());
}
/*
@@ -238,7 +243,7 @@ public class PersistentDocumentImpl exte
*
* @see org.apache.opencmis.client.api.Document#deleteContentStream()
*/
- public String deleteContentStream() {
+ public ObjectId deleteContentStream() {
String objectId = getObjectId();
Holder<String> objectIdHolder = new Holder<String>(objectId);
@@ -248,6 +253,10 @@ public class PersistentDocumentImpl exte
getProvider().getObjectService().deleteContentStream(getRepositoryId(),
objectIdHolder,
changeTokenHolder, null);
- return objectIdHolder.getValue();
+ if (objectIdHolder.getValue() == null) {
+ return null;
+ }
+
+ return getSession().createObjectId(objectIdHolder.getValue());
}
}
Modified:
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentFolderImpl.java
URL:
http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentFolderImpl.java?rev=921124&r1=921123&r2=921124&view=diff
==============================================================================
---
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentFolderImpl.java
(original)
+++
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentFolderImpl.java
Tue Mar 9 20:58:59 2010
@@ -18,11 +18,9 @@
*/
package org.apache.opencmis.client.runtime;
-import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.GregorianCalendar;
import java.util.List;
import org.apache.opencmis.client.api.Ace;
@@ -31,6 +29,7 @@ import org.apache.opencmis.client.api.Co
import org.apache.opencmis.client.api.Document;
import org.apache.opencmis.client.api.FileableCmisObject;
import org.apache.opencmis.client.api.Folder;
+import org.apache.opencmis.client.api.ObjectId;
import org.apache.opencmis.client.api.OperationContext;
import org.apache.opencmis.client.api.Policy;
import org.apache.opencmis.client.api.Property;
@@ -45,7 +44,6 @@ import org.apache.opencmis.commons.enums
import org.apache.opencmis.commons.enums.UnfileObjects;
import org.apache.opencmis.commons.enums.VersioningState;
import org.apache.opencmis.commons.exceptions.CmisRuntimeException;
-import org.apache.opencmis.commons.provider.AccessControlList;
import org.apache.opencmis.commons.provider.FailedToDeleteData;
import org.apache.opencmis.commons.provider.NavigationService;
import org.apache.opencmis.commons.provider.ObjectData;
@@ -53,10 +51,8 @@ import org.apache.opencmis.commons.provi
import org.apache.opencmis.commons.provider.ObjectInFolderData;
import org.apache.opencmis.commons.provider.ObjectInFolderList;
import org.apache.opencmis.commons.provider.ObjectList;
-import org.apache.opencmis.commons.provider.PropertiesData;
import org.apache.opencmis.commons.provider.PropertyData;
import org.apache.opencmis.commons.provider.PropertyStringData;
-import org.apache.opencmis.commons.provider.ProviderObjectFactory;
public class PersistentFolderImpl extends AbstractPersistentFilableCmisObject
implements Folder {
@@ -88,12 +84,12 @@ public class PersistentFolderImpl extend
SessionUtil.convertAces(getSession(), removeAces), null);
// if no context is provided the object will not be fetched
- if (context == null) {
+ if ((context == null) || (newId == null)) {
return null;
}
// get the new object
- CmisObject object = getSession().getObject(newId, context);
+ CmisObject object =
getSession().getObject(getSession().createObjectId(newId), context);
if (!(object instanceof Document)) {
throw new CmisRuntimeException("Newly created object is not a document!
New id: " + newId);
}
@@ -106,16 +102,16 @@ public class PersistentFolderImpl extend
*
* @see
*
org.apache.opencmis.client.api.Folder#createDocumentFromSource(org.apache.opencmis.client.api
- * .Document, java.util.List,
org.apache.opencmis.commons.enums.VersioningState, java.util.List,
+ * .ObjectId, java.util.List,
org.apache.opencmis.commons.enums.VersioningState, java.util.List,
* java.util.List, java.util.List,
org.apache.opencmis.client.api.OperationContext)
*/
- public Document createDocumentFromSource(Document source, List<Property<?>>
properties,
+ public Document createDocumentFromSource(ObjectId source, List<Property<?>>
properties,
VersioningState versioningState, List<Policy> policies, List<Ace>
addAces,
List<Ace> removeAces, OperationContext context) {
String objectId = getObjectId();
if ((source == null) || (source.getId() == null)) {
- throw new IllegalArgumentException("Source document has no id!");
+ throw new IllegalArgumentException("Source must be set!");
}
String newId =
getProvider().getObjectService().createDocumentFromSource(getRepositoryId(),
@@ -125,12 +121,12 @@ public class PersistentFolderImpl extend
SessionUtil.convertAces(getSession(), removeAces), null);
// if no context is provided the object will not be fetched
- if (context == null) {
+ if ((context == null) || (newId == null)) {
return null;
}
// get the new object
- CmisObject object = getSession().getObject(newId, context);
+ CmisObject object =
getSession().getObject(getSession().createObjectId(newId), context);
if (!(object instanceof Document)) {
throw new CmisRuntimeException("Newly created object is not a document!
New id: " + newId);
}
@@ -154,12 +150,12 @@ public class PersistentFolderImpl extend
SessionUtil.convertAces(getSession(), removeAces), null);
// if no context is provided the object will not be fetched
- if (context == null) {
+ if ((context == null) || (newId == null)) {
return null;
}
// get the new object
- CmisObject object = getSession().getObject(newId, context);
+ CmisObject object =
getSession().getObject(getSession().createObjectId(newId), context);
if (!(object instanceof Folder)) {
throw new CmisRuntimeException("Newly created object is not a folder!
New id: " + newId);
}
@@ -183,12 +179,12 @@ public class PersistentFolderImpl extend
SessionUtil.convertAces(getSession(), removeAces), null);
// if no context is provided the object will not be fetched
- if (context == null) {
+ if ((context == null) || (newId == null)) {
return null;
}
// get the new object
- CmisObject object = getSession().getObject(newId, context);
+ CmisObject object =
getSession().getObject(getSession().createObjectId(newId), context);
if (!(object instanceof Policy)) {
throw new CmisRuntimeException("Newly created object is not a policy!
New id: " + newId);
}
@@ -520,99 +516,4 @@ public class PersistentFolderImpl extend
public List<String> getPaths() {
return Collections.singletonList(getPath());
}
-
- /**
- * Create folder in backend
- *
- * @param parent
- * @param properties
- * @param policies
- * @param addACEs
- * @param removeACEs
- */
- public void create(Folder parent, List<Property<?>> properties, List<Policy>
policies,
- List<Ace> addAce, List<Ace> removeAce) {
-
- String repositoryId = getRepositoryId();
- String parentFolderId = parent.getId();
- PropertiesData pd = this.convertToPropertiesData(properties);
- List<String> pol = this.convertToPoliciesData(policies);
- AccessControlList addAcl = SessionUtil.convertAces(getSession(), addAce);
- AccessControlList removeAcl = SessionUtil.convertAces(getSession(),
removeAce);
-
- String objectId =
getProvider().getObjectService().createFolder(repositoryId, pd,
- parentFolderId, pol, addAcl, removeAcl, null);
- ObjectData newObjectData =
getProvider().getObjectService().getObject(repositoryId, objectId,
- null, false, IncludeRelationships.NONE, null, true, true, null);
-
- // getSession().getCache().put(this);
- }
-
- private List<String> convertToPoliciesData(List<Policy> policies) {
- List<String> pList = null;
-
- if (policies != null) {
- pList = new ArrayList<String>();
- for (Policy pol : policies) {
- pList.add(pol.getId());
- }
- }
- return pList;
- }
-
- @SuppressWarnings("unchecked")
- private PropertiesData convertToPropertiesData(List<Property<?>>
origProperties) {
- ProviderObjectFactory of = getProvider().getObjectFactory();
-
- List<PropertyData<?>> convProperties = new ArrayList<PropertyData<?>>();
- PropertyData<?> convProperty = null;
-
- convProperties.add(of.createPropertyStringData(PropertyIds.CMIS_NAME,
"testfolder"));
-
convProperties.add(of.createPropertyIdData(PropertyIds.CMIS_OBJECT_TYPE_ID,
"cmis_Folder"));
-
- for (Property<?> origProperty : origProperties) {
-
- switch (origProperty.getType()) {
- case BOOLEAN:
- Property<Boolean> pb = (Property<Boolean>) origProperty;
- convProperty = of.createPropertyBooleanData(pb.getId(), pb.getValue());
- break;
- case DATETIME:
- Property<GregorianCalendar> pg = (Property<GregorianCalendar>)
origProperty;
- convProperty = of.createPropertyDateTimeData(pg.getId(),
pg.getValue());
- break;
- case DECIMAL:
- Property<BigDecimal> pd = (Property<BigDecimal>) origProperty;
- convProperty = of.createPropertyDecimalData(pd.getId(), pd.getValue());
- break;
- case HTML:
- Property<String> ph = (Property<String>) origProperty;
- convProperty = of.createPropertyHtmlData(ph.getId(), ph.getValue());
- break;
- case ID:
- Property<String> pi = (Property<String>) origProperty;
- convProperty = of.createPropertyIdData(pi.getId(), pi.getValue());
- break;
- case INTEGER:
- Property<BigInteger> pn = (Property<BigInteger>) origProperty;
- convProperty = of.createPropertyIntegerData(pn.getId(), pn.getValue());
- break;
- case STRING:
- Property<String> ps = (Property<String>) origProperty;
- convProperty = of.createPropertyStringData(ps.getId(), ps.getValue());
- break;
- case URI:
- Property<String> pu = (Property<String>) origProperty;
- convProperty = of.createPropertyUriData(pu.getId(), pu.getValue());
- break;
- default:
- throw new CmisRuntimeException("unsupported property type" +
origProperty.getType());
- }
- convProperties.add(convProperty);
- }
-
- PropertiesData pd = of.createPropertiesData(convProperties);
-
- return pd;
- }
}
Modified:
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentRelationshipImpl.java
URL:
http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentRelationshipImpl.java?rev=921124&r1=921123&r2=921124&view=diff
==============================================================================
---
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentRelationshipImpl.java
(original)
+++
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentRelationshipImpl.java
Tue Mar 9 20:58:59 2010
@@ -56,7 +56,7 @@ public class PersistentRelationshipImpl
return null;
}
- return getSession().getObject(sourceId, context);
+ return getSession().getObject(getSession().createObjectId(sourceId),
context);
}
/*
@@ -79,7 +79,7 @@ public class PersistentRelationshipImpl
return null;
}
- return getSession().getObject(targetId, context);
+ return getSession().getObject(getSession().createObjectId(targetId),
context);
}
}
Modified:
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentSessionImpl.java
URL:
http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentSessionImpl.java?rev=921124&r1=921123&r2=921124&view=diff
==============================================================================
---
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentSessionImpl.java
(original)
+++
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentSessionImpl.java
Tue Mar 9 20:58:59 2010
@@ -36,6 +36,7 @@ import org.apache.opencmis.client.api.Co
import org.apache.opencmis.client.api.Document;
import org.apache.opencmis.client.api.ExtensionHandler;
import org.apache.opencmis.client.api.Folder;
+import org.apache.opencmis.client.api.ObjectId;
import org.apache.opencmis.client.api.OperationContext;
import org.apache.opencmis.client.api.PersistentSession;
import org.apache.opencmis.client.api.Policy;
@@ -323,6 +324,15 @@ public class PersistentSessionImpl imple
includeRelationships, renditionFilter, includePathSegments, orderBy,
cacheEnabled);
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see
org.apache.opencmis.client.api.Session#createObjectId(java.lang.String)
+ */
+ public ObjectId createObjectId(String id) {
+ return new ObjectIdImpl(id);
+ }
+
public Locale getLocale() {
return this.locale;
}
@@ -332,7 +342,7 @@ public class PersistentSessionImpl imple
*
* @see org.apache.opencmis.client.api.Session#getObject(java.lang.String)
*/
- public CmisObject getObject(String objectId) {
+ public CmisObject getObject(ObjectId objectId) {
return getObject(objectId, getDefaultContext());
}
@@ -342,8 +352,8 @@ public class PersistentSessionImpl imple
* @see org.apache.opencmis.client.api.Session#getObject(java.lang.String,
* org.apache.opencmis.client.api.OperationContext)
*/
- public CmisObject getObject(String objectId, OperationContext context) {
- if (objectId == null) {
+ public CmisObject getObject(ObjectId objectId, OperationContext context) {
+ if ((objectId == null) || (objectId.getId() == null)) {
throw new IllegalArgumentException("Object Id must be set!");
}
if (context == null) {
@@ -354,15 +364,15 @@ public class PersistentSessionImpl imple
// ask the cache first
if (context.isCacheEnabled()) {
- result = this.cache.getById(objectId, context.getCacheKey());
+ result = this.cache.getById(objectId.getId(), context.getCacheKey());
if (result != null) {
return result;
}
}
// get the object
- ObjectData objectData =
this.provider.getObjectService().getObject(getRepositoryId(), objectId,
- context.getFilterString(), context.isIncludeAllowableActions(),
+ ObjectData objectData =
this.provider.getObjectService().getObject(getRepositoryId(),
+ objectId.getId(), context.getFilterString(),
context.isIncludeAllowableActions(),
context.getIncludeRelationships(), context.getRenditionFilterString(),
context.isIncludePolicies(), context.isIncludeAcls(), null);
@@ -466,7 +476,7 @@ public class PersistentSessionImpl imple
public Folder getRootFolder(OperationContext context) {
String rootFolderId = getRepositoryInfo().getRootFolderId();
- CmisObject rootFolder = getObject(rootFolderId, context);
+ CmisObject rootFolder = getObject(createObjectId(rootFolderId), context);
if (!(rootFolder instanceof Folder)) {
throw new CmisRuntimeException("Root folder object is not a folder!");
}
@@ -654,7 +664,7 @@ public class PersistentSessionImpl imple
if (parameter.containsKey(Testable.ROOT_FOLDER_ID_PARAMETER)) {
// test root folder
String testRootId = parameter.get(Testable.ROOT_FOLDER_ID_PARAMETER);
- rootFolder = (Folder) this.getObject(testRootId);
+ rootFolder = (Folder) this.getObject(createObjectId(testRootId));
}
else {
// repository root
@@ -678,7 +688,8 @@ public class PersistentSessionImpl imple
objectTypeIdPropertyType, folderTypeId);
properties.add(typeProperty);
- this.testRootFolder = rootFolder.createFolder(properties, null, null,
null, getDefaultContext());
+ this.testRootFolder = rootFolder
+ .createFolder(properties, null, null, null, getDefaultContext());
og.setContentSizeInKB(10);
og.setDocumentTypeId(documentTypeId);
@@ -779,19 +790,30 @@ public class PersistentSessionImpl imple
/*
* (non-Javadoc)
*
- * @see
org.apache.opencmis.client.api.Session#createDocument(java.util.List,
java.lang.String,
- * org.apache.opencmis.client.api.ContentStream,
+ * @see org.apache.opencmis.client.api.Session#createDocument(java.util.List,
+ * org.apache.opencmis.client.api.ObjectId,
org.apache.opencmis.client.api.ContentStream,
* org.apache.opencmis.commons.enums.VersioningState, java.util.List,
java.util.List,
* java.util.List)
*/
- public String createDocument(List<Property<?>> properties, String folderId,
+ public ObjectId createDocument(List<Property<?>> properties, ObjectId
folderId,
ContentStream contentStream, VersioningState versioningState,
List<Policy> policies,
List<Ace> addAces, List<Ace> removeAces) {
- return getProvider().getObjectService().createDocument(getRepositoryId(),
- SessionUtil.convertProperties(this, properties), folderId,
+ if ((folderId != null) && (folderId.getId() == null)) {
+ throw new IllegalArgumentException("Folder Id must be set!");
+ }
+
+ String newId =
getProvider().getObjectService().createDocument(getRepositoryId(),
+ SessionUtil.convertProperties(this, properties),
+ (folderId == null ? null : folderId.getId()),
SessionUtil.convertContentStream(this, contentStream), versioningState,
SessionUtil.convertPolicies(policies), SessionUtil.convertAces(this,
addAces),
SessionUtil.convertAces(this, removeAces), null);
+
+ if (newId == null) {
+ return null;
+ }
+
+ return createObjectId(newId);
}
/*
@@ -803,13 +825,24 @@ public class PersistentSessionImpl imple
* org.apache.opencmis.commons.enums.VersioningState, java.util.List,
java.util.List,
* java.util.List)
*/
- public String createDocumentFromSource(Document source, List<Property<?>>
properties,
- String folderId, VersioningState versioningState, List<Policy> policies,
List<Ace> addAces,
+ public ObjectId createDocumentFromSource(ObjectId source, List<Property<?>>
properties,
+ ObjectId folderId, VersioningState versioningState, List<Policy>
policies, List<Ace> addAces,
List<Ace> removeAces) {
- return
getProvider().getObjectService().createDocumentFromSource(getRepositoryId(),
- source.getId(), SessionUtil.convertProperties(this, properties),
folderId, versioningState,
+ if ((folderId != null) && (folderId.getId() == null)) {
+ throw new IllegalArgumentException("Folder Id must be set!");
+ }
+
+ String newId =
getProvider().getObjectService().createDocumentFromSource(getRepositoryId(),
+ source.getId(), SessionUtil.convertProperties(this, properties),
+ (folderId == null ? null : folderId.getId()), versioningState,
SessionUtil.convertPolicies(policies), SessionUtil.convertAces(this,
addAces),
SessionUtil.convertAces(this, removeAces), null);
+
+ if (newId == null) {
+ return null;
+ }
+
+ return createObjectId(newId);
}
/*
@@ -818,12 +851,22 @@ public class PersistentSessionImpl imple
* @see org.apache.opencmis.client.api.Session#createFolder(java.util.List,
java.lang.String,
* java.util.List, java.util.List, java.util.List)
*/
- public String createFolder(List<Property<?>> properties, String folderId,
List<Policy> policies,
- List<Ace> addAces, List<Ace> removeAces) {
- return getProvider().getObjectService().createFolder(getRepositoryId(),
- SessionUtil.convertProperties(this, properties), folderId,
- SessionUtil.convertPolicies(policies), SessionUtil.convertAces(this,
addAces),
- SessionUtil.convertAces(this, removeAces), null);
+ public ObjectId createFolder(List<Property<?>> properties, ObjectId folderId,
+ List<Policy> policies, List<Ace> addAces, List<Ace> removeAces) {
+ if ((folderId != null) && (folderId.getId() == null)) {
+ throw new IllegalArgumentException("Folder Id must be set!");
+ }
+
+ String newId =
getProvider().getObjectService().createFolder(getRepositoryId(),
+ SessionUtil.convertProperties(this, properties),
+ (folderId == null ? null : folderId.getId()),
SessionUtil.convertPolicies(policies),
+ SessionUtil.convertAces(this, addAces), SessionUtil.convertAces(this,
removeAces), null);
+
+ if (newId == null) {
+ return null;
+ }
+
+ return createObjectId(newId);
}
/*
@@ -832,12 +875,22 @@ public class PersistentSessionImpl imple
* @see org.apache.opencmis.client.api.Session#createPolicy(java.util.List,
java.lang.String,
* java.util.List, java.util.List, java.util.List)
*/
- public String createPolicy(List<Property<?>> properties, String folderId,
List<Policy> policies,
- List<Ace> addAces, List<Ace> removeAces) {
- return getProvider().getObjectService().createPolicy(getRepositoryId(),
- SessionUtil.convertProperties(this, properties), folderId,
- SessionUtil.convertPolicies(policies), SessionUtil.convertAces(this,
addAces),
- SessionUtil.convertAces(this, removeAces), null);
+ public ObjectId createPolicy(List<Property<?>> properties, ObjectId folderId,
+ List<Policy> policies, List<Ace> addAces, List<Ace> removeAces) {
+ if ((folderId != null) && (folderId.getId() == null)) {
+ throw new IllegalArgumentException("Folder Id must be set!");
+ }
+
+ String newId =
getProvider().getObjectService().createPolicy(getRepositoryId(),
+ SessionUtil.convertProperties(this, properties),
+ (folderId == null ? null : folderId.getId()),
SessionUtil.convertPolicies(policies),
+ SessionUtil.convertAces(this, addAces), SessionUtil.convertAces(this,
removeAces), null);
+
+ if (newId == null) {
+ return null;
+ }
+
+ return createObjectId(newId);
}
/*
@@ -846,11 +899,16 @@ public class PersistentSessionImpl imple
* @see
org.apache.opencmis.client.api.Session#createRelationship(java.util.List,
java.util.List,
* java.util.List, java.util.List)
*/
- public String createRelationship(List<Property<?>> properties, List<Policy>
policies,
+ public ObjectId createRelationship(List<Property<?>> properties,
List<Policy> policies,
List<Ace> addAces, List<Ace> removeAces) {
-
- return
getProvider().getObjectService().createRelationship(getRepositoryId(),
+ String newId =
getProvider().getObjectService().createRelationship(getRepositoryId(),
SessionUtil.convertProperties(this, properties),
SessionUtil.convertPolicies(policies),
SessionUtil.convertAces(this, addAces), SessionUtil.convertAces(this,
removeAces), null);
+
+ if (newId == null) {
+ return null;
+ }
+
+ return createObjectId(newId);
}
}
Modified:
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/RenditionImpl.java
URL:
http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/RenditionImpl.java?rev=921124&r1=921123&r2=921124&view=diff
==============================================================================
---
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/RenditionImpl.java
(original)
+++
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/RenditionImpl.java
Tue Mar 9 20:58:59 2010
@@ -138,7 +138,8 @@ public class RenditionImpl implements Re
return null;
}
- CmisObject rendDoc = session.getObject(this.renditionDocumentId, context);
+ CmisObject rendDoc =
session.getObject(session.createObjectId(this.renditionDocumentId),
+ context);
if (!(rendDoc instanceof Document)) {
return null;
}
Modified:
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/ReadOnlySessionTest.java
URL:
http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/ReadOnlySessionTest.java?rev=921124&r1=921123&r2=921124&view=diff
==============================================================================
---
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/ReadOnlySessionTest.java
(original)
+++
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/ReadOnlySessionTest.java
Tue Mar 9 20:58:59 2010
@@ -20,8 +20,9 @@ package org.apache.opencmis.client.runti
import junit.framework.Assert;
-import org.junit.Test;
import org.apache.opencmis.client.api.Folder;
+import org.apache.opencmis.client.api.ObjectId;
+import org.junit.Test;
/**
* Testing session
@@ -41,8 +42,7 @@ public class ReadOnlySessionTest extends
Folder root = this.session.getRootFolder();
Assert.assertNotNull(root);
String id = root.getId();
- Assert.assertNotNull(this.session.getObject(id));
-
+ //Assert.assertNotNull(this.session.getObject(objectId));
}
@Test
Modified:
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/mock/MockSessionFactory.java
URL:
http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/mock/MockSessionFactory.java?rev=921124&r1=921123&r2=921124&view=diff
==============================================================================
---
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/mock/MockSessionFactory.java
(original)
+++
incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/mock/MockSessionFactory.java
Tue Mar 9 20:58:59 2010
@@ -42,9 +42,9 @@ import org.apache.opencmis.client.api.Co
import org.apache.opencmis.client.api.Document;
import org.apache.opencmis.client.api.FileableCmisObject;
import org.apache.opencmis.client.api.Folder;
+import org.apache.opencmis.client.api.ObjectId;
import org.apache.opencmis.client.api.OperationContext;
import org.apache.opencmis.client.api.Property;
-import org.apache.opencmis.client.api.QueryProperty;
import org.apache.opencmis.client.api.QueryResult;
import org.apache.opencmis.client.api.Session;
import org.apache.opencmis.client.api.SessionFactory;
@@ -131,12 +131,17 @@ public class MockSessionFactory implemen
this.createMockRepositoryInfo()).anyTimes();
expect(session.getRootFolder()).andReturn(rootFolder).anyTimes();
+ String id = rootFolder.getId();
+ ObjectId objectId = createMockObjectId(id);
+ expect(session.createObjectId(id)).andReturn(objectId).anyTimes();
+
+
expect(session.getDefaultContext()).andReturn(this.createMockOperationContext())
.anyTimes();
expect(session.getLocale()).andReturn(new
Locale("EN")).anyTimes();
expect(session.getObjectFactory()).andReturn(
this.createMockObjectFactory()).anyTimes();
-
+
expect(session.getTypeDefinition(ObjectType.DOCUMENT_BASETYPE_ID))
.andReturn(
this.idTypeIndex.get(ObjectType.DOCUMENT_BASETYPE_ID))
@@ -228,7 +233,8 @@ public class MockSessionFactory implemen
id = e.nextElement();
obj = this.idObjectIndex.get(id);
- expect(s.getObject(id)).andReturn(obj).anyTimes();
+ ObjectId objectId = createMockObjectId(id);
+ expect(s.getObject(objectId)).andReturn(obj).anyTimes();
}
}
@@ -240,6 +246,16 @@ public class MockSessionFactory implemen
return of;
}
+ private ObjectId createMockObjectId(String id) {
+ ObjectId oid = createNiceMock(ObjectId.class);
+
+ expect(oid.getId()).andReturn(id).anyTimes();
+
+ replay(oid);
+
+ return oid;
+ }
+
private OperationContext createMockOperationContext() {
OperationContext oc = createNiceMock(OperationContext.class);