function checkAndEnhanceByModelProperty(oInvisibleElement, aProperties, aBindingPaths, bHasAddViaDelegate) {
		if (!hasBindings(aBindingPaths)) {
			// include it if the field has no bindings (bindings can be added in runtime)
			return true;
		}

		const mModelProperty = findModelProperty(aBindingPaths, aProperties);
		if (mModelProperty) {
			if (mModelProperty.hideFromReveal) {
				return false;
			}
			if (bHasAddViaDelegate) {
				enhanceInvisibleElement(oInvisibleElement, mModelProperty);
			}
			return true;
		}
		// if model property is not found, it depends if the hidden field is a removed custom field (AddViaDelegate case) or a standard field.
		return !bHasAddViaDelegate;
	}
Checks if this InvisibleProperty should be included in resulting list and adds information
from models metadata to the InvisibleProperty if available.
For "AddViaDelegate", if metadata is available and the element is not present in it, do not include it.
Example use case: custom field which was hidden and then removed from system
should not be available for reveal after the removal.
For both "Reveal" and "AddViaDelegate", it must be checked if the field should be always hidden
(e.g. via "UI Hidden" annotation)

@param {sap.ui.core.Element} oInvisibleElement - Invisible Element
@param {object[]} aProperties - Array of Fields
@param {string[]} aBindingPaths - Map of all binding paths and binding context paths of the passed invisible element
@param {boolean} bHasAddViaDelegate - If AddViaDelegate action is available

@return {boolean} - whether this field should be included