attributeChangedCallback(name, oldValue, newValue) {
      let newPropertyValue;
      if (this._doNotSyncAttributes.has(name)) {
        // This attribute is mutated internally, not by the user
        return;
      }
      const properties = this.constructor.getMetadata().getProperties();
      const realName = name.replace(/^ui5-/, "");
      const nameInCamelCase = (0, _StringHelper.kebabToCamelCase)(realName);
      if (properties.hasOwnProperty(nameInCamelCase)) {
        // eslint-disable-line
        const propData = properties[nameInCamelCase];
        const propertyType = propData.type;
        let propertyValidator = propData.validator;
        if (propertyType && propertyType.isDataTypeClass) {
          propertyValidator = propertyType;
        }
        if (propertyValidator) {
          newPropertyValue = propertyValidator.attributeToProperty(newValue);
        } else if (propertyType === Boolean) {
          newPropertyValue = newValue !== null;
        } else {
          newPropertyValue = newValue;
        }
        this[nameInCamelCase] = newPropertyValue;
      }
    }
Do not override this method in derivatives of UI5Element
@private