コード例 #1
0
        public override Query Rewrite(IndexReader reader)
        {
            SpanOrQuery clone = null;

            for (int i = 0; i < clauses.Count; i++)
            {
                SpanQuery c     = (SpanQuery)clauses[i];
                SpanQuery query = (SpanQuery)c.Rewrite(reader);
                if (query != c)
                {
                    // clause rewrote: must clone
                    if (clone == null)
                    {
                        clone = (SpanOrQuery)this.Clone();
                    }
                    clone.clauses[i] = query;
                }
            }
            if (clone != null)
            {
                return(clone);                // some clauses rewrote
            }
            else
            {
                return(this);                // no clauses rewrote
            }
        }
コード例 #2
0
        public override System.Object Clone()
        {
            int sz = clauses.Count;

            SpanQuery[] newClauses = new SpanQuery[sz];

            for (int i = 0; i < sz; i++)
            {
                SpanQuery clause = (SpanQuery)clauses[i];
                newClauses[i] = (SpanQuery)clause.Clone();
            }
            SpanOrQuery soq = new SpanOrQuery(newClauses);

            soq.SetBoost(GetBoost());
            return(soq);
        }
コード例 #3
0
        public override bool Equals(System.Object o)
        {
            if (this == o)
            {
                return(true);
            }
            if (o == null || GetType() != o.GetType())
            {
                return(false);
            }

            SpanOrQuery that = (SpanOrQuery)o;

            if (!clauses.Equals(that.clauses))
            {
                return(false);
            }
            if (!(clauses.Count == 0) && !field.Equals(that.field))
            {
                return(false);
            }

            return(GetBoost() == that.GetBoost());
        }
コード例 #4
0
ファイル: SpanOrQuery.cs プロジェクト: carrie901/mono
			private void  InitBlock(Mono.Lucene.Net.Index.IndexReader reader, SpanOrQuery enclosingInstance)
			{
				this.reader = reader;
				this.enclosingInstance = enclosingInstance;
			}
コード例 #5
0
ファイル: SpanOrQuery.cs プロジェクト: carrie901/mono
			public AnonymousClassSpans(Mono.Lucene.Net.Index.IndexReader reader, SpanOrQuery enclosingInstance)
			{
				InitBlock(reader, enclosingInstance);
			}
コード例 #6
0
ファイル: SpanOrQuery.cs プロジェクト: carrie901/mono
			public SpanQueue(SpanOrQuery enclosingInstance, int size)
			{
				InitBlock(enclosingInstance);
				Initialize(size);
			}
コード例 #7
0
ファイル: SpanOrQuery.cs プロジェクト: carrie901/mono
			private void  InitBlock(SpanOrQuery enclosingInstance)
			{
				this.enclosingInstance = enclosingInstance;
			}
コード例 #8
0
ファイル: SpanOrQuery.cs プロジェクト: carrie901/mono
		public override System.Object Clone()
		{
			int sz = clauses.Count;
			SpanQuery[] newClauses = new SpanQuery[sz];
			
			for (int i = 0; i < sz; i++)
			{
				SpanQuery clause = (SpanQuery) clauses[i];
				newClauses[i] = (SpanQuery) clause.Clone();
			}
			SpanOrQuery soq = new SpanOrQuery(newClauses);
			soq.SetBoost(GetBoost());
			return soq;
		}
コード例 #9
0
 private void  InitBlock(Mono.Lucene.Net.Index.IndexReader reader, SpanOrQuery enclosingInstance)
 {
     this.reader            = reader;
     this.enclosingInstance = enclosingInstance;
 }
コード例 #10
0
 public SpanQueue(SpanOrQuery enclosingInstance, int size)
 {
     InitBlock(enclosingInstance);
     Initialize(size);
 }
コード例 #11
0
 private void  InitBlock(SpanOrQuery enclosingInstance)
 {
     this.enclosingInstance = enclosingInstance;
 }
コード例 #12
0
 public AnonymousClassSpans(Mono.Lucene.Net.Index.IndexReader reader, SpanOrQuery enclosingInstance)
 {
     InitBlock(reader, enclosingInstance);
 }