function fnGetExtensionController(bAsync, sControllerName) {
				if (bAsync) {
					return loadControllerClass(sControllerName, true).then(function(oExtControllerDef) {
						// loadControllerClass resolves with the base sap/ui/core/mvc/Controller class,
						// in case 'sControllerName' is not a module but was defined with sap.ui.controller("...", {})
						oExtControllerDef = mRegistry[sControllerName] || oExtControllerDef;
						if (oExtControllerDef !== undefined) {
							if (oExtControllerDef.getMetadata && oExtControllerDef.getMetadata().isA("sap.ui.core.mvc.Controller")) {
								Log.warning("Attempt to load Extension Controller " + sControllerName + " was not successful", "Controller extension should be a plain object.", null, function() {
									return {
										type: "ControllerExtension",
										name: sControllerName
									};
								});
							}
							return oExtControllerDef;
						}

					}, function(err) {
						Log.error("Attempt to load Extension Controller " + sControllerName + " was not successful - is the Controller correctly defined in its file?");
					});
				} else {
					// sync load Controller extension if necessary
					if (!mRegistry[sControllerName] && !sap.ui.require(sControllerName)) {
						loadControllerClass(sControllerName);
					}

					// retrieve legacy controller from registry
					if (mRegistry[sControllerName] !== undefined) {
						return mRegistry[sControllerName];
					} else {
						/* eslint-disable no-loop-func */
						Log.error("Attempt to load Extension Controller " + sControllerName + " was not successful - is the Controller correctly defined in its file?", null, function() {
							return {
								type: "ControllerExtension",
								name: sControllerName
							};
						});
						/* eslint-enable no-loop-func */
						return {};
					}
				}
			}
/**
			 * Retrieves the controller-extension with the given name
			 * @param {boolean} bAsync whether to retrieve the controller extension async or sync
			 * @param {string} sControllerName the extension controller class name
			 */
Retrieves the controller-extension with the given name
@param {boolean} bAsync whether to retrieve the controller extension async or sync
@param {string} sControllerName the extension controller class name
Retrieves the controller - extension with the given name @param { boolean } bAsync whether to retrieve the controller extension async or sync @param { string } sControllerName the extension controller class name
function fnGetExtensionController(bAsync, sControllerName) {
				if (bAsync) {
					return loadControllerClass(sControllerName, true).then(function(oExtControllerDef) {
						oExtControllerDef = mRegistry[sControllerName] || oExtControllerDef;
						if (oExtControllerDef !== undefined) {
							if (oExtControllerDef.getMetadata && oExtControllerDef.getMetadata().isA("sap.ui.core.mvc.Controller")) {
								Log.warning("Attempt to load Extension Controller " + sControllerName + " was not successful", "Controller extension should be a plain object.", null, function() {
									return {
										type: "ControllerExtension",
										name: sControllerName
									};
								});
							}
							return oExtControllerDef;
						}
					}, function(err) {
						Log.error("Attempt to load Extension Controller " + sControllerName + " was not successful - is the Controller correctly defined in its file?");
					});
				} else {
					if (!mRegistry[sControllerName] && !sap.ui.require(sControllerName)) {
						loadControllerClass(sControllerName);
					}
					if (mRegistry[sControllerName] !== undefined) {
						return mRegistry[sControllerName];
					} else {
						Log.error("Attempt to load Extension Controller " + sControllerName + " was not successful - is the Controller correctly defined in its file?", null, function() {
							return {
								type: "ControllerExtension",
								name: sControllerName
							};
						});
						return {};
					}
				}
			}
function fnGetExtensionController ( bAsync , sControllerName ) { if ( bAsync ) { return loadControllerClass ( sControllerName , true ) . then ( function ( oExtControllerDef ) { oExtControllerDef = mRegistry [ sControllerName ] || oExtControllerDef ; if ( oExtControllerDef !== undefined ) { if ( oExtControllerDef . getMetadata && oExtControllerDef . getMetadata ( ) . isA ( "sap.ui.core.mvc.Controller" ) ) { Log . warning ( "Attempt to load Extension Controller " + sControllerName + " was not successful" , "Controller extension should be a plain object." , null , function ( ) { return { type : "ControllerExtension" , name : sControllerName } ; } ) ; } return oExtControllerDef ; } } , function ( err ) { Log . error ( "Attempt to load Extension Controller " + sControllerName + " was not successful - is the Controller correctly defined in its file?" ) ; } ) ; } else { if ( ! mRegistry [ sControllerName ] && ! sap . ui . require ( sControllerName ) ) { loadControllerClass ( sControllerName ) ; } if ( mRegistry [ sControllerName ] !== undefined ) { return mRegistry [ sControllerName ] ; } else { Log . error ( "Attempt to load Extension Controller " + sControllerName + " was not successful - is the Controller correctly defined in its file?" , null , function ( ) { return { type : "ControllerExtension" , name : sControllerName } ; } ) ; return { } ; } } }
Retrieves the controller-extension with the given name
 @param {boolean} bAsync whether to retrieve the controller extension async or sync
 @param {string} sControllerName the extension controller class name
Retrieves the controller - extension with the given name @param { boolean } bAsync whether to retrieve the controller extension async or sync @param { string } sControllerName the extension controller class name
// loadControllerClass resolves with the base sap/ui/core/mvc/Controller class, // in case 'sControllerName' is not a module but was defined with sap.ui.controller("...", {}) // sync load Controller extension if necessary // retrieve legacy controller from registry /* eslint-disable no-loop-func */ /* eslint-enable no-loop-func */