PortCMIS: more stuff

git-svn-id: https://svn.apache.org/repos/asf/chemistry/portcmis/trunk@1743219 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/PortCMIS/client/ClientIntf.cs b/PortCMIS/client/ClientIntf.cs
index 714c0b8..060a54f 100644
--- a/PortCMIS/client/ClientIntf.cs
+++ b/PortCMIS/client/ClientIntf.cs
@@ -765,15 +765,12 @@
     /// <summary>

     /// Query Statement.

     /// </summary>

-    /// <remarks>

-    /// Sample code:

-    /// 

-    /// <c>

+    /// <example>

     /// DateTime cal = ...

-    /// Folder folder = ...

+    /// IFolder folder = ...

     /// 

     /// IQueryStatement qs = 

-    ///   session.createQueryStatement("SELECT ?, ? FROM ? WHERE ? > TIMESTAMP ? AND IN_FOLDER(?) OR ? IN (?)");

+    ///   Session.CreateQueryStatement("SELECT ?, ? FROM ? WHERE ? > TIMESTAMP ? AND IN_FOLDER(?) OR ? IN (?)");

     /// 

     /// qs.SetProperty(1, "cmis:document", "cmis:name");

     /// qs.SetProperty(2, "cmis:document", "cmis:objectId");

@@ -788,8 +785,7 @@
     /// qs.SetString(8, "bob", "tom", "lisa"); 

     /// 

     /// string statement = qs.ToQueryString();

-    /// </c>

-    /// </remarks>

+    /// </example>

     public interface IQueryStatement

     {

         /// <summary>

@@ -811,6 +807,7 @@
         /// Sets the designated parameter to the query name of the given property.

         /// </summary>

         /// <param name='parameterIndex'>the parameter index (one-based)</param>

+        /// <param name='typeId'>the type ID</param>

         /// <param name='propertyId'>the property ID</param>

         void SetProperty(int parameterIndex, string typeId, string propertyId);

 

@@ -851,9 +848,8 @@
         void SetStringLike(int parameterIndex, string str);

 

         /// <summary>

-        /// Sets the designated parameter to the given string in a CMIS contains

-        /// statement.

-        /// </summary>S

+        /// Sets the designated parameter to the given string in a CMIS contains statement.

+        /// </summary>

         /// <remarks>

         /// Note that the CMIS specification requires two levels of escaping. The

         /// first level escapes ', ", \ characters to \', \" and \\. The characters

@@ -866,10 +862,60 @@
         /// On the second level grammar ", ', - and \ are escaped with a \. See the

         /// spec for further details.

         /// <p>

-        /// Summary (input --> first level escaping --> second level escaping and

-        /// output):/// -->/// -->/// ? --> ? --> ? - --> - --> - \ --> \\ --> \\\\ (for

-        /// any other character following other than/// ? -) \* --> \* --> \\* \? -->

-        /// \? --> \\? \- --> \- --> \\- ' --> \' --> \\\' " --> \" --> \\\"

+        /// Summary:

+        /// <table summary="Escaping Summary">

+        /// <tr>

+        /// <th>input</th>

+        /// <th>first level escaping</th>

+        /// <th>second level escaping</th>

+        /// </tr>

+        /// <tr>

+        /// <td>*</td>

+        /// <td>*</td>

+        /// <td>*</td>

+        /// </tr>

+        /// <tr>

+        /// <td>?</td>

+        /// <td>?</td>

+        /// <td>?</td>

+        /// </tr>

+        /// <tr>

+        /// <td>-</td>

+        /// <td>-</td>

+        /// <td>-</td>

+        /// </tr>

+        /// <tr>

+        /// <td>\</td>

+        /// <td>\\</td>

+        /// <td>\\\\<br>

+        /// <em>(for any other character following other than///?-)</em></td>

+        /// </tr>

+        /// <tr>

+        /// <td>\*</td>

+        /// <td>\*</td>

+        /// <td>\\*</td>

+        /// </tr>

+        /// <tr>

+        /// <td>\?</td>

+        /// <td>\?</td>

+        /// <td>\\?</td>

+        /// </tr>

+        /// <tr>

+        /// <td>\-</td>

+        /// <td>\-</td>

+        /// <td>\\-+</td>

+        /// </tr>

+        /// <tr>

+        /// <td>'</td>

+        /// <td>\'</td>

+        /// <td>\\\'</td>

+        /// </tr>

+        /// <tr>

+        /// <td>"</td>

+        /// <td>\"</td>

+        /// <td>\\\"</td>

+        /// </tr>

+        /// </table>

         /// </remarks>

         /// <param name='parameterIndex'>the parameter index (one-based)</param>

         /// <param name='str'>the CONTAINS string</param>

@@ -1113,7 +1159,7 @@
         IDocument GetRenditionDocument();

 

         /// <summary>

-        /// * Returns the rendition document using the provided operation context if the rendition is a stand-alone document.

+        /// Returns the rendition document using the provided operation context if the rendition is a stand-alone document.

         /// </summary>

         /// <param name="context">the operation context</param>

         /// <returns>the rendition document or <c>null</c> if there is no rendition document</returns>

diff --git a/PortCMIS/const/PermissionMappingKeys.cs b/PortCMIS/const/PermissionMappingKeys.cs
index b45f631..e0d45b4 100644
--- a/PortCMIS/const/PermissionMappingKeys.cs
+++ b/PortCMIS/const/PermissionMappingKeys.cs
@@ -24,39 +24,73 @@
     /// </summary>

     public static class PermissionMappingKeys

     {

+        /// <summary>Key <c>canGetDescendents.Folder</c></summary>

         public const string CanGetDescendentsFolder = "canGetDescendents.Folder";

+        /// <summary>Key <c>canGetChildren.Folder</c></summary>

         public const string CanGetChildrenFolder = "canGetChildren.Folder";

+        /// <summary>Key <c>canGetParents.Folder</c></summary>

         public const string CanGetParentsFolder = "canGetParents.Folder";

+        /// <summary>Key <c>canGetFolderParent.Object</c></summary>

         public const string CanGetFolderParentObject = "canGetFolderParent.Object";

+        /// <summary>Key <c>canCreateDocument.Folder</c></summary>

         public const string CanCreateDocumentFolder = "canCreateDocument.Folder";

+        /// <summary>Key <c>canCreateFolder.Folder</c></summary>

         public const string CanCreateFolderFolder = "canCreateFolder.Folder";

+        /// <summary>Key <c>canCreateRelationship.Source</c></summary>

         public const string CanCreateRelationshipSource = "canCreateRelationship.Source";

+        /// <summary>Key <c>canCreateRelationship.Target</c></summary>

         public const string CanCreateRelationshipTarget = "canCreateRelationship.Target";

+        /// <summary>Key <c>canGetProperties.Object</c></summary>

         public const string CanGetPropertiesObject = "canGetProperties.Object";

+        /// <summary>Key <c>canViewContent.Object</c></summary>

         public const string CanViewContentObject = "canViewContent.Object";

+        /// <summary>Key <c>canUpdateProperties.Object</c></summary>

         public const string CanUpdatePropertiesObject = "canUpdateProperties.Object";

+        /// <summary>Key <c>canMove.Object</c></summary>

         public const string CanMoveObject = "canMove.Object";

+        /// <summary>Key <c>canMove.Target</c></summary>

         public const string CanMoveTarget = "canMove.Target";

+        /// <summary>Key <c>canMove.Source</c></summary>

         public const string CanMoveSource = "canMove.Source";

+        /// <summary>Key <c>canDelete.Objectr</c></summary>

         public const string CanDeleteObject = "canDelete.Object";

+        /// <summary>Key <c>canDeleteTree.Folder</c></summary>

         public const string CanDeleteTreeFolder = "canDeleteTree.Folder";

+        /// <summary>Key <c>canSetContent.Document</c></summary>

         public const string CanSetContentDocument = "canSetContent.Document";

+        /// <summary>Key <c>canDeleteContent.Document</c></summary>

         public const string CanDeleteContentDocument = "canDeleteContent.Document";

+        /// <summary>Key <c>canAddToFolder.Object</c></summary>

         public const string CanAddToFolderObject = "canAddToFolder.Object";

+        /// <summary>Key <c>canAddToFolder.Folder</c></summary>

         public const string CanAddToFolderFolder = "canAddToFolder.Folder";

+        /// <summary>Key <c>canRemoveFromFolder.Object</c></summary>

         public const string CanRemoveFromFolderObject = "canRemoveFromFolder.Object";

+        /// <summary>Key <c>canRemoveFromFolder.Folder</c></summary>

         public const string CanRemoveFromFolderFolder = "canRemoveFromFolder.Folder";

+        /// <summary>Key <c>canCheckout.Document</c></summary>

         public const string CanCheckoutDocument = "canCheckout.Document";

+        /// <summary>Key <c>canCancelCheckout.Document</c></summary>

         public const string CanCancelCheckoutDocument = "canCancelCheckout.Document";

+        /// <summary>Key <c>canCheckin.Document</c></summary>

         public const string CanCheckinDocument = "canCheckin.Document";

+        /// <summary>Key <c>canGetAllVersions.VersionSeries</c></summary>

         public const string CanGetAllVersionsVersionSeries = "canGetAllVersions.VersionSeries";

+        /// <summary>Key <c>canGetObjectRelationships.Object</c></summary>

         public const string CanGetObjectRelationshipSObject = "canGetObjectRelationships.Object";

+        /// <summary>Key <c>canAddPolicy.Object</c></summary>

         public const string CanAddPolicyObject = "canAddPolicy.Object";

+        /// <summary>Key <c>canAddPolicy.Policy</c></summary>

         public const string CanAddPolicyPolicy = "canAddPolicy.Policy";

+        /// <summary>Key <c>canRemovePolicy.Object</c></summary>

         public const string CanRemovePolicyObject = "canRemovePolicy.Object";

+        /// <summary>Key <c>canRemovePolicy.Policy</c></summary>

         public const string CanRemovePolicyPolicy = "canRemovePolicy.Policy";

+        /// <summary>Key <c>canGetAppliedPolicies.Object</c></summary>

         public const string CanGetAppliesPoliciesObject = "canGetAppliedPolicies.Object";

+        /// <summary>Key <c>canGetAcl.Object</c></summary>

         public const string CanGetAclObject = "canGetAcl.Object";

+        /// <summary>Key <c>canApplyAcl.Object</c></summary>

         public const string CanApplyAclObject = "canApplyAcl.Object";

     }

 }

diff --git a/PortCMISWin/binding/WindowsHttp.cs b/PortCMISWin/binding/WindowsHttp.cs
index 6c6917b..3b89030 100644
--- a/PortCMISWin/binding/WindowsHttp.cs
+++ b/PortCMISWin/binding/WindowsHttp.cs
@@ -127,7 +127,7 @@
             {

                 foreach (KeyValuePair<string, string> header in headers)

                 {

-                    request.Headers.Add(header.Key, header.Value);

+                    request.Headers.TryAppendWithoutValidation(header.Key, header.Value);

                 }

             }