1 /*global $k*/
  2 
  3 /**
  4  * @class Represents a type of properties
  5  * @extends $k.Type
  6 **/
  7 $k.PropertyType = function() { };
  8 
  9 /**
 10  * Returns true if multiple occurrences per semantic element are possible
 11  *
 12  * @function
 13  * @returns {boolean}
 14 **/
 15 $k.PropertyType.prototype.allowsMultipleOccurrences = function() { };
 16 
 17 /**
 18  * Returns the defined domains of the property.
 19  *
 20  * @function
 21  * @returns {$k.Domain[]}
 22 **/
 23 $k.PropertyType.prototype.definedDomains = function() { };
 24 
 25 /**
 26  * Returns the effective domains of the property.
 27  * <ul>
 28  * <li>If the property is defined as mixin, extended domains are substituted by all possible extensions.</li>
 29  * <li>Domains that are sub-domains of other domains are discarded.</li>
 30  * <li>If the domain is a relation, and symmetric properties are enabled, all possible inverse relations are also included.</li>
 31  * </ul>
 32  *
 33  * @function
 34  * @returns {$k.Domain[]}
 35 **/
 36 $k.PropertyType.prototype.domains = function() { };
 37 
 38