public  override bool Equals(System.Object o)
		{
			if (!(o is FieldMaskingSpanQuery))
				return false;
			FieldMaskingSpanQuery other = (FieldMaskingSpanQuery) o;
			return (this.Field.Equals(other.Field) && (this.Boost == other.Boost) && this.MaskedQuery.Equals(other.MaskedQuery));
		}
		public override Query Rewrite(IndexReader reader)
		{
			FieldMaskingSpanQuery clone = null;
			
			SpanQuery rewritten = (SpanQuery) maskedQuery.Rewrite(reader);
			if (rewritten != maskedQuery)
			{
				clone = (FieldMaskingSpanQuery) this.Clone();
				clone.maskedQuery = rewritten;
			}
			
			if (clone != null)
			{
				return clone;
			}
			else
			{
				return this;
			}
		}