1 /*global $k*/
  2 
  3 /**
  4  * Creates a new hit
  5  *
  6  * @param {$k.SemanticElement} semanticElement Semantic element of the hit
  7  * @param {number} quality Quality of the hit. If undefined, 1 will be set as quality
  8  * @throws {$k.exception.InvalidValue} If the quality is not between 0 and 1
  9  * @throws {$k.exception.TypeError} If the argument is not a semantic element
 10  *
 11  * @class Provides details about a topic returned by a query.
 12  * Each hit has a quality between 0 (worst quality) and 1 (best quality).
 13  * Additional details are attached as causes.
 14 **/
 15 $k.Hit = function(semanticElement, quality) { };
 16 
 17 /**
 18  * Add a cause
 19  *
 20  * @function
 21  * @param {$k.Cause} cause
 22 **/
 23 $k.Hit.prototype.addCause = function(cause) { };
 24 
 25 /**
 26  * Returns the cause of this hit with the given type, or undefined if no or more than one cause exists
 27  *
 28  * @function
 29  * @returns {$k.Cause[]}
 30 **/
 31 $k.Hit.prototype.causeOfType = function(type) { };
 32 
 33 /**
 34  * Returns the causes of this hit
 35  *
 36  * @function
 37  * @returns {$k.Cause[]}
 38 **/
 39 $k.Hit.prototype.causes = function() { };
 40 
 41 /**
 42  * Returns the causes of this hit with the given type
 43  *
 44  * @function
 45  * @returns {$k.Cause[]}
 46 **/
 47 $k.Hit.prototype.causesOfType = function(type) { };
 48 
 49 /**
 50  * The semantic element associated with this hit
 51  *
 52  * @function
 53  * @returns {$k.SemanticElement}
 54 **/
 55 $k.Hit.prototype.element = function() { };
 56 
 57 /**
 58  * Returns the quality of the hit, a number between 0 (worst quality) and 1 (best quality)
 59  *
 60  * @function
 61  * @returns {number}
 62 **/
 63 $k.Hit.prototype.quality = function() { };
 64 
 65 /**
 66  * Set the semantic element associated with this hit
 67  *
 68  * @function
 69  * @param {$k.SemanticElement} semanticElement Semantic element of the hit
 70  * @throws {$k.exception.TypeError} If the argument is not a semantic element
 71 **/
 72 $k.Hit.prototype.setElement = function(semanticElement) { };
 73 
 74 /**
 75  * Set the quality, a number between 0 and 1
 76  *
 77  * @function
 78  * @param {number} quality
 79  * @throws {$k.exception.InvalidValue} If the quality is not between 0 and 1
 80 **/
 81 $k.Hit.prototype.setQuality = function(quality) { };
 82 
 83