/* * Copyright 2004 The Apache Software Foundation * * Licensed 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. */ using System; namespace Lucene.Net.Search { /// A clause in a BooleanQuery. [Serializable] public class BooleanClause { /// The query whose matching documents are combined by the boolean query. public Query query; /// If true, documents documents which do not /// match this sub-query will not match the boolean query. /// public bool required = false; /// If true, documents documents which do /// match this sub-query will not match the boolean query. /// public bool prohibited = false; /// Constructs a BooleanClause with query q, required /// r and prohibited p. /// public BooleanClause(Query q, bool r, bool p) { query = q; required = r; prohibited = p; } /// Returns true iff o is equal to this. public override bool Equals(System.Object o) { if (!(o is BooleanClause)) return false; BooleanClause other = (BooleanClause) o; return this.query.Equals(other.query) && (this.required == other.required) && (this.prohibited == other.prohibited); } /// Returns a hash code value for this object. public override int GetHashCode() { return query.GetHashCode() ^ (this.required?1:0) ^ (this.prohibited?2:0); } } }