chemistry-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From f...@apache.org
Subject svn commit: r1413578 - in /chemistry/opencmis/trunk: chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/ chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/...
Date Mon, 26 Nov 2012 12:39:58 GMT
Author: fmui
Date: Mon Nov 26 12:39:55 2012
New Revision: 1413578

URL: http://svn.apache.org/viewvc?rev=1413578&view=rev
Log:
More CMIS 1.1 low-level implementation

Added:
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/CreatablePropertyTypes.java   (with props)
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/NewTypeSettableAttributes.java   (with props)
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/ItemTypeDefinition.java   (with props)
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/SecondaryTypeDefinition.java   (with props)
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/TypeMutability.java   (with props)
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/CreatablePropertyTypesImpl.java   (with props)
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/ExtensionFeatureImpl.java   (with props)
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/ItemTypeDefinitionImpl.java   (with props)
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/NewTypeSettableAttributesImpl.java   (with props)
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/SecondaryTypeDefinitionImpl.java   (with props)
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/TypeMutabilityImpl.java   (with props)
Modified:
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/ExtensionFeature.java
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/RepositoryCapabilities.java
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/FolderTypeDefinition.java
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/TypeDefinition.java
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/AbstractTypeDefinition.java
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryCapabilitiesImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryInfoImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-fileshare/src/main/java/org/apache/chemistry/opencmis/fileshare/FileShareRepository.java
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-fileshare/src/main/java/org/apache/chemistry/opencmis/fileshare/TypeManager.java

Added: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/CreatablePropertyTypes.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/CreatablePropertyTypes.java?rev=1413578&view=auto
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/CreatablePropertyTypes.java (added)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/CreatablePropertyTypes.java Mon Nov 26 12:39:55 2012
@@ -0,0 +1,38 @@
+/*
+ * 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.commons.data;
+
+import java.util.Set;
+
+import org.apache.chemistry.opencmis.commons.enums.PropertyType;
+
+/**
+ * Holds the set of property data types for type creation and update.
+ */
+public interface CreatablePropertyTypes extends ExtensionsData {
+
+    /**
+     * Returns the set of property data types that can used to create or update
+     * a type definition.
+     * 
+     * @return the available set of property data types.
+     */
+    Set<PropertyType> canCreate();
+
+}

Propchange: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/CreatablePropertyTypes.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/ExtensionFeature.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/ExtensionFeature.java?rev=1413578&r1=1413577&r2=1413578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/ExtensionFeature.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/ExtensionFeature.java Mon Nov 26 12:39:55 2012
@@ -22,17 +22,50 @@ package org.apache.chemistry.opencmis.co
 import java.io.Serializable;
 import java.util.Map;
 
+/**
+ * Representation of an extension feature;
+ */
 public interface ExtensionFeature extends Serializable, ExtensionsData {
 
+    /**
+     * Returns the unique feature id.
+     * 
+     * @return feature id
+     */
     String getId();
 
+    /**
+     * Returns a URL that provides more information about the feature.
+     * 
+     * @return feature URL
+     */
     String getUrl();
 
+    /**
+     * Returns a human-readable name for the feature.
+     * 
+     * @return feature name
+     */
     String getCommonName();
 
+    /**
+     * Returns a feature version label.
+     * 
+     * @return feature version label
+     */
     String getVersionLabel();
 
+    /**
+     * Returns a human-readable description of the feature.
+     * 
+     * @return feature description
+     */
     String getDescription();
 
+    /**
+     * Returns extra feature data.
+     * 
+     * @return key-value pairs of extra data.
+     */
     Map<String, String> getFeatureData();
 }

Added: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/NewTypeSettableAttributes.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/NewTypeSettableAttributes.java?rev=1413578&view=auto
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/NewTypeSettableAttributes.java (added)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/NewTypeSettableAttributes.java Mon Nov 26 12:39:55 2012
@@ -0,0 +1,130 @@
+/*
+ * 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.commons.data;
+
+/**
+ * A collection of flags that indicate which type attributes can be set at type
+ * creation.
+ */
+public interface NewTypeSettableAttributes {
+
+    /**
+     * Indicates if the "id" attribute can be set.
+     * 
+     * @return <code>true</code> if the "id" attribute can be set,
+     *         <code>false</code> otherwise
+     */
+    Boolean canSetId();
+
+    /**
+     * Indicates if the "localName" attribute can be set.
+     * 
+     * @return <code>true</code> if the "localName" attribute can be set,
+     *         <code>false</code> otherwise
+     */
+    Boolean canSetLocalName();
+
+    /**
+     * Indicates if the "localNamespace" attribute can be set.
+     * 
+     * @return <code>true</code> if the "localNamespace" attribute can be set,
+     *         <code>false</code> otherwise
+     */
+    Boolean canSetLocalNamespace();
+
+    /**
+     * Indicates if the "displayName" attribute can be set.
+     * 
+     * @return <code>true</code> if the "displayName" attribute can be set,
+     *         <code>false</code> otherwise
+     */
+    Boolean canSetDisplayName();
+
+    /**
+     * Indicates if the "queryName" attribute can be set.
+     * 
+     * @return <code>true</code> if the "queryName" attribute can be set,
+     *         <code>false</code> otherwise
+     */
+    Boolean canSetQueryName();
+
+    /**
+     * Indicates if the "description" attribute can be set.
+     * 
+     * @return <code>true</code> if the "description" attribute can be set,
+     *         <code>false</code> otherwise
+     */
+    Boolean canSetDescription();
+
+    /**
+     * Indicates if the "creatable" attribute can be set.
+     * 
+     * @return <code>true</code> if the "creatable" attribute can be set,
+     *         <code>false</code> otherwise
+     */
+    Boolean canSetCreatable();
+
+    /**
+     * Indicates if the "fileable" attribute can be set.
+     * 
+     * @return <code>true</code> if the "fileable" attribute can be set,
+     *         <code>false</code> otherwise
+     */
+    Boolean canSetFileable();
+
+    /**
+     * Indicates if the "queryable" attribute can be set.
+     * 
+     * @return <code>true</code> if the "queryable" attribute can be set,
+     *         <code>false</code> otherwise
+     */
+    Boolean canSetQueryable();
+
+    /**
+     * Indicates if the "fulltextIndexed" attribute can be set.
+     * 
+     * @return <code>true</code> if the "fulltextIndexed" attribute can be set,
+     *         <code>false</code> otherwise
+     */
+    Boolean canSetFulltextIndexed();
+
+    /**
+     * Indicates if the "includedInSupertypeQuery" attribute can be set.
+     * 
+     * @return <code>true</code> if the "includedInSupertypeQuery" attribute can
+     *         be set, <code>false</code> otherwise
+     */
+    Boolean canSetIncludedInSupertypeQuery();
+
+    /**
+     * Indicates if the "controllablePolicy" attribute can be set.
+     * 
+     * @return <code>true</code> if the "controllablePolicy" attribute can be
+     *         set, <code>false</code> otherwise
+     */
+    Boolean canSetControllablePolicy();
+
+    /**
+     * Indicates if the "controllableACL" attribute can be set.
+     * 
+     * @return <code>true</code> if the "controllableACL" attribute can be set,
+     *         <code>false</code> otherwise
+     */
+    Boolean canSetControllableAcl();
+}

Propchange: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/NewTypeSettableAttributes.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/RepositoryCapabilities.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/RepositoryCapabilities.java?rev=1413578&r1=1413577&r2=1413578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/RepositoryCapabilities.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/RepositoryCapabilities.java Mon Nov 26 12:39:55 2012
@@ -72,4 +72,10 @@ public interface RepositoryCapabilities 
 
     CapabilityAcl getAclCapability();
 
+    // Type mutability
+
+    CreatablePropertyTypes getCreatablePropertyTypes();
+
+    NewTypeSettableAttributes getNewTypeSettableAttributes();
+
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/FolderTypeDefinition.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/FolderTypeDefinition.java?rev=1413578&r1=1413577&r2=1413578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/FolderTypeDefinition.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/FolderTypeDefinition.java Mon Nov 26 12:39:55 2012
@@ -18,7 +18,6 @@
  */
 package org.apache.chemistry.opencmis.commons.definitions;
 
-
 public interface FolderTypeDefinition extends TypeDefinition {
 
 }

Added: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/ItemTypeDefinition.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/ItemTypeDefinition.java?rev=1413578&view=auto
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/ItemTypeDefinition.java (added)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/ItemTypeDefinition.java Mon Nov 26 12:39:55 2012
@@ -0,0 +1,23 @@
+/*
+ * 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.commons.definitions;
+
+public interface ItemTypeDefinition extends TypeDefinition {
+
+}

Propchange: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/ItemTypeDefinition.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/SecondaryTypeDefinition.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/SecondaryTypeDefinition.java?rev=1413578&view=auto
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/SecondaryTypeDefinition.java (added)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/SecondaryTypeDefinition.java Mon Nov 26 12:39:55 2012
@@ -0,0 +1,23 @@
+/*
+ * 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.commons.definitions;
+
+public interface SecondaryTypeDefinition extends TypeDefinition {
+
+}

Propchange: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/SecondaryTypeDefinition.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/TypeDefinition.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/TypeDefinition.java?rev=1413578&r1=1413577&r2=1413578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/TypeDefinition.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/TypeDefinition.java Mon Nov 26 12:39:55 2012
@@ -26,9 +26,6 @@ import org.apache.chemistry.opencmis.com
 
 /**
  * Base type definition interface.
- * 
- * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
- * 
  */
 public interface TypeDefinition extends Serializable, ExtensionsData {
 
@@ -159,4 +156,11 @@ public interface TypeDefinition extends 
      *         definitions were not requested
      */
     Map<String, PropertyDefinition<?>> getPropertyDefinitions();
+
+    /**
+     * Returns type mutability flags.
+     * 
+     * @return type mutability flags
+     */
+    TypeMutability getTypeMutability();
 }

Added: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/TypeMutability.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/TypeMutability.java?rev=1413578&view=auto
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/TypeMutability.java (added)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/TypeMutability.java Mon Nov 26 12:39:55 2012
@@ -0,0 +1,51 @@
+/*
+ * 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.commons.definitions;
+
+import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
+
+/**
+ * Type mutability flags.
+ */
+public interface TypeMutability extends ExtensionsData {
+
+    /**
+     * Indicates if a sub type of this type can be created.
+     * 
+     * @return <code>true</code> if a sub type can be created,
+     *         <code>false</code> otherwise
+     */
+    Boolean canCreate();
+
+    /**
+     * Indicates if this type can be updated.
+     * 
+     * @return <code>true</code> if this type can be updated, <code>false</code>
+     *         otherwise
+     */
+    Boolean canUpdate();
+
+    /**
+     * Indicates if this type can be deleted.
+     * 
+     * @return <code>true</code> if this type can be deleted, <code>false</code>
+     *         otherwise
+     */
+    Boolean canDelete();
+}

Propchange: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/definitions/TypeMutability.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/AbstractTypeDefinition.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/AbstractTypeDefinition.java?rev=1413578&r1=1413577&r2=1413578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/AbstractTypeDefinition.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/AbstractTypeDefinition.java Mon Nov 26 12:39:55 2012
@@ -23,6 +23,7 @@ import java.util.Map;
 
 import org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition;
 import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
+import org.apache.chemistry.opencmis.commons.definitions.TypeMutability;
 import org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
 
 /**
@@ -30,7 +31,7 @@ import org.apache.chemistry.opencmis.com
  */
 public abstract class AbstractTypeDefinition extends AbstractExtensionData implements TypeDefinition, Cloneable {
 
-    private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 2L;
 
     private String id;
     private String localName;
@@ -48,6 +49,7 @@ public abstract class AbstractTypeDefini
     private Boolean isControllableACL;
     private Boolean isControllablePolicy;
     private Map<String, PropertyDefinition<?>> propertyDefinitions;
+    private TypeMutability typeMutability;
 
     public void initialize(TypeDefinition typeDefinition) {
         setId(typeDefinition.getId());
@@ -66,6 +68,7 @@ public abstract class AbstractTypeDefini
         setIsControllableAcl(typeDefinition.isControllableAcl());
         setIsControllablePolicy(typeDefinition.isControllablePolicy());
         setPropertyDefinitions(typeDefinition.getPropertyDefinitions());
+        setTypeMutability(typeDefinition.getTypeMutability());
     }
 
     public String getId() {
@@ -218,6 +221,14 @@ public abstract class AbstractTypeDefini
         this.propertyDefinitions.put(propertyDefinition.getId(), propertyDefinition);
     }
 
+    public TypeMutability getTypeMutability() {
+        return typeMutability;
+    }
+
+    public void setTypeMutability(TypeMutability typeMutability) {
+        this.typeMutability = typeMutability;
+    }
+
     public AbstractTypeDefinition clone() {
         try {
             return (AbstractTypeDefinition) super.clone();
@@ -235,6 +246,7 @@ public abstract class AbstractTypeDefini
                 + ", is controllable policy=" + isControllablePolicy + ", is creatable=" + isCreatable
                 + ", is fileable=" + isFileable + ", is fulltext indexed=" + isFulltextIndexed
                 + ", is included in supertype query=" + isIncludedInSupertypeQuery + ", is queryable=" + isQueryable
-                + ", property definitions=" + propertyDefinitions + "]" + super.toString();
+                + ", property definitions=" + propertyDefinitions + ", typeMutability=" + typeMutability + "]"
+                + super.toString();
     }
 }

Added: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/CreatablePropertyTypesImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/CreatablePropertyTypesImpl.java?rev=1413578&view=auto
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/CreatablePropertyTypesImpl.java (added)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/CreatablePropertyTypesImpl.java Mon Nov 26 12:39:55 2012
@@ -0,0 +1,44 @@
+/*
+ * 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.commons.impl.dataobjects;
+
+import java.util.Set;
+
+import org.apache.chemistry.opencmis.commons.data.CreatablePropertyTypes;
+import org.apache.chemistry.opencmis.commons.enums.PropertyType;
+
+public class CreatablePropertyTypesImpl extends ExtensionDataImpl implements CreatablePropertyTypes {
+
+    private static final long serialVersionUID = 1L;
+
+    private Set<PropertyType> propertyTypeSet;
+
+    public Set<PropertyType> canCreate() {
+        return propertyTypeSet;
+    }
+
+    public void setCanCreate(Set<PropertyType> propertyTypeSet) {
+        this.propertyTypeSet = propertyTypeSet;
+    }
+
+    @Override
+    public String toString() {
+        return "CreatablePropertyTypes [propertyTypeSet=" + propertyTypeSet + "]" + super.toString();
+    }
+}

Propchange: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/CreatablePropertyTypesImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/ExtensionFeatureImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/ExtensionFeatureImpl.java?rev=1413578&view=auto
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/ExtensionFeatureImpl.java (added)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/ExtensionFeatureImpl.java Mon Nov 26 12:39:55 2012
@@ -0,0 +1,92 @@
+/*
+ * 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.commons.impl.dataobjects;
+
+import java.util.Map;
+
+import org.apache.chemistry.opencmis.commons.data.ExtensionFeature;
+
+public class ExtensionFeatureImpl extends ExtensionDataImpl implements ExtensionFeature {
+
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+    private String url;
+    private String commonName;
+    private String versionLabel;
+    private String description;
+    private Map<String, String> featureData;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getCommonName() {
+        return commonName;
+    }
+
+    public void setCommonName(String commonName) {
+        this.commonName = commonName;
+    }
+
+    public String getVersionLabel() {
+        return versionLabel;
+    }
+
+    public void setVersionLabel(String versionLabel) {
+        this.versionLabel = versionLabel;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public Map<String, String> getFeatureData() {
+        return featureData;
+    }
+
+    public void setFeatureData(Map<String, String> featureData) {
+        this.featureData = featureData;
+    }
+
+    @Override
+    public String toString() {
+        return "Extension Feature [id=" + id + ", url=" + url + ", commonName=" + commonName + ", versionLabel="
+                + versionLabel + ", description=" + description + ", featureData=" + featureData + "]"
+                + super.toString();
+    }
+
+}

Propchange: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/ExtensionFeatureImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/ItemTypeDefinitionImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/ItemTypeDefinitionImpl.java?rev=1413578&view=auto
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/ItemTypeDefinitionImpl.java (added)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/ItemTypeDefinitionImpl.java Mon Nov 26 12:39:55 2012
@@ -0,0 +1,27 @@
+/*
+ * 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.commons.impl.dataobjects;
+
+import org.apache.chemistry.opencmis.commons.definitions.ItemTypeDefinition;
+
+public class ItemTypeDefinitionImpl extends AbstractTypeDefinition implements ItemTypeDefinition {
+
+    private static final long serialVersionUID = 1L;
+
+}

Propchange: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/ItemTypeDefinitionImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/NewTypeSettableAttributesImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/NewTypeSettableAttributesImpl.java?rev=1413578&view=auto
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/NewTypeSettableAttributesImpl.java (added)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/NewTypeSettableAttributesImpl.java Mon Nov 26 12:39:55 2012
@@ -0,0 +1,156 @@
+/*
+ * 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.commons.impl.dataobjects;
+
+import java.io.Serializable;
+
+import org.apache.chemistry.opencmis.commons.data.NewTypeSettableAttributes;
+
+public class NewTypeSettableAttributesImpl implements NewTypeSettableAttributes, Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Boolean id;
+    private Boolean localName;
+    private Boolean localNamespace;
+    private Boolean displayName;
+    private Boolean queryName;
+    private Boolean description;
+    private Boolean creatable;
+    private Boolean fileable;
+    private Boolean queryable;
+    private Boolean fulltextIndexed;
+    private Boolean includedInSupertypeQuery;
+    private Boolean controllablePolicy;
+    private Boolean controllableACL;
+
+    public Boolean canSetId() {
+        return id;
+    }
+
+    public void setCanSetId(Boolean id) {
+        this.id = id;
+    }
+
+    public Boolean canSetLocalName() {
+        return localName;
+    }
+
+    public void setCanSetLocalName(Boolean localName) {
+        this.localName = localName;
+    }
+
+    public Boolean canSetLocalNamespace() {
+        return localNamespace;
+    }
+
+    public void setCanSetLocalNamespace(Boolean localNamespace) {
+        this.localNamespace = localNamespace;
+    }
+
+    public Boolean canSetDisplayName() {
+        return displayName;
+    }
+
+    public void setCanSetDisplayName(Boolean displayName) {
+        this.displayName = displayName;
+    }
+
+    public Boolean canSetQueryName() {
+        return queryName;
+    }
+
+    public void setCanSetQueryName(Boolean queryName) {
+        this.queryName = queryName;
+    }
+
+    public Boolean canSetDescription() {
+        return description;
+    }
+
+    public void setCanSetDescription(Boolean description) {
+        this.description = description;
+    }
+
+    public Boolean canSetCreatable() {
+        return creatable;
+    }
+
+    public void setCanSetCreatable(Boolean creatable) {
+        this.creatable = creatable;
+    }
+
+    public Boolean canSetFileable() {
+        return fileable;
+    }
+
+    public void setCanSetFileable(Boolean fileable) {
+        this.fileable = fileable;
+    }
+
+    public Boolean canSetQueryable() {
+        return queryable;
+    }
+
+    public void setCanSetQueryable(Boolean queryable) {
+        this.queryable = queryable;
+    }
+
+    public Boolean canSetFulltextIndexed() {
+        return fulltextIndexed;
+    }
+
+    public void setCanSetFulltextIndexed(Boolean fulltextIndexed) {
+        this.fulltextIndexed = fulltextIndexed;
+    }
+
+    public Boolean canSetIncludedInSupertypeQuery() {
+        return includedInSupertypeQuery;
+    }
+
+    public void setCanSetIncludedInSupertypeQuery(Boolean includedInSupertypeQuery) {
+        this.includedInSupertypeQuery = includedInSupertypeQuery;
+    }
+
+    public Boolean canSetControllablePolicy() {
+        return controllablePolicy;
+    }
+
+    public void setCanSetControllablePolicy(Boolean controllablePolicy) {
+        this.controllablePolicy = controllablePolicy;
+    }
+
+    public Boolean canSetControllableAcl() {
+        return controllableACL;
+    }
+
+    public void setCanSetControllableAcl(Boolean controllableACL) {
+        this.controllableACL = controllableACL;
+    }
+
+    @Override
+    public String toString() {
+        return "NewTypeSettableAttributes [id=" + id + ", localName=" + localName + ", localNamespace="
+                + localNamespace + ", displayName=" + displayName + ", queryName=" + queryName + ", description="
+                + description + ", creatable=" + creatable + ", fileable=" + fileable + ", queryable=" + queryable
+                + ", fulltextIndexed=" + fulltextIndexed + ", includedInSupertypeQuery=" + includedInSupertypeQuery
+                + ", controllablePolicy=" + controllablePolicy + ", controllableACL=" + controllableACL + "]"
+                + super.toString();
+    }
+}

Propchange: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/NewTypeSettableAttributesImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryCapabilitiesImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryCapabilitiesImpl.java?rev=1413578&r1=1413577&r2=1413578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryCapabilitiesImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryCapabilitiesImpl.java Mon Nov 26 12:39:55 2012
@@ -18,6 +18,8 @@
  */
 package org.apache.chemistry.opencmis.commons.impl.dataobjects;
 
+import org.apache.chemistry.opencmis.commons.data.CreatablePropertyTypes;
+import org.apache.chemistry.opencmis.commons.data.NewTypeSettableAttributes;
 import org.apache.chemistry.opencmis.commons.data.RepositoryCapabilities;
 import org.apache.chemistry.opencmis.commons.enums.CapabilityAcl;
 import org.apache.chemistry.opencmis.commons.enums.CapabilityChanges;
@@ -32,7 +34,7 @@ import org.apache.chemistry.opencmis.com
  */
 public class RepositoryCapabilitiesImpl extends AbstractExtensionData implements RepositoryCapabilities {
 
-    private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 2L;
 
     private Boolean allVersionsSearchable;
     private CapabilityAcl capabilityAcl;
@@ -49,6 +51,8 @@ public class RepositoryCapabilitiesImpl 
     private Boolean supportsMultifiling;
     private Boolean supportsUnfiling;
     private Boolean supportsVersionSpecificFiling;
+    private CreatablePropertyTypes creatablePropertyTypes;
+    private NewTypeSettableAttributes newTypeSettableAttributes;
 
     /**
      * Constructor.
@@ -176,6 +180,22 @@ public class RepositoryCapabilitiesImpl 
         this.supportsVersionSpecificFiling = supportsVersionSpecificFiling;
     }
 
+    public CreatablePropertyTypes getCreatablePropertyTypes() {
+        return creatablePropertyTypes;
+    }
+
+    public void setCreatablePropertyTypes(CreatablePropertyTypes creatablePropertyTypes) {
+        this.creatablePropertyTypes = creatablePropertyTypes;
+    }
+
+    public NewTypeSettableAttributes getNewTypeSettableAttributes() {
+        return newTypeSettableAttributes;
+    }
+
+    public void setNewTypeSettableAttributes(NewTypeSettableAttributes newTypeSettableAttributes) {
+        this.newTypeSettableAttributes = newTypeSettableAttributes;
+    }
+
     @Override
     public String toString() {
         return "Repository Capabilities [all versions searchable=" + allVersionsSearchable + ", capability ACL="
@@ -185,6 +205,9 @@ public class RepositoryCapabilitiesImpl 
                 + isPwcSearchable + ", is PWC updatable=" + isPwcUpdatable + ", supports GetDescendants="
                 + supportsGetDescendants + ", supports GetFolderTree=" + supportsGetFolderTree
                 + ", supports multifiling=" + supportsMultifiling + ", supports unfiling=" + supportsUnfiling
-                + ", supports version specific filing=" + supportsVersionSpecificFiling + "]" + super.toString();
+                + ", supports version specific filing=" + supportsVersionSpecificFiling + ", creatable property types="
+                + creatablePropertyTypes + ", newTypeSettableAttributes=" + newTypeSettableAttributes + "]"
+                + super.toString();
     }
+
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryInfoImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryInfoImpl.java?rev=1413578&r1=1413577&r2=1413578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryInfoImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryInfoImpl.java Mon Nov 26 12:39:55 2012
@@ -74,6 +74,7 @@ public class RepositoryInfoImpl extends 
         vendorName = data.getVendorName();
         productName = data.getProductName();
         productVersion = data.getProductVersion();
+        extensionFeatures = data.getExtensionFeatures();
         setExtensions(data.getExtensions());
     }
 

Added: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/SecondaryTypeDefinitionImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/SecondaryTypeDefinitionImpl.java?rev=1413578&view=auto
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/SecondaryTypeDefinitionImpl.java (added)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/SecondaryTypeDefinitionImpl.java Mon Nov 26 12:39:55 2012
@@ -0,0 +1,9 @@
+package org.apache.chemistry.opencmis.commons.impl.dataobjects;
+
+import org.apache.chemistry.opencmis.commons.definitions.SecondaryTypeDefinition;
+
+public class SecondaryTypeDefinitionImpl extends AbstractTypeDefinition implements SecondaryTypeDefinition {
+
+    private static final long serialVersionUID = 1L;
+
+}

Propchange: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/SecondaryTypeDefinitionImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/TypeMutabilityImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/TypeMutabilityImpl.java?rev=1413578&view=auto
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/TypeMutabilityImpl.java (added)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/TypeMutabilityImpl.java Mon Nov 26 12:39:55 2012
@@ -0,0 +1,55 @@
+/*
+ * 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.commons.impl.dataobjects;
+
+import org.apache.chemistry.opencmis.commons.definitions.TypeMutability;
+
+public class TypeMutabilityImpl extends ExtensionDataImpl implements TypeMutability {
+
+    private static final long serialVersionUID = 1L;
+
+    private Boolean canCreate;
+    private Boolean canUpdate;
+    private Boolean canDelete;
+
+    public Boolean canCreate() {
+        return canCreate;
+    }
+
+    public void setCanCreate(Boolean canCreate) {
+        this.canCreate = canCreate;
+    }
+
+    public Boolean canUpdate() {
+        return canUpdate;
+    }
+
+    public void setCanUpdate(Boolean canUpdate) {
+        this.canUpdate = canUpdate;
+    }
+
+    public Boolean canDelete() {
+        return canDelete;
+    }
+
+    public void setCanDelete(Boolean canDelete) {
+        this.canDelete = canDelete;
+    }
+
+}

Propchange: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/TypeMutabilityImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-fileshare/src/main/java/org/apache/chemistry/opencmis/fileshare/FileShareRepository.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-fileshare/src/main/java/org/apache/chemistry/opencmis/fileshare/FileShareRepository.java?rev=1413578&r1=1413577&r2=1413578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-fileshare/src/main/java/org/apache/chemistry/opencmis/fileshare/FileShareRepository.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-fileshare/src/main/java/org/apache/chemistry/opencmis/fileshare/FileShareRepository.java Mon Nov 26 12:39:55 2012
@@ -101,6 +101,7 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.impl.dataobjects.AllowableActionsImpl;
 import org.apache.chemistry.opencmis.commons.impl.dataobjects.ContentStreamImpl;
 import org.apache.chemistry.opencmis.commons.impl.dataobjects.FailedToDeleteDataImpl;
+import org.apache.chemistry.opencmis.commons.impl.dataobjects.NewTypeSettableAttributesImpl;
 import org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectDataImpl;
 import org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectInFolderContainerImpl;
 import org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectInFolderDataImpl;
@@ -225,6 +226,23 @@ public class FileShareRepository {
         capabilities.setSupportsGetFolderTree(true);
         capabilities.setCapabilityRendition(CapabilityRenditions.NONE);
 
+        NewTypeSettableAttributesImpl typeSetAttributes = new NewTypeSettableAttributesImpl();
+        typeSetAttributes.setCanSetControllableAcl(false);
+        typeSetAttributes.setCanSetControllablePolicy(false);
+        typeSetAttributes.setCanSetCreatable(false);
+        typeSetAttributes.setCanSetDescription(false);
+        typeSetAttributes.setCanSetDisplayName(false);
+        typeSetAttributes.setCanSetFileable(false);
+        typeSetAttributes.setCanSetFulltextIndexed(false);
+        typeSetAttributes.setCanSetId(false);
+        typeSetAttributes.setCanSetIncludedInSupertypeQuery(false);
+        typeSetAttributes.setCanSetLocalName(false);
+        typeSetAttributes.setCanSetLocalNamespace(false);
+        typeSetAttributes.setCanSetQueryable(false);
+        typeSetAttributes.setCanSetQueryName(false);
+
+        capabilities.setNewTypeSettableAttributes(typeSetAttributes);
+
         repositoryInfo.setCapabilities(capabilities);
 
         AclCapabilitiesDataImpl aclCapability = new AclCapabilitiesDataImpl();
@@ -1285,7 +1303,7 @@ public class FileShareRepository {
     }
 
     /**
-     * Compiles an object type object from a file or folder.�
+     * Compiles an object type object from a file or folder.
      */
     private ObjectData compileObjectType(CallContext context, File file, Set<String> filter,
             boolean includeAllowableActions, boolean includeAcl, boolean userReadOnly, ObjectInfoHandler objectInfos) {

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-fileshare/src/main/java/org/apache/chemistry/opencmis/fileshare/TypeManager.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-fileshare/src/main/java/org/apache/chemistry/opencmis/fileshare/TypeManager.java?rev=1413578&r1=1413577&r2=1413578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-fileshare/src/main/java/org/apache/chemistry/opencmis/fileshare/TypeManager.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-fileshare/src/main/java/org/apache/chemistry/opencmis/fileshare/TypeManager.java Mon Nov 26 12:39:55 2012
@@ -41,6 +41,7 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.impl.dataobjects.AbstractTypeDefinition;
 import org.apache.chemistry.opencmis.commons.impl.dataobjects.DocumentTypeDefinitionImpl;
 import org.apache.chemistry.opencmis.commons.impl.dataobjects.FolderTypeDefinitionImpl;
+import org.apache.chemistry.opencmis.commons.impl.dataobjects.ItemTypeDefinitionImpl;
 import org.apache.chemistry.opencmis.commons.impl.dataobjects.PolicyTypeDefinitionImpl;
 import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyBooleanDefinitionImpl;
 import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDateTimeDefinitionImpl;
@@ -51,8 +52,10 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyStringDefinitionImpl;
 import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyUriDefinitionImpl;
 import org.apache.chemistry.opencmis.commons.impl.dataobjects.RelationshipTypeDefinitionImpl;
+import org.apache.chemistry.opencmis.commons.impl.dataobjects.SecondaryTypeDefinitionImpl;
 import org.apache.chemistry.opencmis.commons.impl.dataobjects.TypeDefinitionContainerImpl;
 import org.apache.chemistry.opencmis.commons.impl.dataobjects.TypeDefinitionListImpl;
+import org.apache.chemistry.opencmis.commons.impl.dataobjects.TypeMutabilityImpl;
 import org.apache.chemistry.opencmis.commons.server.CallContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -65,6 +68,8 @@ public class TypeManager {
     public static final String FOLDER_TYPE_ID = BaseTypeId.CMIS_FOLDER.value();
     public static final String RELATIONSHIP_TYPE_ID = BaseTypeId.CMIS_RELATIONSHIP.value();
     public static final String POLICY_TYPE_ID = BaseTypeId.CMIS_POLICY.value();
+    public static final String ITEM_TYPE_ID = BaseTypeId.CMIS_ITEM.value();
+    public static final String SECONDARY_TYPE_ID = BaseTypeId.CMIS_SECONDARY.value();
 
     private static final String NAMESPACE = "http://chemistry.apache.org/opencmis/fileshare";
 
@@ -84,6 +89,13 @@ public class TypeManager {
         types = new HashMap<String, TypeDefinitionContainerImpl>();
         typesList = new ArrayList<TypeDefinitionContainer>();
 
+        // type mutaibility
+
+        TypeMutabilityImpl typeMutability = new TypeMutabilityImpl();
+        typeMutability.setCanCreate(false);
+        typeMutability.setCanUpdate(false);
+        typeMutability.setCanDelete(false);
+
         // folder type
         FolderTypeDefinitionImpl folderType = new FolderTypeDefinitionImpl();
         folderType.setBaseTypeId(BaseTypeId.CMIS_FOLDER);
@@ -100,6 +112,7 @@ public class TypeManager {
         folderType.setIsQueryable(false);
         folderType.setQueryName("cmis:folder");
         folderType.setId(FOLDER_TYPE_ID);
+        folderType.setTypeMutability(typeMutability);
 
         addBasePropertyDefinitions(folderType);
         addFolderPropertyDefinitions(folderType);
@@ -122,6 +135,7 @@ public class TypeManager {
         documentType.setIsQueryable(false);
         documentType.setQueryName("cmis:document");
         documentType.setId(DOCUMENT_TYPE_ID);
+        documentType.setTypeMutability(typeMutability);
 
         documentType.setIsVersionable(false);
         documentType.setContentStreamAllowed(ContentStreamAllowed.ALLOWED);
@@ -146,6 +160,7 @@ public class TypeManager {
         relationshipType.setIsQueryable(false);
         relationshipType.setQueryName("cmis:relationship");
         relationshipType.setId(RELATIONSHIP_TYPE_ID);
+        relationshipType.setTypeMutability(typeMutability);
 
         addBasePropertyDefinitions(relationshipType);
 
@@ -167,11 +182,56 @@ public class TypeManager {
         policyType.setIsQueryable(false);
         policyType.setQueryName("cmis:policy");
         policyType.setId(POLICY_TYPE_ID);
+        policyType.setTypeMutability(typeMutability);
 
         addBasePropertyDefinitions(policyType);
 
         // not supported - don't expose it
         // addTypeInteral(policyType);
+
+        // item type
+        ItemTypeDefinitionImpl itemType = new ItemTypeDefinitionImpl();
+        itemType.setBaseTypeId(BaseTypeId.CMIS_ITEM);
+        itemType.setIsControllableAcl(false);
+        itemType.setIsControllablePolicy(false);
+        itemType.setIsCreatable(true);
+        itemType.setDescription("Item");
+        itemType.setDisplayName("Item");
+        itemType.setIsFileable(true);
+        itemType.setIsIncludedInSupertypeQuery(true);
+        itemType.setLocalName("Item");
+        itemType.setLocalNamespace(NAMESPACE);
+        itemType.setIsQueryable(false);
+        itemType.setQueryName("cmis:item");
+        itemType.setId(ITEM_TYPE_ID);
+        itemType.setTypeMutability(typeMutability);
+
+        addBasePropertyDefinitions(itemType);
+
+        // not supported - don't expose it
+        // addTypeInteral(itemType);
+
+        // secondary type
+        SecondaryTypeDefinitionImpl secondaryType = new SecondaryTypeDefinitionImpl();
+        secondaryType.setBaseTypeId(BaseTypeId.CMIS_ITEM);
+        secondaryType.setIsControllableAcl(false);
+        secondaryType.setIsControllablePolicy(false);
+        secondaryType.setIsCreatable(true);
+        secondaryType.setDescription("Secondary");
+        secondaryType.setDisplayName("Secondary");
+        secondaryType.setIsFileable(false);
+        secondaryType.setIsIncludedInSupertypeQuery(true);
+        secondaryType.setLocalName("Secondary");
+        secondaryType.setLocalNamespace(NAMESPACE);
+        secondaryType.setIsQueryable(false);
+        secondaryType.setQueryName("cmis:secondary");
+        secondaryType.setId(SECONDARY_TYPE_ID);
+        secondaryType.setTypeMutability(typeMutability);
+
+        addBasePropertyDefinitions(secondaryType);
+
+        // not supported - don't expose it
+        // addTypeInteral(secondaryType);
     }
 
     private static void addBasePropertyDefinitions(AbstractTypeDefinition type) {



Mime
View raw message