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:29 UTC
[lucenenet] 01/02: SWEEP: Made stateless private sealed comparers into singletons (unless they already have a static property)
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++)
{