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 <[email protected]> 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++) {
