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 2015/02/23 21:51:59 UTC

[6/6] lucenenet git commit: More porting work on Analysis.Common

More porting work on Analysis.Common


Project: http://git-wip-us.apache.org/repos/asf/lucenenet/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucenenet/commit/f77e83ec
Tree: http://git-wip-us.apache.org/repos/asf/lucenenet/tree/f77e83ec
Diff: http://git-wip-us.apache.org/repos/asf/lucenenet/diff/f77e83ec

Branch: refs/heads/master
Commit: f77e83ecd711e3e7aa9a79a60cc8a973f7496d71
Parents: 3533077
Author: Itamar Syn-Hershko <it...@code972.com>
Authored: Mon Feb 23 21:17:40 2015 +0200
Committer: Itamar Syn-Hershko <it...@code972.com>
Committed: Mon Feb 23 21:17:40 2015 +0200

----------------------------------------------------------------------
 .../Analysis/CharFilter/BaseCharFilter.cs       |   2 +-
 .../CharFilter/HTMLStripCharFilterFactory.cs    |   9 +-
 .../CharFilter/MappingCharFilterFactory.cs      |   2 +-
 .../Analysis/CharFilter/NormalizeCharMap.cs     |  58 +--
 .../Analysis/CommonGrams/CommonGramsFilter.cs   |   2 +-
 .../Compound/CompoundWordTokenFilterBase.cs     |  12 +-
 .../DictionaryCompoundWordTokenFilter.cs        |   6 +-
 .../HyphenationCompoundWordTokenFilter.cs       |  10 +-
 ...HyphenationCompoundWordTokenFilterFactory.cs |   7 +-
 .../Analysis/Compound/hyphenation/ByteVector.cs |   6 +-
 .../Analysis/Compound/hyphenation/CharVector.cs |   2 +-
 .../Analysis/Compound/hyphenation/Hyphen.cs     |   2 +-
 .../Compound/hyphenation/Hyphenation.cs         |   6 +-
 .../Compound/hyphenation/HyphenationTree.cs     |  18 +-
 .../Compound/hyphenation/PatternConsumer.cs     |   9 +-
 .../Compound/hyphenation/PatternParser.cs       |  23 +-
 .../Compound/hyphenation/TernaryTree.cs         |  11 +-
 .../Analysis/Core/LetterTokenizer.cs            |   6 +-
 .../Analysis/Core/LowerCaseFilter.cs            |   4 +-
 .../Analysis/Core/LowerCaseTokenizer.cs         |   6 +-
 .../Analysis/Core/SimpleAnalyzer.cs             |   6 +-
 .../Analysis/Core/StopAnalyzer.cs               |  12 +-
 .../Analysis/Core/StopFilter.cs                 |  12 +-
 .../Analysis/Core/UpperCaseFilter.cs            |   4 +-
 .../Analysis/Core/WhitespaceAnalyzer.cs         |   6 +-
 .../Analysis/Core/WhitespaceTokenizer.cs        |   6 +-
 .../Miscellaneous/CodepointCountFilter.cs       |   2 +-
 .../Analysis/Miscellaneous/KeepWordFilter.cs    |   2 +
 .../Miscellaneous/KeywordMarkerFilterFactory.cs |   3 +-
 .../Analysis/Miscellaneous/LengthFilter.cs      | 137 +++---
 .../Analysis/Miscellaneous/PatternAnalyzer.cs   |  12 +-
 .../Miscellaneous/PrefixAwareTokenFilter.cs     |   6 +-
 .../RemoveDuplicatesTokenFilter.cs              |   4 +-
 .../Miscellaneous/WordDelimiterFilterFactory.cs |   3 +-
 .../Analysis/Ngram/EdgeNGramTokenFilter.cs      |  15 +-
 .../Analysis/Ngram/EdgeNGramTokenizer.cs        | 130 ++---
 .../Analysis/Ngram/EdgeNGramTokenizerFactory.cs |   3 +-
 .../Ngram/Lucene43EdgeNGramTokenizer.cs         |  15 +-
 .../Analysis/Ngram/Lucene43NGramTokenizer.cs    | 344 +++++++------
 .../Analysis/Ngram/NGramFilterFactory.cs        | 102 ++--
 .../Analysis/Ngram/NGramTokenFilter.cs          | 484 +++++++++----------
 .../Analysis/Ngram/NGramTokenizer.cs            |  87 ++--
 .../Analysis/Ngram/NGramTokenizerFactory.cs     | 122 +++--
 .../Analysis/Position/PositionFilterFactory.cs  |   2 +-
 .../Analysis/Query/QueryAutoStopWordAnalyzer.cs |  12 +-
 .../Analysis/Shingle/ShingleAnalyzerWrapper.cs  |   4 +-
 .../Analysis/Standard/StandardAnalyzer.cs       |   8 +-
 .../Analysis/Synonym/FSTSynonymFilterFactory.cs |  12 +-
 .../Analysis/Synonym/SlowSynonymFilter.cs       |  38 +-
 .../Synonym/SlowSynonymFilterFactory.cs         |  12 +-
 .../Analysis/Synonym/SlowSynonymMap.cs          |  23 +-
 .../Analysis/Synonym/SolrSynonymParser.cs       |  21 +-
 .../Analysis/Synonym/SynonymFilter.cs           | 132 ++---
 .../Analysis/Synonym/SynonymFilterFactory.cs    |   3 +-
 .../Analysis/Synonym/SynonymMap.cs              | 187 +++----
 .../Analysis/Synonym/WordnetSynonymParser.cs    |  20 +-
 .../Analysis/Util/AbstractAnalysisFactory.cs    |   7 +-
 .../Analysis/Util/CharArrayMap.cs               |  19 +-
 .../Analysis/Util/CharArraySet.cs               |  14 +-
 .../Analysis/Util/CharTokenizer.cs              |  16 +-
 .../Analysis/Util/CharacterUtils.cs             |  44 +-
 .../Analysis/Util/FilteringTokenFilter.cs       |  11 +-
 .../Analysis/Util/OpenStringBuilder.cs          |  27 +-
 .../Analysis/Util/ResourceLoaderAware.cs        |   2 -
 .../Analysis/Util/SegmentingTokenizerBase.cs    |   6 +-
 .../Analysis/Util/StopwordAnalyzerBase.cs       |   3 +-
 .../Analysis/Util/TokenFilterFactory.cs         |   1 -
 .../Analysis/Util/TokenizerFactory.cs           |   1 -
 .../Analysis/Util/WordlistLoader.cs             |   5 +-
 .../Collation/CollationKeyAnalyzer.cs           |   3 +-
 .../Collation/CollationKeyFilter.cs             |  26 +-
 .../Collation/CollationKeyFilterFactory.cs      |   3 +-
 72 files changed, 1106 insertions(+), 1274 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/CharFilter/BaseCharFilter.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/CharFilter/BaseCharFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/CharFilter/BaseCharFilter.cs
index 064b653..845a528 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/CharFilter/BaseCharFilter.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/CharFilter/BaseCharFilter.cs
@@ -20,7 +20,7 @@ using System.IO;
 using Lucene.Net.Support;
 using Lucene.Net.Util;
 
-namespace Lucene.Net.Analysis.CharFilter
+namespace Lucene.Net.Analysis.CharFilters
 {
     /// <summary>
     /// Base utility class for implementing a <seealso cref="CharFilter"/>.

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/CharFilter/HTMLStripCharFilterFactory.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/CharFilter/HTMLStripCharFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/CharFilter/HTMLStripCharFilterFactory.cs
index 2d527fc..019b09e 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/CharFilter/HTMLStripCharFilterFactory.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/CharFilter/HTMLStripCharFilterFactory.cs
@@ -1,6 +1,7 @@
 using System.Collections.Generic;
+using org.apache.lucene.analysis.util;
 
-namespace org.apache.lucene.analysis.charfilter
+namespace Lucene.Net.Analysis.CharFilters
 {
 
 	/*
@@ -19,11 +20,7 @@ namespace org.apache.lucene.analysis.charfilter
 	 * See the License for the specific language governing permissions and
 	 * limitations under the License.
 	 */
-
-	using CharFilterFactory = org.apache.lucene.analysis.util.CharFilterFactory;
-
-
-	/// <summary>
+    /// <summary>
 	/// Factory for <seealso cref="HTMLStripCharFilter"/>. 
 	/// <pre class="prettyprint">
 	/// &lt;fieldType name="text_html" class="solr.TextField" positionIncrementGap="100"&gt;

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/CharFilter/MappingCharFilterFactory.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/CharFilter/MappingCharFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/CharFilter/MappingCharFilterFactory.cs
index 1d8f008..fb9c99c 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/CharFilter/MappingCharFilterFactory.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/CharFilter/MappingCharFilterFactory.cs
@@ -5,7 +5,7 @@ using Lucene.Net.Support;
 using org.apache.lucene.analysis.charfilter;
 using org.apache.lucene.analysis.util;
 
-namespace Lucene.Net.Analysis.CharFilter
+namespace Lucene.Net.Analysis.CharFilters
 {
 
 	/*

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/CharFilter/NormalizeCharMap.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/CharFilter/NormalizeCharMap.cs b/src/Lucene.Net.Analysis.Common/Analysis/CharFilter/NormalizeCharMap.cs
index c143455..f26d9fd 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/CharFilter/NormalizeCharMap.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/CharFilter/NormalizeCharMap.cs
@@ -1,7 +1,4 @@
-using System;
-using System.Diagnostics;
-using System.Collections.Generic;
-/*
+/*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
@@ -17,25 +14,20 @@ using System.Collections.Generic;
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-using Lucene.Net.Analysis.CharFilter;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using Lucene.Net.Util;
+using Lucene.Net.Util.Fst;
 
-namespace org.apache.lucene.analysis.charfilter
+namespace Lucene.Net.Analysis.CharFilters
 {
-
-
-	using CharsRef = org.apache.lucene.util.CharsRef;
-	using IntsRef = org.apache.lucene.util.IntsRef;
-	using Builder = org.apache.lucene.util.fst.Builder;
-	using CharSequenceOutputs = org.apache.lucene.util.fst.CharSequenceOutputs;
-	using FST = org.apache.lucene.util.fst.FST;
-	using Outputs = org.apache.lucene.util.fst.Outputs;
-	using Util = org.apache.lucene.util.fst.Util;
-
-	// TODO: save/load?
+    // TODO: save/load?
 
 	/// <summary>
 	/// Holds a map of String input to String output, to be used
-	/// with <seealso cref="MappingCharFilter"/>.  Use the <seealso cref="Builder"/>
+	/// with <seealso cref="Builder"/>.  Use the <seealso cref="MappingCharFilter"/>
 	/// to create this.
 	/// </summary>
 	public class NormalizeCharMap
@@ -53,25 +45,21 @@ namespace org.apache.lucene.analysis.charfilter
 		  try
 		  {
 			// Pre-cache root arcs:
-//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
-//ORIGINAL LINE: final org.apache.lucene.util.fst.FST.Arc<org.apache.lucene.util.CharsRef> scratchArc = new org.apache.lucene.util.fst.FST.Arc<>();
-			FST.Arc<CharsRef> scratchArc = new FST.Arc<CharsRef>();
-//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
-//ORIGINAL LINE: final org.apache.lucene.util.fst.FST.BytesReader fstReader = map.getBytesReader();
+			var scratchArc = new FST.Arc<CharsRef>();
 			FST.BytesReader fstReader = map.BytesReader;
-			map.getFirstArc(scratchArc);
-			if (FST.targetHasArcs(scratchArc))
+			map.GetFirstArc(scratchArc);
+			if (FST<CharsRef>.TargetHasArcs(scratchArc))
 			{
-			  map.readFirstRealTargetArc(scratchArc.target, scratchArc, fstReader);
+			  map.ReadFirstRealTargetArc(scratchArc.Target, scratchArc, fstReader);
 			  while (true)
 			  {
-				Debug.Assert(scratchArc.label != FST.END_LABEL);
-				cachedRootArcs[Convert.ToChar((char) scratchArc.label)] = (new FST.Arc<CharsRef>()).copyFrom(scratchArc);
+				Debug.Assert(scratchArc.Label != FST<CharsRef>.END_LABEL); // LUCENENET TODO END_LABEL shouldn't be under generic?
+				cachedRootArcs[Convert.ToChar((char) scratchArc.Label)] = (new FST.Arc<CharsRef>()).CopyFrom(scratchArc);
 				if (scratchArc.Last)
 				{
 				  break;
 				}
-				map.readNextRealArc(scratchArc, fstReader);
+				map.ReadNextRealArc(scratchArc, fstReader);
 			  }
 			}
 			//System.out.println("cached " + cachedRootArcs.size() + " root arcs");
@@ -127,25 +115,17 @@ namespace org.apache.lucene.analysis.charfilter
 		public virtual NormalizeCharMap build()
 		{
 
-//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
-//ORIGINAL LINE: final org.apache.lucene.util.fst.FST<org.apache.lucene.util.CharsRef> map;
 		  FST<CharsRef> map;
 		  try
 		  {
-//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
-//ORIGINAL LINE: final org.apache.lucene.util.fst.Outputs<org.apache.lucene.util.CharsRef> outputs = org.apache.lucene.util.fst.CharSequenceOutputs.getSingleton();
 			Outputs<CharsRef> outputs = CharSequenceOutputs.Singleton;
-//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
-//ORIGINAL LINE: final org.apache.lucene.util.fst.Builder<org.apache.lucene.util.CharsRef> builder = new org.apache.lucene.util.fst.Builder<>(org.apache.lucene.util.fst.FST.INPUT_TYPE.BYTE2, outputs);
 			Builder<CharsRef> builder = new Builder<CharsRef>(FST.INPUT_TYPE.BYTE2, outputs);
-//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
-//ORIGINAL LINE: final org.apache.lucene.util.IntsRef scratch = new org.apache.lucene.util.IntsRef();
 			IntsRef scratch = new IntsRef();
 			foreach (KeyValuePair<string, string> ent in pendingPairs.SetOfKeyValuePairs())
 			{
-			  builder.add(Util.toUTF16(ent.Key, scratch), new CharsRef(ent.Value));
+			  builder.Add(Util.ToUTF16(ent.Key, scratch), new CharsRef(ent.Value));
 			}
-			map = builder.finish();
+			map = builder.Finish();
 			pendingPairs.Clear();
 		  }
 		  catch (IOException ioe)

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/CommonGrams/CommonGramsFilter.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/CommonGrams/CommonGramsFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/CommonGrams/CommonGramsFilter.cs
index a91da7a..ad618d1 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/CommonGrams/CommonGramsFilter.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/CommonGrams/CommonGramsFilter.cs
@@ -70,7 +70,7 @@ namespace Lucene.Net.Analysis.CommonGrams
         /// </summary>
         /// <param name="input"> TokenStream input in filter chain </param>
         /// <param name="commonWords"> The set of common words. </param>
-        public CommonGramsFilter(Version matchVersion, TokenStream input, CharArraySet commonWords)
+        public CommonGramsFilter(LuceneVersion matchVersion, TokenStream input, CharArraySet commonWords)
             : base(input)
         {
             termAttribute = AddAttribute<ICharTermAttribute>();

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Compound/CompoundWordTokenFilterBase.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Compound/CompoundWordTokenFilterBase.cs b/src/Lucene.Net.Analysis.Common/Analysis/Compound/CompoundWordTokenFilterBase.cs
index f9cdf1f..ba8fd6c 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Compound/CompoundWordTokenFilterBase.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Compound/CompoundWordTokenFilterBase.cs
@@ -28,7 +28,7 @@ namespace Lucene.Net.Analysis.Compound
 	/// <para>
 	/// 
 	/// <a name="version"></a>
-	/// You must specify the required <seealso cref="Version"/> compatibility when creating
+	/// You must specify the required <seealso cref="LuceneVersion"/> compatibility when creating
 	/// CompoundWordTokenFilterBase:
 	/// <ul>
 	/// <li>As of 3.1, CompoundWordTokenFilterBase correctly handles Unicode 4.0
@@ -55,7 +55,7 @@ namespace Lucene.Net.Analysis.Compound
 	  /// </summary>
 	  public const int DEFAULT_MAX_SUBWORD_SIZE = 15;
 
-	  protected internal readonly Version matchVersion;
+	  protected internal readonly LuceneVersion matchVersion;
 	  protected internal readonly CharArraySet dictionary;
 	  protected internal readonly LinkedList<CompoundToken> tokens;
 	  protected internal readonly int minWordSize;
@@ -69,15 +69,15 @@ namespace Lucene.Net.Analysis.Compound
 
 	  private AttributeSource.State current;
 
-	  protected internal CompoundWordTokenFilterBase(Version matchVersion, TokenStream input, CharArraySet dictionary, bool onlyLongestMatch) : this(matchVersion, input,dictionary,DEFAULT_MIN_WORD_SIZE,DEFAULT_MIN_SUBWORD_SIZE,DEFAULT_MAX_SUBWORD_SIZE, onlyLongestMatch)
+	  protected internal CompoundWordTokenFilterBase(LuceneVersion matchVersion, TokenStream input, CharArraySet dictionary, bool onlyLongestMatch) : this(matchVersion, input,dictionary,DEFAULT_MIN_WORD_SIZE,DEFAULT_MIN_SUBWORD_SIZE,DEFAULT_MAX_SUBWORD_SIZE, onlyLongestMatch)
 	  {
 	  }
 
-	  protected internal CompoundWordTokenFilterBase(Version matchVersion, TokenStream input, CharArraySet dictionary) : this(matchVersion, input,dictionary,DEFAULT_MIN_WORD_SIZE,DEFAULT_MIN_SUBWORD_SIZE,DEFAULT_MAX_SUBWORD_SIZE, false)
+	  protected internal CompoundWordTokenFilterBase(LuceneVersion matchVersion, TokenStream input, CharArraySet dictionary) : this(matchVersion, input,dictionary,DEFAULT_MIN_WORD_SIZE,DEFAULT_MIN_SUBWORD_SIZE,DEFAULT_MAX_SUBWORD_SIZE, false)
 	  {
 	  }
 
-	  protected internal CompoundWordTokenFilterBase(Version matchVersion, TokenStream input, CharArraySet dictionary, int minWordSize, int minSubwordSize, int maxSubwordSize, bool onlyLongestMatch) : base(input)
+	  protected internal CompoundWordTokenFilterBase(LuceneVersion matchVersion, TokenStream input, CharArraySet dictionary, int minWordSize, int minSubwordSize, int maxSubwordSize, bool onlyLongestMatch) : base(input)
 	  {
 		this.matchVersion = matchVersion;
 		this.tokens = new LinkedList<CompoundToken>();
@@ -171,7 +171,7 @@ namespace Lucene.Net.Analysis.Compound
 		  int startOff = outerInstance.offsetAtt.startOffset();
 		  int endOff = outerInstance.offsetAtt.endOffset();
 
-		  if (outerInstance.matchVersion.onOrAfter(Version.LUCENE_44) || endOff - startOff != outerInstance.termAtt.length())
+		  if (outerInstance.matchVersion.onOrAfter(LuceneVersion.LUCENE_44) || endOff - startOff != outerInstance.termAtt.length())
 		  {
 			// if length by start + end offsets doesn't match the term text then assume
 			// this is a synonym and don't adjust the offsets.

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Compound/DictionaryCompoundWordTokenFilter.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Compound/DictionaryCompoundWordTokenFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Compound/DictionaryCompoundWordTokenFilter.cs
index a69c35d..09c67fd 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Compound/DictionaryCompoundWordTokenFilter.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Compound/DictionaryCompoundWordTokenFilter.cs
@@ -28,7 +28,7 @@ namespace Lucene.Net.Analysis.Compound
     ///  It uses a brute-force algorithm to achieve this.
     /// </para>
     /// <para>
-    /// You must specify the required <seealso cref="Version"/> compatibility when creating
+    /// You must specify the required <seealso cref="LuceneVersion"/> compatibility when creating
     /// CompoundWordTokenFilterBase:
     /// <ul>
     /// <li>As of 3.1, CompoundWordTokenFilterBase correctly handles Unicode 4.0
@@ -52,7 +52,7 @@ namespace Lucene.Net.Analysis.Compound
         ///          the <seealso cref="TokenStream"/> to process </param>
         /// <param name="dictionary">
         ///          the word dictionary to match against. </param>
-        public DictionaryCompoundWordTokenFilter(Version matchVersion, TokenStream input, CharArraySet dictionary)
+        public DictionaryCompoundWordTokenFilter(LuceneVersion matchVersion, TokenStream input, CharArraySet dictionary)
             : base(matchVersion, input, dictionary)
         {
             if (dictionary == null)
@@ -81,7 +81,7 @@ namespace Lucene.Net.Analysis.Compound
         ///          only subwords shorter than this get to the output stream </param>
         /// <param name="onlyLongestMatch">
         ///          Add only the longest matching subword to the stream </param>
-        public DictionaryCompoundWordTokenFilter(Version matchVersion, TokenStream input, CharArraySet dictionary, int minWordSize, int minSubwordSize, int maxSubwordSize, bool onlyLongestMatch)
+        public DictionaryCompoundWordTokenFilter(LuceneVersion matchVersion, TokenStream input, CharArraySet dictionary, int minWordSize, int minSubwordSize, int maxSubwordSize, bool onlyLongestMatch)
             : base(matchVersion, input, dictionary, minWordSize, minSubwordSize, maxSubwordSize, onlyLongestMatch)
         {
             if (dictionary == null)

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Compound/HyphenationCompoundWordTokenFilter.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Compound/HyphenationCompoundWordTokenFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Compound/HyphenationCompoundWordTokenFilter.cs
index a8014ad..b49dab5 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Compound/HyphenationCompoundWordTokenFilter.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Compound/HyphenationCompoundWordTokenFilter.cs
@@ -31,7 +31,7 @@ namespace Lucene.Net.Analysis.Compound
     /// grammar and a word dictionary to achieve this.
     /// </para>
     /// <para>
-    /// You must specify the required <seealso cref="Version"/> compatibility when creating
+    /// You must specify the required <seealso cref="LuceneVersion"/> compatibility when creating
     /// CompoundWordTokenFilterBase:
     /// <ul>
     /// <li>As of 3.1, CompoundWordTokenFilterBase correctly handles Unicode 4.0
@@ -58,7 +58,7 @@ namespace Lucene.Net.Analysis.Compound
         ///          the hyphenation pattern tree to use for hyphenation </param>
         /// <param name="dictionary">
         ///          the word dictionary to match against. </param>
-        public HyphenationCompoundWordTokenFilter(Version matchVersion, TokenStream input, HyphenationTree hyphenator, CharArraySet dictionary)
+        public HyphenationCompoundWordTokenFilter(LuceneVersion matchVersion, TokenStream input, HyphenationTree hyphenator, CharArraySet dictionary)
             : this(matchVersion, input, hyphenator, dictionary, DEFAULT_MIN_WORD_SIZE, DEFAULT_MIN_SUBWORD_SIZE, DEFAULT_MAX_SUBWORD_SIZE, false)
         {
         }
@@ -85,7 +85,7 @@ namespace Lucene.Net.Analysis.Compound
         ///          only subwords shorter than this get to the output stream </param>
         /// <param name="onlyLongestMatch">
         ///          Add only the longest matching subword to the stream </param>
-        public HyphenationCompoundWordTokenFilter(Version matchVersion, TokenStream input, HyphenationTree hyphenator, CharArraySet dictionary, int minWordSize, int minSubwordSize, int maxSubwordSize, bool onlyLongestMatch)
+        public HyphenationCompoundWordTokenFilter(LuceneVersion matchVersion, TokenStream input, HyphenationTree hyphenator, CharArraySet dictionary, int minWordSize, int minSubwordSize, int maxSubwordSize, bool onlyLongestMatch)
             : base(matchVersion, input, dictionary, minWordSize, minSubwordSize, maxSubwordSize, onlyLongestMatch)
         {
 
@@ -100,7 +100,7 @@ namespace Lucene.Net.Analysis.Compound
         /// null, minWordSize, minSubwordSize, maxSubwordSize }
         /// </para>
         /// </summary>
-        public HyphenationCompoundWordTokenFilter(Version matchVersion, TokenStream input, HyphenationTree hyphenator, int minWordSize, int minSubwordSize, int maxSubwordSize)
+        public HyphenationCompoundWordTokenFilter(LuceneVersion matchVersion, TokenStream input, HyphenationTree hyphenator, int minWordSize, int minSubwordSize, int maxSubwordSize)
             : this(matchVersion, input, hyphenator, null, minWordSize, minSubwordSize, maxSubwordSize, false)
         {
         }
@@ -113,7 +113,7 @@ namespace Lucene.Net.Analysis.Compound
         /// DEFAULT_MIN_WORD_SIZE, DEFAULT_MIN_SUBWORD_SIZE, DEFAULT_MAX_SUBWORD_SIZE }
         /// </para>
         /// </summary>
-        public HyphenationCompoundWordTokenFilter(Version matchVersion, TokenStream input, HyphenationTree hyphenator)
+        public HyphenationCompoundWordTokenFilter(LuceneVersion matchVersion, TokenStream input, HyphenationTree hyphenator)
             : this(matchVersion, input, hyphenator, DEFAULT_MIN_WORD_SIZE, DEFAULT_MIN_SUBWORD_SIZE, DEFAULT_MAX_SUBWORD_SIZE)
         {
         }

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Compound/HyphenationCompoundWordTokenFilterFactory.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Compound/HyphenationCompoundWordTokenFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Compound/HyphenationCompoundWordTokenFilterFactory.cs
index ba6e2f7..0383b36 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Compound/HyphenationCompoundWordTokenFilterFactory.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Compound/HyphenationCompoundWordTokenFilterFactory.cs
@@ -1,8 +1,7 @@
 using System.Collections.Generic;
 using Lucene.Net.Analysis.Util;
-using org.apache.lucene.analysis.compound;
+using Lucene.Net.Util;
 using org.apache.lucene.analysis.compound.hyphenation;
-using org.apache.lucene.analysis.util;
 
 namespace Lucene.Net.Analysis.Compound
 {
@@ -101,11 +100,11 @@ namespace Lucene.Net.Analysis.Compound
 		}
 		finally
 		{
-		  IOUtils.closeWhileHandlingException(stream);
+		  IOUtils.CloseWhileHandlingException(stream);
 		}
 	  }
 
-	  public override HyphenationCompoundWordTokenFilter create(TokenStream input)
+	  public override TokenStream Create(TokenStream input)
 	  {
 		return new HyphenationCompoundWordTokenFilter(luceneMatchVersion, input, hyphenator, dictionary, minWordSize, minSubwordSize, maxSubwordSize, onlyLongestMatch);
 	  }

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/ByteVector.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/ByteVector.cs b/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/ByteVector.cs
index 963ad0d..c59a69d 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/ByteVector.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/ByteVector.cs
@@ -1,6 +1,4 @@
-using System;
-
-/*
+/*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
@@ -18,7 +16,7 @@
  */
 
 
-namespace org.apache.lucene.analysis.compound.hyphenation
+namespace Lucene.Net.Analysis.Compound.Hyphenation
 {
 
 	/// <summary>

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/CharVector.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/CharVector.cs b/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/CharVector.cs
index 6868911..568b50b 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/CharVector.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/CharVector.cs
@@ -17,7 +17,7 @@
  * limitations under the License.
  */
 
-namespace org.apache.lucene.analysis.compound.hyphenation
+namespace Lucene.Net.Analysis.Compound.Hyphenation
 {
 
 	/// <summary>

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/Hyphen.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/Hyphen.cs b/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/Hyphen.cs
index 819d756..8d73bd8 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/Hyphen.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/Hyphen.cs
@@ -17,7 +17,7 @@
  * limitations under the License.
  */
 
-namespace org.apache.lucene.analysis.compound.hyphenation
+namespace Lucene.Net.Analysis.Compound.Hyphenation
 {
 
 	/// <summary>

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/Hyphenation.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/Hyphenation.cs b/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/Hyphenation.cs
index ccf7387..bf2a170 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/Hyphenation.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/Hyphenation.cs
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-namespace org.apache.lucene.analysis.compound.hyphenation
+namespace Lucene.Net.Analysis.Compound.Hyphenation
 {
 
 	/// <summary>
@@ -26,10 +26,10 @@ namespace org.apache.lucene.analysis.compound.hyphenation
 	public class Hyphenation
 	{
 
-	  private int[] hyphenPoints;
+	  private readonly int[] hyphenPoints;
 
 	  /// <summary>
-	  /// rawWord as made of alternating strings and <seealso cref="Hyphen Hyphen"/> instances
+	  /// rawWord as made of alternating strings and <seealso cref="Hyphen"/> instances
 	  /// </summary>
 	  internal Hyphenation(int[] points)
 	  {

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/HyphenationTree.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/HyphenationTree.cs b/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/HyphenationTree.cs
index 9bc4cc0..de63b33 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/HyphenationTree.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/HyphenationTree.cs
@@ -1,8 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-/*
+/*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
@@ -18,14 +14,14 @@ using System.Text;
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+using System;
+using System.Collections.Generic;
+using System.Text;
+using org.apache.lucene.analysis.compound.hyphenation;
 
-namespace org.apache.lucene.analysis.compound.hyphenation
+namespace Lucene.Net.Analysis.Compound.Hyphenation
 {
-
-
-	using InputSource = org.xml.sax.InputSource;
-
-	/// <summary>
+    /// <summary>
 	/// This tree structure stores the hyphenation patterns in an efficient way for
 	/// fast lookup. It provides the provides the method to hyphenate a word.
 	/// 

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/PatternConsumer.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/PatternConsumer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/PatternConsumer.cs
index 5b3fc39..762b832 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/PatternConsumer.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/PatternConsumer.cs
@@ -1,6 +1,4 @@
-using System.Collections.Generic;
-
-/*
+/*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
@@ -16,8 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+using System.Collections.Generic;
 
-namespace org.apache.lucene.analysis.compound.hyphenation
+namespace Lucene.Net.Analysis.Compound.Hyphenation
 {
 
 	/// <summary>
@@ -41,7 +40,7 @@ namespace org.apache.lucene.analysis.compound.hyphenation
 	  /// Add a hyphenation exception. An exception replaces the result obtained by
 	  /// the algorithm for cases for which this fails or the user wants to provide
 	  /// his own hyphenation. A hyphenatedword is a vector of alternating String's
-	  /// and <seealso cref="Hyphen Hyphen"/> instances
+	  /// and <seealso cref="Hyphen"/> instances
 	  /// </summary>
 	  void addException(string word, List<object> hyphenatedword);
 

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/PatternParser.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/PatternParser.cs b/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/PatternParser.cs
index 50d3eb8..383dee2 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/PatternParser.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/PatternParser.cs
@@ -1,9 +1,4 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Text;
-
-/*
+/*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
@@ -19,19 +14,17 @@ using System.Text;
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
 
-namespace org.apache.lucene.analysis.compound.hyphenation
+namespace Lucene.Net.Analysis.Compound.Hyphenation
 {
 
 	// SAX
-	using XMLReader = org.xml.sax.XMLReader;
-	using InputSource = org.xml.sax.InputSource;
-	using SAXException = org.xml.sax.SAXException;
-	using SAXParseException = org.xml.sax.SAXParseException;
-	using DefaultHandler = org.xml.sax.helpers.DefaultHandler;
-	using Attributes = org.xml.sax.Attributes;
-
-	// Java
+    
+    // Java
 
 	/// <summary>
 	/// A SAX document handler to read and parse hyphenation patterns from a XML

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/TernaryTree.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/TernaryTree.cs b/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/TernaryTree.cs
index cbbd16a..f17d37c 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/TernaryTree.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Compound/hyphenation/TernaryTree.cs
@@ -1,8 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-/*
+/*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
@@ -18,8 +14,11 @@ using System.Text;
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+using System;
+using System.Collections.Generic;
+using System.Text;
 
-namespace org.apache.lucene.analysis.compound.hyphenation
+namespace Lucene.Net.Analysis.Compound.Hyphenation
 {
 
 

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Core/LetterTokenizer.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Core/LetterTokenizer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Core/LetterTokenizer.cs
index b48b320..a1f80ea 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Core/LetterTokenizer.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Core/LetterTokenizer.cs
@@ -32,7 +32,7 @@ namespace Lucene.Net.Analysis.Core
     /// </para>
     /// <para>
     /// <a name="version"/>
-    /// You must specify the required <seealso cref="Version"/> compatibility when creating
+    /// You must specify the required <seealso cref="LuceneVersion"/> compatibility when creating
     /// <seealso cref="LetterTokenizer"/>:
     /// <ul>
     /// <li>As of 3.1, <seealso cref="CharTokenizer"/> uses an int based API to normalize and
@@ -52,7 +52,7 @@ namespace Lucene.Net.Analysis.Core
         ///          Lucene version to match See <seealso cref="<a href="#version">above</a>"/> </param>
         /// <param name="in">
         ///          the input to split up into tokens </param>
-        public LetterTokenizer(Version matchVersion, TextReader @in)
+        public LetterTokenizer(LuceneVersion matchVersion, TextReader @in)
             : base(matchVersion, @in)
         {
         }
@@ -67,7 +67,7 @@ namespace Lucene.Net.Analysis.Core
         ///          the attribute factory to use for this <seealso cref="Tokenizer"/> </param>
         /// <param name="in">
         ///          the input to split up into tokens </param>
-        public LetterTokenizer(Version matchVersion, AttributeSource.AttributeFactory factory, TextReader @in)
+        public LetterTokenizer(LuceneVersion matchVersion, AttributeSource.AttributeFactory factory, TextReader @in)
             : base(matchVersion, factory, @in)
         {
         }

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Core/LowerCaseFilter.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Core/LowerCaseFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Core/LowerCaseFilter.cs
index fe9654d..e317f48 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Core/LowerCaseFilter.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Core/LowerCaseFilter.cs
@@ -24,7 +24,7 @@ namespace Lucene.Net.Analysis.Core
     /// <summary>
     /// Normalizes token text to lower case.
     /// <a name="version"/>
-    /// <para>You must specify the required <seealso cref="Version"/>
+    /// <para>You must specify the required <seealso cref="LuceneVersion"/>
     /// compatibility when creating LowerCaseFilter:
     /// <ul>
     ///   <li> As of 3.1, supplementary characters are properly lowercased.
@@ -41,7 +41,7 @@ namespace Lucene.Net.Analysis.Core
         /// </summary>
         /// <param name="matchVersion"> See <a href="#version">above</a> </param>
         /// <param name="in"> TokenStream to filter </param>
-        public LowerCaseFilter(Version matchVersion, TokenStream @in)
+        public LowerCaseFilter(LuceneVersion matchVersion, TokenStream @in)
             : base(@in)
         {
             termAtt = AddAttribute<ICharTermAttribute>();

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Core/LowerCaseTokenizer.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Core/LowerCaseTokenizer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Core/LowerCaseTokenizer.cs
index c3c8250..b2ff2a5 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Core/LowerCaseTokenizer.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Core/LowerCaseTokenizer.cs
@@ -34,7 +34,7 @@ namespace Lucene.Net.Analysis.Core
     /// </p>
     /// <para>
     /// <a name="version"/>
-    /// You must specify the required <seealso cref="Version"/> compatibility when creating
+    /// You must specify the required <seealso cref="LuceneVersion"/> compatibility when creating
     /// <seealso cref="LowerCaseTokenizer"/>:
     /// <ul>
     /// <li>As of 3.1, <seealso cref="CharTokenizer"/> uses an int based API to normalize and
@@ -54,7 +54,7 @@ namespace Lucene.Net.Analysis.Core
         /// </param>
         /// <param name="in">
         ///          the input to split up into tokens </param>
-        public LowerCaseTokenizer(Version matchVersion, TextReader @in)
+        public LowerCaseTokenizer(LuceneVersion matchVersion, TextReader @in)
             : base(matchVersion, @in)
         {
         }
@@ -69,7 +69,7 @@ namespace Lucene.Net.Analysis.Core
         ///          the attribute factory to use for this <seealso cref="Tokenizer"/> </param>
         /// <param name="in">
         ///          the input to split up into tokens </param>
-        public LowerCaseTokenizer(Version matchVersion, AttributeFactory factory, TextReader @in)
+        public LowerCaseTokenizer(LuceneVersion matchVersion, AttributeFactory factory, TextReader @in)
             : base(matchVersion, factory, @in)
         {
         }

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Core/SimpleAnalyzer.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Core/SimpleAnalyzer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Core/SimpleAnalyzer.cs
index 2710d80..da5868e 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Core/SimpleAnalyzer.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Core/SimpleAnalyzer.cs
@@ -25,7 +25,7 @@ namespace Lucene.Net.Analysis.Core
     /// An <seealso cref="Analyzer"/> that filters <seealso cref="LetterTokenizer"/> 
     ///  with <seealso cref="LowerCaseFilter"/> 
     /// <para>
-    /// <a name="version">You must specify the required <seealso cref="Version"/> compatibility
+    /// <a name="version">You must specify the required <seealso cref="LuceneVersion"/> compatibility
     /// when creating <seealso cref="CharTokenizer"/>:
     /// <ul>
     /// <li>As of 3.1, <seealso cref="LowerCaseTokenizer"/> uses an int based API to normalize and
@@ -40,12 +40,12 @@ namespace Lucene.Net.Analysis.Core
     public sealed class SimpleAnalyzer : Analyzer
     {
 
-        private readonly Version matchVersion;
+        private readonly LuceneVersion matchVersion;
 
         /// <summary>
         /// Creates a new <seealso cref="SimpleAnalyzer"/> </summary>
         /// <param name="matchVersion"> Lucene version to match See <seealso cref="<a href="#version">above</a>"/> </param>
-        public SimpleAnalyzer(Version matchVersion)
+        public SimpleAnalyzer(LuceneVersion matchVersion)
         {
             this.matchVersion = matchVersion;
         }

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Core/StopAnalyzer.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Core/StopAnalyzer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Core/StopAnalyzer.cs
index 37020bb..e51dbc1 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Core/StopAnalyzer.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Core/StopAnalyzer.cs
@@ -27,7 +27,7 @@ namespace Lucene.Net.Analysis.Core
 	/// Filters <seealso cref="LetterTokenizer"/> with <seealso cref="LowerCaseFilter"/> and <seealso cref="StopFilter"/>.
 	/// 
 	/// <a name="version"/>
-	/// <para>You must specify the required <seealso cref="Version"/>
+	/// <para>You must specify the required <seealso cref="LuceneVersion"/>
 	/// compatibility when creating StopAnalyzer:
 	/// <ul>
 	///    <li> As of 3.1, StopFilter correctly handles Unicode 4.0
@@ -49,7 +49,7 @@ namespace Lucene.Net.Analysis.Core
 	  static StopAnalyzer()
 	  {
 		IList<string> stopWords = Arrays.AsList("a", "an", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with");
-		var stopSet = new CharArraySet(Version.LUCENE_CURRENT, stopWords, false);
+		var stopSet = new CharArraySet(LuceneVersion.LUCENE_CURRENT, stopWords, false);
 		ENGLISH_STOP_WORDS_SET = CharArraySet.unmodifiableSet(stopSet);
 	  }
 
@@ -57,7 +57,7 @@ namespace Lucene.Net.Analysis.Core
 	  /// Builds an analyzer which removes words in
 	  ///  <seealso cref="#ENGLISH_STOP_WORDS_SET"/>. </summary>
 	  /// <param name="matchVersion"> See <a href="#version">above</a> </param>
-	  public StopAnalyzer(Version matchVersion) : this(matchVersion, ENGLISH_STOP_WORDS_SET)
+	  public StopAnalyzer(LuceneVersion matchVersion) : this(matchVersion, ENGLISH_STOP_WORDS_SET)
 	  {
 	  }
 
@@ -65,7 +65,7 @@ namespace Lucene.Net.Analysis.Core
 	  /// Builds an analyzer with the stop words from the given set. </summary>
 	  /// <param name="matchVersion"> See <a href="#version">above</a> </param>
 	  /// <param name="stopWords"> Set of stop words  </param>
-	  public StopAnalyzer(Version matchVersion, CharArraySet stopWords) : base(matchVersion, stopWords)
+	  public StopAnalyzer(LuceneVersion matchVersion, CharArraySet stopWords) : base(matchVersion, stopWords)
 	  {
 	  }
 
@@ -74,7 +74,7 @@ namespace Lucene.Net.Analysis.Core
 	  /// <seealso cref= WordlistLoader#getWordSet(Reader, Version) </seealso>
 	  /// <param name="matchVersion"> See <a href="#version">above</a> </param>
 	  /// <param name="stopwordsFile"> File to load stop words from  </param>
-	  public StopAnalyzer(Version matchVersion, File stopwordsFile) : this(matchVersion, loadStopwordSet(stopwordsFile, matchVersion))
+	  public StopAnalyzer(LuceneVersion matchVersion, File stopwordsFile) : this(matchVersion, loadStopwordSet(stopwordsFile, matchVersion))
 	  {
 	  }
 
@@ -83,7 +83,7 @@ namespace Lucene.Net.Analysis.Core
 	  /// <seealso cref= WordlistLoader#getWordSet(Reader, Version) </seealso>
 	  /// <param name="matchVersion"> See <a href="#version">above</a> </param>
 	  /// <param name="stopwords"> Reader to load stop words from  </param>
-	  public StopAnalyzer(Version matchVersion, TextReader stopwords) : this(matchVersion, loadStopwordSet(stopwords, matchVersion))
+	  public StopAnalyzer(LuceneVersion matchVersion, TextReader stopwords) : this(matchVersion, loadStopwordSet(stopwords, matchVersion))
 	  {
 	  }
 

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Core/StopFilter.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Core/StopFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Core/StopFilter.cs
index 085ef17..ba398d8 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Core/StopFilter.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Core/StopFilter.cs
@@ -28,7 +28,7 @@ namespace Lucene.Net.Analysis.Core
     /// Removes stop words from a token stream.
     /// 
     /// <a name="version"/>
-    /// <para>You must specify the required <seealso cref="Version"/>
+    /// <para>You must specify the required <seealso cref="LuceneVersion"/>
     /// compatibility when creating StopFilter:
     /// <ul>
     ///   <li> As of 3.1, StopFilter correctly handles Unicode 4.0
@@ -55,7 +55,7 @@ namespace Lucene.Net.Analysis.Core
         /// <param name="stopWords">
         ///          A <seealso cref="CharArraySet"/> representing the stopwords. </param>
         /// <seealso cref= #makeStopSet(Version, java.lang.String...) </seealso>
-        public StopFilter(Version matchVersion, TokenStream @in, CharArraySet stopWords)
+        public StopFilter(LuceneVersion matchVersion, TokenStream @in, CharArraySet stopWords)
             : base(matchVersion, @in)
         {
             termAtt = AddAttribute<ICharTermAttribute>();
@@ -71,7 +71,7 @@ namespace Lucene.Net.Analysis.Core
         /// <param name="matchVersion"> Lucene version to enable correct Unicode 4.0 behavior in the returned set if Version > 3.0 </param>
         /// <param name="stopWords"> An array of stopwords </param>
         /// <seealso cref= #makeStopSet(Version, java.lang.String[], boolean) passing false to ignoreCase </seealso>
-        public static CharArraySet makeStopSet(Version matchVersion, params string[] stopWords)
+        public static CharArraySet makeStopSet(LuceneVersion matchVersion, params string[] stopWords)
         {
             return makeStopSet(matchVersion, stopWords, false);
         }
@@ -86,7 +86,7 @@ namespace Lucene.Net.Analysis.Core
         /// <param name="stopWords"> A List of Strings or char[] or any other toString()-able list representing the stopwords </param>
         /// <returns> A Set (<seealso cref="CharArraySet"/>) containing the words </returns>
         /// <seealso cref= #makeStopSet(Version, java.lang.String[], boolean) passing false to ignoreCase </seealso>
-        public static CharArraySet MakeStopSet<T1>(Version matchVersion, IList<T1> stopWords)
+        public static CharArraySet MakeStopSet<T1>(LuceneVersion matchVersion, IList<T1> stopWords)
         {
             return makeStopSet(matchVersion, stopWords, false);
         }
@@ -98,7 +98,7 @@ namespace Lucene.Net.Analysis.Core
         /// <param name="stopWords"> An array of stopwords </param>
         /// <param name="ignoreCase"> If true, all words are lower cased first. </param>
         /// <returns> a Set containing the words </returns>
-        public static CharArraySet MakeStopSet(Version matchVersion, string[] stopWords, bool ignoreCase)
+        public static CharArraySet MakeStopSet(LuceneVersion matchVersion, string[] stopWords, bool ignoreCase)
         {
             CharArraySet stopSet = new CharArraySet(matchVersion, stopWords.Length, ignoreCase);
             stopSet.AddAll(Arrays.AsList(stopWords));
@@ -111,7 +111,7 @@ namespace Lucene.Net.Analysis.Core
         /// <param name="stopWords"> A List of Strings or char[] or any other toString()-able list representing the stopwords </param>
         /// <param name="ignoreCase"> if true, all words are lower cased first </param>
         /// <returns> A Set (<seealso cref="CharArraySet"/>) containing the words </returns>
-        public static CharArraySet MakeStopSet<T1>(Version matchVersion, IList<T1> stopWords, bool ignoreCase)
+        public static CharArraySet MakeStopSet<T1>(LuceneVersion matchVersion, IList<T1> stopWords, bool ignoreCase)
         {
             var stopSet = new CharArraySet(matchVersion, stopWords.Count, ignoreCase);
             stopSet.AddAll(stopWords);

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Core/UpperCaseFilter.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Core/UpperCaseFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Core/UpperCaseFilter.cs
index 83c74dd..6b722ad 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Core/UpperCaseFilter.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Core/UpperCaseFilter.cs
@@ -24,7 +24,7 @@ namespace Lucene.Net.Analysis.Core
     /// <summary>
 	/// Normalizes token text to UPPER CASE.
 	/// <a name="version"/>
-	/// <para>You must specify the required <seealso cref="Version"/>
+	/// <para>You must specify the required <seealso cref="LuceneVersion"/>
 	/// compatibility when creating UpperCaseFilter
 	/// 
 	/// </para>
@@ -44,7 +44,7 @@ namespace Lucene.Net.Analysis.Core
 	  /// </summary>
 	  /// <param name="matchVersion"> See <a href="#version">above</a> </param>
 	  /// <param name="in"> TokenStream to filter </param>
-	  public UpperCaseFilter(Version matchVersion, TokenStream @in) : base(@in)
+	  public UpperCaseFilter(LuceneVersion matchVersion, TokenStream @in) : base(@in)
 	  {
 	      termAtt = AddAttribute<ICharTermAttribute>();
 	      termAtt = AddAttribute<ICharTermAttribute>();

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Core/WhitespaceAnalyzer.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Core/WhitespaceAnalyzer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Core/WhitespaceAnalyzer.cs
index 70169bd..ee5c86a 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Core/WhitespaceAnalyzer.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Core/WhitespaceAnalyzer.cs
@@ -24,7 +24,7 @@ namespace Lucene.Net.Analysis.Core
     /// <summary>
     /// An Analyzer that uses <seealso cref="WhitespaceTokenizer"/>.
     /// <para>
-    /// <a name="version">You must specify the required <seealso cref="Version"/> compatibility
+    /// <a name="version">You must specify the required <seealso cref="LuceneVersion"/> compatibility
     /// when creating <seealso cref="CharTokenizer"/>:
     /// <ul>
     /// <li>As of 3.1, <seealso cref="WhitespaceTokenizer"/> uses an int based API to normalize and
@@ -39,12 +39,12 @@ namespace Lucene.Net.Analysis.Core
     public sealed class WhitespaceAnalyzer : Analyzer
     {
 
-        private readonly Version matchVersion;
+        private readonly LuceneVersion matchVersion;
 
         /// <summary>
         /// Creates a new <seealso cref="WhitespaceAnalyzer"/> </summary>
         /// <param name="matchVersion"> Lucene version to match See <seealso cref="<a href="#version">above</a>"/> </param>
-        public WhitespaceAnalyzer(Version matchVersion)
+        public WhitespaceAnalyzer(LuceneVersion matchVersion)
         {
             this.matchVersion = matchVersion;
         }

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Core/WhitespaceTokenizer.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Core/WhitespaceTokenizer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Core/WhitespaceTokenizer.cs
index ac19c96..1567daf 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Core/WhitespaceTokenizer.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Core/WhitespaceTokenizer.cs
@@ -27,7 +27,7 @@ namespace Lucene.Net.Analysis.Core
     /// Adjacent sequences of non-Whitespace characters form tokens. <a
     /// name="version"/>
     /// <para>
-    /// You must specify the required <seealso cref="Version"/> compatibility when creating
+    /// You must specify the required <seealso cref="LuceneVersion"/> compatibility when creating
     /// <seealso cref="WhitespaceTokenizer"/>:
     /// <ul>
     /// <li>As of 3.1, <seealso cref="CharTokenizer"/> uses an int based API to normalize and
@@ -44,7 +44,7 @@ namespace Lucene.Net.Analysis.Core
         /// </param>
         /// <param name="in">
         ///          the input to split up into tokens </param>
-        public WhitespaceTokenizer(Version matchVersion, TextReader @in)
+        public WhitespaceTokenizer(LuceneVersion matchVersion, TextReader @in)
             : base(matchVersion, @in)
         {
         }
@@ -60,7 +60,7 @@ namespace Lucene.Net.Analysis.Core
         ///          the attribute factory to use for this <seealso cref="Tokenizer"/> </param>
         /// <param name="in">
         ///          the input to split up into tokens </param>
-        public WhitespaceTokenizer(Version matchVersion, AttributeFactory factory, TextReader @in)
+        public WhitespaceTokenizer(LuceneVersion matchVersion, AttributeFactory factory, TextReader @in)
             : base(matchVersion, factory, @in)
         {
         }

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/CodepointCountFilter.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/CodepointCountFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/CodepointCountFilter.cs
index 6c99fcb..80a7976 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/CodepointCountFilter.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/CodepointCountFilter.cs
@@ -44,7 +44,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
         /// <param name="in">      the <seealso cref="TokenStream"/> to consume </param>
         /// <param name="min">     the minimum length </param>
         /// <param name="max">     the maximum length </param>
-        public CodepointCountFilter(Version version, TokenStream @in, int min, int max)
+        public CodepointCountFilter(LuceneVersion version, TokenStream @in, int min, int max)
             : base(version, @in)
         {
             this.min = min;

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/KeepWordFilter.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/KeepWordFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/KeepWordFilter.cs
index b699de1..669c216 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/KeepWordFilter.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/KeepWordFilter.cs
@@ -1,6 +1,8 @@
 using System;
 using Lucene.Net.Analysis.Tokenattributes;
 using Lucene.Net.Analysis.Util;
+using Reader = System.IO.TextReader;
+using Version = Lucene.Net.Util.LuceneVersion;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/KeywordMarkerFilterFactory.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/KeywordMarkerFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/KeywordMarkerFilterFactory.cs
index c374fae..d7a987c 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/KeywordMarkerFilterFactory.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/KeywordMarkerFilterFactory.cs
@@ -1,6 +1,7 @@
 using System.Collections.Generic;
 using Lucene.Net.Analysis.Util;
-using org.apache.lucene.analysis.miscellaneous;
+using Reader = System.IO.TextReader;
+using Version = Lucene.Net.Util.LuceneVersion;
 
 namespace Lucene.Net.Analysis.Miscellaneous
 {

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/LengthFilter.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/LengthFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/LengthFilter.cs
index 556fed2..31298b9 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/LengthFilter.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/LengthFilter.cs
@@ -1,83 +1,86 @@
 using System;
 using Lucene.Net.Analysis.Tokenattributes;
 using Lucene.Net.Analysis.Util;
+using Reader = System.IO.TextReader;
+using Version = Lucene.Net.Util.LuceneVersion;
 
 namespace Lucene.Net.Analysis.Miscellaneous
 {
 
-	/*
-	 * Licensed to the Apache Software Foundation (ASF) under one or more
-	 * contributor license agreements.  See the NOTICE file distributed with
-	 * this work for additional information regarding copyright ownership.
-	 * The ASF licenses this file to You under the Apache License, Version 2.0
-	 * (the "License"); you may not use this file except in compliance with
-	 * the License.  You may obtain a copy of the License at
-	 *
-	 *     http://www.apache.org/licenses/LICENSE-2.0
-	 *
-	 * Unless required by applicable law or agreed to in writing, software
-	 * distributed under the License is distributed on an "AS IS" BASIS,
-	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-	 * See the License for the specific language governing permissions and
-	 * limitations under the License.
-	 */
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
     /// <summary>
-	/// Removes words that are too long or too short from the stream.
-	/// <para>
-	/// Note: Length is calculated as the number of UTF-16 code units.
-	/// </para>
-	/// </summary>
-	public sealed class LengthFilter : FilteringTokenFilter
-	{
+    /// Removes words that are too long or too short from the stream.
+    /// <para>
+    /// Note: Length is calculated as the number of UTF-16 code units.
+    /// </para>
+    /// </summary>
+    public sealed class LengthFilter : FilteringTokenFilter
+    {
 
-	  private readonly int min;
-	  private readonly int max;
+        private readonly int min;
+        private readonly int max;
 
-	  private readonly ICharTermAttribute termAtt = addAttribute(typeof(CharTermAttribute));
+        private readonly ICharTermAttribute termAtt = addAttribute(typeof(CharTermAttribute));
 
-	  /// @deprecated enablePositionIncrements=false is not supported anymore as of Lucene 4.4. 
-	  [Obsolete("enablePositionIncrements=false is not supported anymore as of Lucene 4.4.")]
-	  public LengthFilter(Version version, bool enablePositionIncrements, TokenStream @in, int min, int max) : base(version, enablePositionIncrements, @in)
-	  {
-		if (min < 0)
-		{
-		  throw new System.ArgumentException("minimum length must be greater than or equal to zero");
-		}
-		if (min > max)
-		{
-		  throw new System.ArgumentException("maximum length must not be greater than minimum length");
-		}
-		this.min = min;
-		this.max = max;
-	  }
+        [Obsolete("enablePositionIncrements=false is not supported anymore as of Lucene 4.4.")]
+        public LengthFilter(Version version, bool enablePositionIncrements, TokenStream @in, int min, int max)
+            : base(version, enablePositionIncrements, @in)
+        {
+            if (min < 0)
+            {
+                throw new System.ArgumentException("minimum length must be greater than or equal to zero");
+            }
+            if (min > max)
+            {
+                throw new System.ArgumentException("maximum length must not be greater than minimum length");
+            }
+            this.min = min;
+            this.max = max;
+        }
 
-	  /// <summary>
-	  /// Create a new <seealso cref="LengthFilter"/>. This will filter out tokens whose
-	  /// <seealso cref="CharTermAttribute"/> is either too short (<seealso cref="CharTermAttribute#length()"/>
-	  /// &lt; min) or too long (<seealso cref="CharTermAttribute#length()"/> &gt; max). </summary>
-	  /// <param name="version"> the Lucene match version </param>
-	  /// <param name="in">      the <seealso cref="TokenStream"/> to consume </param>
-	  /// <param name="min">     the minimum length </param>
-	  /// <param name="max">     the maximum length </param>
-	  public LengthFilter(Version version, TokenStream @in, int min, int max) : base(version, @in)
-	  {
-		if (min < 0)
-		{
-		  throw new System.ArgumentException("minimum length must be greater than or equal to zero");
-		}
-		if (min > max)
-		{
-		  throw new System.ArgumentException("maximum length must not be greater than minimum length");
-		}
-		this.min = min;
-		this.max = max;
-	  }
+        /// <summary>
+        /// Create a new <seealso cref="LengthFilter"/>. This will filter out tokens whose
+        /// <seealso cref="CharTermAttribute"/> is either too short (<seealso cref="CharTermAttribute#length()"/>
+        /// &lt; min) or too long (<seealso cref="CharTermAttribute#length()"/> &gt; max). </summary>
+        /// <param name="version"> the Lucene match version </param>
+        /// <param name="in">      the <seealso cref="TokenStream"/> to consume </param>
+        /// <param name="min">     the minimum length </param>
+        /// <param name="max">     the maximum length </param>
+        public LengthFilter(Version version, TokenStream @in, int min, int max)
+            : base(version, @in)
+        {
+            if (min < 0)
+            {
+                throw new System.ArgumentException("minimum length must be greater than or equal to zero");
+            }
+            if (min > max)
+            {
+                throw new System.ArgumentException("maximum length must not be greater than minimum length");
+            }
+            this.min = min;
+            this.max = max;
+        }
 
         protected internal override bool Accept()
-	  {
-		int len = termAtt.Length;
-		return (len >= min && len <= max);
-	  }
-	}
+        {
+            int len = termAtt.Length;
+            return (len >= min && len <= max);
+        }
+    }
 
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/PatternAnalyzer.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/PatternAnalyzer.cs b/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/PatternAnalyzer.cs
index f0392f9..c20a7c3 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/PatternAnalyzer.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/PatternAnalyzer.cs
@@ -3,7 +3,7 @@ using System.IO;
 using Lucene.Net.Analysis.Core;
 using Lucene.Net.Analysis.Tokenattributes;
 using Lucene.Net.Analysis.Util;
-using Version = Lucene.Net.Util.Version;
+using Lucene.Net.Util;
 
 namespace Lucene.Net.Analysis.Miscellaneous
 {
@@ -67,13 +67,13 @@ namespace Lucene.Net.Analysis.Miscellaneous
         /// <code>"\\s+"</code>; Divides text at whitespaces (Character.isWhitespace(c)) </summary>
         public static readonly Pattern WHITESPACE_PATTERN = Pattern.compile("\\s+");
 
-        private static readonly CharArraySet EXTENDED_ENGLISH_STOP_WORDS = CharArraySet.unmodifiableSet(new CharArraySet(Version.LUCENE_CURRENT, Arrays.asList("a", "about", "above", "across", "adj", "after", "afterwards", "again", "against", "albeit", "all", "almost", "alone", "along", "already", "also", "although", "always", "among", "amongst", "an", "and", "another", "any", "anyhow", "anyone", "anything", "anywhere", "are", "around", "as", "at", "be", "became", "because", "become", "becomes", "becoming", "been", "before", "beforehand", "behind", "being", "below", "beside", "besides", "between", "beyond", "both", "but", "by", "can", "cannot", "co", "could", "down", "during", "each", "eg", "either", "else", "elsewhere", "enough", "etc", "even", "ever", "every", "everyone", "everything", "everywhere", "except", "few", "first", "for", "former", "formerly", "from", "further", "had", "has", "have", "he", "hence", "her", "here", "hereafter", "hereby", "herein", "hereupon", "hers", "herse
 lf", "him", "himself", "his", "how", "however", "i", "ie", "if", "in", "inc", "indeed", "into", "is", "it", "its", "itself", "last", "latter", "latterly", "least", "less", "ltd", "many", "may", "me", "meanwhile", "might", "more", "moreover", "most", "mostly", "much", "must", "my", "myself", "namely", "neither", "never", "nevertheless", "next", "no", "nobody", "none", "noone", "nor", "not", "nothing", "now", "nowhere", "of", "off", "often", "on", "once one", "only", "onto", "or", "other", "others", "otherwise", "our", "ours", "ourselves", "out", "over", "own", "per", "perhaps", "rather", "s", "same", "seem", "seemed", "seeming", "seems", "several", "she", "should", "since", "so", "some", "somehow", "someone", "something", "sometime", "sometimes", "somewhere", "still", "such", "t", "than", "that", "the", "their", "them", "themselves", "then", "thence", "there", "thereafter", "thereby", "therefor", "therein", "thereupon", "these", "they", "this", "those", "though", "through", "througho
 ut", "thru", "thus", "to", "together", "too", "toward", "towards", "under", "until", "up", "upon", "us", "very", "via", "was", "we", "well", "were", "what", "whatever", "whatsoever", "when", "whence", "whenever", "whensoever", "where", "whereafter", "whereas", "whereat", "whereby", "wherefrom", "wherein", "whereinto", "whereof", "whereon", "whereto", "whereunto", "whereupon", "wherever", "wherewith", "whether", "which", "whichever", "whichsoever", "while", "whilst", "whither", "who", "whoever", "whole", "whom", "whomever", "whomsoever", "whose", "whosoever", "why", "will", "with", "within", "without", "would", "xsubj", "xcal", "xauthor", "xother ", "xnote", "yet", "you", "your", "yours", "yourself", "yourselves"), true));
+        private static readonly CharArraySet EXTENDED_ENGLISH_STOP_WORDS = CharArraySet.unmodifiableSet(new CharArraySet(LuceneVersion.LUCENE_CURRENT, Arrays.asList("a", "about", "above", "across", "adj", "after", "afterwards", "again", "against", "albeit", "all", "almost", "alone", "along", "already", "also", "although", "always", "among", "amongst", "an", "and", "another", "any", "anyhow", "anyone", "anything", "anywhere", "are", "around", "as", "at", "be", "became", "because", "become", "becomes", "becoming", "been", "before", "beforehand", "behind", "being", "below", "beside", "besides", "between", "beyond", "both", "but", "by", "can", "cannot", "co", "could", "down", "during", "each", "eg", "either", "else", "elsewhere", "enough", "etc", "even", "ever", "every", "everyone", "everything", "everywhere", "except", "few", "first", "for", "former", "formerly", "from", "further", "had", "has", "have", "he", "hence", "her", "here", "hereafter", "hereby", "herein", "hereupon", "hers", 
 "herself", "him", "himself", "his", "how", "however", "i", "ie", "if", "in", "inc", "indeed", "into", "is", "it", "its", "itself", "last", "latter", "latterly", "least", "less", "ltd", "many", "may", "me", "meanwhile", "might", "more", "moreover", "most", "mostly", "much", "must", "my", "myself", "namely", "neither", "never", "nevertheless", "next", "no", "nobody", "none", "noone", "nor", "not", "nothing", "now", "nowhere", "of", "off", "often", "on", "once one", "only", "onto", "or", "other", "others", "otherwise", "our", "ours", "ourselves", "out", "over", "own", "per", "perhaps", "rather", "s", "same", "seem", "seemed", "seeming", "seems", "several", "she", "should", "since", "so", "some", "somehow", "someone", "something", "sometime", "sometimes", "somewhere", "still", "such", "t", "than", "that", "the", "their", "them", "themselves", "then", "thence", "there", "thereafter", "thereby", "therefor", "therein", "thereupon", "these", "they", "this", "those", "though", "through", "th
 roughout", "thru", "thus", "to", "together", "too", "toward", "towards", "under", "until", "up", "upon", "us", "very", "via", "was", "we", "well", "were", "what", "whatever", "whatsoever", "when", "whence", "whenever", "whensoever", "where", "whereafter", "whereas", "whereat", "whereby", "wherefrom", "wherein", "whereinto", "whereof", "whereon", "whereto", "whereunto", "whereupon", "wherever", "wherewith", "whether", "which", "whichever", "whichsoever", "while", "whilst", "whither", "who", "whoever", "whole", "whom", "whomever", "whomsoever", "whose", "whosoever", "why", "will", "with", "within", "without", "would", "xsubj", "xcal", "xauthor", "xother ", "xnote", "yet", "you", "your", "yours", "yourself", "yourselves"), true));
 
         /// <summary>
         /// A lower-casing word analyzer with English stop words (can be shared
         /// freely across threads without harm); global per class loader.
         /// </summary>
-        public static readonly PatternAnalyzer DEFAULT_ANALYZER = new PatternAnalyzer(Version.LUCENE_CURRENT, NON_WORD_PATTERN, true, StopAnalyzer.ENGLISH_STOP_WORDS_SET);
+        public static readonly PatternAnalyzer DEFAULT_ANALYZER = new PatternAnalyzer(LuceneVersion.LUCENE_CURRENT, NON_WORD_PATTERN, true, StopAnalyzer.ENGLISH_STOP_WORDS_SET);
 
         /// <summary>
         /// A lower-casing word analyzer with <b>extended </b> English stop words
@@ -82,13 +82,13 @@ namespace Lucene.Net.Analysis.Miscellaneous
         /// http://thomas.loc.gov/home/stopwords.html, see
         /// http://thomas.loc.gov/home/all.about.inquery.html
         /// </summary>
-        public static readonly PatternAnalyzer EXTENDED_ANALYZER = new PatternAnalyzer(Version.LUCENE_CURRENT, NON_WORD_PATTERN, true, EXTENDED_ENGLISH_STOP_WORDS);
+        public static readonly PatternAnalyzer EXTENDED_ANALYZER = new PatternAnalyzer(LuceneVersion.LUCENE_CURRENT, NON_WORD_PATTERN, true, EXTENDED_ENGLISH_STOP_WORDS);
 
         private readonly Pattern pattern;
         private readonly bool toLowerCase;
         private readonly CharArraySet stopWords;
 
-        private readonly Version matchVersion;
+        private readonly LuceneVersion matchVersion;
 
         /// <summary>
         /// Constructs a new instance with the given parameters.
@@ -108,7 +108,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
         ///            <code>WordlistLoader.getWordSet(new File("samples/fulltext/stopwords.txt")</code>
         ///            or <a href="http://www.unine.ch/info/clef/">other stop words
         ///            lists </a>. </param>
-        public PatternAnalyzer(Version matchVersion, Pattern pattern, bool toLowerCase, CharArraySet stopWords)
+        public PatternAnalyzer(LuceneVersion matchVersion, Pattern pattern, bool toLowerCase, CharArraySet stopWords)
         {
             if (pattern == null)
             {

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/PrefixAwareTokenFilter.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/PrefixAwareTokenFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/PrefixAwareTokenFilter.cs
index 13fd361..24966ad 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/PrefixAwareTokenFilter.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/PrefixAwareTokenFilter.cs
@@ -1,5 +1,7 @@
 using Lucene.Net.Analysis.Tokenattributes;
 using Lucene.Net.Util;
+using Reader = System.IO.TextReader;
+using Version = Lucene.Net.Util.LuceneVersion;
 
 namespace Lucene.Net.Analysis.Miscellaneous
 {
@@ -134,10 +136,10 @@ namespace Lucene.Net.Analysis.Miscellaneous
             {
                 return null;
             }
-            token.copyBuffer(p_termAtt.buffer(), 0, p_termAtt.length());
+            token.CopyBuffer(p_termAtt.buffer(), 0, p_termAtt.length());
             token.PositionIncrement = p_posIncrAtt.PositionIncrement;
             token.Flags = p_flagsAtt.Flags;
-            token.setOffset(p_offsetAtt.startOffset(), p_offsetAtt.endOffset());
+            token.SetOffset(p_offsetAtt.startOffset(), p_offsetAtt.endOffset());
             token.Type = p_typeAtt.type();
             token.Payload = p_payloadAtt.Payload;
             return token;

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/RemoveDuplicatesTokenFilter.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/RemoveDuplicatesTokenFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/RemoveDuplicatesTokenFilter.cs
index b4a5c90..b7a92fd 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/RemoveDuplicatesTokenFilter.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/RemoveDuplicatesTokenFilter.cs
@@ -18,7 +18,7 @@
 using System;
 using Lucene.Net.Analysis.Tokenattributes;
 using Lucene.Net.Analysis.Util;
-using Version = Lucene.Net.Util.Version;
+using Lucene.Net.Util;
 
 namespace Lucene.Net.Analysis.Miscellaneous
 {
@@ -32,7 +32,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
         private readonly PositionIncrementAttribute posIncAttribute = addAttribute(typeof(PositionIncrementAttribute));
 
         // use a fixed version, as we don't care about case sensitivity.
-        private readonly CharArraySet previous = new CharArraySet(Version.LUCENE_31, 8, false);
+        private readonly CharArraySet previous = new CharArraySet(LuceneVersion.LUCENE_31, 8, false);
 
         /// <summary>
         /// Creates a new RemoveDuplicatesTokenFilter

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/WordDelimiterFilterFactory.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/WordDelimiterFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/WordDelimiterFilterFactory.cs
index d13a3c0..8b8e637 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/WordDelimiterFilterFactory.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Miscellaneous/WordDelimiterFilterFactory.cs
@@ -4,7 +4,6 @@ using Lucene.Net.Analysis.Util;
 using Lucene.Net.Support;
 using Lucene.Net.Util;
 using org.apache.lucene.analysis.miscellaneous;
-using Version = Lucene.Net.Util.Version;
 
 namespace Lucene.Net.Analysis.Miscellaneous
 {
@@ -125,7 +124,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
 
 	  public override TokenFilter Create(TokenStream input)
 	  {
-		if (luceneMatchVersion.OnOrAfter(Version.LUCENE_48))
+		if (luceneMatchVersion.OnOrAfter(LuceneVersion.LUCENE_48))
 		{
 		  return new WordDelimiterFilter(luceneMatchVersion, input, typeTable == null ? WordDelimiterIterator.DEFAULT_WORD_DELIM_TABLE : typeTable, flags, protectedWords);
 		}

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/f77e83ec/src/Lucene.Net.Analysis.Common/Analysis/Ngram/EdgeNGramTokenFilter.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Ngram/EdgeNGramTokenFilter.cs b/src/Lucene.Net.Analysis.Common/Analysis/Ngram/EdgeNGramTokenFilter.cs
index 5c1d0bb..aa7c57c 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Ngram/EdgeNGramTokenFilter.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Ngram/EdgeNGramTokenFilter.cs
@@ -4,7 +4,6 @@ using Lucene.Net.Analysis.Util;
 using Lucene.Net.Util;
 using org.apache.lucene.analysis.reverse;
 using org.apache.lucene.analysis.util;
-using Version = Lucene.Net.Util.Version;
 
 namespace Lucene.Net.Analysis.Ngram
 {
@@ -72,7 +71,7 @@ namespace Lucene.Net.Analysis.Ngram
 		  return null;
 		}
 
-	  private readonly Version version;
+	  private readonly LuceneVersion version;
 	  private readonly CharacterUtils charUtils;
 	  private readonly int minGram;
 	  private readonly int maxGram;
@@ -101,7 +100,7 @@ namespace Lucene.Net.Analysis.Ngram
 	  /// <param name="minGram"> the smallest n-gram to generate </param>
 	  /// <param name="maxGram"> the largest n-gram to generate </param>
 	  [Obsolete]
-	  public EdgeNGramTokenFilter(Version version, TokenStream input, Side side, int minGram, int maxGram) : base(input)
+	  public EdgeNGramTokenFilter(LuceneVersion version, TokenStream input, Side side, int minGram, int maxGram) : base(input)
 	  {
 
 		if (version == null)
@@ -109,7 +108,7 @@ namespace Lucene.Net.Analysis.Ngram
 		  throw new System.ArgumentException("version must not be null");
 		}
 
-		if (version.OnOrAfter(Version.LUCENE_44) && side == Side.BACK)
+		if (version.OnOrAfter(LuceneVersion.LUCENE_44) && side == Side.BACK)
 		{
 		  throw new System.ArgumentException("Side.BACK is not supported anymore as of Lucene 4.4, use ReverseStringFilter up-front and afterward");
 		}
@@ -130,7 +129,7 @@ namespace Lucene.Net.Analysis.Ngram
 		}
 
 		this.version = version;
-		this.charUtils = version.onOrAfter(Version.LUCENE_44) ? CharacterUtils.getInstance(version) : CharacterUtils.Java4Instance;
+		this.charUtils = version.onOrAfter(LuceneVersion.LUCENE_44) ? CharacterUtils.getInstance(version) : CharacterUtils.Java4Instance;
 		this.minGram = minGram;
 		this.maxGram = maxGram;
 		this.side = side;
@@ -145,7 +144,7 @@ namespace Lucene.Net.Analysis.Ngram
 	  /// <param name="minGram"> the smallest n-gram to generate </param>
 	  /// <param name="maxGram"> the largest n-gram to generate </param>
 	  [Obsolete]
-	  public EdgeNGramTokenFilter(Version version, TokenStream input, string sideLabel, int minGram, int maxGram) : this(version, input, Side.getSide(sideLabel), minGram, maxGram)
+	  public EdgeNGramTokenFilter(LuceneVersion version, TokenStream input, string sideLabel, int minGram, int maxGram) : this(version, input, Side.getSide(sideLabel), minGram, maxGram)
 	  {
 	  }
 
@@ -156,7 +155,7 @@ namespace Lucene.Net.Analysis.Ngram
 	  /// <param name="input"> <seealso cref="TokenStream"/> holding the input to be tokenized </param>
 	  /// <param name="minGram"> the smallest n-gram to generate </param>
 	  /// <param name="maxGram"> the largest n-gram to generate </param>
-	  public EdgeNGramTokenFilter(Version version, TokenStream input, int minGram, int maxGram) : this(version, input, Side.FRONT, minGram, maxGram)
+	  public EdgeNGramTokenFilter(LuceneVersion version, TokenStream input, int minGram, int maxGram) : this(version, input, Side.FRONT, minGram, maxGram)
 	  {
 	  }
 
@@ -178,7 +177,7 @@ namespace Lucene.Net.Analysis.Ngram
 			  curGramSize = minGram;
 			  tokStart = offsetAtt.StartOffset();
 			  tokEnd = offsetAtt.EndOffset();
-			  if (version.OnOrAfter(Version.LUCENE_44))
+			  if (version.OnOrAfter(LuceneVersion.LUCENE_44))
 			  {
 				// Never update offsets
 				updateOffsets = false;