docs: @SuppressWarnings("unchecked")
    D createDestinationViaProvider() {
      Provider<D> provider = null;
      if (getMapping() != null) {
        provider = (Provider<D>) getMapping().getProvider();
        if (provider == null && parentTypeMap() != null)
          provider = (Provider<D>) parentTypeMap().getPropertyProvider();
      }
      if (provider == null && getTypeMap() != null)
        provider = getTypeMap().getProvider();
      if (provider == null && mappingEngine.getConfiguration().getProvider() != null)
        provider = (Provider<D>) mappingEngine.getConfiguration().getProvider();
      if (provider == null)
        return null;
  
      D destination = provider.get(this);
      mappingEngine.validateDestination(destinationType, destination, errors);
      setDestination(destination, false);
      return destination;
    }