function (oControlData, oEntityData) {
				var FIRST_COLUMN = 0,
					SECOND_COLUMN = 1,
					THIRD_COLUMN = 2,
					ENTITIES_PER_COLUMN = 3,
					aHeaderControls = [[], [], []],
					oHeaderLayoutUtil = this._getHeaderLayoutUtil(),
					aSubClasses = oEntityData.extendedBy || oEntityData.implementedBy || [],
					aHeaderBlocksInfo = [
						{creator: "_getControlSampleBlock", exists: oControlData.isClass || oControlData.isNamespace},
						{creator: "_getDocumentationBlock", exists: oControlData.docuLink !== undefined},
						{creator: "_getUXGuidelinesBlock", exists: oControlData.uxGuidelinesLink !== undefined},
						{creator: "_getExtendsBlock", exists: oControlData.isClass},
						{creator: "_getSubclassesBlock", exists: aSubClasses.length > 0},
						{creator: "_getImplementsBlock", exists: oControlData.hasImplementsData},
						{creator: "_getModuleBlock", exists: true},
						{creator: "_getLibraryBlock", exists: oControlData.kind === "namespace" && oEntityData.lib},
						{creator: "_getVisibilityBlock", exists: oControlData.visibility},
						{creator: "_getAvailableSinceBlock", exists: true},
						{creator: "_getApplicationComponentBlock", exists: true}
					],
					fnFillHeaderControlsStructure = function () {
						var iControlsAdded = 0,
							iIndexToAdd,
							fnGetIndexToAdd = function (iControlsAdded) {
								// determines the column(1st, 2nd or 3rd), the next entity data key-value should be added to.
								if (iControlsAdded <= ENTITIES_PER_COLUMN) {
									return FIRST_COLUMN;
								} else if (iControlsAdded <= ENTITIES_PER_COLUMN * 2) {
									return SECOND_COLUMN;
								}
								return THIRD_COLUMN;
							};

						aHeaderBlocksInfo.forEach(function (oHeaderBlockInfo) {
							var oControlBlock;
							if (oHeaderBlockInfo.exists) {
								oControlBlock = oHeaderLayoutUtil[oHeaderBlockInfo.creator].call(this, oControlData, oEntityData);
								iIndexToAdd = fnGetIndexToAdd(++iControlsAdded);
								aHeaderControls[iIndexToAdd].push(oControlBlock);
							}
						}, this);
					}.bind(this);

				// Creates the entity key-value controls
				// based on the existing entity key-value data,
				fnFillHeaderControlsStructure();

				// Wraps each column in a <code>sap.ui.layout.VerticalLayout</code>.
				aHeaderControls.forEach(function (aHeaderColumn, iIndex) {
					var oVL = this.byId("headerColumn" + iIndex);
					oVL.removeAllContent();

					if (aHeaderColumn.length > 0) {
						oVL.setVisible(true);
						aHeaderColumn.forEach(oVL.addContent, oVL);
					}
				}, this);
			}
function (oControlData, oEntityData) {
				var FIRST_COLUMN = 0,
					SECOND_COLUMN = 1,
					THIRD_COLUMN = 2,
					ENTITIES_PER_COLUMN = 3,
					aHeaderControls = [[], [], []],
					oHeaderLayoutUtil = this._getHeaderLayoutUtil(),
					aSubClasses = oEntityData.extendedBy || oEntityData.implementedBy || [],
					aHeaderBlocksInfo = [
						{creator: "_getControlSampleBlock", exists: oControlData.isClass || oControlData.isNamespace},
						{creator: "_getDocumentationBlock", exists: oControlData.docuLink !== undefined},
						{creator: "_getUXGuidelinesBlock", exists: oControlData.uxGuidelinesLink !== undefined},
						{creator: "_getExtendsBlock", exists: oControlData.isClass},
						{creator: "_getSubclassesBlock", exists: aSubClasses.length > 0},
						{creator: "_getImplementsBlock", exists: oControlData.hasImplementsData},
						{creator: "_getModuleBlock", exists: true},
						{creator: "_getLibraryBlock", exists: oControlData.kind === "namespace" && oEntityData.lib},
						{creator: "_getVisibilityBlock", exists: oControlData.visibility},
						{creator: "_getAvailableSinceBlock", exists: true},
						{creator: "_getApplicationComponentBlock", exists: true}
					],
					fnFillHeaderControlsStructure = function () {
						var iControlsAdded = 0,
							iIndexToAdd,
							fnGetIndexToAdd = function (iControlsAdded) {
								// determines the column(1st, 2nd or 3rd), the next entity data key-value should be added to.
								if (iControlsAdded <= ENTITIES_PER_COLUMN) {
									return FIRST_COLUMN;
								} else if (iControlsAdded <= ENTITIES_PER_COLUMN * 2) {
									return SECOND_COLUMN;
								}
								return THIRD_COLUMN;
							};

						aHeaderBlocksInfo.forEach(function (oHeaderBlockInfo) {
							var oControlBlock;
							if (oHeaderBlockInfo.exists) {
								oControlBlock = oHeaderLayoutUtil[oHeaderBlockInfo.creator].call(this, oControlData, oEntityData);
								iIndexToAdd = fnGetIndexToAdd(++iControlsAdded);
								aHeaderControls[iIndexToAdd].push(oControlBlock);
							}
						}, this);
					}.bind(this);

				// Creates the entity key-value controls
				// based on the existing entity key-value data,
				fnFillHeaderControlsStructure();

				// Wraps each column in a <code>sap.ui.layout.VerticalLayout</code>.
				aHeaderControls.forEach(function (aHeaderColumn, iIndex) {
					var oVL = this.byId("headerColumn" + iIndex);
					oVL.removeAllContent();

					if (aHeaderColumn.length > 0) {
						oVL.setVisible(true);
						aHeaderColumn.forEach(oVL.addContent, oVL);
					}
				}, this);
			}
function ( oControlData , oEntityData ) { var FIRST_COLUMN = 0 , SECOND_COLUMN = 1 , THIRD_COLUMN = 2 , ENTITIES_PER_COLUMN = 3 , aHeaderControls = [ [ ] , [ ] , [ ] ] , oHeaderLayoutUtil = this . _getHeaderLayoutUtil ( ) , aSubClasses = oEntityData . extendedBy || oEntityData . implementedBy || [ ] , aHeaderBlocksInfo = [ { creator : "_getControlSampleBlock" , exists : oControlData . isClass || oControlData . isNamespace } , { creator : "_getDocumentationBlock" , exists : oControlData . docuLink !== undefined } , { creator : "_getUXGuidelinesBlock" , exists : oControlData . uxGuidelinesLink !== undefined } , { creator : "_getExtendsBlock" , exists : oControlData . isClass } , { creator : "_getSubclassesBlock" , exists : aSubClasses . length > 0 } , { creator : "_getImplementsBlock" , exists : oControlData . hasImplementsData } , { creator : "_getModuleBlock" , exists : true } , { creator : "_getLibraryBlock" , exists : oControlData . kind === "namespace" && oEntityData . lib } , { creator : "_getVisibilityBlock" , exists : oControlData . visibility } , { creator : "_getAvailableSinceBlock" , exists : true } , { creator : "_getApplicationComponentBlock" , exists : true } ] , fnFillHeaderControlsStructure = function ( ) { var iControlsAdded = 0 , iIndexToAdd , fnGetIndexToAdd = function ( iControlsAdded ) { // determines the column(1st, 2nd or 3rd), the next entity data key-value should be added to. if ( iControlsAdded <= ENTITIES_PER_COLUMN ) { return FIRST_COLUMN ; } else if ( iControlsAdded <= ENTITIES_PER_COLUMN * 2 ) { return SECOND_COLUMN ; } return THIRD_COLUMN ; } ; aHeaderBlocksInfo . forEach ( function ( oHeaderBlockInfo ) { var oControlBlock ; if ( oHeaderBlockInfo . exists ) { oControlBlock = oHeaderLayoutUtil [ oHeaderBlockInfo . creator ] . call ( this , oControlData , oEntityData ) ; iIndexToAdd = fnGetIndexToAdd ( ++ iControlsAdded ) ; aHeaderControls [ iIndexToAdd ] . push ( oControlBlock ) ; } } , this ) ; } . bind ( this ) ; // Creates the entity key-value controls // based on the existing entity key-value data, fnFillHeaderControlsStructure ( ) ; // Wraps each column in a <code>sap.ui.layout.VerticalLayout</code>. aHeaderControls . forEach ( function ( aHeaderColumn , iIndex ) { var oVL = this . byId ( "headerColumn" + iIndex ) ; oVL . removeAllContent ( ) ; if ( aHeaderColumn . length > 0 ) { oVL . setVisible ( true ) ; aHeaderColumn . forEach ( oVL . addContent , oVL ) ; } } , this ) ; }
Builds the header layout structure.
The header displays the entity data in 3 columns
and each column can consist of 3 key-value pairs at most.
@param {object} oControlData main control data object source
@param {object} oEntityData additional data object source
Builds the header layout structure . The header displays the entity data in 3 columns and each column can consist of 3 key - value pairs at most .
Creates a header control structure for the given control and entity data.