src/sap.ui.core/src/sap/ui/model/odata/_ODataMetaModelUtils.js
function (aChildren, mChildAnnotations, sTypeClass, aSchemas, fnCallback,
				iStartIndex) {
			if (!aChildren) {
				return;
			}
			if (iStartIndex) {
				aChildren = aChildren.slice(iStartIndex);
			}
			aChildren.forEach(function (oChild) {
				// lift SAP data for easy access to SAP Annotations for OData V 2.0
				Utils.liftSAPData(oChild, sTypeClass);
			});
			aChildren.forEach(function (oChild) {
				var oEntityType;

				if (sTypeClass === "EntitySet") {
					// calculated entity set annotations need to be added before V4
					// annotations are merged
					oEntityType = Utils.getObject(aSchemas, "entityType", oChild.entityType);
					Utils.calculateEntitySetAnnotations(oChild, oEntityType);
				}

				if (fnCallback) {
					fnCallback(oChild);
				}
				// merge V4 annotations after child annotations are processed
				jQuery.extend(oChild, mChildAnnotations[oChild.name || oChild.role]);
			});
		}
function (aChildren, mChildAnnotations, sTypeClass, aSchemas, fnCallback,
				iStartIndex) {
			if (!aChildren) {
				return;
			}
			if (iStartIndex) {
				aChildren = aChildren.slice(iStartIndex);
			}
			aChildren.forEach(function (oChild) {
				// lift SAP data for easy access to SAP Annotations for OData V 2.0
				Utils.liftSAPData(oChild, sTypeClass);
			});
			aChildren.forEach(function (oChild) {
				var oEntityType;

				if (sTypeClass === "EntitySet") {
					// calculated entity set annotations need to be added before V4
					// annotations are merged
					oEntityType = Utils.getObject(aSchemas, "entityType", oChild.entityType);
					Utils.calculateEntitySetAnnotations(oChild, oEntityType);
				}

				if (fnCallback) {
					fnCallback(oChild);
				}
				// merge V4 annotations after child annotations are processed
				jQuery.extend(oChild, mChildAnnotations[oChild.name || oChild.role]);
			});
		}
function ( aChildren , mChildAnnotations , sTypeClass , aSchemas , fnCallback , iStartIndex ) { if ( ! aChildren ) { return ; } if ( iStartIndex ) { aChildren = aChildren . slice ( iStartIndex ) ; } aChildren . forEach ( function ( oChild ) { // lift SAP data for easy access to SAP Annotations for OData V 2.0 Utils . liftSAPData ( oChild , sTypeClass ) ; } ) ; aChildren . forEach ( function ( oChild ) { var oEntityType ; if ( sTypeClass === "EntitySet" ) { // calculated entity set annotations need to be added before V4 // annotations are merged oEntityType = Utils . getObject ( aSchemas , "entityType" , oChild . entityType ) ; Utils . calculateEntitySetAnnotations ( oChild , oEntityType ) ; } if ( fnCallback ) { fnCallback ( oChild ) ; } // merge V4 annotations after child annotations are processed jQuery . extend ( oChild , mChildAnnotations [ oChild . name || oChild . role ] ) ; } ) ; }
Visits all children inside the given array, lifts "SAPData" extensions and
inlines OData V4 annotations for each child.

@param {object[]} aChildren
any array of children
@param {object} mChildAnnotations
map from child name (or role) to annotations
@param {string} [sTypeClass]
the type class of the given children; supported type classes are "Property"
and "EntitySet"
@param {object[]} [aSchemas]
Array of OData data service schemas (needed only for type class "EntitySet")
@param {function} [fnCallback]
optional callback for each child
@param {number} [iStartIndex=0]
optional start index in the given array
Visits all children inside the given array lifts SAPData extensions and inlines OData V4 annotations for each child .