1 /*global $k*/
  2 
  3 /**
  4  * Creates a new cause
  5  *
  6  * @param {number} [quality] Quality of the cause
  7  * @param {object} [causeProperties] Properties of the cause
  8  * @throws {$k.exception.InvalidValue} If the quality is not between 0 and 1
  9  *
 10  * @class Provides additional details about a hit returned by a query
 11 **/
 12 $k.Cause = function(quality, properties) { };
 13 
 14 /**
 15  * Returns the value of the named property, or undefined if the property does not exist
 16  *
 17  * @function
 18  * @param {string} name
 19  * @throws {$k.exception.TypeError} If the name is not a string
 20  * @throws {$k.exception.InvalidValue} If the value of the property cannot be converted to an object
 21 **/
 22 $k.Cause.prototype.property = function(name) { };
 23 
 24 /**
 25  * Returns the quality of the cause, a number between 0 (worst quality) and 1 (best quality)
 26  *
 27  * @function
 28  * @returns {number}
 29 **/
 30 $k.Cause.prototype.quality = function() { };
 31 
 32 /**
 33  * Set the properties of the cause
 34  *
 35  * @function
 36  * @param {object} properties
 37  * @throws {$k.exception.InvalidValue} If the value is not a valid property value
 38 **/
 39 $k.Cause.prototype.setProperties = function(properties) { };
 40 
 41 /**
 42  * Set the value of the named property
 43  *
 44  * @function
 45  * @param {string} name
 46  * @param value
 47  * @throws {$k.exception.TypeError} If the name is not a string
 48  * @throws {$k.exception.InvalidValue} If the value is not a valid property value
 49 **/
 50 $k.Cause.prototype.setProperty = function(name, value) { };
 51 
 52 /**
 53  * Set the quality, a number between 0 and 1
 54  *
 55  * @function
 56  * @param {number} quality
 57  * @throws {$k.exception.InvalidValue} If the quality is not between 0 and 1
 58 **/
 59 $k.Cause.prototype.setQuality = function(quality) { };
 60 
 61 /**
 62  * Set the type
 63  *
 64  * @function
 65  * @param {string} type
 66  * @throws {RangeError} If this is a system-defined cause
 67 **/
 68 $k.Cause.prototype.setType = function(type) { };
 69 
 70 /**
 71  * Returns the type of the cause, e.g. 'semantic'
 72  *
 73  * @function
 74  * @returns {string}
 75 **/
 76 $k.Cause.prototype.type = function() { };
 77 
 78