fnCreatePushedEntry = function (aProperties, oData, oPushedObject, sParentName) {
						jQuery.each(aProperties, function (i, sPropertyName) {
							// Take over __metadata for complex types or properties
							if (oData["__metadata"]) {
								oPushedObject["__metadata"] = oData["__metadata"];
							}
							// Resolve complex types (determined by path syntax)
							if (sPropertyName.indexOf("/") > -1) {
								var aPropParts = sPropertyName.split("/");
								var sPropName = aPropParts[0];
								var sPath = aPropParts.splice(1).join("/");
								oPushedObject[sPropName] = oPushedObject[sPropName] || {};
								if (oData[sPropName] && oData[sPropName].results) {
									// Navigation property - filter the results for each navigation property based on the properties defined by $select
									var results = oPushedObject[sPropName].results = oPushedObject[sPropName].results || [];
									jQuery.each(oData[sPropName].results, function (i, oResult) {
										results[i] = fnCreatePushedEntry([sPath], oResult, results[i] || {}, sPropName);
									});
								} else {
									// call recursively to get the properties of each complex type or navigation property
									oPushedObject[sPropName] = fnCreatePushedEntry([sPath], oData[sPropName], oPushedObject[sPropName] || {}, sPropName);
								}
							} else {
								if (oData && !oData.hasOwnProperty(sPropertyName)) {
									var bExist = false;
									var aTypeProperties = [];
									if (sParentName) {
										var sTargetEntitySet = that._mEntitySets[sEntitySetName].navprops[sParentName].to.entitySet;
										aTypeProperties = that._mEntityTypes[that._mEntitySets[sTargetEntitySet].type].properties;
										for (var i = 0; i < aTypeProperties.length; i++) {
											if (aTypeProperties[i].name === sPropertyName) {
												bExist = true;
												break;
											}
										}
									}
									if (!bExist) {
										that._logAndThrowMockServerCustomError(404, that._oErrorMessages.RESOURCE_NOT_FOUND_FOR_SEGMENT, sPropertyName);
									}
								}
								oPushedObject[sPropertyName] = oData[sPropertyName];
							}
						});
						return oPushedObject;
					}
Applies the Select OData system query option string on the given array
@param {object} aDataSet
@param {string} sODataQueryValue a comma separated list of property paths, qualified action names, qualified function names, or the star operator (*)
@private