code: function (sPath) {
  				var iIndexOfAt;
  
  				if (!sPath || sPath[0] === "@") {
  					return "";
  				}
  
  				if (rCount.test(sPath)) {
  					return sPath.slice(0, -7);
  				}
  
  				iIndexOfAt = sPath.indexOf("@");
  				if (iIndexOfAt > -1) {
  					sPath = sPath.slice(0, iIndexOfAt);
  				}
  				if (sPath[sPath.length - 1] === "/") {
  					sPath = sPath.slice(0, -1);
  				}
  
  				if (sPath.indexOf(".") > -1) {
  					sPath = sPath.split("/")
  						.filter(function (sSegment) { // remove type casts
  							return sSegment.indexOf(".") < 0;
  						}).join("/");
  				}
  
  				return sPath;
  			}
docs: A function that helps to interpret OData V4 annotations. It knows about the syntax
  of the path value used by the following dynamic expressions:
  <ul>
  <li>"14.5.2 Expression edm:AnnotationPath"</li>
  <li>"14.5.11 Expression edm:NavigationPropertyPath"</li>
  <li>"14.5.12 Expression edm:Path"</li>
  <li>"14.5.13 Expression edm:PropertyPath"</li>
  </ul>
  It returns the path of structural and navigation properties from the given path
  value, but removes "$count", types casts, term casts, and annotations of navigation
  properties.
  
  @param {string} sPath
  The path value from the meta model, for example
  "ToSupplier/@com.sap.vocabularies.Communication.v1.Address" or
  "@com.sap.vocabularies.UI.v1.FieldGroup#Dimensions"
  @returns {string}
  The path of structural and navigation properties, for example "ToSupplier" or ""
  
  @public
  @since 1.43.0