in JSLib/src/odata-json-light.js [269:305]
var jsonLightApplyMetadataAnnotation = function (name, target, value, obj, baseURI) {
/// <summary>
/// Converts a JSON light annotation that applies to entry metadata only (i.e. odata.editLink or odata.readLink) and its value
/// into their library's internal representation and saves it back to data.
/// </summary>
/// <param name="name" type="String">Annotation name.</param>
/// <param name="target" type="String">Name of the property on which the annotation should be applied.</param>
/// <param name="value" type="Object">Annotation value.</param>
/// <param name="obj" type="Object">Object that will hold properties produced by the annotation.</param>
/// <param name="baseURI" type="String">Base URI for normalizing relative URIs found in the payload.</param>
var metadata = obj.__metadata = obj.__metadata || {};
var mappedName = jsonLightNameMap[name] || name;
if (name === "editLink") {
metadata.uri = normalizeURI(value, baseURI);
metadata[mappedName] = metadata.uri;
return;
}
if (name === "readLink" || name === "associationLinkUrl") {
value = normalizeURI(value, baseURI);
}
if (target) {
var propertiesMetadata = metadata.properties = metadata.properties || {};
var propertyMetadata = propertiesMetadata[target] = propertiesMetadata[target] || {};
if (name === "type") {
propertyMetadata[mappedName] = propertyMetadata[mappedName] || value;
return;
}
propertyMetadata[mappedName] = value;
return;
}
metadata[mappedName] = value;
};