You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by sy...@apache.org on 2016/10/02 10:16:44 UTC
[13/49] lucenenet git commit: Moved BytesRefFSTEnum.InputOutput
and IntsRefFSTEnum.InputOutput classes into non-generic classes with
the same name so we don't need to specify the generic type twice.
Moved BytesRefFSTEnum<T>.InputOutput<T> and IntsRefFSTEnum<T>.InputOutput<T> classes into non-generic classes with the same name so we don't need to specify the generic type twice.
Project: http://git-wip-us.apache.org/repos/asf/lucenenet/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucenenet/commit/3994051b
Tree: http://git-wip-us.apache.org/repos/asf/lucenenet/tree/3994051b
Diff: http://git-wip-us.apache.org/repos/asf/lucenenet/diff/3994051b
Branch: refs/heads/master
Commit: 3994051b243f9e4a39cdda107ac8c6d1d68a78e2
Parents: 18f8443
Author: Shad Storhaug <sh...@shadstorhaug.com>
Authored: Wed Sep 7 18:07:43 2016 +0700
Committer: Shad Storhaug <sh...@shadstorhaug.com>
Committed: Thu Sep 8 06:40:55 2016 +0700
----------------------------------------------------------------------
.../BlockTerms/VariableGapTermsIndexReader.cs | 4 +-
.../Memory/FSTOrdTermsReader.cs | 2 +-
src/Lucene.Net.Codecs/Memory/FSTTermsReader.cs | 2 +-
.../Memory/MemoryPostingsFormat.cs | 2 +-
.../Codecs/BlockTreeTermsWriter.cs | 2 +-
.../Lucene42/Lucene42DocValuesProducer.cs | 2 +-
src/Lucene.Net.Core/Util/Fst/BytesRefFSTEnum.cs | 41 +++++++++++++-------
src/Lucene.Net.Core/Util/Fst/IntsRefFSTEnum.cs | 41 +++++++++++++-------
.../Util/fst/FSTTester.cs | 8 ++--
src/Lucene.Net.Tests/core/Util/Fst/Test2BFST.cs | 6 +--
src/Lucene.Net.Tests/core/Util/Fst/TestFSTs.cs | 6 +--
11 files changed, 71 insertions(+), 45 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucenenet/blob/3994051b/src/Lucene.Net.Codecs/BlockTerms/VariableGapTermsIndexReader.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Codecs/BlockTerms/VariableGapTermsIndexReader.cs b/src/Lucene.Net.Codecs/BlockTerms/VariableGapTermsIndexReader.cs
index 654ad34..17b808f 100644
--- a/src/Lucene.Net.Codecs/BlockTerms/VariableGapTermsIndexReader.cs
+++ b/src/Lucene.Net.Codecs/BlockTerms/VariableGapTermsIndexReader.cs
@@ -202,7 +202,7 @@ namespace Lucene.Net.Codecs.BlockTerms
var fstEnum = new BytesRefFSTEnum<long?>(Fst);
var count = _vgtir._indexDivisor;
- BytesRefFSTEnum<long?>.InputOutput<long?> result;
+ BytesRefFSTEnum.InputOutput<long?> result;
while ((result = fstEnum.Next()) != null)
{
if (count == _vgtir._indexDivisor)
@@ -226,7 +226,7 @@ namespace Lucene.Net.Codecs.BlockTerms
protected class IndexEnum : FieldIndexEnum
{
private readonly BytesRefFSTEnum<long?> _fstEnum;
- private BytesRefFSTEnum<long?>.InputOutput<long?> _current;
+ private BytesRefFSTEnum.InputOutput<long?> _current;
public IndexEnum(FST<long?> fst)
{
http://git-wip-us.apache.org/repos/asf/lucenenet/blob/3994051b/src/Lucene.Net.Codecs/Memory/FSTOrdTermsReader.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Codecs/Memory/FSTOrdTermsReader.cs b/src/Lucene.Net.Codecs/Memory/FSTOrdTermsReader.cs
index 7f3f35b..86afc3e 100644
--- a/src/Lucene.Net.Codecs/Memory/FSTOrdTermsReader.cs
+++ b/src/Lucene.Net.Codecs/Memory/FSTOrdTermsReader.cs
@@ -531,7 +531,7 @@ namespace Lucene.Net.Codecs.Memory
}
// Update current enum according to FSTEnum
- private void UpdateEnum(BytesRefFSTEnum<long?>.InputOutput<long?> pair)
+ private void UpdateEnum(BytesRefFSTEnum.InputOutput<long?> pair)
{
if (pair == null)
{
http://git-wip-us.apache.org/repos/asf/lucenenet/blob/3994051b/src/Lucene.Net.Codecs/Memory/FSTTermsReader.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Codecs/Memory/FSTTermsReader.cs b/src/Lucene.Net.Codecs/Memory/FSTTermsReader.cs
index 79e0365..0077054 100644
--- a/src/Lucene.Net.Codecs/Memory/FSTTermsReader.cs
+++ b/src/Lucene.Net.Codecs/Memory/FSTTermsReader.cs
@@ -396,7 +396,7 @@ namespace Lucene.Net.Codecs.Memory
}
// Update current enum according to FSTEnum
- internal void UpdateEnum(BytesRefFSTEnum<FSTTermOutputs.TermData>.InputOutput<FSTTermOutputs.TermData> pair)
+ internal void UpdateEnum(BytesRefFSTEnum.InputOutput<FSTTermOutputs.TermData> pair)
{
if (pair == null)
{
http://git-wip-us.apache.org/repos/asf/lucenenet/blob/3994051b/src/Lucene.Net.Codecs/Memory/MemoryPostingsFormat.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Codecs/Memory/MemoryPostingsFormat.cs b/src/Lucene.Net.Codecs/Memory/MemoryPostingsFormat.cs
index ebf7456..88aea52 100644
--- a/src/Lucene.Net.Codecs/Memory/MemoryPostingsFormat.cs
+++ b/src/Lucene.Net.Codecs/Memory/MemoryPostingsFormat.cs
@@ -788,7 +788,7 @@ namespace Lucene.Net.Codecs.Memory
internal int docFreq_Renamed;
internal long totalTermFreq_Renamed;
- internal BytesRefFSTEnum<BytesRef>.InputOutput<BytesRef> current;
+ internal BytesRefFSTEnum.InputOutput<BytesRef> current;
internal BytesRef postingsSpare = new BytesRef();
public FSTTermsEnum(FieldInfo field, FST<BytesRef> fst)
http://git-wip-us.apache.org/repos/asf/lucenenet/blob/3994051b/src/Lucene.Net.Core/Codecs/BlockTreeTermsWriter.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Core/Codecs/BlockTreeTermsWriter.cs b/src/Lucene.Net.Core/Codecs/BlockTreeTermsWriter.cs
index e339aa3..0c32f3b 100644
--- a/src/Lucene.Net.Core/Codecs/BlockTreeTermsWriter.cs
+++ b/src/Lucene.Net.Core/Codecs/BlockTreeTermsWriter.cs
@@ -501,7 +501,7 @@ namespace Lucene.Net.Codecs
internal void Append(Builder<BytesRef> builder, FST<BytesRef> subIndex)
{
BytesRefFSTEnum<BytesRef> subIndexEnum = new BytesRefFSTEnum<BytesRef>(subIndex);
- BytesRefFSTEnum<BytesRef>.InputOutput<BytesRef> indexEnt;
+ BytesRefFSTEnum.InputOutput<BytesRef> indexEnt;
while ((indexEnt = subIndexEnum.Next()) != null)
{
//if (DEBUG) {
http://git-wip-us.apache.org/repos/asf/lucenenet/blob/3994051b/src/Lucene.Net.Core/Codecs/Lucene42/Lucene42DocValuesProducer.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Core/Codecs/Lucene42/Lucene42DocValuesProducer.cs b/src/Lucene.Net.Core/Codecs/Lucene42/Lucene42DocValuesProducer.cs
index 802ed53..5977d18 100644
--- a/src/Lucene.Net.Core/Codecs/Lucene42/Lucene42DocValuesProducer.cs
+++ b/src/Lucene.Net.Core/Codecs/Lucene42/Lucene42DocValuesProducer.cs
@@ -489,7 +489,7 @@ namespace Lucene.Net.Codecs.Lucene42
{
try
{
- BytesRefFSTEnum<long?>.InputOutput<long?> o = FstEnum.SeekCeil(key);
+ BytesRefFSTEnum.InputOutput<long?> o = FstEnum.SeekCeil(key);
if (o == null)
{
return -ValueCount - 1;
http://git-wip-us.apache.org/repos/asf/lucenenet/blob/3994051b/src/Lucene.Net.Core/Util/Fst/BytesRefFSTEnum.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Core/Util/Fst/BytesRefFSTEnum.cs b/src/Lucene.Net.Core/Util/Fst/BytesRefFSTEnum.cs
index 6774b21..8bd5028 100644
--- a/src/Lucene.Net.Core/Util/Fst/BytesRefFSTEnum.cs
+++ b/src/Lucene.Net.Core/Util/Fst/BytesRefFSTEnum.cs
@@ -29,16 +29,10 @@ namespace Lucene.Net.Util.Fst
public sealed class BytesRefFSTEnum<T> : FSTEnum<T>
{
private readonly BytesRef current = new BytesRef(10);
- private readonly InputOutput<T> result = new InputOutput<T>();
+ private readonly BytesRefFSTEnum.InputOutput<T> result = new BytesRefFSTEnum.InputOutput<T>();
private BytesRef target;
- /// <summary>
- /// Holds a single input (BytesRef) + output pair. </summary>
- public class InputOutput<T>
- {
- public BytesRef Input;
- public T Output;
- }
+ // LUCENENET NOTE: InputOutput<T> was moved to the BytesRefFSTEnum class
/// <summary>
/// doFloor controls the behavior of advance: if it's true
@@ -52,12 +46,12 @@ namespace Lucene.Net.Util.Fst
current.Offset = 1;
}
- public InputOutput<T> Current()
+ public BytesRefFSTEnum.InputOutput<T> Current()
{
return result;
}
- public InputOutput<T> Next()
+ public BytesRefFSTEnum.InputOutput<T> Next()
{
//System.out.println(" enum.next");
DoNext();
@@ -66,7 +60,7 @@ namespace Lucene.Net.Util.Fst
/// <summary>
/// Seeks to smallest term that's >= target. </summary>
- public InputOutput<T> SeekCeil(BytesRef target)
+ public BytesRefFSTEnum.InputOutput<T> SeekCeil(BytesRef target)
{
this.target = target;
targetLength = target.Length;
@@ -76,7 +70,7 @@ namespace Lucene.Net.Util.Fst
/// <summary>
/// Seeks to biggest term that's <= target. </summary>
- public InputOutput<T> SeekFloor(BytesRef target)
+ public BytesRefFSTEnum.InputOutput<T> SeekFloor(BytesRef target)
{
this.target = target;
targetLength = target.Length;
@@ -90,7 +84,7 @@ namespace Lucene.Net.Util.Fst
/// #seekFloor} or <seealso cref="#seekCeil"/> because it
/// short-circuits as soon the match is not found.
/// </summary>
- public InputOutput<T> SeekExact(BytesRef target)
+ public BytesRefFSTEnum.InputOutput<T> SeekExact(BytesRef target)
{
this.target = target;
targetLength = target.Length;
@@ -138,7 +132,7 @@ namespace Lucene.Net.Util.Fst
current.Bytes = ArrayUtil.Grow(current.Bytes, upto + 1);
}
- private InputOutput<T> SetResult()
+ private BytesRefFSTEnum.InputOutput<T> SetResult()
{
if (upto == 0)
{
@@ -152,4 +146,23 @@ namespace Lucene.Net.Util.Fst
}
}
}
+
+ /// <summary>
+ /// LUCENENET specific. This class is to mimic Java's ability to specify
+ /// nested classes of Generics without having to specify the generic type
+ /// (i.e. BytesRefFSTEnum.InputOutput{T} rather than BytesRefFSTEnum{T}.InputOutput{T})
+ /// </summary>
+ public sealed class BytesRefFSTEnum
+ {
+ private BytesRefFSTEnum()
+ { }
+
+ /// <summary>
+ /// Holds a single input (BytesRef) + output pair. </summary>
+ public class InputOutput<T>
+ {
+ public BytesRef Input;
+ public T Output;
+ }
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/lucenenet/blob/3994051b/src/Lucene.Net.Core/Util/Fst/IntsRefFSTEnum.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Core/Util/Fst/IntsRefFSTEnum.cs b/src/Lucene.Net.Core/Util/Fst/IntsRefFSTEnum.cs
index b70d8c4..f679a6f 100644
--- a/src/Lucene.Net.Core/Util/Fst/IntsRefFSTEnum.cs
+++ b/src/Lucene.Net.Core/Util/Fst/IntsRefFSTEnum.cs
@@ -29,16 +29,10 @@ namespace Lucene.Net.Util.Fst
public sealed class IntsRefFSTEnum<T> : FSTEnum<T>
{
private readonly IntsRef current = new IntsRef(10);
- private readonly InputOutput<T> result = new InputOutput<T>();
+ private readonly IntsRefFSTEnum.InputOutput<T> result = new IntsRefFSTEnum.InputOutput<T>();
private IntsRef target;
- /// <summary>
- /// Holds a single input (IntsRef) + output pair. </summary>
- public class InputOutput<T>
- {
- public IntsRef Input;
- public T Output;
- }
+ // LUCENENET NOTE: The InputOutput<T> class was moved into the IntsRefFSTEnum class
/// <summary>
/// doFloor controls the behavior of advance: if it's true
@@ -52,12 +46,12 @@ namespace Lucene.Net.Util.Fst
current.Offset = 1;
}
- public InputOutput<T> Current()
+ public IntsRefFSTEnum.InputOutput<T> Current()
{
return result;
}
- public InputOutput<T> Next()
+ public IntsRefFSTEnum.InputOutput<T> Next()
{
//System.out.println(" enum.next");
DoNext();
@@ -66,7 +60,7 @@ namespace Lucene.Net.Util.Fst
/// <summary>
/// Seeks to smallest term that's >= target. </summary>
- public InputOutput<T> SeekCeil(IntsRef target)
+ public IntsRefFSTEnum.InputOutput<T> SeekCeil(IntsRef target)
{
this.target = target;
targetLength = target.Length;
@@ -76,7 +70,7 @@ namespace Lucene.Net.Util.Fst
/// <summary>
/// Seeks to biggest term that's <= target. </summary>
- public InputOutput<T> SeekFloor(IntsRef target)
+ public IntsRefFSTEnum.InputOutput<T> SeekFloor(IntsRef target)
{
this.target = target;
targetLength = target.Length;
@@ -90,7 +84,7 @@ namespace Lucene.Net.Util.Fst
/// #seekFloor} or <seealso cref="#seekCeil"/> because it
/// short-circuits as soon the match is not found.
/// </summary>
- public InputOutput<T> SeekExact(IntsRef target)
+ public IntsRefFSTEnum.InputOutput<T> SeekExact(IntsRef target)
{
this.target = target;
targetLength = target.Length;
@@ -138,7 +132,7 @@ namespace Lucene.Net.Util.Fst
current.Ints = ArrayUtil.Grow(current.Ints, upto + 1);
}
- private InputOutput<T> SetResult()
+ private IntsRefFSTEnum.InputOutput<T> SetResult()
{
if (upto == 0)
{
@@ -152,4 +146,23 @@ namespace Lucene.Net.Util.Fst
}
}
}
+
+ /// <summary>
+ /// LUCENENET specific. This class is to mimic Java's ability to specify
+ /// nested classes of Generics without having to specify the generic type
+ /// (i.e. IntsRefFSTEnum.InputOutput{T} rather than IntsRefFSTEnum{T}.InputOutput{T})
+ /// </summary>
+ public sealed class IntsRefFSTEnum
+ {
+ private IntsRefFSTEnum()
+ { }
+
+ /// <summary>
+ /// Holds a single input (IntsRef) + output pair. </summary>
+ public class InputOutput<T>
+ {
+ public IntsRef Input;
+ public T Output;
+ }
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/lucenenet/blob/3994051b/src/Lucene.Net.TestFramework/Util/fst/FSTTester.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.TestFramework/Util/fst/FSTTester.cs b/src/Lucene.Net.TestFramework/Util/fst/FSTTester.cs
index e5d6f84..cb5f44d 100644
--- a/src/Lucene.Net.TestFramework/Util/fst/FSTTester.cs
+++ b/src/Lucene.Net.TestFramework/Util/fst/FSTTester.cs
@@ -486,7 +486,7 @@ namespace Lucene.Net.Util.Fst
Assert.IsTrue(OutputsEqual(pair.Output, output));
// verify enum's next
- IntsRefFSTEnum<T>.InputOutput<T> t = fstEnum.Next();
+ IntsRefFSTEnum.InputOutput<T> t = fstEnum.Next();
Assert.IsNotNull(t);
Assert.AreEqual(term, t.Input, "expected input=" + InputToString(inputMode, term) + " but fstEnum returned " + InputToString(inputMode, t.Input));
Assert.IsTrue(OutputsEqual(pair.Output, t.Output));
@@ -564,7 +564,7 @@ namespace Lucene.Net.Util.Fst
pos = -(pos + 1);
// ok doesn't exist
//System.out.println(" seek " + inputToString(inputMode, term));
- IntsRefFSTEnum<T>.InputOutput<T> seekResult;
+ IntsRefFSTEnum.InputOutput<T> seekResult;
if (Random.Next(3) == 0)
{
if (LuceneTestCase.VERBOSE)
@@ -622,7 +622,7 @@ namespace Lucene.Net.Util.Fst
{
// seek to term that does exist:
InputOutput<T> pair = Pairs[Random.Next(Pairs.Count)];
- IntsRefFSTEnum<T>.InputOutput<T> seekResult;
+ IntsRefFSTEnum.InputOutput<T> seekResult;
if (Random.Next(3) == 2)
{
if (LuceneTestCase.VERBOSE)
@@ -960,7 +960,7 @@ namespace Lucene.Net.Util.Fst
Console.WriteLine("TEST: check pruned enum");
}
IntsRefFSTEnum<T> fstEnum = new IntsRefFSTEnum<T>(fst);
- IntsRefFSTEnum<T>.InputOutput<T> current;
+ IntsRefFSTEnum.InputOutput<T> current;
while ((current = fstEnum.Next()) != null)
{
if (LuceneTestCase.VERBOSE)
http://git-wip-us.apache.org/repos/asf/lucenenet/blob/3994051b/src/Lucene.Net.Tests/core/Util/Fst/Test2BFST.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Tests/core/Util/Fst/Test2BFST.cs b/src/Lucene.Net.Tests/core/Util/Fst/Test2BFST.cs
index ad2f968..7127487 100644
--- a/src/Lucene.Net.Tests/core/Util/Fst/Test2BFST.cs
+++ b/src/Lucene.Net.Tests/core/Util/Fst/Test2BFST.cs
@@ -111,7 +111,7 @@ namespace Lucene.Net.Util.Fst
int upto = 0;
while (true)
{
- IntsRefFSTEnum<object>.InputOutput<object> pair = fstEnum.Next();
+ IntsRefFSTEnum.InputOutput<object> pair = fstEnum.Next();
if (pair == null)
{
break;
@@ -200,7 +200,7 @@ namespace Lucene.Net.Util.Fst
int upto = 0;
while (true)
{
- IntsRefFSTEnum<BytesRef>.InputOutput<BytesRef> pair = fstEnum.Next();
+ IntsRefFSTEnum.InputOutput<BytesRef> pair = fstEnum.Next();
if (pair == null)
{
break;
@@ -293,7 +293,7 @@ namespace Lucene.Net.Util.Fst
output = 1;
while (true)
{
- IntsRefFSTEnum<long?>.InputOutput<long?> pair = fstEnum.Next();
+ IntsRefFSTEnum.InputOutput<long?> pair = fstEnum.Next();
if (pair == null)
{
break;
http://git-wip-us.apache.org/repos/asf/lucenenet/blob/3994051b/src/Lucene.Net.Tests/core/Util/Fst/TestFSTs.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Tests/core/Util/Fst/TestFSTs.cs b/src/Lucene.Net.Tests/core/Util/Fst/TestFSTs.cs
index 2e972ad..bb4d206 100644
--- a/src/Lucene.Net.Tests/core/Util/Fst/TestFSTs.cs
+++ b/src/Lucene.Net.Tests/core/Util/Fst/TestFSTs.cs
@@ -438,7 +438,7 @@ namespace Lucene.Net.Util.Fst
}
TermsEnum.SeekStatus seekResult = termsEnum.SeekCeil(randomTerm);
- BytesRefFSTEnum<long?>.InputOutput<long?> fstSeekResult = fstEnum.SeekCeil(randomTerm);
+ BytesRefFSTEnum.InputOutput<long?> fstSeekResult = fstEnum.SeekCeil(randomTerm);
if (seekResult == TermsEnum.SeekStatus.END)
{
@@ -472,7 +472,7 @@ namespace Lucene.Net.Util.Fst
{
Console.WriteLine(" end!");
}
- BytesRefFSTEnum<long?>.InputOutput<long?> nextResult = fstEnum.Next();
+ BytesRefFSTEnum.InputOutput<long?> nextResult = fstEnum.Next();
if (nextResult != null)
{
Console.WriteLine("expected null but got: input=" + nextResult.Input.Utf8ToString() + " output=" + outputs.OutputToString(nextResult.Output));
@@ -985,7 +985,7 @@ namespace Lucene.Net.Util.Fst
Assert.AreEqual(17, Util.Get(fst, a));
BytesRefFSTEnum<long?> fstEnum = new BytesRefFSTEnum<long?>(fst);
- BytesRefFSTEnum<long?>.InputOutput<long?> seekResult;
+ BytesRefFSTEnum.InputOutput<long?> seekResult;
seekResult = fstEnum.SeekFloor(a);
Assert.IsNotNull(seekResult);
Assert.AreEqual(17, seekResult.Output);