fDeltaHandling = () => {
			return this.initAdaptation(oControl, sKey).then(() => {
				return vNewState;
			})
				.then((aNewState) => {

					const oController = this.getController(oControl, sKey);
					const mChangeOperations = oController.getChangeOperations();

					const oRegistryEntry = this._getRegistryEntry(oControl);
					const oCurrentState = oController.getCurrentState();
					const oPriorState = merge(oCurrentState instanceof Array ? [] : {}, oCurrentState);

					const oControllerHelper = oController.getMetadataHelper();
					const oHelper = oControllerHelper ? oControllerHelper : oRegistryEntry.helper;
					const oPropertyInfo = oHelper.getProperties().map((a) => {
						return {
							key: a.key,
							name: a.name
						};
					});

					const mDeltaConfig = {
						existingState: mDiffParameters.stateBefore || oPriorState,
						applyAbsolute: mDiffParameters.applyAbsolute,
						changedState: aNewState,
						control: oController.getAdaptationControl(),
						changeOperations: mChangeOperations,
						deltaAttributes: ["key"],
						propertyInfo: oPropertyInfo
					};

					//Only execute change calculation in case there is a difference (--> example: press 'Ok' without a difference)
					const aChanges = oController.getDelta(mDeltaConfig);

					if (!bSuppressCallback) {
						const mChangeMap = {};
						mChangeMap[sKey] = aChanges;
						return this._processChanges(oControl, mChangeMap)
							.then(() => {
								return aChanges;
							});
					}

					return aChanges || [];

				});

		}
<code>Engine#createChanges</code> can be used to programmatically trigger the creation
of a set of changes based on the current control state and the provided state.

@private
@ui5-restricted sap.m, sap.ui.mdc

@param {object} mDiffParameters A map defining the configuration to create the changes
@param {sap.ui.core.Control} mDiffParameters.control The control instance that should be adapted
@param {string} mDiffParameters.key The key used to retrieve the related controller
@param {object} mDiffParameters.state The state that is applied to the provided control instance
@param {sap.m.p13n.enums.ProcessingStrategy} [mDiffParameters.applyAbsolute] Determines about the comparison algorithm between two states
@param {boolean} [mDiffParameters.stateBefore] If the state should be diffed manually;
for example, if "A" exists in the control state, but is not mentioned in the new state provided in the
mDiffParameters.state then the absolute appliance decides whether to remove "A" or to keep it.
@param {boolean} [mDiffParameters.suppressAppliance] Determines whether the change is applied directly
@param {boolean} [mDiffParameters.applySequentially] Determines whether the appliance is queued or processed in parallel
controller

@returns {Promise} A Promise resolving in the related delta changes