Package org.mapstruct

Annotation Type IterableMapping


  • @Target(METHOD)
    @Retention(CLASS)
    public @interface IterableMapping
    Configures the mapping between two iterable like types, e.g. List<String> and List<Date>.

    Note: either dateFormat(), elementTargetType() or qualifiedBy() must be specified

    Example: Convert List<Float> to List<String>

    
     @Mapper
     public interface FloatToStringMapper {
          @IterableMapping( numberFormat = "##.00" )
          List<String> sourceToTarget(List<Float> source);
     }
     
    
     // generates
     public class FloatToStringMapperImpl implements FloatToStringMapper {
          @Override
          public List<String> sourceToTarget(List<Float> source) {
              List<String> list = new ArrayList<String>( source.size() );
              for ( Float float1 : source ) {
                  list.add( new DecimalFormat( "##.00" ).format( float1 ) );
              }
         // ...
          }
     }
     
    Supported mappings are:
    • Iterable<A> to/from Iterable<B>/Iterable<A>
    • Iterable<A> to/from B[]/A[]
    • Iterable<A> to/from Stream<B>/Stream<A>
    • A[] to/from Stream<B>/Stream<A>
    • A[] to/from B[]
    • Stream<A> to/from Stream<B>
    Author:
    Gunnar Morling
    • Element Detail

      • dateFormat

        String dateFormat
        A format string as processable by SimpleDateFormat if the annotated method maps from an iterable of String to an iterable Date or vice-versa. Will be ignored for all other element types.
        Returns:
        A date format string as processable by SimpleDateFormat.
        Default:
        ""
      • numberFormat

        String numberFormat
        A format string as processable by DecimalFormat if the annotated method maps from a Number to a String or vice-versa. Will be ignored for all other element types.
        Returns:
        A decimal format string as processable by DecimalFormat.
        Default:
        ""
      • qualifiedBy

        Class<? extends Annotation>[] qualifiedBy
        A qualifier can be specified to aid the selection process of a suitable mapper. This is useful in case multiple mappers (hand written of internal) qualify and result in an 'Ambiguous mapping methods found' error. A qualifier is a custom annotation and can be placed on either a hand written mapper class or a method.
        Returns:
        the qualifiers
        See Also:
        Qualifier
        Default:
        {}
      • qualifiedByName

        String[] qualifiedByName
        String-based form of qualifiers; When looking for a suitable mapping method to map this iterable mapping method's element type, MapStruct will only consider those methods carrying directly or indirectly (i.e. on the class-level) a Named annotation for each of the specified qualifier names.

        Note that annotation-based qualifiers are generally preferable as they allow more easily to find references and are safe for refactorings, but name-based qualifiers can be a less verbose alternative when requiring a large number of qualifiers as no custom annotation types are needed.

        Returns:
        One or more qualifier name(s)
        See Also:
        qualifiedBy(), Named
        Default:
        {}
      • elementTargetType

        Class<?> elementTargetType
        Specifies the type of the element to be used in the result of the mapping method in case multiple mapping methods qualify.
        Returns:
        the elementTargetType to select
        Default:
        void.class