src/sap.ui.core/src/sap/ui/model/odata/AnnotationParser.js
function(mTargetAnnotations, mSourceAnnotations) {

		// Merge must be done on Term level, this is why the original line does not suffice any more:
		//     jQuery.extend(true, this.oAnnotations, mAnnotations);
		// Terms are defined on different levels, the main one is below the target level, which is directly
		// added as property to the annotations object and then in the same way inside two special properties
		// named "propertyAnnotations" and "EntityContainer"


		var sTarget, sTerm;
		var aSpecialCases = ["annotationsAtArrays", "propertyAnnotations", "EntityContainer", "annotationReferences"];

		// First merge standard annotations
		for (sTarget in mSourceAnnotations) {
			if (aSpecialCases.indexOf(sTarget) !== -1) {
				// Skip these as they are special properties that contain Target level definitions
				continue;
			}

			// ...all others contain Term level definitions
			AnnotationParser._mergeAnnotation(sTarget, mSourceAnnotations, mTargetAnnotations);
		}

		// Now merge special cases except "annotationsAtArrays"
		for (var i = 1; i < aSpecialCases.length; ++i) {
			var sSpecialCase = aSpecialCases[i];

			mTargetAnnotations[sSpecialCase] = mTargetAnnotations[sSpecialCase] || {}; // Make sure the target namespace exists
			for (sTarget in mSourceAnnotations[sSpecialCase]) {
				for (sTerm in mSourceAnnotations[sSpecialCase][sTarget]) {
					// Now merge every term
					mTargetAnnotations[sSpecialCase][sTarget] = mTargetAnnotations[sSpecialCase][sTarget] || {};
					AnnotationParser._mergeAnnotation(sTerm, mSourceAnnotations[sSpecialCase][sTarget], mTargetAnnotations[sSpecialCase][sTarget]);
				}
			}
		}

		if (mSourceAnnotations.annotationsAtArrays) {
			mTargetAnnotations.annotationsAtArrays = (mTargetAnnotations.annotationsAtArrays || [])
				.concat(mSourceAnnotations.annotationsAtArrays);
		}
	}
function(mTargetAnnotations, mSourceAnnotations) {

		// Merge must be done on Term level, this is why the original line does not suffice any more:
		//     jQuery.extend(true, this.oAnnotations, mAnnotations);
		// Terms are defined on different levels, the main one is below the target level, which is directly
		// added as property to the annotations object and then in the same way inside two special properties
		// named "propertyAnnotations" and "EntityContainer"


		var sTarget, sTerm;
		var aSpecialCases = ["annotationsAtArrays", "propertyAnnotations", "EntityContainer", "annotationReferences"];

		// First merge standard annotations
		for (sTarget in mSourceAnnotations) {
			if (aSpecialCases.indexOf(sTarget) !== -1) {
				// Skip these as they are special properties that contain Target level definitions
				continue;
			}

			// ...all others contain Term level definitions
			AnnotationParser._mergeAnnotation(sTarget, mSourceAnnotations, mTargetAnnotations);
		}

		// Now merge special cases except "annotationsAtArrays"
		for (var i = 1; i < aSpecialCases.length; ++i) {
			var sSpecialCase = aSpecialCases[i];

			mTargetAnnotations[sSpecialCase] = mTargetAnnotations[sSpecialCase] || {}; // Make sure the target namespace exists
			for (sTarget in mSourceAnnotations[sSpecialCase]) {
				for (sTerm in mSourceAnnotations[sSpecialCase][sTarget]) {
					// Now merge every term
					mTargetAnnotations[sSpecialCase][sTarget] = mTargetAnnotations[sSpecialCase][sTarget] || {};
					AnnotationParser._mergeAnnotation(sTerm, mSourceAnnotations[sSpecialCase][sTarget], mTargetAnnotations[sSpecialCase][sTarget]);
				}
			}
		}

		if (mSourceAnnotations.annotationsAtArrays) {
			mTargetAnnotations.annotationsAtArrays = (mTargetAnnotations.annotationsAtArrays || [])
				.concat(mSourceAnnotations.annotationsAtArrays);
		}
	}
function ( mTargetAnnotations , mSourceAnnotations ) { // Merge must be done on Term level, this is why the original line does not suffice any more: //     jQuery.extend(true, this.oAnnotations, mAnnotations); // Terms are defined on different levels, the main one is below the target level, which is directly // added as property to the annotations object and then in the same way inside two special properties // named "propertyAnnotations" and "EntityContainer" var sTarget , sTerm ; var aSpecialCases = [ "annotationsAtArrays" , "propertyAnnotations" , "EntityContainer" , "annotationReferences" ] ; // First merge standard annotations for ( sTarget in mSourceAnnotations ) { if ( aSpecialCases . indexOf ( sTarget ) !== - 1 ) { // Skip these as they are special properties that contain Target level definitions continue ; } // ...all others contain Term level definitions AnnotationParser . _mergeAnnotation ( sTarget , mSourceAnnotations , mTargetAnnotations ) ; } // Now merge special cases except "annotationsAtArrays" for ( var i = 1 ; i < aSpecialCases . length ; ++ i ) { var sSpecialCase = aSpecialCases [ i ] ; mTargetAnnotations [ sSpecialCase ] = mTargetAnnotations [ sSpecialCase ] || { } ; // Make sure the target namespace exists for ( sTarget in mSourceAnnotations [ sSpecialCase ] ) { for ( sTerm in mSourceAnnotations [ sSpecialCase ] [ sTarget ] ) { // Now merge every term mTargetAnnotations [ sSpecialCase ] [ sTarget ] = mTargetAnnotations [ sSpecialCase ] [ sTarget ] || { } ; AnnotationParser . _mergeAnnotation ( sTerm , mSourceAnnotations [ sSpecialCase ] [ sTarget ] , mTargetAnnotations [ sSpecialCase ] [ sTarget ] ) ; } } } if ( mSourceAnnotations . annotationsAtArrays ) { mTargetAnnotations . annotationsAtArrays = ( mTargetAnnotations . annotationsAtArrays || [ ] ) . concat ( mSourceAnnotations . annotationsAtArrays ) ; } }
Merges the given parsed annotation map into the given target annotation map.

@param {map} mTargetAnnotations The target annotation map into which the source annotations should be merged
@param {map} mSourceAnnotations The source annotation map that should be merged into the target annotation map
@static
@protected
Merges the given parsed annotation map into the given target annotation map .