src/sap.ui.documentation/src/sap/ui/documentation/sdk/controller/ApiDetail.controller.js
function (aData) {
				var oEntityData,
					oMasterController,
					sTopicId = this._sTopicid;

				// Cache api-index data
				this._aApiIndex = aData;

				// Find symbol
				function findSymbol (a) {
					return a.some(function (o) {
						var bFound = o.name === sTopicId;
						if (!bFound && o.nodes) {
							return findSymbol(o.nodes);
						} else if (bFound) {
							oEntityData = o;
							return true;
						}
						return false;
					});
				}
				findSymbol(aData);

				if (oEntityData) {
					// Cache entity data
					this._oEntityData = oEntityData;

					// If target symbol is deprecated - all deprecated records should be shown in the tree
					if (oEntityData.deprecated) {
						oMasterController = this.getOwnerComponent().getConfigUtil().getMasterView("apiId").getController();
						oMasterController.selectDeprecatedSymbol(this._sTopicid);
					}

					// Load API.json only for selected lib
					return APIInfo.getLibraryElementsJSONPromise(oEntityData.lib).then(function (aData) {
						return Promise.resolve(aData); // We have found the symbol and loaded the corresponding api.json
					});
				}

				// If we are here - the object does not exist so we reject the promise.
				return Promise.reject(this.NOT_FOUND);
			}
function (aData) {
				var oEntityData,
					oMasterController,
					sTopicId = this._sTopicid;

				// Cache api-index data
				this._aApiIndex = aData;

				// Find symbol
				function findSymbol (a) {
					return a.some(function (o) {
						var bFound = o.name === sTopicId;
						if (!bFound && o.nodes) {
							return findSymbol(o.nodes);
						} else if (bFound) {
							oEntityData = o;
							return true;
						}
						return false;
					});
				}
				findSymbol(aData);

				if (oEntityData) {
					// Cache entity data
					this._oEntityData = oEntityData;

					// If target symbol is deprecated - all deprecated records should be shown in the tree
					if (oEntityData.deprecated) {
						oMasterController = this.getOwnerComponent().getConfigUtil().getMasterView("apiId").getController();
						oMasterController.selectDeprecatedSymbol(this._sTopicid);
					}

					// Load API.json only for selected lib
					return APIInfo.getLibraryElementsJSONPromise(oEntityData.lib).then(function (aData) {
						return Promise.resolve(aData); // We have found the symbol and loaded the corresponding api.json
					});
				}

				// If we are here - the object does not exist so we reject the promise.
				return Promise.reject(this.NOT_FOUND);
			}
function ( aData ) { var oEntityData , oMasterController , sTopicId = this . _sTopicid ; // Cache api-index data this . _aApiIndex = aData ; // Find symbol function findSymbol ( a ) { return a . some ( function ( o ) { var bFound = o . name === sTopicId ; if ( ! bFound && o . nodes ) { return findSymbol ( o . nodes ) ; } else if ( bFound ) { oEntityData = o ; return true ; } return false ; } ) ; } findSymbol ( aData ) ; if ( oEntityData ) { // Cache entity data this . _oEntityData = oEntityData ; // If target symbol is deprecated - all deprecated records should be shown in the tree if ( oEntityData . deprecated ) { oMasterController = this . getOwnerComponent ( ) . getConfigUtil ( ) . getMasterView ( "apiId" ) . getController ( ) ; oMasterController . selectDeprecatedSymbol ( this . _sTopicid ) ; } // Load API.json only for selected lib return APIInfo . getLibraryElementsJSONPromise ( oEntityData . lib ) . then ( function ( aData ) { return Promise . resolve ( aData ) ; // We have found the symbol and loaded the corresponding api.json } ) ; } // If we are here - the object does not exist so we reject the promise. return Promise . reject ( this . NOT_FOUND ) ; }
Process data from api-index file and if symbol is found load the corresponding api.json file for the
symbol library. If the symbol is not resolved this method returns a rejected promise which triggers
navigation to not found page.
@param {array} aData data from api-index file
@return {Promise} resolved or rejected promise
@private
Process data from api - index file and if symbol is found load the corresponding api . json file for the symbol library . If the symbol is not resolved this method returns a rejected promise which triggers navigation to not found page .