You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by lg...@apache.org on 2014/04/23 14:48:05 UTC

svn commit: r1589399 - in /chemistry/objectivecmis/trunk: ObjectiveCMIS.xcodeproj/ ObjectiveCMIS/Bindings/AtomPub/AtomPubParser/ ObjectiveCMIS/Common/

Author: lgross
Date: Wed Apr 23 12:48:05 2014
New Revision: 1589399

URL: http://svn.apache.org/r1589399
Log:
CMIS-785: Create RepositoryCapabilities class that translates all plain text values into appropriate types

Added:
    chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISCreatablePropertyTypes.h
    chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISCreatablePropertyTypes.m
    chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISNewTypeSettableAttributes.h
    chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISNewTypeSettableAttributes.m
    chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryCapabilities.h
    chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryCapabilities.m
Modified:
    chemistry/objectivecmis/trunk/ObjectiveCMIS.xcodeproj/project.pbxproj
    chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/AtomPubParser/CMISRepositoryInfoParser.m
    chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.h
    chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.m
    chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISEnums.h
    chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryInfo.h

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS.xcodeproj/project.pbxproj
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS.xcodeproj/project.pbxproj?rev=1589399&r1=1589398&r2=1589399&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS.xcodeproj/project.pbxproj (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS.xcodeproj/project.pbxproj Wed Apr 23 12:48:05 2014
@@ -33,6 +33,12 @@
 		258998E218D73D900091BA96 /* CMISPrincipal.m in Sources */ = {isa = PBXBuildFile; fileRef = 258998E018D73D900091BA96 /* CMISPrincipal.m */; };
 		258998E518D73E1A0091BA96 /* CMISPrincipalParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 258998E318D73E1A0091BA96 /* CMISPrincipalParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		258998E618D73E1A0091BA96 /* CMISPrincipalParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 258998E418D73E1A0091BA96 /* CMISPrincipalParser.m */; };
+		25F7211F1907E0FE00B2FD66 /* CMISCreatablePropertyTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 25F721191907E0FE00B2FD66 /* CMISCreatablePropertyTypes.h */; };
+		25F721201907E0FE00B2FD66 /* CMISCreatablePropertyTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 25F7211A1907E0FE00B2FD66 /* CMISCreatablePropertyTypes.m */; };
+		25F721211907E0FE00B2FD66 /* CMISNewTypeSettableAttributes.h in Headers */ = {isa = PBXBuildFile; fileRef = 25F7211B1907E0FE00B2FD66 /* CMISNewTypeSettableAttributes.h */; };
+		25F721221907E0FE00B2FD66 /* CMISNewTypeSettableAttributes.m in Sources */ = {isa = PBXBuildFile; fileRef = 25F7211C1907E0FE00B2FD66 /* CMISNewTypeSettableAttributes.m */; };
+		25F721231907E0FE00B2FD66 /* CMISRepositoryCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 25F7211D1907E0FE00B2FD66 /* CMISRepositoryCapabilities.h */; };
+		25F721241907E0FE00B2FD66 /* CMISRepositoryCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 25F7211E1907E0FE00B2FD66 /* CMISRepositoryCapabilities.m */; };
 		278B269C177BB10B0049C229 /* CMISStandardAuthenticationProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 82C1C62C153427E4009B7B3D /* CMISStandardAuthenticationProvider.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		278B269F177BB3000049C229 /* CMISStandardUntrustedSSLAuthenticationProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 278B269D177BB3000049C229 /* CMISStandardUntrustedSSLAuthenticationProvider.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		278B26A0177BB3000049C229 /* CMISStandardUntrustedSSLAuthenticationProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = 278B269E177BB3000049C229 /* CMISStandardUntrustedSSLAuthenticationProvider.m */; };
@@ -242,6 +248,12 @@
 		258998E018D73D900091BA96 /* CMISPrincipal.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CMISPrincipal.m; path = Common/CMISPrincipal.m; sourceTree = "<group>"; };
 		258998E318D73E1A0091BA96 /* CMISPrincipalParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CMISPrincipalParser.h; sourceTree = "<group>"; };
 		258998E418D73E1A0091BA96 /* CMISPrincipalParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CMISPrincipalParser.m; sourceTree = "<group>"; };
+		25F721191907E0FE00B2FD66 /* CMISCreatablePropertyTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CMISCreatablePropertyTypes.h; path = Common/CMISCreatablePropertyTypes.h; sourceTree = "<group>"; };
+		25F7211A1907E0FE00B2FD66 /* CMISCreatablePropertyTypes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CMISCreatablePropertyTypes.m; path = Common/CMISCreatablePropertyTypes.m; sourceTree = "<group>"; };
+		25F7211B1907E0FE00B2FD66 /* CMISNewTypeSettableAttributes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CMISNewTypeSettableAttributes.h; path = Common/CMISNewTypeSettableAttributes.h; sourceTree = "<group>"; };
+		25F7211C1907E0FE00B2FD66 /* CMISNewTypeSettableAttributes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CMISNewTypeSettableAttributes.m; path = Common/CMISNewTypeSettableAttributes.m; sourceTree = "<group>"; };
+		25F7211D1907E0FE00B2FD66 /* CMISRepositoryCapabilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CMISRepositoryCapabilities.h; path = Common/CMISRepositoryCapabilities.h; sourceTree = "<group>"; };
+		25F7211E1907E0FE00B2FD66 /* CMISRepositoryCapabilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CMISRepositoryCapabilities.m; path = Common/CMISRepositoryCapabilities.m; sourceTree = "<group>"; };
 		278B269D177BB3000049C229 /* CMISStandardUntrustedSSLAuthenticationProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CMISStandardUntrustedSSLAuthenticationProvider.h; path = Common/CMISStandardUntrustedSSLAuthenticationProvider.h; sourceTree = "<group>"; };
 		278B269E177BB3000049C229 /* CMISStandardUntrustedSSLAuthenticationProvider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CMISStandardUntrustedSSLAuthenticationProvider.m; path = Common/CMISStandardUntrustedSSLAuthenticationProvider.m; sourceTree = "<group>"; };
 		4E10ABFD16B916B500E2287E /* CMISDefaultNetworkProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CMISDefaultNetworkProvider.h; path = Utils/CMISDefaultNetworkProvider.h; sourceTree = "<group>"; };
@@ -591,6 +603,8 @@
 				82C1C62A153426E4009B7B3D /* CMISAuthenticationProvider.h */,
 				828072F31515404F00EF635C /* CMISConstants.h */,
 				828072F41515404F00EF635C /* CMISConstants.m */,
+				25F721191907E0FE00B2FD66 /* CMISCreatablePropertyTypes.h */,
+				25F7211A1907E0FE00B2FD66 /* CMISCreatablePropertyTypes.m */,
 				828072F51515404F00EF635C /* CMISEnums.h */,
 				FE417D5B15761A1C009056AA /* CMISEnums.m */,
 				4EA61BE71564F75000C759E4 /* CMISErrors.h */,
@@ -600,6 +614,8 @@
 				752067F8156AC0FE00231A5D /* CMISExtensionElement.h */,
 				752067F9156AC0FE00231A5D /* CMISExtensionElement.m */,
 				4E3E14B116AFFB190057CE22 /* CMISNetworkProvider.h */,
+				25F7211B1907E0FE00B2FD66 /* CMISNewTypeSettableAttributes.h */,
+				25F7211C1907E0FE00B2FD66 /* CMISNewTypeSettableAttributes.m */,
 				828072F61515404F00EF635C /* CMISObjectData.h */,
 				828072F71515404F00EF635C /* CMISObjectData.m */,
 				258998DF18D73D900091BA96 /* CMISPrincipal.h */,
@@ -608,6 +624,8 @@
 				828072F91515404F00EF635C /* CMISProperties.m */,
 				828072FA1515404F00EF635C /* CMISPropertyData.h */,
 				828072FB1515404F00EF635C /* CMISPropertyData.m */,
+				25F7211D1907E0FE00B2FD66 /* CMISRepositoryCapabilities.h */,
+				25F7211E1907E0FE00B2FD66 /* CMISRepositoryCapabilities.m */,
 				828072FC1515404F00EF635C /* CMISRepositoryInfo.h */,
 				828072FD1515404F00EF635C /* CMISRepositoryInfo.m */,
 				828072FE1515404F00EF635C /* CMISSessionParameters.h */,
@@ -791,6 +809,7 @@
 				82AD4AEB1541642A0012DDB6 /* CMISBindingFactory.h in Headers */,
 				82AD4AEF15416A150012DDB6 /* CMISAclService.h in Headers */,
 				82AD4AF015416A1A0012DDB6 /* CMISObjectService.h in Headers */,
+				25F7211F1907E0FE00B2FD66 /* CMISCreatablePropertyTypes.h in Headers */,
 				82AD4AF315416A7B0012DDB6 /* CMISMultiFilingService.h in Headers */,
 				82AD4AF415416A7F0012DDB6 /* CMISDiscoveryService.h in Headers */,
 				82AD4AF615416AA90012DDB6 /* CMISPolicyService.h in Headers */,
@@ -803,9 +822,11 @@
 				75C8D0861559B7EA00B63D2B /* CMISAllowableActions.h in Headers */,
 				FE21296415946B94005234FE /* CMISAuthenticationProvider.h in Headers */,
 				8276E123155E34ED00344A29 /* CMISObjectId.h in Headers */,
+				25F721211907E0FE00B2FD66 /* CMISNewTypeSettableAttributes.h in Headers */,
 				8276E12F155E355D00344A29 /* CMISBase64Encoder.h in Headers */,
 				8276E131155E355D00344A29 /* CMISFileUtil.h in Headers */,
 				8276E159155E392A00344A29 /* CMISNavigationService.h in Headers */,
+				25F721231907E0FE00B2FD66 /* CMISRepositoryCapabilities.h in Headers */,
 				8276E15A155E392A00344A29 /* CMISRepositoryService.h in Headers */,
 				8276E15B155E392A00344A29 /* CMISVersioningService.h in Headers */,
 				75803D411560BD5300C738C1 /* CMISAtomLink.h in Headers */,
@@ -1010,6 +1031,7 @@
 				82AD4AEC1541642A0012DDB6 /* CMISBindingFactory.m in Sources */,
 				82C1C63F15358733009B7B43 /* CMISObjectByIdUriBuilder.m in Sources */,
 				82ABA0491554655A00935225 /* CMISBindingSession.m in Sources */,
+				25F721221907E0FE00B2FD66 /* CMISNewTypeSettableAttributes.m in Sources */,
 				82C1C63F15358733009B7B5A /* CMISAtomEntryWriter.m in Sources */,
 				75C5E2F81559172B0065550A /* CMISAllowableActionsParser.m in Sources */,
 				75C8D0871559B7EA00B63D2B /* CMISAllowableActions.m in Sources */,
@@ -1022,6 +1044,7 @@
 				82C1C63F15358733009B7B72 /* CMISQueryAtomEntryWriter.m in Sources */,
 				82C1C63F15358733009B7B76 /* CMISAtomPubDiscoveryService.m in Sources */,
 				82C1C63F15358733009B7B7E /* CMISAtomCollection.m in Sources */,
+				25F721201907E0FE00B2FD66 /* CMISCreatablePropertyTypes.m in Sources */,
 				82C1C63F15358733009B7B86 /* CMISObjectByPathUriBuilder.m in Sources */,
 				4EA61BD81564F70C00C759E4 /* CMISStringInOutParameter.m in Sources */,
 				258998E218D73D900091BA96 /* CMISPrincipal.m in Sources */,
@@ -1044,6 +1067,7 @@
 				FE417D6615761A34009056AA /* CMISPropertyDefinition.m in Sources */,
 				FE417D6815761A34009056AA /* CMISTypeDefinition.m in Sources */,
 				FE417D6815761A34009056C2 /* CMISRenditionData.m in Sources */,
+				25F721241907E0FE00B2FD66 /* CMISRepositoryCapabilities.m in Sources */,
 				FE417D6815761A34009056C6 /* CMISRendition.m in Sources */,
 				755E7D071586E8C3002CACB0 /* CMISAtomPubExtensionDataParserBase.m in Sources */,
 				258998DC18D73D5A0091BA96 /* CMISAce.m in Sources */,

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/AtomPubParser/CMISRepositoryInfoParser.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/AtomPubParser/CMISRepositoryInfoParser.m?rev=1589399&r1=1589398&r2=1589399&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/AtomPubParser/CMISRepositoryInfoParser.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/AtomPubParser/CMISRepositoryInfoParser.m Wed Apr 23 12:48:05 2014
@@ -21,6 +21,7 @@
 #import "CMISAtomPubConstants.h"
 #import "CMISAtomCollection.h"
 #import "CMISLog.h"
+#import "CMISRepositoryCapabilities.h"
 
 @interface CMISRepositoryInfoParser ()
 
@@ -30,8 +31,7 @@
 @property (nonatomic, strong) NSMutableString *currentString;
 @property (nonatomic, strong) CMISAtomCollection *currentCollection;
 
-// TODO Temporary object, replace with CMISRepositoryCapabilities object or similar when available
-@property (nonatomic, strong) id currentCapabilities;
+@property (nonatomic, strong) CMISRepositoryCapabilities *currentCapabilities;
 
 @property (nonatomic, assign, getter = isParsingExtensionElement) BOOL parsingExtensionElement;
 @end
@@ -71,7 +71,7 @@
     
     if ([namespaceURI isEqualToString:kCMISNamespaceCmis]) {
         if ([elementName isEqualToString:kCMISCoreCapabilities]) {
-            self.currentCapabilities = [NSMutableDictionary dictionaryWithCapacity:14];
+            self.currentCapabilities = [[CMISRepositoryCapabilities alloc] init];
         }
     } else if ( ![namespaceURI isEqualToString:kCMISNamespaceCmis] && ![namespaceURI isEqualToString:kCMISNamespaceApp] 
               && ![namespaceURI isEqualToString:kCMISNamespaceAtom] && ![namespaceURI isEqualToString:kCMISNamespaceCmisRestAtom])  {
@@ -111,7 +111,7 @@
         } else if ([elementName isEqualToString:kCMISCoreCmisVersionSupported]) {
             self.currentRepositoryInfo.cmisVersionSupported = self.currentString;
         } else if ([elementName hasPrefix:_kCMISCoreCapabilityPrefix] && self.currentCapabilities) {
-            [self.currentCapabilities setValue:self.currentString forKeyPath:elementName];
+            [self.currentCapabilities setCapability:elementName value:self.currentString];
         } else if ([elementName isEqualToString:kCMISCoreCapabilities]) {
             self.currentRepositoryInfo.repositoryCapabilities = self.currentCapabilities;
             self.currentCapabilities = nil;
@@ -168,4 +168,5 @@
     [self.currentExtensions addObject:extensionElement];
 }
 
+
 @end

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.h?rev=1589399&r1=1589398&r2=1589399&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.h Wed Apr 23 12:48:05 2014
@@ -42,10 +42,29 @@ extern NSString * const kCMISPropertyBas
 extern NSString * const kCMISPropertyCheckinComment;
 extern NSString * const kCMISPropertySecondaryObjectTypeIds;
 extern NSString * const kCMISPropertyDescription;
+
 // Property values
 extern NSString * const kCMISPropertyObjectTypeIdValueDocument;
 extern NSString * const kCMISPropertyObjectTypeIdValueFolder;
 
 // Session cache keys
-
 extern NSString * const kCMISSessionKeyWorkspaces;
+
+// Capability Keys
+extern NSString * const kCMISRepositoryCapabilityACL;
+extern NSString * const kCMISRepositoryAllVersionsSearchable;
+extern NSString * const kCMISRepositoryCapabilityChanges;
+extern NSString * const kCMISRepositoryCapabilityContentStreamUpdatability;
+extern NSString * const kCMISRepositoryCapabilityJoin;
+extern NSString * const kCMISRepositoryCapabilityQuery;
+extern NSString * const kCMISRepositoryCapabilityRenditions;
+extern NSString * const kCMISRepositoryCapabilityPWCSearchable;
+extern NSString * const kCMISRepositoryCapabilityPWCUpdatable;
+extern NSString * const kCMISRepositoryCapabilityGetDescendants;
+extern NSString * const kCMISRepositoryCapabilityGetFolderTree;
+extern NSString * const kCMISRepositoryCapabilityOrderBy;
+extern NSString * const kCMISRepositoryCapabilityMultifiling;
+extern NSString * const kCMISRepositoryCapabilityUnfiling;
+extern NSString * const kCMISRepositoryCapabilityVersionSpecificFiling;
+extern NSString * const kCMISRepositoryCapabilityPropertyTypes;
+extern NSString * const kCMISRepositoryCapabilityTypeSettableAttributes;
\ No newline at end of file

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.m?rev=1589399&r1=1589398&r2=1589399&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.m Wed Apr 23 12:48:05 2014
@@ -54,3 +54,21 @@ NSString * const kCMISPropertyObjectType
 
 NSString * const kCMISSessionKeyWorkspaces = @"cmis_session_key_workspaces";
 
+// Capability Keys
+NSString * const kCMISRepositoryCapabilityACL                       = @"capabilityACL";
+NSString * const kCMISRepositoryAllVersionsSearchable               = @"capabilityAllVersionsSearchable";
+NSString * const kCMISRepositoryCapabilityChanges                   = @"capabilityChanges";
+NSString * const kCMISRepositoryCapabilityContentStreamUpdatability = @"capabilityContentStreamUpdatability";
+NSString * const kCMISRepositoryCapabilityJoin                      = @"capabilityJoin";
+NSString * const kCMISRepositoryCapabilityQuery                     = @"capabilityQuery";
+NSString * const kCMISRepositoryCapabilityRenditions                = @"capabilityRenditions";
+NSString * const kCMISRepositoryCapabilityPWCSearchable             = @"capabilityPWCSearchable";
+NSString * const kCMISRepositoryCapabilityPWCUpdatable              = @"capabilityPWCUpdatable";
+NSString * const kCMISRepositoryCapabilityGetDescendants            = @"capabilityGetDescendants";
+NSString * const kCMISRepositoryCapabilityGetFolderTree             = @"capabilityGetFolderTree";
+NSString * const kCMISRepositoryCapabilityOrderBy                   = @"capabilityOrderBy";
+NSString * const kCMISRepositoryCapabilityMultifiling               = @"capabilityMultifiling";
+NSString * const kCMISRepositoryCapabilityUnfiling                  = @"capabilityUnfiling";
+NSString * const kCMISRepositoryCapabilityVersionSpecificFiling     = @"capabilityVersionSpecificFiling";
+NSString * const kCMISRepositoryCapabilityPropertyTypes             = @"capabilityCreatablePropertyTypes";
+NSString * const kCMISRepositoryCapabilityTypeSettableAttributes    = @"capabilityTypeSettableAttributes";
\ No newline at end of file

Added: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISCreatablePropertyTypes.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISCreatablePropertyTypes.h?rev=1589399&view=auto
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISCreatablePropertyTypes.h (added)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISCreatablePropertyTypes.h Wed Apr 23 12:48:05 2014
@@ -0,0 +1,39 @@
+/*
+ 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.
+ */
+
+#import "CMISExtensionData.h"
+
+/**
+ * Holds the set of property data types for type creation and update.
+ *
+ * @cmis 1.1
+ */
+@interface CMISCreatablePropertyTypes : CMISExtensionData
+
+/**
+ * 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.
+ *
+ * @cmis 1.1
+ */
+@property(nonatomic, strong) NSSet *canCreate;
+
+@end

Added: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISCreatablePropertyTypes.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISCreatablePropertyTypes.m?rev=1589399&view=auto
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISCreatablePropertyTypes.m (added)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISCreatablePropertyTypes.m Wed Apr 23 12:48:05 2014
@@ -0,0 +1,24 @@
+/*
+ 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.
+ */
+
+#import "CMISCreatablePropertyTypes.h"
+
+@implementation CMISCreatablePropertyTypes
+
+@end

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISEnums.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISEnums.h?rev=1589399&r1=1589398&r2=1589399&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISEnums.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISEnums.h Wed Apr 23 12:48:05 2014
@@ -143,6 +143,64 @@ typedef NS_ENUM(NSInteger, CMISContentSt
     CMISContentStreamRequired
 };
 
+// Repository Capability ACL
+typedef NS_ENUM(NSInteger, CMISCapabilityAcl)
+{
+    CMISCapabilityAclNone,
+    CMISCapabilityAclDiscover,
+    CMISCapabilityAclManage
+};
+
+// Repository Capability Changes
+typedef NS_ENUM(NSInteger, CMISCapabilityChanges)
+{
+    CMISCapabilityChangesNone,
+    CMISCapabilityChangesObjectIdsOnly,
+    CMISCapabilityChangesProperties,
+    CMISCapabilityChangesAll
+};
+
+// Repository Capability Content Stream Updates
+typedef NS_ENUM(NSInteger, CMISCapabilityContentStreamUpdates)
+{
+    CMISCapabilityContentStreamUpdatesNone,
+    CMISCapabilityContentStreamUpdatesPwcOnly,
+    CMISCapabilityContentStreamUpdatesAnytime
+};
+
+// Repository Capability Join
+typedef NS_ENUM(NSInteger, CMISCapabilityJoin)
+{
+    CMISCapabilityJoinNone,
+    CMISCapabilityJoinInnerOnly,
+    CMISCapabilityJoinInnerAndOuter
+};
+
+// Repository Capability Query
+typedef NS_ENUM(NSInteger, CMISCapabilityQuery)
+{
+    CMISCapabilityQueryNone,
+    CMISCapabilityQueryMetaDataOnly,
+    CMISCapabilityQueryFullTextOnly,
+    CMISCapabilityQueryBothSeparate,
+    CMISCapabilityQueryBothCombined
+};
+
+// Repository Capability Renditions
+typedef NS_ENUM(NSInteger, CMISCapabilityRenditions)
+{
+    CMISCapabilityRenditionsNone,
+    CMISCapabilityRenditionsRead
+};
+
+// Repository Capability Order By
+typedef NS_ENUM(NSInteger, CMISCapabilityOrderBy)
+{
+    CMISCapabilityOrderByNone,
+    CMISCapabilityOrderByCommon,
+    CMISCapabilityOrderByCustom
+};
+
 @interface CMISEnums : NSObject 
 
 + (NSString *)stringForIncludeRelationShip:(CMISIncludeRelationship)includeRelationship;

Added: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISNewTypeSettableAttributes.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISNewTypeSettableAttributes.h?rev=1589399&view=auto
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISNewTypeSettableAttributes.h (added)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISNewTypeSettableAttributes.h Wed Apr 23 12:48:05 2014
@@ -0,0 +1,151 @@
+/*
+ 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.
+ */
+
+#import "CMISExtensionData.h"
+
+@interface CMISNewTypeSettableAttributes : CMISExtensionData
+
+/**
+ * Indicates if the "id" attribute can be set.
+ *
+ * @return <code>true</code> if the "id" attribute can be set,
+ *         <code>false</code> otherwise
+ *
+ * @cmis 1.1
+ */
+@property(nonatomic, assign) BOOL canSetId;
+
+/**
+ * Indicates if the "localName" attribute can be set.
+ *
+ * @return <code>true</code> if the "localName" attribute can be set,
+ *         <code>false</code> otherwise
+ *
+ * @cmis 1.1
+ */
+@property(nonatomic, assign) BOOL canSetLocalName;
+
+/**
+ * Indicates if the "localNamespace" attribute can be set.
+ *
+ * @return <code>true</code> if the "localNamespace" attribute can be set,
+ *         <code>false</code> otherwise
+ *
+ * @cmis 1.1
+ */
+@property(nonatomic, assign) BOOL canSetLocalNamespace;
+
+/**
+ * Indicates if the "displayName" attribute can be set.
+ *
+ * @return <code>true</code> if the "displayName" attribute can be set,
+ *         <code>false</code> otherwise
+ *
+ * @cmis 1.1
+ */
+@property(nonatomic, assign) BOOL canSetDisplayName;
+
+/**
+ * Indicates if the "queryName" attribute can be set.
+ *
+ * @return <code>true</code> if the "queryName" attribute can be set,
+ *         <code>false</code> otherwise
+ *
+ * @cmis 1.1
+ */
+@property(nonatomic, assign) BOOL canSetQueryName;
+
+/**
+ * Indicates if the "description" attribute can be set.
+ *
+ * @return <code>true</code> if the "description" attribute can be set,
+ *         <code>false</code> otherwise
+ * @cmis 1.1
+ */
+@property(nonatomic, assign) BOOL canSetDescription;
+
+/**
+ * Indicates if the "creatable" attribute can be set.
+ *
+ * @return <code>true</code> if the "creatable" attribute can be set,
+ *         <code>false</code> otherwise
+ *
+ * @cmis 1.1
+ */
+@property(nonatomic, assign) BOOL canSetCreatable;
+
+/**
+ * Indicates if the "fileable" attribute can be set.
+ *
+ * @return <code>true</code> if the "fileable" attribute can be set,
+ *         <code>false</code> otherwise
+ *
+ * @cmis 1.1
+ */
+@property(nonatomic, assign) BOOL canSetFileable;
+
+/**
+ * Indicates if the "queryable" attribute can be set.
+ *
+ * @return <code>true</code> if the "queryable" attribute can be set,
+ *         <code>false</code> otherwise
+ *
+ * @cmis 1.1
+ */
+@property(nonatomic, assign) BOOL canSetQueryable;
+
+/**
+ * Indicates if the "fulltextIndexed" attribute can be set.
+ *
+ * @return <code>true</code> if the "fulltextIndexed" attribute can be set,
+ *         <code>false</code> otherwise
+ */
+@property(nonatomic, assign) BOOL canSetFulltextIndexed;
+
+/**
+ * Indicates if the "includedInSupertypeQuery" attribute can be set.
+ *
+ * @return <code>true</code> if the "includedInSupertypeQuery" attribute can
+ *         be set, <code>false</code> otherwise
+ *
+ * @cmis 1.1
+ */
+@property(nonatomic, assign) BOOL canSetIncludedInSupertypeQuery;
+
+/**
+ * Indicates if the "controllablePolicy" attribute can be set.
+ *
+ * @return <code>true</code> if the "controllablePolicy" attribute can be
+ *         set, <code>false</code> otherwise
+ *
+ * @cmis 1.1
+ */
+@property(nonatomic, assign) BOOL canSetControllablePolicy;
+
+/**
+ * Indicates if the "controllableACL" attribute can be set.
+ *
+ * @return <code>true</code> if the "controllableACL" attribute can be set,
+ *         <code>false</code> otherwise
+ *
+ * @cmis 1.1
+ */
+@property(nonatomic, assign) BOOL canSetControllableAcl;
+
+@end

Added: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISNewTypeSettableAttributes.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISNewTypeSettableAttributes.m?rev=1589399&view=auto
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISNewTypeSettableAttributes.m (added)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISNewTypeSettableAttributes.m Wed Apr 23 12:48:05 2014
@@ -0,0 +1,24 @@
+/*
+ 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.
+ */
+
+#import "CMISNewTypeSettableAttributes.h"
+
+@implementation CMISNewTypeSettableAttributes
+
+@end

Added: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryCapabilities.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryCapabilities.h?rev=1589399&view=auto
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryCapabilities.h (added)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryCapabilities.h Wed Apr 23 12:48:05 2014
@@ -0,0 +1,132 @@
+/*
+ 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.
+ */
+
+#import <Foundation/Foundation.h>
+#import "CMISEnums.h"
+#import "CMISExtensionData.h"
+#import "CMISCreatablePropertyTypes.h"
+#import "CMISNewTypeSettableAttributes.h"
+
+@interface CMISRepositoryCapabilities : CMISExtensionData
+
+/**
+ *
+ * @cmis 1.0
+ */
+@property(nonatomic, assign) BOOL allVersionsSearchable;
+
+/**
+ *
+ * @cmis 1.0
+ */
+@property(nonatomic, assign) CMISCapabilityAcl capabilityAcl;
+
+/**
+ *
+ * @cmis 1.0
+ */
+@property(nonatomic, assign) CMISCapabilityChanges capabilityChanges;
+
+/**
+ *
+ * @cmis 1.0
+ */
+@property(nonatomic, assign) CMISCapabilityContentStreamUpdates capabilityContentStreamUpdates;
+
+/**
+ *
+ * @cmis 1.0
+ */
+@property(nonatomic, assign) CMISCapabilityJoin capabilityJoin;
+
+/**
+ *
+ * @cmis 1.0
+ */
+@property(nonatomic, assign) CMISCapabilityQuery capabilityQuery;
+
+/**
+ *
+ * @cmis 1.0
+ */
+@property(nonatomic, assign) CMISCapabilityRenditions capabilityRendition;
+
+/**
+ *
+ * @cmis 1.0
+ */
+@property(nonatomic, assign, getter = isPwcSearchable) BOOL pwcSearchable;
+
+/**
+ *
+ * @cmis 1.0
+ */
+@property(nonatomic, assign, getter = isPwcUpdatable) BOOL pwcUpdatable;
+
+/**
+ *
+ * @cmis 1.0
+ */
+@property(nonatomic, assign) BOOL supportsGetDescendants;
+
+/**
+ *
+ * @cmis 1.0
+ */
+@property(nonatomic, assign) BOOL supportsGetFolderTree;
+
+/**
+ *
+ * @cmis 1.0
+ */
+@property(nonatomic, assign) CMISCapabilityOrderBy capabilityOrderBy;
+
+/**
+ *
+ * @cmis 1.0
+ */
+@property(nonatomic, assign) BOOL supportsMultifiling;
+
+/**
+ *
+ * @cmis 1.0
+ */
+@property(nonatomic, assign) BOOL supportsUnfiling;
+
+/**
+ *
+ * @cmis 1.0
+ */
+@property(nonatomic, assign) BOOL supportsVersionSpecificFiling;
+
+/**
+ *
+ * @cmis 1.1
+ */
+@property(nonatomic, strong) CMISCreatablePropertyTypes *creatablePropertyTypes; // TODO: Set this attribute when we have browser binding
+
+/**
+ *
+ * @cmis 1.1
+ */
+@property(nonatomic, strong) CMISNewTypeSettableAttributes *typeSettableAttributes; // TODO: Set this attribute when we have browser binding
+
+-(void) setCapability:(NSString*)capabilityKey value:(NSString*)capabilityValue;
+
+@end

Added: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryCapabilities.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryCapabilities.m?rev=1589399&view=auto
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryCapabilities.m (added)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryCapabilities.m Wed Apr 23 12:48:05 2014
@@ -0,0 +1,126 @@
+/*
+ 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.
+ */
+
+#import "CMISRepositoryCapabilities.h"
+#import "CMISConstants.h"
+#import "CMISLog.h"
+
+@implementation CMISRepositoryCapabilities
+
+-(void) setCapability:(NSString*)capabilityKey value:(NSString*)capabilityValue {
+    if ([capabilityKey isEqualToString:kCMISRepositoryAllVersionsSearchable]) {
+        self.allVersionsSearchable = [capabilityValue boolValue];
+    } else if ([capabilityKey isEqualToString:kCMISRepositoryCapabilityACL]) {
+        if ([capabilityValue isEqualToString:@"none"]) {
+            self.capabilityAcl = CMISCapabilityAclNone;
+        } else if ([capabilityValue isEqualToString:@"discover"]) {
+            self.capabilityAcl = CMISCapabilityAclDiscover;
+        } else if ([capabilityValue isEqualToString:@"manage"]) {
+            self.capabilityAcl = CMISCapabilityAclManage;
+        } else {
+            CMISLogWarning(@"WARNING: Unknown Repository Capability ACL Value");
+        }
+    } else if ([capabilityKey isEqualToString:kCMISRepositoryCapabilityChanges]) {
+        if ([capabilityValue isEqualToString:@"none"]) {
+            self.capabilityChanges = CMISCapabilityChangesNone;
+        } else if ([capabilityValue isEqualToString:@"objectidsonly"]) {
+            self.capabilityChanges = CMISCapabilityChangesObjectIdsOnly;
+        } else if ([capabilityValue isEqualToString:@"properties"]) {
+            self.capabilityChanges = CMISCapabilityChangesProperties;
+        } else if ([capabilityValue isEqualToString:@"all"]) {
+            self.capabilityChanges = CMISCapabilityChangesAll;
+        } else {
+            CMISLogWarning(@"WARNING: Unknown Repository Capability Changes Value");
+        }
+    } else if ([capabilityKey isEqualToString:kCMISRepositoryCapabilityContentStreamUpdatability]) {
+        if ([capabilityValue isEqualToString:@"none"]) {
+            self.capabilityContentStreamUpdates = CMISCapabilityContentStreamUpdatesNone;
+        } else if ([capabilityValue isEqualToString:@"anytime"]) {
+            self.capabilityContentStreamUpdates = CMISCapabilityContentStreamUpdatesAnytime;
+        } else if ([capabilityValue isEqualToString:@"pwconly"]) {
+            self.capabilityContentStreamUpdates = CMISCapabilityContentStreamUpdatesPwcOnly;
+        } else {
+            CMISLogWarning(@"WARNING: Unknown Repository Capability Updatability Value");
+        }
+    } else if ([capabilityKey isEqualToString:kCMISRepositoryCapabilityGetDescendants]) {
+        self.supportsGetDescendants = [capabilityValue boolValue];
+    } else if ([capabilityKey isEqualToString:kCMISRepositoryCapabilityGetFolderTree]) {
+        self.supportsGetFolderTree = [capabilityValue boolValue];
+    } else if ([capabilityKey isEqualToString:kCMISRepositoryCapabilityJoin]) {
+        if ([capabilityValue isEqualToString:@"none"]) {
+            self.capabilityJoin = CMISCapabilityJoinNone;
+        } else if ([capabilityValue isEqualToString:@"inneronly"]) {
+            self.capabilityJoin = CMISCapabilityJoinInnerOnly;
+        } else if ([capabilityValue isEqualToString:@"innerandouter"]) {
+            self.capabilityJoin = CMISCapabilityJoinInnerAndOuter;
+        } else {
+            CMISLogWarning(@"WARNING: Unknown Repository Capability Join Value");
+        }
+    } else if ([capabilityKey isEqualToString:kCMISRepositoryCapabilityQuery]) {
+        if ([capabilityValue isEqualToString:@"none"]) {
+            self.capabilityQuery = CMISCapabilityQueryNone;
+        } else if ([capabilityValue isEqualToString:@"metadataonly"]) {
+            self.capabilityQuery = CMISCapabilityQueryMetaDataOnly;
+        } else if ([capabilityValue isEqualToString:@"fulltextonly"]) {
+            self.capabilityQuery = CMISCapabilityQueryFullTextOnly;
+        } else if ([capabilityValue isEqualToString:@"bothseparate"]) {
+            self.capabilityQuery = CMISCapabilityQueryBothSeparate;
+        } else if ([capabilityValue isEqualToString:@"bothcombined"]) {
+            self.capabilityQuery = CMISCapabilityQueryBothCombined;
+        } else {
+            CMISLogWarning(@"WARNING: Unknown Repository Capability Query Value");
+        }
+    } else if ([capabilityKey isEqualToString:kCMISRepositoryCapabilityMultifiling]) {
+        self.supportsMultifiling = [capabilityValue boolValue];
+    } else if ([capabilityKey isEqualToString:kCMISRepositoryCapabilityOrderBy]) {
+        if ([capabilityValue isEqualToString:@"none"]) {
+            self.capabilityOrderBy = CMISCapabilityOrderByNone;
+        } else if ([capabilityValue isEqualToString:@"common"]) {
+            self.capabilityOrderBy = CMISCapabilityOrderByCommon;
+        } else if ([capabilityValue isEqualToString:@"custom"]) {
+            self.capabilityOrderBy = CMISCapabilityOrderByCustom;
+        } else {
+            CMISLogWarning(@"WARNING: Unknown Repository Capability Order By Value");
+        }
+    } else if ([capabilityKey isEqualToString:kCMISRepositoryCapabilityPropertyTypes]) {
+        
+    } else if ([capabilityKey isEqualToString:kCMISRepositoryCapabilityPWCSearchable]) {
+        self.pwcSearchable = [capabilityValue boolValue];
+    } else if ([capabilityKey isEqualToString:kCMISRepositoryCapabilityPWCUpdatable]) {
+        self.pwcUpdatable = [capabilityValue boolValue];
+    } else if ([capabilityKey isEqualToString:kCMISRepositoryCapabilityRenditions]) {
+        if ([capabilityValue isEqualToString:@"none"]) {
+            self.capabilityRendition = CMISCapabilityOrderByNone;
+        } else if ([capabilityValue isEqualToString:@"read"]) {
+            self.capabilityRendition = CMISCapabilityOrderByCommon;
+        } else {
+            CMISLogWarning(@"WARNING: Unknown Repository Renditions Value");
+        }
+    } else if ([capabilityKey isEqualToString:kCMISRepositoryCapabilityVersionSpecificFiling]) {
+        self.supportsVersionSpecificFiling = [capabilityValue boolValue];
+    } else if ([capabilityKey isEqualToString:kCMISRepositoryCapabilityTypeSettableAttributes]) {
+        
+    } else if ([capabilityKey isEqualToString:kCMISRepositoryCapabilityUnfiling]) {
+        self.supportsUnfiling = [capabilityValue boolValue];
+    } else {
+        CMISLogWarning(@"WARNING: Unknown Repository Capability Key");
+    }
+}
+
+@end

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryInfo.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryInfo.h?rev=1589399&r1=1589398&r2=1589399&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryInfo.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryInfo.h Wed Apr 23 12:48:05 2014
@@ -19,6 +19,7 @@
 
 #import <Foundation/Foundation.h>
 #import "CMISExtensionData.h"
+#import "CMISRepositoryCapabilities.h"
 
 @interface CMISRepositoryInfo : CMISExtensionData
 
@@ -54,11 +55,11 @@
  */
 @property (nonatomic, strong) NSString *principalIdAnyone;
 
-// TODO the repositoryCapabilities property is currently not types.  
-/**  CMISRepositoryCapabilities needs to be created and replace the raw NSDictionary object
- * that is currently being set from the CMISRepositoryInfoParser
- * Use keypaths to get values until the property is properly typed **
+/**
+ * Returns Repository Capabilities Object
+ *
+ * @return Repository Capabilities
  */
-@property (nonatomic, strong) id repositoryCapabilities;
+@property (nonatomic, strong) CMISRepositoryCapabilities *repositoryCapabilities;
 
 @end