code: function composeFormatters(aFormatters, fnRootFormatter) {
  		function formatter() {
  			var i,
  				n = aFormatters.length,
  				aResults = new Array(n);
  
  			for (i = 0; i < n; i += 1) {
  				aResults[i] = aFormatters[i].apply(this, arguments);
  			}
  
  			if (fnRootFormatter) {
  				return fnRootFormatter.apply(this, aResults);
  			}
  			// @see sap.ui.model.CompositeBinding#getExternalValue
  			// "default: multiple values are joined together as space separated list if no
  			//  formatter or type specified"
  			return n > 1 ? aResults.join(" ") : aResults[0];
  		}
  		// @see sap.ui.base.ManagedObject#_bindProperty
  		formatter.textFragments = fnRootFormatter && fnRootFormatter.textFragments
  			|| "sap.ui.base.BindingParser: composeFormatters";
  		return formatter;
  	}
docs: Creates a composite formatter which calls <code>fnRootFormatter</code> on the results of the
  given formatters, which in turn are called on the original arguments.
  
  @param {function[]} aFormatters
  list of leaf-level formatters
  @param {function} [fnRootFormatter]
  root level formatter; default: <code>Array.prototype.join(., " ")</code>
  @return {function}
  a composite formatter