function (o, sTypeClass) {
			if (!o.extensions) {
				return;
			}

			o.extensions.forEach(function (oExtension) {
				if (oExtension.namespace === "http://www.sap.com/Protocols/SAPData") {
					o["sap:" + oExtension.name] = oExtension.value;
					Utils.addV4Annotation(o, oExtension, sTypeClass);
				}
			});
			// after all SAP V2 annotations are lifted up add V4 annotations that are calculated
			// by multiple V2 annotations or that have a different default value
			switch (sTypeClass) {
				case "Property":
					if (o["sap:updatable"] === "false") {
						if (o["sap:creatable"] === "false") {
							o["Org.OData.Core.V1.Computed"] = oBoolTrue;
						} else {
							o["Org.OData.Core.V1.Immutable"] = oBoolTrue;
						}
					}
					break;
				case "EntitySet":
					if (o["sap:searchable"] !== "true") {
						o["Org.OData.Capabilities.V1.SearchRestrictions"] =
							{ "Searchable" : oBoolFalse };
					}
					break;
				default:
					// nothing to do
			}
		}
function (o, sTypeClass) {
			if (!o.extensions) {
				return;
			}

			o.extensions.forEach(function (oExtension) {
				if (oExtension.namespace === "http://www.sap.com/Protocols/SAPData") {
					o["sap:" + oExtension.name] = oExtension.value;
					Utils.addV4Annotation(o, oExtension, sTypeClass);
				}
			});
			// after all SAP V2 annotations are lifted up add V4 annotations that are calculated
			// by multiple V2 annotations or that have a different default value
			switch (sTypeClass) {
				case "Property":
					if (o["sap:updatable"] === "false") {
						if (o["sap:creatable"] === "false") {
							o["Org.OData.Core.V1.Computed"] = oBoolTrue;
						} else {
							o["Org.OData.Core.V1.Immutable"] = oBoolTrue;
						}
					}
					break;
				case "EntitySet":
					if (o["sap:searchable"] !== "true") {
						o["Org.OData.Capabilities.V1.SearchRestrictions"] =
							{ "Searchable" : oBoolFalse };
					}
					break;
				default:
					// nothing to do
			}
		}
function ( o , sTypeClass ) { if ( ! o . extensions ) { return ; } o . extensions . forEach ( function ( oExtension ) { if ( oExtension . namespace === "http://www.sap.com/Protocols/SAPData" ) { o [ "sap:" + oExtension . name ] = oExtension . value ; Utils . addV4Annotation ( o , oExtension , sTypeClass ) ; } } ) ; // after all SAP V2 annotations are lifted up add V4 annotations that are calculated // by multiple V2 annotations or that have a different default value switch ( sTypeClass ) { case "Property" : if ( o [ "sap:updatable" ] === "false" ) { if ( o [ "sap:creatable" ] === "false" ) { o [ "Org.OData.Core.V1.Computed" ] = oBoolTrue ; } else { o [ "Org.OData.Core.V1.Immutable" ] = oBoolTrue ; } } break ; case "EntitySet" : if ( o [ "sap:searchable" ] !== "true" ) { o [ "Org.OData.Capabilities.V1.SearchRestrictions" ] = { "Searchable" : oBoolFalse } ; } break ; default : // nothing to do } }
Lift all extensions from the <a href="http://www.sap.com/Protocols/SAPData"> SAP
Annotations for OData Version 2.0</a> namespace up as attributes with "sap:" prefix.

@param {object} o
any object
@param {string} sTypeClass
the type class of the given object; supported type classes are "Property" and
"EntitySet"
Lift all extensions from the <a href = http : // www . sap . com / Protocols / SAPData > SAP Annotations for OData Version 2 . 0< / a > namespace up as attributes with sap : prefix .
Adds V4 annotations to the extension list