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 2021/11/22 05:59:28 UTC

[lucenenet] branch master updated (ba1d70b -> 558e040)

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

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


    from ba1d70b  BUG: Lucene.Net.TestFramework.Util.TestUtil::RandomAnalysisString() J2N.Randomizer.Next(int) throws ArgumentOutOfRangeException when the argument is 0 (confirmed this is how it works in Java). So, we need to skip the method in that case and pass 0 through.
     new 485d53e  SWEEP: Made stateless private sealed comparers into singletons (unless they already have a static property)
     new 558e040  BREAKING: Lucene.Net.Misc: Made DocFreqComparer and TotalTermFreqComparer into static singletons, only accessible by the Default property.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../Language/DaitchMokotoffSoundex.cs                |  6 +++++-
 .../ByTask/Feeds/ContentItemsSource.cs               |  6 +++++-
 .../ByTask/Feeds/DirContentSource.cs                 |  6 +++++-
 src/Lucene.Net.Highlighter/Highlight/TokenSources.cs |  6 +++++-
 src/Lucene.Net.Misc/Misc/HighFreqTerms.cs            | 11 +++++++++--
 .../Spell/WordBreakSpellChecker.cs                   | 20 ++++++++++++++------
 src/Lucene.Net.Tests.Misc/Misc/TestHighFreqTerms.cs  | 20 ++++++++++----------
 7 files changed, 53 insertions(+), 22 deletions(-)

[lucenenet] 02/02: BREAKING: Lucene.Net.Misc: Made DocFreqComparer and TotalTermFreqComparer into static singletons, only accessible by the Default property.

Posted by ni...@apache.org.
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

commit 558e040f7efdbdfceb1124cae23ed38e45f691a7
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Sat Nov 20 04:28:55 2021 +0700

    BREAKING: Lucene.Net.Misc: Made DocFreqComparer and TotalTermFreqComparer into static singletons, only accessible by the Default property.
---
 src/Lucene.Net.Misc/Misc/HighFreqTerms.cs | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/Lucene.Net.Misc/Misc/HighFreqTerms.cs b/src/Lucene.Net.Misc/Misc/HighFreqTerms.cs
index 973a2e2..97c6d15 100644
--- a/src/Lucene.Net.Misc/Misc/HighFreqTerms.cs
+++ b/src/Lucene.Net.Misc/Misc/HighFreqTerms.cs
@@ -57,13 +57,13 @@ namespace Lucene.Net.Misc
 
             Store.Directory dir = FSDirectory.Open(new DirectoryInfo(args[0]));
 
-            IComparer<TermStats> comparer = new DocFreqComparer();
+            IComparer<TermStats> comparer = DocFreqComparer.Default;
 
             for (int i = 1; i < args.Length; i++)
             {
                 if (args[i].Equals("-t", StringComparison.Ordinal))
                 {
-                    comparer = new TotalTermFreqComparer();
+                    comparer = TotalTermFreqComparer.Default;
                 }
                 else
                 {
@@ -144,6 +144,9 @@ namespace Lucene.Net.Misc
         /// </summary>
         public sealed class DocFreqComparer : IComparer<TermStats>
         {
+            private DocFreqComparer() { } // LUCENENET: Made into singleton
+
+            public static IComparer<TermStats> Default { get; } = new DocFreqComparer();
 
             public int Compare(TermStats a, TermStats b)
             {
@@ -165,6 +168,10 @@ namespace Lucene.Net.Misc
         /// </summary>
         public sealed class TotalTermFreqComparer : IComparer<TermStats>
         {
+            private TotalTermFreqComparer() { } // LUCENENT: Made into singleton
+
+            public static IComparer<TermStats> Default { get; } = new TotalTermFreqComparer();
+
             public int Compare(TermStats a, TermStats b)
             {
                 int res = a.TotalTermFreq.CompareTo(b.TotalTermFreq);

[lucenenet] 01/02: SWEEP: Made stateless private sealed comparers into singletons (unless they already have a static property)

Posted by ni...@apache.org.
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

commit 485d53ed14422be8a2e0bd097528ef3543a0f8e8
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Sat Nov 20 04:27:07 2021 +0700

    SWEEP: Made stateless private sealed comparers into singletons (unless they already have a static property)
---
 .../Language/DaitchMokotoffSoundex.cs                |  6 +++++-
 .../ByTask/Feeds/ContentItemsSource.cs               |  6 +++++-
 .../ByTask/Feeds/DirContentSource.cs                 |  6 +++++-
 src/Lucene.Net.Highlighter/Highlight/TokenSources.cs |  6 +++++-
 .../Spell/WordBreakSpellChecker.cs                   | 20 ++++++++++++++------
 src/Lucene.Net.Tests.Misc/Misc/TestHighFreqTerms.cs  | 20 ++++++++++----------
 6 files changed, 44 insertions(+), 20 deletions(-)

diff --git a/src/Lucene.Net.Analysis.Phonetic/Language/DaitchMokotoffSoundex.cs b/src/Lucene.Net.Analysis.Phonetic/Language/DaitchMokotoffSoundex.cs
index 8c229f1..e282649 100644
--- a/src/Lucene.Net.Analysis.Phonetic/Language/DaitchMokotoffSoundex.cs
+++ b/src/Lucene.Net.Analysis.Phonetic/Language/DaitchMokotoffSoundex.cs
@@ -244,6 +244,10 @@ namespace Lucene.Net.Analysis.Phonetic.Language
 
         private class DaitchMokotoffRuleComparer : IComparer<Rule>
         {
+            private DaitchMokotoffRuleComparer() { } // LUCENENET: Made into singleton
+
+            public static IComparer<Rule> Default { get; } = new DaitchMokotoffRuleComparer();
+
             [MethodImpl(MethodImplOptions.AggressiveInlining)]
             public int Compare(Rule rule1, Rule rule2)
             {
@@ -268,7 +272,7 @@ namespace Lucene.Net.Analysis.Phonetic.Language
             foreach (var rule in RULES)
             {
                 IList<Rule> ruleList = rule.Value;
-                ruleList.Sort(new DaitchMokotoffRuleComparer());
+                ruleList.Sort(DaitchMokotoffRuleComparer.Default);
             }
         }
 
diff --git a/src/Lucene.Net.Benchmark/ByTask/Feeds/ContentItemsSource.cs b/src/Lucene.Net.Benchmark/ByTask/Feeds/ContentItemsSource.cs
index 2029837..7932f74 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Feeds/ContentItemsSource.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Feeds/ContentItemsSource.cs
@@ -107,7 +107,7 @@ namespace Lucene.Net.Benchmarks.ByTask.Feeds
         protected void CollectFiles(DirectoryInfo dir, IList<FileInfo> files)
         {
             CollectFilesImpl(dir, files);
-            files.Sort(new FileNameComparer());
+            files.Sort(FileNameComparer.Default);
         }
 
         private void CollectFilesImpl(DirectoryInfo dir, IList<FileInfo> files)
@@ -122,6 +122,10 @@ namespace Lucene.Net.Benchmarks.ByTask.Feeds
 
         private class FileNameComparer : IComparer<FileInfo>
         {
+            private FileNameComparer() { } // LUCENENET: Made into singleton
+
+            public static IComparer<FileInfo> Default { get; } = new FileNameComparer();
+
             public int Compare(FileInfo x, FileInfo y)
             {
                 return x.FullName.CompareToOrdinal(y.FullName);
diff --git a/src/Lucene.Net.Benchmark/ByTask/Feeds/DirContentSource.cs b/src/Lucene.Net.Benchmark/ByTask/Feeds/DirContentSource.cs
index b364796..ff5f381 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Feeds/DirContentSource.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Feeds/DirContentSource.cs
@@ -48,6 +48,10 @@ namespace Lucene.Net.Benchmarks.ByTask.Feeds
 
             private class Comparer : IComparer<FileInfo>
             {
+                private Comparer() { } // LUCENENET: Made into singleton
+
+                public static IComparer<FileInfo> Default { get; } = new Comparer();
+
                 public int Compare(FileInfo a, FileInfo b)
                 {
                     string a2 = a.ToString();
@@ -83,7 +87,7 @@ namespace Lucene.Net.Benchmarks.ByTask.Feeds
             /* this seems silly ... there must be a better way ...
                not that this is good, but can it matter? */
 
-            private readonly Comparer c = new Comparer(); // LUCENENET: marked readonly
+            private readonly IComparer<FileInfo> c = Comparer.Default; // LUCENENET: marked readonly
 
             private FileInfo current;
 
diff --git a/src/Lucene.Net.Highlighter/Highlight/TokenSources.cs b/src/Lucene.Net.Highlighter/Highlight/TokenSources.cs
index eba68aa..7bfeb9e 100644
--- a/src/Lucene.Net.Highlighter/Highlight/TokenSources.cs
+++ b/src/Lucene.Net.Highlighter/Highlight/TokenSources.cs
@@ -37,6 +37,10 @@ namespace Lucene.Net.Search.Highlight
     {
         private class TokenComparer : IComparer<Token>
         {
+            private TokenComparer() { } // LUCENENET: Made into singleton
+
+            public static IComparer<Token> Default { get; } = new TokenComparer();
+
             public int Compare(Token t1, Token t2)
             {
                 if (t1.StartOffset == t2.StartOffset)
@@ -275,7 +279,7 @@ namespace Lucene.Net.Search.Highlight
             if (unsortedTokens != null)
             {
                 tokensInOriginalOrder = unsortedTokens.ToArray();
-                ArrayUtil.TimSort(tokensInOriginalOrder, new TokenComparer());
+                ArrayUtil.TimSort(tokensInOriginalOrder, TokenComparer.Default);
                 //tokensInOriginalOrder = tokensInOriginalOrder
                 //    .OrderBy(t => t, new TokenComparer() )
                 //    .ToArray();
diff --git a/src/Lucene.Net.Suggest/Spell/WordBreakSpellChecker.cs b/src/Lucene.Net.Suggest/Spell/WordBreakSpellChecker.cs
index 4543e85..2ac8135 100644
--- a/src/Lucene.Net.Suggest/Spell/WordBreakSpellChecker.cs
+++ b/src/Lucene.Net.Suggest/Spell/WordBreakSpellChecker.cs
@@ -99,8 +99,8 @@ namespace Lucene.Net.Search.Spell
 
             int queueInitialCapacity = maxSuggestions > 10 ? 10 : maxSuggestions;
             IComparer<SuggestWordArrayWrapper> queueComparer = sortMethod == BreakSuggestionSortMethod.NUM_CHANGES_THEN_MAX_FREQUENCY 
-                ? (IComparer<SuggestWordArrayWrapper>)new LengthThenMaxFreqComparer() 
-                : new LengthThenSumFreqComparer();
+                ? (IComparer<SuggestWordArrayWrapper>)LengthThenMaxFreqComparer.Default 
+                : LengthThenSumFreqComparer.Default;
             JCG.PriorityQueue<SuggestWordArrayWrapper> suggestions = new JCG.PriorityQueue<SuggestWordArrayWrapper>(queueInitialCapacity, queueComparer);
 
             int origFreq = ir.DocFreq(term);
@@ -172,7 +172,7 @@ namespace Lucene.Net.Search.Spell
             }
 
             int queueInitialCapacity = maxSuggestions > 10 ? 10 : maxSuggestions;
-            IComparer<CombineSuggestionWrapper> queueComparer = new CombinationsThenFreqComparer();
+            IComparer<CombineSuggestionWrapper> queueComparer = CombinationsThenFreqComparer.Default;
             JCG.PriorityQueue<CombineSuggestionWrapper> suggestions = new JCG.PriorityQueue<CombineSuggestionWrapper>(queueInitialCapacity, queueComparer);
 
             int thisTimeEvaluations = 0;
@@ -409,6 +409,10 @@ namespace Lucene.Net.Search.Spell
 
         private sealed class LengthThenMaxFreqComparer : IComparer<SuggestWordArrayWrapper>
         {
+            private LengthThenMaxFreqComparer() { } // LUCENENET: Made into singleton
+
+            public static IComparer<SuggestWordArrayWrapper> Default { get; } = new LengthThenMaxFreqComparer();
+
             public int Compare(SuggestWordArrayWrapper o1, SuggestWordArrayWrapper o2)
             {
                 if (o1.SuggestWords.Length != o2.SuggestWords.Length)
@@ -425,6 +429,10 @@ namespace Lucene.Net.Search.Spell
 
         private sealed class LengthThenSumFreqComparer : IComparer<SuggestWordArrayWrapper>
         {
+            private LengthThenSumFreqComparer() { } // LUCENENET: Made into singleton
+
+            public static IComparer<SuggestWordArrayWrapper> Default { get; } = new LengthThenSumFreqComparer();
+
             public int Compare(SuggestWordArrayWrapper o1, SuggestWordArrayWrapper o2)
             {
                 if (o1.SuggestWords.Length != o2.SuggestWords.Length)
@@ -441,9 +449,9 @@ namespace Lucene.Net.Search.Spell
 
         private sealed class CombinationsThenFreqComparer : IComparer<CombineSuggestionWrapper>
         {
-            public CombinationsThenFreqComparer()
-            {
-            }
+            private CombinationsThenFreqComparer() { } // LUCENENET: Made into singleton
+
+            public static IComparer<CombineSuggestionWrapper> Default { get; } = new CombinationsThenFreqComparer();
 
             public int Compare(CombineSuggestionWrapper o1, CombineSuggestionWrapper o2)
             {
diff --git a/src/Lucene.Net.Tests.Misc/Misc/TestHighFreqTerms.cs b/src/Lucene.Net.Tests.Misc/Misc/TestHighFreqTerms.cs
index 0472aab..5c72489 100644
--- a/src/Lucene.Net.Tests.Misc/Misc/TestHighFreqTerms.cs
+++ b/src/Lucene.Net.Tests.Misc/Misc/TestHighFreqTerms.cs
@@ -1,4 +1,4 @@
-/*
+/*
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -72,7 +72,7 @@ namespace Lucene.Net.Misc
             int numTerms = 12;
             string field = null;
             TermStats[]
-            terms = HighFreqTerms.GetHighFreqTerms(reader, numTerms, field, new HighFreqTerms.DocFreqComparer());
+            terms = HighFreqTerms.GetHighFreqTerms(reader, numTerms, field, HighFreqTerms.DocFreqComparer.Default);
             assertEquals("Term with highest docfreq is first", 20, terms[0].DocFreq);
         }
 
@@ -82,7 +82,7 @@ namespace Lucene.Net.Misc
             int numTerms = 12;
             string field = "FIELD_1";
             TermStats[]
-            terms = HighFreqTerms.GetHighFreqTerms(reader, numTerms, field, new HighFreqTerms.DocFreqComparer());
+            terms = HighFreqTerms.GetHighFreqTerms(reader, numTerms, field, HighFreqTerms.DocFreqComparer.Default);
             assertEquals("Term with highest docfreq is first", 10, terms[0].DocFreq);
         }
 
@@ -92,7 +92,7 @@ namespace Lucene.Net.Misc
             int numTerms = 12;
             string field = "FIELD_1";
             TermStats[]
-            terms = HighFreqTerms.GetHighFreqTerms(reader, numTerms, field, new HighFreqTerms.DocFreqComparer());
+            terms = HighFreqTerms.GetHighFreqTerms(reader, numTerms, field, HighFreqTerms.DocFreqComparer.Default);
             for (int i = 0; i < terms.Length; i++)
             {
                 if (i > 0)
@@ -108,7 +108,7 @@ namespace Lucene.Net.Misc
             int numTerms = 12;
             string field = null;
             TermStats[]
-            terms = HighFreqTerms.GetHighFreqTerms(reader, numTerms, field, new HighFreqTerms.DocFreqComparer());
+            terms = HighFreqTerms.GetHighFreqTerms(reader, numTerms, field, HighFreqTerms.DocFreqComparer.Default);
             assertEquals("length of terms array equals numTerms :" + numTerms, numTerms, terms.Length);
         }
 
@@ -118,7 +118,7 @@ namespace Lucene.Net.Misc
             int numTerms = 12;
             string field = "FIELD_1";
             TermStats[]
-            terms = HighFreqTerms.GetHighFreqTerms(reader, numTerms, field, new HighFreqTerms.DocFreqComparer());
+            terms = HighFreqTerms.GetHighFreqTerms(reader, numTerms, field, HighFreqTerms.DocFreqComparer.Default);
 
             for (int i = 0; i < terms.Length; i++)
             {
@@ -152,7 +152,7 @@ namespace Lucene.Net.Misc
             int numTerms = 20;
             string field = null;
             TermStats[]
-            terms = HighFreqTerms.GetHighFreqTerms(reader, numTerms, field, new HighFreqTerms.TotalTermFreqComparer());
+            terms = HighFreqTerms.GetHighFreqTerms(reader, numTerms, field, HighFreqTerms.TotalTermFreqComparer.Default);
             assertEquals("Term with highest totalTermFreq is first", 200, terms[0].TotalTermFreq);
         }
 
@@ -162,7 +162,7 @@ namespace Lucene.Net.Misc
             int numTerms = 20;
             string field = "different_field";
             TermStats[]
-            terms = HighFreqTerms.GetHighFreqTerms(reader, numTerms, field, new HighFreqTerms.TotalTermFreqComparer());
+            terms = HighFreqTerms.GetHighFreqTerms(reader, numTerms, field, HighFreqTerms.TotalTermFreqComparer.Default);
             assertEquals("Term with highest totalTermFreq is first" + terms[0].GetTermText(), 150, terms[0].TotalTermFreq);
         }
 
@@ -172,7 +172,7 @@ namespace Lucene.Net.Misc
             int numTerms = 12;
             string field = "FIELD_1";
             TermStats[]
-            terms = HighFreqTerms.GetHighFreqTerms(reader, numTerms, field, new HighFreqTerms.TotalTermFreqComparer());
+            terms = HighFreqTerms.GetHighFreqTerms(reader, numTerms, field, HighFreqTerms.TotalTermFreqComparer.Default);
 
             for (int i = 0; i < terms.Length; i++)
             {
@@ -191,7 +191,7 @@ namespace Lucene.Net.Misc
             int numTerms = 12;
             string field = "FIELD_1";
             TermStats[]
-            terms = HighFreqTerms.GetHighFreqTerms(reader, numTerms, field, new HighFreqTerms.TotalTermFreqComparer());
+            terms = HighFreqTerms.GetHighFreqTerms(reader, numTerms, field, HighFreqTerms.TotalTermFreqComparer.Default);
 
             for (int i = 0; i < terms.Length; i++)
             {