code: public <D> D map(Object source, Class<D> destinationType) {
      Assert.notNull(source, "source");
      Assert.notNull(destinationType, "destinationType");
      return mapInternal(source, null, destinationType, null);
    }
docs: Maps {@code source} to an instance of {@code destinationType}. Mapping is performed according
  to the corresponding TypeMap. If no TypeMap exists for {@code source.getClass()} and
  {@code destinationType} then one is created.
  
  @param <D> destination type
  @param source object to map from
  @param destinationType type to map to
  @return fully mapped instance of {@code destinationType}
  @throws IllegalArgumentException if {@code source} or {@code destinationType} are null
  @throws ConfigurationException if the ModelMapper cannot find or create a TypeMap for the
  arguments
  @throws MappingException if a runtime error occurs while mapping