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>
andList<Date>
.Note: either
dateFormat()
,elementTargetType()
orqualifiedBy()
must be specifiedExample: Convert List<Float> to List<String>
@Mapper public interface FloatToStringMapper { @IterableMapping( numberFormat = "##.00" ) List<String> sourceToTarget(List<Float> source); }
Supported mappings are:// 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 ) ); } // ... } }
Iterable<A>
to/fromIterable<B>
/Iterable<A>
Iterable<A>
to/fromB[]
/A[]
Iterable<A>
to/fromStream<B>
/Stream<A>
A[]
to/fromStream<B>
/Stream<A>
A[]
to/fromB[]
Stream<A>
to/fromStream<B>
- Author:
- Gunnar Morling
-
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description String
dateFormat
A format string as processable bySimpleDateFormat
if the annotated method maps from an iterable ofString
to an iterableDate
or vice-versa.Class<? extends Annotation>
elementMappingControl
Allows detailed control over the mapping process.Class<?>
elementTargetType
Specifies the type of the element to be used in the result of the mapping method in case multiple mapping methods qualify.NullValueMappingStrategy
nullValueMappingStrategy
The strategy to be applied whennull
is passed as source value to this iterable mapping.String
numberFormat
A format string as processable byDecimalFormat
if the annotated method maps from aNumber
to aString
or vice-versa.Class<? extends Annotation>[]
qualifiedBy
A qualifier can be specified to aid the selection process of a suitable mapper.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) aNamed
annotation for each of the specified qualifier names.
-
-
-
Element Detail
-
dateFormat
String dateFormat
A format string as processable bySimpleDateFormat
if the annotated method maps from an iterable ofString
to an iterableDate
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 byDecimalFormat
if the annotated method maps from aNumber
to aString
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) aNamed
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
-
-
-
nullValueMappingStrategy
NullValueMappingStrategy nullValueMappingStrategy
The strategy to be applied whennull
is passed as source value to this iterable mapping. If no strategy is configured, the strategy given viaMapperConfig.nullValueMappingStrategy()
orMapper.nullValueMappingStrategy()
will be applied, usingNullValueMappingStrategy.RETURN_NULL
by default.- Returns:
- The strategy to be applied when
null
is passed as source value to the methods of this mapping.
- Default:
- org.mapstruct.NullValueMappingStrategy.RETURN_NULL
-
-
-
elementMappingControl
Class<? extends Annotation> elementMappingControl
Allows detailed control over the mapping process.- Returns:
- the mapping control
- Since:
- 1.4
- See Also:
DeepClone
,NoComplexMapping
,MappingControl
- Default:
- org.mapstruct.control.MappingControl.class
-
-