function setRootControl(vRootControl) {
			var fnFireInstanceInitialized = function() {
				ComponentHooks.onUIComponentInstanceInitialized.execute(that);
			};
			var fnAggregateRootControl = function(oRootControl) {
				that.setAggregation("rootControl", oRootControl);
			};
			if (vRootControl instanceof Promise) {
				that.pRootControlLoaded = that.pRootControlLoaded.then(function(oRootControl) {
					fnAggregateRootControl(oRootControl);
					fnFireInstanceInitialized();
					return oRootControl;
				});
			} else if (vRootControl instanceof View && vRootControl.oAsyncState && vRootControl.oAsyncState.promise) {
				fnAggregateRootControl(vRootControl);
				that.pRootControlLoaded = that.pRootControlLoaded.then(function(oRootControl) {
					// notify Component initialization callback handler
					fnFireInstanceInitialized();
					return oRootControl;
				});
			} else {
				fnAggregateRootControl(vRootControl);
				fnFireInstanceInitialized();
			}
		}
Initializes the component instance after creation.

Applications must not call this hook method directly, it is called by the
framework while the constructor of a Component is executed.

Subclasses of <code>UIComponent</code> should override this hook to implement any necessary
initialization. <b>When overriding this function make sure to invoke the
<code>init</code> function of the <code>UIComponent</code> as well!</b>

@protected