code: function (oSource, bContextMenu, oContextMenuPosition) {
  			if (this._bUseExpPop === undefined) {
  				this._bUseExpPop = !!bContextMenu;
  			}
  
  			this._bCompactMode = jQuery(oSource.getDomRef()).closest(".sapUiSizeCompact").length > 0;
  
  			this._bOpenAsContextMenu = bContextMenu;
  			this._oContextMenuPosition = oContextMenuPosition;
  			this.getPopover(true).addStyleClass(this.getStyleClass());
  			this.getPopover(false).addStyleClass(this.getStyleClass());
  
  			// creates buttons specified in objects in property buttons
  			var aButtons = this.getButtons();
  			this._oTarget = oSource;
  
  			if (!this._bOpenAsContextMenu) {
  				this._setButtonsForContextMenu(aButtons, oSource);
  			} else {
  				this._makeAllButtonsVisible(aButtons);
  			}
  
  			if (this.bOnInit || !this.getPopover().isOpen()) { // if there was no other ContextMenu open before
  				this.finalizeOpening();
  				this.bOnInit = false;
  			}
  		}
docs: Opens the ContextMenu and sets the ContextMenu position by the oSource parameter.
  Note: this gets called before the old Menu is closed because of asynchronus animations.
  @param {sap.ui.core.Control} oSource - The control by which the Popover will be placed.
  @param {boolean} bContextMenu - If the ContextMenu should appear as Context Menu
  @param {Object} oContextMenuPosition - The position of the ContextMenu if it should be opened as Context Menu (only needed if bContextMenu)
  @public