code: function becameInvalid(oBindingInfo) {
  			var aParts = oBindingInfo.parts,
  				i;
  
  			if (aParts) {
  				if (aParts.length == 1) {
  					// simple property binding: invalid when the model has the same name (or updateall) and when the model instance differs
  					return (bUpdateAll || aParts[0].model == sModelName) && !oBindingInfo.binding.updateRequired(that.getModel(aParts[0].model));
  				} else {
  					// simple or composite binding: invalid when for any part the model has the same name (or updateall) and when the model instance for that part differs
  					for (i = 0; i < aParts.length; i++) {
  						if ( (bUpdateAll || aParts[i].model == sModelName) && !oBindingInfo.binding.aBindings[i].updateRequired(that.getModel(aParts[i].model)) ) {
  							return true;
  						}
  					}
  				}
  			} else {
  				// list or object binding: invalid when  the model has the same name (or updateall) and when the model instance differs
  				return (bUpdateAll || oBindingInfo.model == sModelName) && !oBindingInfo.binding.updateRequired(that.getModel(oBindingInfo.model));
  			}
  		}
docs: /*
  Checks whether the binding for the given oBindingInfo became invalid because
  of the current model change (as identified by bUpdateAll and sModelName).
  
  Precondition: oBindingInfo contains a 'binding' object
  
  @param oBindingInfo
  @returns {boolean}