title: Mapstruct: how to qualify an IterableMapping function
body: <p>I have a mapper between an entity and a DTO:</p>
  
  <pre><code>@Mapper(componentModel="cdi", uses = { RegionMapper.class })
  public interface ClusterMapper {
      @Mapping(target="regions", ignore=true)
      ClusterDto map(Cluster entity);
  
      ClusterDto mapWithRegions(Cluster entity);
  }
  </code></pre>
  
  <p>The first mapping function is a "simple mapping" to list entities, the second one is for a detailed view. I would like to have the List equivalent, so I have an annotation:</p>
  
  <pre><code>@Qualifier
  @Target(ElementType.METHOD)
  @Retention(RetentionPolicy.SOURCE)
  public @interface Simple {
  }
  </code></pre>
  
  <p>And add this qualifier to the first mapping function, and to the List function:</p>
  
  <pre><code>@Mapper(componentModel="cdi", uses={RegionMapper.class})
  public interface ClusterMapper {
      @Simple // &lt;====
      @Mapping(target="regions", ignore=true)     
      ClusterDto map(Cluster entity);
  
      ClusterDto mapWithRegions(Cluster entity);
  
      @IterableMapping(qualifiedBy = Simple.class) // &lt;====
      List&lt;ClusterDto&gt; map(List&lt;Cluster&gt; entities);
  
  }
  </code></pre>
  
  <p>but even with the <code>@Simple</code> annotation, I have an error message:</p>
  
  <blockquote>
    <p>Ambiguous mapping methods found for mapping collection element to...</p>
  </blockquote>
  
  <p>How can I made the <code>List map(List)</code> function "choose" the first mapping function ?</p>