You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fm...@apache.org on 2010/11/11 13:46:31 UTC
svn commit: r1033918 [3/3] - in
/incubator/chemistry/opencmis/branches/client-api-refactoring:
chemistry-opencmis-client/chemistry-opencmis-client-api/src/main/java/org/apache/chemistry/opencmis/client/api/
chemistry-opencmis-client/chemistry-opencmis-...
Added: incubator/chemistry/opencmis/branches/client-api-refactoring/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/repository/ObjectFactoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/branches/client-api-refactoring/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/repository/ObjectFactoryImpl.java?rev=1033918&view=auto
==============================================================================
--- incubator/chemistry/opencmis/branches/client-api-refactoring/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/repository/ObjectFactoryImpl.java (added)
+++ incubator/chemistry/opencmis/branches/client-api-refactoring/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/repository/ObjectFactoryImpl.java Thu Nov 11 12:46:30 2010
@@ -0,0 +1,554 @@
+/*
+ * 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.chemistry.opencmis.client.runtime.repository;
+
+import java.io.InputStream;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.GregorianCalendar;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.chemistry.opencmis.client.api.ChangeEvent;
+import org.apache.chemistry.opencmis.client.api.ChangeEvents;
+import org.apache.chemistry.opencmis.client.api.CmisObject;
+import org.apache.chemistry.opencmis.client.api.ObjectFactory;
+import org.apache.chemistry.opencmis.client.api.ObjectType;
+import org.apache.chemistry.opencmis.client.api.OperationContext;
+import org.apache.chemistry.opencmis.client.api.Policy;
+import org.apache.chemistry.opencmis.client.api.Property;
+import org.apache.chemistry.opencmis.client.api.QueryResult;
+import org.apache.chemistry.opencmis.client.api.Rendition;
+import org.apache.chemistry.opencmis.client.runtime.ChangeEventImpl;
+import org.apache.chemistry.opencmis.client.runtime.ChangeEventsImpl;
+import org.apache.chemistry.opencmis.client.runtime.DocumentImpl;
+import org.apache.chemistry.opencmis.client.runtime.FolderImpl;
+import org.apache.chemistry.opencmis.client.runtime.PolicyImpl;
+import org.apache.chemistry.opencmis.client.runtime.PropertyImpl;
+import org.apache.chemistry.opencmis.client.runtime.RelationshipImpl;
+import org.apache.chemistry.opencmis.client.runtime.SessionImpl;
+import org.apache.chemistry.opencmis.client.runtime.QueryResultImpl;
+import org.apache.chemistry.opencmis.client.runtime.RenditionImpl;
+import org.apache.chemistry.opencmis.client.runtime.objecttype.DocumentTypeImpl;
+import org.apache.chemistry.opencmis.client.runtime.objecttype.FolderTypeImpl;
+import org.apache.chemistry.opencmis.client.runtime.objecttype.PolicyTypeImpl;
+import org.apache.chemistry.opencmis.client.runtime.objecttype.RelationshipTypeImpl;
+import org.apache.chemistry.opencmis.commons.PropertyIds;
+import org.apache.chemistry.opencmis.commons.data.Ace;
+import org.apache.chemistry.opencmis.commons.data.Acl;
+import org.apache.chemistry.opencmis.commons.data.ContentStream;
+import org.apache.chemistry.opencmis.commons.data.ObjectData;
+import org.apache.chemistry.opencmis.commons.data.ObjectList;
+import org.apache.chemistry.opencmis.commons.data.Properties;
+import org.apache.chemistry.opencmis.commons.data.PropertyData;
+import org.apache.chemistry.opencmis.commons.data.PropertyId;
+import org.apache.chemistry.opencmis.commons.data.RenditionData;
+import org.apache.chemistry.opencmis.commons.definitions.DocumentTypeDefinition;
+import org.apache.chemistry.opencmis.commons.definitions.FolderTypeDefinition;
+import org.apache.chemistry.opencmis.commons.definitions.PolicyTypeDefinition;
+import org.apache.chemistry.opencmis.commons.definitions.PropertyBooleanDefinition;
+import org.apache.chemistry.opencmis.commons.definitions.PropertyDateTimeDefinition;
+import org.apache.chemistry.opencmis.commons.definitions.PropertyDecimalDefinition;
+import org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition;
+import org.apache.chemistry.opencmis.commons.definitions.PropertyHtmlDefinition;
+import org.apache.chemistry.opencmis.commons.definitions.PropertyIdDefinition;
+import org.apache.chemistry.opencmis.commons.definitions.PropertyIntegerDefinition;
+import org.apache.chemistry.opencmis.commons.definitions.PropertyStringDefinition;
+import org.apache.chemistry.opencmis.commons.definitions.PropertyUriDefinition;
+import org.apache.chemistry.opencmis.commons.definitions.RelationshipTypeDefinition;
+import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
+import org.apache.chemistry.opencmis.commons.enums.Cardinality;
+import org.apache.chemistry.opencmis.commons.enums.ChangeType;
+import org.apache.chemistry.opencmis.commons.enums.Updatability;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException;
+import org.apache.chemistry.opencmis.commons.impl.dataobjects.ContentStreamImpl;
+import org.apache.chemistry.opencmis.commons.spi.BindingsObjectFactory;
+
+/**
+ * Persistent model object factory.
+ */
+public class ObjectFactoryImpl implements ObjectFactory, Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private SessionImpl session = null;
+
+ /**
+ * Constructor.
+ */
+ protected ObjectFactoryImpl(SessionImpl session) {
+ if (session == null) {
+ throw new IllegalArgumentException("Session must be set!");
+ }
+
+ this.session = session;
+ }
+
+ /**
+ * Creates a new factory instance.
+ */
+ public static ObjectFactory newInstance(SessionImpl session) {
+ return new ObjectFactoryImpl(session);
+ }
+
+ /**
+ * Returns the bindings object factory.
+ */
+ protected BindingsObjectFactory getBindingsObjectFactory() {
+ return session.getBinding().getObjectFactory();
+ }
+
+ // ACL and ACE
+
+ public Acl convertAces(List<Ace> aces) {
+ if (aces == null) {
+ return null;
+ }
+
+ BindingsObjectFactory bof = getBindingsObjectFactory();
+
+ List<Ace> providerAces = new ArrayList<Ace>();
+ for (Ace ace : aces) {
+ providerAces.add(bof.createAccessControlEntry(ace.getPrincipalId(), ace.getPermissions()));
+ }
+
+ return bof.createAccessControlList(providerAces);
+ }
+
+ public Ace createAce(String principal, List<String> permissions) {
+ BindingsObjectFactory bof = getBindingsObjectFactory();
+
+ Ace ace = bof.createAccessControlEntry(principal, permissions);
+
+ return ace;
+ }
+
+ public Acl createAcl(List<Ace> aces) {
+ BindingsObjectFactory bof = getBindingsObjectFactory();
+
+ Acl acl = bof.createAccessControlList(aces);
+
+ return acl;
+ }
+
+ // policies
+
+ public List<String> convertPolicies(List<Policy> policies) {
+ if (policies == null) {
+ return null;
+ }
+
+ List<String> result = new ArrayList<String>();
+
+ for (Policy policy : policies) {
+ if ((policy != null) && (policy.getId() != null)) {
+ result.add(policy.getId());
+ }
+ }
+
+ return result;
+ }
+
+ // renditions
+
+ public Rendition convertRendition(String objectId, RenditionData rendition) {
+ if (rendition == null) {
+ throw new IllegalArgumentException("Rendition must be set!");
+ }
+
+ // TODO: what should happen if the length is not set?
+ long length = (rendition.getBigLength() == null ? -1 : rendition.getBigLength().longValue());
+ int height = (rendition.getBigHeight() == null ? -1 : rendition.getBigHeight().intValue());
+ int width = (rendition.getBigWidth() == null ? -1 : rendition.getBigWidth().intValue());
+
+ return new RenditionImpl(this.session, objectId, rendition.getStreamId(), rendition.getRenditionDocumentId(),
+ rendition.getKind(), length, rendition.getMimeType(), rendition.getTitle(), height, width);
+ }
+
+ // content stream
+
+ public ContentStream createContentStream(String filename, long length, String mimetype, InputStream stream) {
+ return new ContentStreamImpl(filename, BigInteger.valueOf(length), mimetype, stream);
+ }
+
+ public ContentStream convertContentStream(ContentStream contentStream) {
+ if (contentStream == null) {
+ return null;
+ }
+
+ BigInteger length = (contentStream.getLength() < 0 ? null : BigInteger.valueOf(contentStream.getLength()));
+
+ return getBindingsObjectFactory().createContentStream(contentStream.getFileName(), length,
+ contentStream.getMimeType(), contentStream.getStream());
+ }
+
+ // types
+
+ public ObjectType convertTypeDefinition(TypeDefinition typeDefinition) {
+ if (typeDefinition instanceof DocumentTypeDefinition) {
+ return new DocumentTypeImpl(this.session, (DocumentTypeDefinition) typeDefinition);
+ } else if (typeDefinition instanceof FolderTypeDefinition) {
+ return new FolderTypeImpl(this.session, (FolderTypeDefinition) typeDefinition);
+ } else if (typeDefinition instanceof RelationshipTypeDefinition) {
+ return new RelationshipTypeImpl(this.session, (RelationshipTypeDefinition) typeDefinition);
+ } else if (typeDefinition instanceof PolicyTypeDefinition) {
+ return new PolicyTypeImpl(this.session, (PolicyTypeDefinition) typeDefinition);
+ } else {
+ throw new CmisRuntimeException("Unknown base type!");
+ }
+ }
+
+ public ObjectType getTypeFromObjectData(ObjectData objectData) {
+ if ((objectData == null) || (objectData.getProperties() == null)
+ || (objectData.getProperties().getProperties() == null)) {
+ return null;
+ }
+
+ PropertyData<?> typeProperty = objectData.getProperties().getProperties().get(PropertyIds.OBJECT_TYPE_ID);
+ if (!(typeProperty instanceof PropertyId)) {
+ return null;
+ }
+
+ return this.session.getTypeDefinition((String) typeProperty.getFirstValue());
+ }
+
+ // properties
+
+ public <T> Property<T> createProperty(PropertyDefinition<T> type, List<T> values) {
+ return new PropertyImpl<T>(type, values);
+ }
+
+ @SuppressWarnings("unchecked")
+ protected <T> Property<T> convertProperty(ObjectType objectType,
+ PropertyData<T> pd) {
+ PropertyDefinition<T> definition = (PropertyDefinition<T>) objectType.getPropertyDefinitions().get(
+ pd.getId());
+ if (definition == null) {
+ // property without definition
+ throw new CmisRuntimeException("Property '" + pd.getId()
+ + "' doesn't exist!");
+ }
+ return createProperty(definition, pd.getValues());
+ }
+
+ public Map<String, Property<?>> convertProperties(ObjectType objectType, Properties properties) {
+ // check input
+ if (objectType == null) {
+ throw new IllegalArgumentException("Object type must set!");
+ }
+
+ if (objectType.getPropertyDefinitions() == null) {
+ throw new IllegalArgumentException("Object type has no property defintions!");
+ }
+
+ if ((properties == null) || (properties.getProperties() == null)) {
+ throw new IllegalArgumentException("Properties must be set!");
+ }
+
+ // iterate through properties and convert them
+ Map<String, Property<?>> result = new LinkedHashMap<String, Property<?>>();
+ for (Map.Entry<String, PropertyData<?>> entry : properties.getProperties().entrySet()) {
+ // find property definition
+ Property<?> apiProperty = convertProperty(objectType, entry.getValue());
+ result.put(entry.getKey(), apiProperty);
+ }
+
+ return result;
+ }
+
+ @SuppressWarnings("unchecked")
+ public Properties convertProperties(Map<String, ?> properties, ObjectType type, Set<Updatability> updatabilityFilter) {
+ // check input
+ if (properties == null) {
+ return null;
+ }
+
+ // get the type
+ if (type == null) {
+ Object typeId = properties.get(PropertyIds.OBJECT_TYPE_ID);
+ if (!(typeId instanceof String)) {
+ throw new IllegalArgumentException("Type or type property must be set!");
+ }
+
+ type = session.getTypeDefinition(typeId.toString());
+ }
+
+ // some preparation
+ BindingsObjectFactory bof = getBindingsObjectFactory();
+ List<PropertyData<?>> propertyList = new ArrayList<PropertyData<?>>();
+
+ // the big loop
+ for (Map.Entry<String, ?> property : properties.entrySet()) {
+ if ((property == null) || (property.getKey() == null)) {
+ continue;
+ }
+
+ String id = property.getKey();
+ Object value = property.getValue();
+
+ if (value instanceof Property<?>) {
+ Property<?> p = (Property<?>) value;
+ if (!id.equals(p.getId())) {
+ throw new IllegalArgumentException("Property id mismatch: '" + id + "' != '" + p.getId() + "'!");
+ }
+ value = (p.getDefinition().getCardinality() == Cardinality.SINGLE ? p.getFirstValue() : p.getValues());
+ }
+
+ // get the property definition
+ PropertyDefinition<?> definition = type.getPropertyDefinitions().get(id);
+ if (definition == null) {
+ throw new IllegalArgumentException("Property +'" + id + "' is not valid for this type!");
+ }
+
+ // check updatability
+ if (updatabilityFilter != null) {
+ if (!updatabilityFilter.contains(definition.getUpdatability())) {
+ continue;
+ }
+ }
+
+ // single and multi value check
+ List<?> values;
+ if (value == null) {
+ values = null;
+ } else if (value instanceof List<?>) {
+ if (definition.getCardinality() != Cardinality.MULTI) {
+ throw new IllegalArgumentException("Property '" + id + "' is not a multi value property!");
+ }
+ values = (List<?>) value;
+
+ // check if the list is homogeneous and does not contain null
+ // values
+ Class<?> valueClazz = null;
+ for (Object o : values) {
+ if (o == null) {
+ throw new IllegalArgumentException("Property '" + id + "' contains null values!");
+ }
+ if (valueClazz == null) {
+ valueClazz = o.getClass();
+ } else {
+ if (!valueClazz.isInstance(o)) {
+ throw new IllegalArgumentException("Property '" + id + "' is inhomogeneous!");
+ }
+ }
+ }
+ } else {
+ if (definition.getCardinality() != Cardinality.SINGLE) {
+ throw new IllegalArgumentException("Property '" + id + "' is not a single value property!");
+ }
+ values = Collections.singletonList(value);
+ }
+
+ // assemble property
+ PropertyData<?> propertyData = null;
+ Object firstValue = (values == null || values.isEmpty() ? null : values.get(0));
+
+ if (definition instanceof PropertyStringDefinition) {
+ if (firstValue == null) {
+ propertyData = bof.createPropertyStringData(id, (List<String>) null);
+ } else if (firstValue instanceof String) {
+ propertyData = bof.createPropertyStringData(id, (List<String>) values);
+ } else {
+ throw new IllegalArgumentException("Property '" + id + "' is a String property!");
+ }
+ } else if (definition instanceof PropertyIdDefinition) {
+ if (firstValue == null) {
+ propertyData = bof.createPropertyIdData(id, (List<String>) null);
+ } else if (firstValue instanceof String) {
+ propertyData = bof.createPropertyIdData(id, (List<String>) values);
+ } else {
+ throw new IllegalArgumentException("Property '" + id + "' is an Id property!");
+ }
+ } else if (definition instanceof PropertyHtmlDefinition) {
+ if (firstValue == null) {
+ propertyData = bof.createPropertyHtmlData(id, (List<String>) values);
+ } else if (firstValue instanceof String) {
+ propertyData = bof.createPropertyHtmlData(id, (List<String>) values);
+ } else {
+ throw new IllegalArgumentException("Property '" + id + "' is a HTML property!");
+ }
+ } else if (definition instanceof PropertyUriDefinition) {
+ if (firstValue == null) {
+ propertyData = bof.createPropertyUriData(id, (List<String>) null);
+ } else if (firstValue instanceof String) {
+ propertyData = bof.createPropertyUriData(id, (List<String>) values);
+ } else {
+ throw new IllegalArgumentException("Property '" + id + "' is an URI property!");
+ }
+ } else if (definition instanceof PropertyIntegerDefinition) {
+ if (firstValue == null) {
+ propertyData = bof.createPropertyIntegerData(id, (List<BigInteger>) null);
+ } else if (firstValue instanceof BigInteger) {
+ propertyData = bof.createPropertyIntegerData(id, (List<BigInteger>) values);
+ } else if ((firstValue instanceof Byte) || (firstValue instanceof Short)
+ || (firstValue instanceof Integer) || (firstValue instanceof Long)) {
+ // we accept all kinds of integers
+ List<BigInteger> list = new ArrayList<BigInteger>(values.size());
+ for (Object v : values) {
+ list.add(BigInteger.valueOf(((Number) v).longValue()));
+ }
+
+ propertyData = bof.createPropertyIntegerData(id, list);
+ } else {
+ throw new IllegalArgumentException("Property '" + id + "' is an Integer property!");
+ }
+ } else if (definition instanceof PropertyBooleanDefinition) {
+ if (firstValue == null) {
+ propertyData = bof.createPropertyBooleanData(id, (List<Boolean>) null);
+ } else if (firstValue instanceof Boolean) {
+ propertyData = bof.createPropertyBooleanData(id, (List<Boolean>) values);
+ } else {
+ throw new IllegalArgumentException("Property '" + id + "' is a Boolean property!");
+ }
+ } else if (definition instanceof PropertyDecimalDefinition) {
+ if (firstValue == null) {
+ propertyData = bof.createPropertyDecimalData(id, (List<BigDecimal>) null);
+ } else if (firstValue instanceof BigDecimal) {
+ propertyData = bof.createPropertyDecimalData(id, (List<BigDecimal>) values);
+ } else {
+ throw new IllegalArgumentException("Property '" + id + "' is a Decimal property!");
+ }
+ } else if (definition instanceof PropertyDateTimeDefinition) {
+ if (firstValue == null) {
+ propertyData = bof.createPropertyDateTimeData(id, (List<GregorianCalendar>) null);
+ } else if (firstValue instanceof GregorianCalendar) {
+ propertyData = bof.createPropertyDateTimeData(id, (List<GregorianCalendar>) values);
+ } else {
+ throw new IllegalArgumentException("Property '" + id + "' is a Decimal property!");
+ }
+ }
+
+ // do we have something?
+ if (propertyData == null) {
+ throw new IllegalArgumentException("Property '" + id + "' doesn't match the property defintion!");
+ }
+
+ propertyList.add(propertyData);
+ }
+
+ return bof.createPropertiesData(propertyList);
+ }
+
+ public List<PropertyData<?>> convertQueryProperties(Properties properties) {
+ // check input
+ if ((properties == null) || (properties.getProperties() == null)) {
+ throw new IllegalArgumentException("Properties must be set!");
+ }
+ return new ArrayList<PropertyData<?>>(properties.getPropertyList());
+ }
+
+ // objects
+
+ public CmisObject convertObject(ObjectData objectData, OperationContext context) {
+ if (objectData == null) {
+ throw new IllegalArgumentException("Object data is null!");
+ }
+
+ ObjectType type = getTypeFromObjectData(objectData);
+
+ /* determine type */
+ switch (objectData.getBaseTypeId()) {
+ case CMIS_DOCUMENT:
+ return new DocumentImpl(this.session, type, objectData, context);
+ case CMIS_FOLDER:
+ return new FolderImpl(this.session, type, objectData, context);
+ case CMIS_POLICY:
+ return new PolicyImpl(this.session, type, objectData, context);
+ case CMIS_RELATIONSHIP:
+ return new RelationshipImpl(this.session, type, objectData, context);
+ default:
+ throw new CmisRuntimeException("unsupported type: " + objectData.getBaseTypeId());
+ }
+ }
+
+ public QueryResult convertQueryResult(ObjectData objectData) {
+ if (objectData == null) {
+ throw new IllegalArgumentException("Object data is null!");
+ }
+
+ return new QueryResultImpl(session, objectData);
+ }
+
+ public ChangeEvent convertChangeEvent(ObjectData objectData) {
+ ChangeType changeType = null;
+ GregorianCalendar changeTime = null;
+ String objectId = null;
+ Map<String, List<?>> properties = null;
+ List<String> policyIds = null;
+ Acl acl = null;
+
+ if (objectData.getChangeEventInfo() != null) {
+ changeType = objectData.getChangeEventInfo().getChangeType();
+ changeTime = objectData.getChangeEventInfo().getChangeTime();
+ }
+
+ if ((objectData.getProperties() != null) && (objectData.getProperties().getPropertyList() != null)) {
+ properties = new HashMap<String, List<?>>();
+
+ for (PropertyData<?> property : objectData.getProperties().getPropertyList()) {
+ properties.put(property.getId(), property.getValues());
+ }
+
+ if (properties.containsKey(PropertyIds.OBJECT_ID)) {
+ List<?> objectIdList = properties.get(PropertyIds.OBJECT_ID);
+ if ((objectIdList != null) && (!objectIdList.isEmpty()))
+ objectId = objectIdList.get(0).toString();
+ }
+
+ if ((objectData.getPolicyIds() != null) && (objectData.getPolicyIds().getPolicyIds() != null)) {
+ policyIds = objectData.getPolicyIds().getPolicyIds();
+ }
+
+ if (objectData.getAcl() != null) {
+ acl = objectData.getAcl();
+ }
+ }
+
+ return new ChangeEventImpl(changeType, changeTime, objectId, properties, policyIds, acl);
+ }
+
+ public ChangeEvents convertChangeEvents(String changeLogToken, ObjectList objectList) {
+ if (objectList == null) {
+ return null;
+ }
+
+ List<ChangeEvent> events = new ArrayList<ChangeEvent>();
+ if (objectList.getObjects() != null) {
+ for (ObjectData objectData : objectList.getObjects()) {
+ if (objectData == null) {
+ continue;
+ }
+
+ events.add(convertChangeEvent(objectData));
+ }
+ }
+
+ boolean hasMoreItems = (objectList.hasMoreItems() == null ? false : objectList.hasMoreItems().booleanValue());
+ long totalNumItems = (objectList.getNumItems() == null ? -1 : objectList.getNumItems().longValue());
+
+ return new ChangeEventsImpl(changeLogToken, events, hasMoreItems, totalNumItems);
+ }
+
+}
Propchange: incubator/chemistry/opencmis/branches/client-api-refactoring/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/repository/ObjectFactoryImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/chemistry/opencmis/branches/client-api-refactoring/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/test/java/org/apache/chemistry/opencmis/client/runtime/CmisObjectMock.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/branches/client-api-refactoring/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/test/java/org/apache/chemistry/opencmis/client/runtime/CmisObjectMock.java?rev=1033918&r1=1033917&r2=1033918&view=diff
==============================================================================
--- incubator/chemistry/opencmis/branches/client-api-refactoring/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/test/java/org/apache/chemistry/opencmis/client/runtime/CmisObjectMock.java (original)
+++ incubator/chemistry/opencmis/branches/client-api-refactoring/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/test/java/org/apache/chemistry/opencmis/client/runtime/CmisObjectMock.java Thu Nov 11 12:46:30 2010
@@ -24,6 +24,7 @@ import java.util.List;
import java.util.Map;
import org.apache.chemistry.opencmis.client.api.CmisObject;
+import org.apache.chemistry.opencmis.client.api.CmisObjectAdapter;
import org.apache.chemistry.opencmis.client.api.ItemIterable;
import org.apache.chemistry.opencmis.client.api.ObjectId;
import org.apache.chemistry.opencmis.client.api.ObjectType;
@@ -32,6 +33,7 @@ import org.apache.chemistry.opencmis.cli
import org.apache.chemistry.opencmis.client.api.Property;
import org.apache.chemistry.opencmis.client.api.Relationship;
import org.apache.chemistry.opencmis.client.api.Rendition;
+import org.apache.chemistry.opencmis.client.api.TransientCmisObject;
import org.apache.chemistry.opencmis.commons.data.Ace;
import org.apache.chemistry.opencmis.commons.data.Acl;
import org.apache.chemistry.opencmis.commons.data.AllowableActions;
@@ -54,7 +56,8 @@ public class CmisObjectMock implements C
this.id = id;
}
- public void addAcl(List<Ace> addAces, AclPropagation aclPropagation) {
+ public Acl addAcl(List<Ace> addAces, AclPropagation aclPropagation) {
+ return null;
}
public Acl applyAcl(List<Ace> addAces, List<Ace> removeAces, AclPropagation aclPropagation) {
@@ -151,11 +154,7 @@ public class CmisObjectMock implements C
public List<CmisExtensionElement> getExtensions(ExtensionLevel level) {
return null;
}
-
- public boolean isChanged() {
- return false;
- }
-
+
public void refresh() {
}
@@ -164,31 +163,39 @@ public class CmisObjectMock implements C
}
- public void removeAcl(List<Ace> removeAces, AclPropagation aclPropagation) {
-
+ public Acl removeAcl(List<Ace> removeAces, AclPropagation aclPropagation) {
+ return null;
}
- public void removePolicy(ObjectId policyId) {
-
+ public ObjectId updateProperties() {
+ return null;
}
- public void setName(String name) {
-
+ public CmisObject updateProperties(Map<String, ?> properties) {
+ return null;
}
+
+ public ObjectId updatePropertiesOnly(Map<String, ?> properties) {
- public <T> void setProperty(String id, Object value) {
+ return null;
}
- public ObjectId updateProperties() {
- return null;
+ public void applyPolicy(ObjectId... policyIds) {
+
}
- public ObjectId updateProperties(Map<String, ?> properties) {
- return null;
+ public void removePolicy(ObjectId... policyIds) {
}
public String getId() {
return this.id;
}
+ public CmisObjectAdapter getAdapter(Class<? extends CmisObjectAdapter> adapterInterface) {
+ return null;
+ }
+
+ public TransientCmisObject getTransientObject() {
+ return null;
+ }
};
Modified: incubator/chemistry/opencmis/branches/client-api-refactoring/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/AbstractWriteObjectIT.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/branches/client-api-refactoring/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/AbstractWriteObjectIT.java?rev=1033918&r1=1033917&r2=1033918&view=diff
==============================================================================
--- incubator/chemistry/opencmis/branches/client-api-refactoring/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/AbstractWriteObjectIT.java (original)
+++ incubator/chemistry/opencmis/branches/client-api-refactoring/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/AbstractWriteObjectIT.java Thu Nov 11 12:46:30 2010
@@ -206,9 +206,10 @@ public abstract class AbstractWriteObjec
Document document = (Document) this.session.getObjectByPath(path);
assertNotNull("Document not found: " + path, document);
- document.setProperty(PropertyIds.NAME, "Neuer Name");
- document.updateProperties();
- assertEquals("Neuer Name", document.getName());
+ // TODO: adapt test to refactored interface
+ //document.setProperty(PropertyIds.NAME, "Neuer Name");
+ //document.updateProperties();
+ //assertEquals("Neuer Name", document.getName());
}
@Test
Modified: incubator/chemistry/opencmis/branches/client-api-refactoring/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/AbstractWriteObjectRelationIT.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/branches/client-api-refactoring/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/AbstractWriteObjectRelationIT.java?rev=1033918&r1=1033917&r2=1033918&view=diff
==============================================================================
--- incubator/chemistry/opencmis/branches/client-api-refactoring/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/AbstractWriteObjectRelationIT.java (original)
+++ incubator/chemistry/opencmis/branches/client-api-refactoring/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/AbstractWriteObjectRelationIT.java Thu Nov 11 12:46:30 2010
@@ -56,8 +56,8 @@ public abstract class AbstractWriteObjec
ObjectId id = this.session.createRelationship(properties);
ObjectType ot = document1.getType();
- ItemIterable<Relationship> relations = document1.getRelationships(true, RelationshipDirection.EITHER, ot,
- this.session.getDefaultContext());
+ ItemIterable<Relationship> relations = session.getRelationships(document1, true, RelationshipDirection.EITHER,
+ ot, this.session.getDefaultContext());
for (Relationship r : relations) {
assertNotNull(r);
assertEquals(id, r.getId());
Modified: incubator/chemistry/opencmis/branches/client-api-refactoring/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/misc/AbstractReadOnlyCreateSessionIT.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/branches/client-api-refactoring/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/misc/AbstractReadOnlyCreateSessionIT.java?rev=1033918&r1=1033917&r2=1033918&view=diff
==============================================================================
--- incubator/chemistry/opencmis/branches/client-api-refactoring/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/misc/AbstractReadOnlyCreateSessionIT.java (original)
+++ incubator/chemistry/opencmis/branches/client-api-refactoring/chemistry-opencmis-test/chemistry-opencmis-test-fit/src/test/java/org/apache/chemistry/opencmis/fit/runtime/misc/AbstractReadOnlyCreateSessionIT.java Thu Nov 11 12:46:30 2010
@@ -23,8 +23,6 @@ import java.util.Hashtable;
import org.apache.chemistry.opencmis.client.api.Session;
import org.apache.chemistry.opencmis.client.api.SessionFactory;
import org.apache.chemistry.opencmis.commons.SessionParameter;
-import org.apache.chemistry.opencmis.commons.enums.SessionType;
-import org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException;
import org.apache.chemistry.opencmis.fit.runtime.Fixture;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -58,8 +56,8 @@ public abstract class AbstractReadOnlyCr
public void starting(FrameworkMethod method) {
super.starting(method);
- AbstractReadOnlyCreateSessionIT.this.fixture.logTestClassContext(AbstractReadOnlyCreateSessionIT.this
- .getClass(), method);
+ AbstractReadOnlyCreateSessionIT.this.fixture.logTestClassContext(
+ AbstractReadOnlyCreateSessionIT.this.getClass(), method);
}
};
@@ -82,31 +80,4 @@ public abstract class AbstractReadOnlyCr
Session s = factory.createSession(parameter);
Assert.assertNotNull(s);
}
-
- @Test
- public void createPersistentSession() {
- SessionFactory factory = this.fixture.getSessionFactory();
-
- Hashtable<String, String> parameter = new Hashtable<String, String>(this.fixture.getParamter());
- parameter.put(SessionParameter.SESSION_TYPE, SessionType.PERSISTENT.value());
-
- Session s = factory.createSession(parameter);
- Assert.assertNotNull(s);
- }
-
- @Test
- public void createTransientSession() {
- SessionFactory factory = this.fixture.getSessionFactory();
-
- Hashtable<String, String> parameter = new Hashtable<String, String>(this.fixture.getParamter());
- parameter.put(SessionParameter.SESSION_TYPE, SessionType.TRANSIENT.value());
-
- try {
- @SuppressWarnings("unused")
- Session s = factory.createSession(parameter);
- Assert.fail("CmisNotSupportedException expected, because Transient Session is not supported yet.");
- } catch (CmisNotSupportedException e) {
-
- }
- }
}