Lucene.Net  3.0.3
Lucene.Net is a port of the Lucene search engine library, written in C# and targeted at .NET runtime users.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Properties Pages
ComplexExplanation.cs
Go to the documentation of this file.
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 using System;
19 
20 namespace Lucene.Net.Search
21 {
22 
23  /// <summary>Expert: Describes the score computation for document and query, and
24  /// can distinguish a match independent of a positive value.
25  /// </summary>
26  [Serializable]
28  {
29  private System.Boolean? match;
30 
31  public ComplexExplanation():base()
32  {
33  }
34 
35  public ComplexExplanation(bool match, float value_Renamed, System.String description):base(value_Renamed, description)
36  {
37  this.match = match;
38  }
39 
40  /// <summary> The match status of this explanation node.</summary>
41  /// <value> May be null if match status is unknown
42  /// </value>
43  public virtual bool? Match
44  {
45  get { return match; }
46  set { match = value; }
47  }
48 
49  /// <summary> Indicates whether or not this Explanation models a good match.
50  ///
51  /// <p/>
52  /// If the match status is explicitly set (i.e.: not null) this method
53  /// uses it; otherwise it defers to the superclass.
54  /// <p/>
55  /// </summary>
56  public override bool IsMatch
57  {
58  get
59  {
60  System.Boolean? m = Match;
61  return m ?? base.IsMatch;
62  }
63  }
64 
65  protected internal override string Summary
66  {
67  get
68  {
69  if (!match.HasValue)
70  return base.Summary;
71 
72  return Value + " = " + (IsMatch ? "(MATCH) " : "(NON-MATCH) ") + Description;
73  }
74  }
75  }
76 }