You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by ni...@apache.org on 2017/02/05 16:52:00 UTC

[25/27] lucenenet git commit: Lucene.Net.Core.Util.IndexableBinaryStringTools: added CLS compliant overloads of GetEncodedLength(), Encode() and Decode() and marked existing overloads CLSCompliant(false)

Lucene.Net.Core.Util.IndexableBinaryStringTools: added CLS compliant overloads of GetEncodedLength(), Encode() and Decode() and marked existing overloads CLSCompliant(false)


Project: http://git-wip-us.apache.org/repos/asf/lucenenet/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucenenet/commit/0ef5798b
Tree: http://git-wip-us.apache.org/repos/asf/lucenenet/tree/0ef5798b
Diff: http://git-wip-us.apache.org/repos/asf/lucenenet/diff/0ef5798b

Branch: refs/heads/api-work
Commit: 0ef5798b93bb0900c397d79d2485e70e981d7775
Parents: 29e6531
Author: Shad Storhaug <sh...@shadstorhaug.com>
Authored: Sun Feb 5 19:15:50 2017 +0700
Committer: Shad Storhaug <sh...@shadstorhaug.com>
Committed: Sun Feb 5 19:15:50 2017 +0700

----------------------------------------------------------------------
 .../Util/IndexableBinaryStringTools.cs          | 60 ++++++++++++++++++--
 1 file changed, 56 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucenenet/blob/0ef5798b/src/Lucene.Net.Core/Util/IndexableBinaryStringTools.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Core/Util/IndexableBinaryStringTools.cs b/src/Lucene.Net.Core/Util/IndexableBinaryStringTools.cs
index a1f75bc..aad4d03 100644
--- a/src/Lucene.Net.Core/Util/IndexableBinaryStringTools.cs
+++ b/src/Lucene.Net.Core/Util/IndexableBinaryStringTools.cs
@@ -69,7 +69,22 @@ namespace Lucene.Net.Util
         /// <param name="inputOffset"> initial offset into inputArray </param>
         /// <param name="inputLength"> number of bytes in inputArray </param>
         /// <returns> The number of chars required to encode the number of bytes. </returns>
-        public static int GetEncodedLength(sbyte[] inputArray, int inputOffset, int inputLength) // LUCENENET TODO: CLS compliance
+        // LUCENENET specific overload for CLS compliance
+        public static int GetEncodedLength(byte[] inputArray, int inputOffset, int inputLength)
+        {
+            // Use long for intermediaries to protect against overflow
+            return (int)((8L * inputLength + 14L) / 15L) + 1;
+        }
+
+        /// <summary>
+        /// Returns the number of chars required to encode the given sbytes.
+        /// </summary>
+        /// <param name="inputArray"> sbyte sequence to be encoded </param>
+        /// <param name="inputOffset"> initial offset into inputArray </param>
+        /// <param name="inputLength"> number of sbytes in inputArray </param>
+        /// <returns> The number of chars required to encode the number of sbytes. </returns>
+        [CLSCompliant(false)]
+        public static int GetEncodedLength(sbyte[] inputArray, int inputOffset, int inputLength)
         {
             // Use long for intermediaries to protect against overflow
             return (int)((8L * inputLength + 14L) / 15L) + 1;
@@ -99,17 +114,35 @@ namespace Lucene.Net.Util
         }
 
         /// <summary>
-        /// Encodes the input byte sequence into the output char sequence.  Before
+        /// Encodes the input sbyte sequence into the output char sequence.  Before
         /// calling this method, ensure that the output array has sufficient
         /// capacity by calling <seealso cref="#getEncodedLength(byte[], int, int)"/>.
         /// </summary>
-        /// <param name="inputArray"> byte sequence to be encoded </param>
+        /// <param name="inputArray"> sbyte sequence to be encoded </param>
         /// <param name="inputOffset"> initial offset into inputArray </param>
         /// <param name="inputLength"> number of bytes in inputArray </param>
         /// <param name="outputArray"> char sequence to store encoded result </param>
         /// <param name="outputOffset"> initial offset into outputArray </param>
         /// <param name="outputLength"> length of output, must be getEncodedLength </param>
-        public static void Encode(sbyte[] inputArray, int inputOffset, int inputLength, char[] outputArray, int outputOffset, int outputLength) // LUCENENET TODO: CLS compliance
+        // LUCENENET specific overload for CLS compliance
+        public static void Encode(byte[] inputArray, int inputOffset, int inputLength, char[] outputArray, int outputOffset, int outputLength)
+        {
+            Encode((sbyte[])(Array)inputArray, inputOffset, inputLength, outputArray, outputOffset, outputLength);
+        }
+
+        /// <summary>
+        /// Encodes the input sbyte sequence into the output char sequence.  Before
+        /// calling this method, ensure that the output array has sufficient
+        /// capacity by calling <seealso cref="#getEncodedLength(byte[], int, int)"/>.
+        /// </summary>
+        /// <param name="inputArray"> sbyte sequence to be encoded </param>
+        /// <param name="inputOffset"> initial offset into inputArray </param>
+        /// <param name="inputLength"> number of bytes in inputArray </param>
+        /// <param name="outputArray"> char sequence to store encoded result </param>
+        /// <param name="outputOffset"> initial offset into outputArray </param>
+        /// <param name="outputLength"> length of output, must be getEncodedLength </param>
+        [CLSCompliant(false)]
+        public static void Encode(sbyte[] inputArray, int inputOffset, int inputLength, char[] outputArray, int outputOffset, int outputLength)
         {
             Debug.Assert(outputLength == GetEncodedLength(inputArray, inputOffset, inputLength));
             if (inputLength > 0)
@@ -170,6 +203,25 @@ namespace Lucene.Net.Util
         /// <param name="outputOffset"> initial offset into outputArray </param>
         /// <param name="outputLength"> length of output, must be
         ///        getDecodedLength(inputArray, inputOffset, inputLength) </param>
+        // LUCENENET specific overload for CLS compliance
+        public static void Decode(char[] inputArray, int inputOffset, int inputLength, byte[] outputArray, int outputOffset, int outputLength)
+        {
+            Decode(inputArray, inputOffset, inputLength, (sbyte[])(Array)outputArray, outputOffset, outputLength);
+        }
+
+        /// <summary>
+        /// Decodes the input char sequence into the output sbyte sequence. Before
+        /// calling this method, ensure that the output array has sufficient capacity
+        /// by calling <seealso cref="#getDecodedLength(char[], int, int)"/>.
+        /// </summary>
+        /// <param name="inputArray"> char sequence to be decoded </param>
+        /// <param name="inputOffset"> initial offset into inputArray </param>
+        /// <param name="inputLength"> number of chars in inputArray </param>
+        /// <param name="outputArray"> byte sequence to store encoded result </param>
+        /// <param name="outputOffset"> initial offset into outputArray </param>
+        /// <param name="outputLength"> length of output, must be
+        ///        getDecodedLength(inputArray, inputOffset, inputLength) </param>
+        [CLSCompliant(false)]
         public static void Decode(char[] inputArray, int inputOffset, int inputLength, sbyte[] outputArray, int outputOffset, int outputLength)
         {
             Debug.Assert(outputLength == GetDecodedLength(inputArray, inputOffset, inputLength));