function cloneBinding(oSource, sName, oClone, sTargetName) {
			var oBindingInfo = oSource.mBindingInfos[sName];
			oBindingInfo = oBindingInfo || oSource.getBindingInfo(sName); // fallback for forwarded bindings
			var oCloneBindingInfo = jQuery.extend({}, oBindingInfo);

			// clone the template if it is not sharable
			if (!oBindingInfo.templateShareable && oBindingInfo.template && oBindingInfo.template.clone) {
				oCloneBindingInfo.template = oBindingInfo.template.clone(sIdSuffix, aLocalIds);
				delete oCloneBindingInfo.factory;
			} else if ( oBindingInfo.templateShareable === MAYBE_SHAREABLE_OR_NOT ) {
				// a 'clone' operation implies sharing the template (if templateShareable is not set to false)
				oBindingInfo.templateShareable = oCloneBindingInfo.templateShareable = true;
				Log.error(
					"During a clone operation, a template was found that neither was marked with 'templateShareable:true' nor 'templateShareable:false'. " +
					"The framework won't destroy the template. This could cause errors (e.g. duplicate IDs) or memory leaks " +
					"(The template is used in aggregation '" + sName + "' of object '" + oSource.getId() + "')." +
					"For more information, see documentation under 'Aggregation Binding'.");
			}

			// remove the runtime binding data (otherwise the property will not be connected again!)
			delete oCloneBindingInfo.binding;
			delete oCloneBindingInfo.modelChangeHandler;
			delete oCloneBindingInfo.dataStateChangeHandler;
			delete oCloneBindingInfo.modelRefreshHandler;

			if (oBindingInfo.factory || oBindingInfo.template) {
				oClone.bindAggregation(sTargetName, oCloneBindingInfo);
			} else {
				oClone.bindProperty(sTargetName, oCloneBindingInfo);
			}
		}
function cloneBinding(oSource, sName, oClone, sTargetName) {
			var oBindingInfo = oSource.mBindingInfos[sName];
			oBindingInfo = oBindingInfo || oSource.getBindingInfo(sName); // fallback for forwarded bindings
			var oCloneBindingInfo = jQuery.extend({}, oBindingInfo);

			// clone the template if it is not sharable
			if (!oBindingInfo.templateShareable && oBindingInfo.template && oBindingInfo.template.clone) {
				oCloneBindingInfo.template = oBindingInfo.template.clone(sIdSuffix, aLocalIds);
				delete oCloneBindingInfo.factory;
			} else if ( oBindingInfo.templateShareable === MAYBE_SHAREABLE_OR_NOT ) {
				// a 'clone' operation implies sharing the template (if templateShareable is not set to false)
				oBindingInfo.templateShareable = oCloneBindingInfo.templateShareable = true;
				Log.error(
					"During a clone operation, a template was found that neither was marked with 'templateShareable:true' nor 'templateShareable:false'. " +
					"The framework won't destroy the template. This could cause errors (e.g. duplicate IDs) or memory leaks " +
					"(The template is used in aggregation '" + sName + "' of object '" + oSource.getId() + "')." +
					"For more information, see documentation under 'Aggregation Binding'.");
			}

			// remove the runtime binding data (otherwise the property will not be connected again!)
			delete oCloneBindingInfo.binding;
			delete oCloneBindingInfo.modelChangeHandler;
			delete oCloneBindingInfo.dataStateChangeHandler;
			delete oCloneBindingInfo.modelRefreshHandler;

			if (oBindingInfo.factory || oBindingInfo.template) {
				oClone.bindAggregation(sTargetName, oCloneBindingInfo);
			} else {
				oClone.bindProperty(sTargetName, oCloneBindingInfo);
			}
		}
function cloneBinding ( oSource , sName , oClone , sTargetName ) { var oBindingInfo = oSource . mBindingInfos [ sName ] ; oBindingInfo = oBindingInfo || oSource . getBindingInfo ( sName ) ; // fallback for forwarded bindings var oCloneBindingInfo = jQuery . extend ( { } , oBindingInfo ) ; // clone the template if it is not sharable if ( ! oBindingInfo . templateShareable && oBindingInfo . template && oBindingInfo . template . clone ) { oCloneBindingInfo . template = oBindingInfo . template . clone ( sIdSuffix , aLocalIds ) ; delete oCloneBindingInfo . factory ; } else if ( oBindingInfo . templateShareable === MAYBE_SHAREABLE_OR_NOT ) { // a 'clone' operation implies sharing the template (if templateShareable is not set to false) oBindingInfo . templateShareable = oCloneBindingInfo . templateShareable = true ; Log . error ( "During a clone operation, a template was found that neither was marked with 'templateShareable:true' nor 'templateShareable:false'. " + "The framework won't destroy the template. This could cause errors (e.g. duplicate IDs) or memory leaks " + "(The template is used in aggregation '" + sName + "' of object '" + oSource . getId ( ) + "')." + "For more information, see documentation under 'Aggregation Binding'." ) ; } // remove the runtime binding data (otherwise the property will not be connected again!) delete oCloneBindingInfo . binding ; delete oCloneBindingInfo . modelChangeHandler ; delete oCloneBindingInfo . dataStateChangeHandler ; delete oCloneBindingInfo . modelRefreshHandler ; if ( oBindingInfo . factory || oBindingInfo . template ) { oClone . bindAggregation ( sTargetName , oCloneBindingInfo ) ; } else { oClone . bindProperty ( sTargetName , oCloneBindingInfo ) ; } }
Clones the BindingInfo for the aggregation/property with the given name of this ManagedObject and binds
the aggregation/property with the given target name on the given clone using the same BindingInfo.

@param {string} sName the name of the binding to clone
@param {sap.ui.base.ManagedObject} oClone the object on which to establish the cloned binding
@param {string} sTargetName the name of the clone's aggregation to bind
Clones the BindingInfo for the aggregation / property with the given name of this ManagedObject and binds the aggregation / property with the given target name on the given clone using the same BindingInfo .
Clones the binding