This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git


The following commit(s) were added to refs/heads/master by this push:
     new 6294e8e  https://issues.apache.org/jira/browse/LUCENENET-607 (#241)
6294e8e is described below

commit 6294e8ea51e8007c87b8281aa7cd83008cc4697a
Author: bongohrtech <[email protected]>
AuthorDate: Tue Apr 14 16:56:47 2020 +0700

    https://issues.apache.org/jira/browse/LUCENENET-607 (#241)
    
    * https://issues.apache.org/jira/browse/LUCENENET-607
    modified to be a generic IList<char[]>. Created methods for readability.
    
    * https://issues.apache.org/jira/browse/LUCENENET-607
    Changed to property
    
    Co-authored-by: Michael Condillac <[email protected]>
---
 .../Analysis/Ar/ArabicStemmer.cs                   | 39 ++++++++++++----------
 1 file changed, 21 insertions(+), 18 deletions(-)

diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Ar/ArabicStemmer.cs 
b/src/Lucene.Net.Analysis.Common/Analysis/Ar/ArabicStemmer.cs
index 63cd891..9c59687 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Ar/ArabicStemmer.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Ar/ArabicStemmer.cs
@@ -1,4 +1,6 @@
 using Lucene.Net.Analysis.Util;
+using System;
+using System.Collections.Generic;
 
 namespace Lucene.Net.Analysis.Ar
 {
@@ -44,22 +46,23 @@ namespace Lucene.Net.Analysis.Ar
         public const char WAW = '\u0648';
         public const char YEH = '\u064A';
 
-        // LUCENENET TODO: API - Make property, change datatype to regular 
array or collection
-        public static readonly char[][] prefixes = new char[][] // LUCENENET: 
Avoid static constructors (see 
https://github.com/apache/lucenenet/pull/224#issuecomment-469284006)
+        // LUCENENET: Avoid static constructors (see 
https://github.com/apache/lucenenet/pull/224#issuecomment-469284006)
+        public static IList<char[]> Prefixes { get; } = InitializePrefix();
+        public static IList<char[]> Suffixes { get; } = InitializeSuffix();
+
+        private static IList<char[]> InitializePrefix()
         {
-            ("" + ALEF + LAM).ToCharArray(),
+            return new List<char[]>(){ ("" + ALEF + LAM).ToCharArray(),
             ("" + WAW + ALEF + LAM).ToCharArray(),
             ("" + BEH + ALEF + LAM).ToCharArray(),
             ("" + KAF + ALEF + LAM).ToCharArray(),
             ("" + FEH + ALEF + LAM).ToCharArray(),
             ("" + LAM + LAM).ToCharArray(),
-            ("" + WAW).ToCharArray(),
-        };
-
-        // LUCENENET TODO: API - Make property, change datatype to regular 
array or collection
-        public static readonly char[][] suffixes = new char[][] // LUCENENET: 
Avoid static constructors (see 
https://github.com/apache/lucenenet/pull/224#issuecomment-469284006)
+            ("" + WAW).ToCharArray() };
+        }
+        private static IList<char[]> InitializeSuffix()
         {
-            ("" + HEH + ALEF).ToCharArray(),
+            return new List<char[]>(){ ("" + HEH + ALEF).ToCharArray(),
             ("" + ALEF + NOON).ToCharArray(),
             ("" + ALEF + TEH).ToCharArray(),
             ("" + WAW + NOON).ToCharArray(),
@@ -68,9 +71,9 @@ namespace Lucene.Net.Analysis.Ar
             ("" + YEH + TEH_MARBUTA).ToCharArray(),
             ("" + HEH).ToCharArray(),
             ("" + TEH_MARBUTA).ToCharArray(),
-            ("" + YEH).ToCharArray(),
-        };
-
+            ("" + YEH).ToCharArray() };
+        }
+        
         /// <summary>
         /// Stem an input buffer of Arabic text.
         /// </summary>
@@ -92,11 +95,11 @@ namespace Lucene.Net.Analysis.Ar
         /// <returns> new length of input buffer after stemming. </returns>
         public virtual int StemPrefix(char[] s, int len)
         {
-            for (int i = 0; i < prefixes.Length; i++)
+            for (int i = 0; i < Prefixes.Count; i++)
             {
-                if (StartsWithCheckLength(s, len, prefixes[i]))
+                if (StartsWithCheckLength(s, len, Prefixes[i]))
                 {
-                    return StemmerUtil.DeleteN(s, 0, len, prefixes[i].Length);
+                    return StemmerUtil.DeleteN(s, 0, len, Prefixes[i].Length);
                 }
             }
             return len;
@@ -109,11 +112,11 @@ namespace Lucene.Net.Analysis.Ar
         /// <returns> new length of input buffer after stemming </returns>
         public virtual int StemSuffix(char[] s, int len)
         {
-            for (int i = 0; i < suffixes.Length; i++)
+            for (int i = 0; i < Suffixes.Count; i++)
             {
-                if (EndsWithCheckLength(s, len, suffixes[i]))
+                if (EndsWithCheckLength(s, len, Suffixes[i]))
                 {
-                    len = StemmerUtil.DeleteN(s, len - suffixes[i].Length, 
len, suffixes[i].Length);
+                    len = StemmerUtil.DeleteN(s, len - Suffixes[i].Length, 
len, Suffixes[i].Length);
                 }
             }
             return len;

Reply via email to