You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by di...@apache.org on 2011/05/19 00:15:43 UTC

[Lucene.Net] svn commit: r1124451 - /incubator/lucene.net/branches/Lucene.Net_2_9_4g/src/core/Index/SegmentMerger.cs

Author: digy
Date: Wed May 18 22:15:43 2011
New Revision: 1124451

URL: http://svn.apache.org/viewvc?rev=1124451&view=rev
Log:
[LUCENENET-412]

Modified:
    incubator/lucene.net/branches/Lucene.Net_2_9_4g/src/core/Index/SegmentMerger.cs

Modified: incubator/lucene.net/branches/Lucene.Net_2_9_4g/src/core/Index/SegmentMerger.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/branches/Lucene.Net_2_9_4g/src/core/Index/SegmentMerger.cs?rev=1124451&r1=1124450&r2=1124451&view=diff
==============================================================================
--- incubator/lucene.net/branches/Lucene.Net_2_9_4g/src/core/Index/SegmentMerger.cs (original)
+++ incubator/lucene.net/branches/Lucene.Net_2_9_4g/src/core/Index/SegmentMerger.cs Wed May 18 22:15:43 2011
@@ -44,79 +44,15 @@ namespace Lucene.Net.Index
 	/// </seealso>
 	public sealed class SegmentMerger
 	{
-		private class AnonymousClassCheckAbort:CheckAbort
-		{
-			private void  InitBlock(SegmentMerger enclosingInstance)
-			{
-				this.enclosingInstance = enclosingInstance;
-			}
-			private SegmentMerger enclosingInstance;
-			public SegmentMerger Enclosing_Instance
-			{
-				get
-				{
-					return enclosingInstance;
-				}
-				
-			}
-			internal AnonymousClassCheckAbort(SegmentMerger enclosingInstance, Lucene.Net.Index.MergePolicy.OneMerge Param1, Lucene.Net.Store.Directory Param2):base(Param1, Param2)
-			{
-				InitBlock(enclosingInstance);
-			}
-			public override void  Work(double units)
-			{
-				// do nothing
-			}
-		}
-		private class AnonymousClassCheckAbort1:CheckAbort
-		{
-			private void  InitBlock(SegmentMerger enclosingInstance)
-			{
-				this.enclosingInstance = enclosingInstance;
-			}
-			private SegmentMerger enclosingInstance;
-			public SegmentMerger Enclosing_Instance
-			{
-				get
-				{
-					return enclosingInstance;
-				}
-				
-			}
-			internal AnonymousClassCheckAbort1(SegmentMerger enclosingInstance, Lucene.Net.Index.MergePolicy.OneMerge Param1, Lucene.Net.Store.Directory Param2):base(Param1, Param2)
-			{
-				InitBlock(enclosingInstance);
-			}
-			public override void  Work(double units)
-			{
-				// do nothing
-			}
-		}
 		[Serializable]
 		private class AnonymousClassFieldSelector : FieldSelector
 		{
-			public AnonymousClassFieldSelector(SegmentMerger enclosingInstance)
-			{
-				InitBlock(enclosingInstance);
-			}
-			private void  InitBlock(SegmentMerger enclosingInstance)
-			{
-				this.enclosingInstance = enclosingInstance;
-			}
-			private SegmentMerger enclosingInstance;
-			public SegmentMerger Enclosing_Instance
-			{
-				get
-				{
-					return enclosingInstance;
-				}
-				
-			}
 			public FieldSelectorResult Accept(System.String fieldName)
 			{
 				return FieldSelectorResult.LOAD_FOR_MERGE;
 			}
 		}
+
 		private void  InitBlock()
 		{
 			termIndexInterval = IndexWriter.DEFAULT_TERM_INDEX_INTERVAL;
@@ -159,7 +95,7 @@ namespace Lucene.Net.Index
 			InitBlock();
 			directory = dir;
 			segment = name;
-			checkAbort = new AnonymousClassCheckAbort(this, null, null);
+            checkAbort = new CheckAbort(null, null, (d) => {/*Do nothing*/  });
 		}
 		
 		internal SegmentMerger(IndexWriter writer, System.String name, MergePolicy.OneMerge merge)
@@ -173,7 +109,7 @@ namespace Lucene.Net.Index
 			}
 			else
 			{
-				checkAbort = new AnonymousClassCheckAbort1(this, null, null);
+                checkAbort = new CheckAbort(null, null, (d) => {/*Do nothing*/ });
 			}
 			termIndexInterval = writer.GetTermIndexInterval();
 		}
@@ -422,7 +358,7 @@ namespace Lucene.Net.Index
 				
 				// for merging we don't want to compress/uncompress the data, so to tell the FieldsReader that we're
 				// in  merge mode, we use this FieldSelector
-				FieldSelector fieldSelectorMerge = new AnonymousClassFieldSelector(this);
+				FieldSelector fieldSelectorMerge = new AnonymousClassFieldSelector();
 				
 				// merge field values
 				FieldsWriter fieldsWriter = new FieldsWriter(directory, segment, fieldInfos);
@@ -941,11 +877,23 @@ namespace Lucene.Net.Index
 			private double workCount;
 			private MergePolicy.OneMerge merge;
 			private Directory dir;
+
+            public Action<double> Work; //.NET
+
 			public CheckAbort(MergePolicy.OneMerge merge, Directory dir)
 			{
 				this.merge = merge;
 				this.dir = dir;
+                this.Work = Internal_Work;
 			}
+
+            //.NET
+            public CheckAbort(MergePolicy.OneMerge merge, Directory dir, Action<double> work)
+            {
+                this.merge = merge;
+                this.dir = dir;
+                this.Work = work;
+            }
 			
 			/// <summary> Records the fact that roughly units amount of work
 			/// have been done since this method was last called.
@@ -954,7 +902,9 @@ namespace Lucene.Net.Index
 			/// that the time in between calls to merge.checkAborted
 			/// is up to ~ 1 second.
 			/// </summary>
-			public virtual void  Work(double units)
+            /// DIGY: Clean AnonymousXXXX classes.
+            /// DIGY: Method "Work" is renamed to Internal_Work(below) & the new "Work" is declared as delegate
+			void  Internal_Work(double units)
 			{
 				workCount += units;
 				if (workCount >= 10000.0)