in JSLib/src/odata-atom.js [472:508]
var atomSetEntryValueByPath = function (path, target, value, propertyType) {
/// <summary>Sets a slashed path value on the specified target.</summary>
/// <param name="path" type="String">Property path to set ('/'-separated).</param>
/// <param name="target" type="Object">Object to set value on.</param>
/// <param name="value">Value to set.</param>
/// <param name="propertyType" type="String" optional="true">Property type to set in metadata.</param>
var propertyName;
if (path.indexOf('/') === -1) {
target[path] = value;
propertyName = path;
} else {
var parts = path.split('/');
var i, len;
for (i = 0, len = (parts.length - 1); i < len; i++) {
// We construct each step of the way if the property is missing;
// if it's already initialized to null, we stop further processing.
var next = target[parts[i]];
if (next === undefined) {
next = {};
target[parts[i]] = next;
} else if (next === null) {
return;
}
target = next;
}
propertyName = parts[i];
target[propertyName] = value;
}
if (propertyType) {
var metadata = target.__metadata = target.__metadata || {};
var properties = metadata.properties = metadata.properties || {};
var property = properties[propertyName] = properties[propertyName] || {};
property.type = propertyType;
}
};