function binding(bAddType) {
				var sConstraints,
					sFormatOptions,
					sParameters = oResult.parameters && Basics.toJSON(oResult.parameters),
					bHasParameters = sParameters && sParameters !== "{}",
					sResult,
					sType = mUi5TypeForEdmType[oResult.type];

				bAddType = bAddType && !oResult.ignoreTypeInPath && sType;
				if (bAddType || rBadChars.test(vValue) || bHasParameters) {
					sResult = "{path:" + Basics.toJSON(vValue);
					if (bAddType) {
						sResult += ",type:'" + sType + "'";
						sConstraints = Basics.toJSON(oResult.constraints);
						if (sConstraints && sConstraints !== "{}") {
							sResult += ",constraints:" + sConstraints;
						}
						sFormatOptions
							= oResult.formatOptions && Basics.toJSON(oResult.formatOptions);
						if (sFormatOptions && sFormatOptions !== "{}") {
							sResult += ",formatOptions:" + sFormatOptions;
						}
					}
					if (bHasParameters) {
						sResult += ",parameters:" + sParameters;
					}
					return sResult + "}";
				}
				return "{" + vValue + "}";
			}
Converts the result's value to a string.

@param {object} oResult
  an object with the following properties:
  result: "constant", "binding", "composite" or "expression"
  value: {any} the value to write into the resulting string depending on result:
    when "constant": the constant value as a string (from the annotation)
    when "binding": the binding path
    when "expression": a binding expression not wrapped (no "{=" and "}")
    when "composite": a composite binding string
  type: an EDM data type (like "Edm.String")
  constraints: {object} optional type constraints when result is "binding"
  formatOptions: {object} optional type format options when result is "binding"
  parameters: {object} optional binding parameters when result is "binding"
@param {boolean} bExpression
  if <code>true</code> the value is to be embedded into a binding expression,
  otherwise in a composite binding
@param {boolean} [bWithType=false]
  if <code>true</code>, <code>oResult.result</code> is "binding" and
  <code>oResult.type</code> maps to a UI5 type, then both type and constraint
  information, as well as format options, are written to the resulting binding string;
  if this is <code>false</code> and <code>oResult.result</code> is "binding",
  then binding parameters are written to the resulting binding string if present
@param {boolean} [bRaw=false]
  if <code>true</code> and <code>oResult.result</code> is "binding", the resulting
  string will contain the raw value instead of being formatted with the type
@returns {string}
  the resulting string to embed into a composite binding or a binding expression