1 /*global $k*/
  2 
  3 /**
  4  * @namespace Global object registry API for accessing objects by internal name / ID
  5 **/
  6 $k.Registry = {
  7 	/**
  8 	 * Returns the semantic element with an attribute with the specified value, or undefined if there is either no such attribute or more than one
  9 	 *
 10 	 * @function
 11 	 * @param {string} internalName The internal name of the attribute
 12 	 * @param {string} value The value to search for
 13 	 * @param {string} [language] Language of the value. If not defined, the current language will be used.
 14 	 * Ignored if the attribute is not translated
 15 	 * @returns {$k.SemanticElement}
 16 	 * @throws {$k.exception.InvalidValue} If the value is not in the range of allowed values of the attribute
 17 	**/
 18 	elementAtValue: function(internalName, value, language) { },
 19 
 20 	/**
 21 	 * Get the semantic element with the element ID
 22 	 *
 23 	 * @function
 24 	 * @param {string} id
 25 	 * @returns {$k.SemanticElement}
 26 	 * @throws {$k.exception.ObjectNotFound} If no element with the ID exists
 27 	 * @throws {$k.exception.InvalidValue} If the ID is not valid
 28 	 * @see $k.SemanticElement#idNumber
 29 	 * @see $k.SemanticElement#idString
 30 	**/
 31 	elementWithID: function(id) { },
 32 
 33 	/**
 34 	 * Get the registered folder
 35 	 *
 36 	 * @function
 37 	 * @param {string} folderID Registered ID
 38 	 * @returns {$k.Folder}
 39 	 * @throws {$k.exception.ObjectNotFound} If no folder with the ID exists
 40 	**/
 41 	folder: function(folderID) { },
 42 
 43 	/**
 44 	 * Get the registered query
 45 	 *
 46 	 * @function
 47 	 * @param {string} queryID Registered ID
 48 	 * @returns {$k.Query}
 49 	 * @throws {$k.exception.ObjectNotFound} If no expert query with the ID exists
 50 	**/
 51 	query: function(queryID) { },
 52 
 53 	/**
 54 	 * Returns all registered folders
 55 	 *
 56 	 * @function
 57 	 * @returns {$k.Folder[]}
 58 	**/
 59 	registeredFolders: function() { },
 60 
 61 	/**
 62 	 * Get the registered folder element with the ID from the registry
 63 	 *
 64 	 * @function
 65 	 * @deprecated Use specific registry accessors, like <code>query()</code> or <code>folder()</code>
 66 	 * @param {string} registryType Name of the registry. Corresponds to the value returned by registryType()
 67 	 * @param {string} objectID
 68 	 * @returns {object}
 69 	 * @throws {$k.exception.ObjectNotFound} If no object with the ID exists
 70 	 * @see $k.FolderElement#registryType
 71 	**/
 72 	registeredObject: function(registryType, objectID) { },
 73 
 74 	/**
 75 	 * Returns all registered queries
 76 	 *
 77 	 * @function
 78 	 * @returns {$k.Query[]}
 79 	**/
 80 	registeredQueries: function() { },
 81 
 82 	/**
 83 	 * Returns all registered semantic collections
 84 	 *
 85 	 * @function
 86 	 * @returns {$k.SemanticCollection[]}
 87 	**/
 88 	registeredSemanticCollections: function() { },
 89 
 90 	/**
 91 	 * Get the registered semantic collection
 92 	 *
 93 	 * @function
 94 	 * @param {string} collectionID Registered ID
 95 	 * @returns {$k.SemanticCollection}
 96 	 * @throws {$k.exception.ObjectNotFound} If no topic collection  with the ID exists
 97 	**/
 98 	semanticCollection: function(collectionID) { },
 99 
100 	/**
101 	 * Gets the type with the internal name
102 	 *
103 	 * @function
104 	 * @param {string} type The internal name of the type
105 	 * @returns {$k.Type} The type identified by the internal name
106 	 * @throws {$k.exception.ObjectNotFound} If no such type exists
107 	**/
108 	type: function(type) { }
109 };