Package org.mapstruct
Annotation Type MapMapping
-
@Target(METHOD) @Retention(CLASS) public @interface MapMapping
Configures the mapping between two map types, e.g. Map<String, String> and Map<Long, Date>.Example:
@Mapper public interface SimpleMapper { @MapMapping(valueDateFormat = "dd.MM.yyyy") Map<String, String> longDateMapToStringStringMap(Map<Long, Date> source); }
// generates public class SimpleMapperImpl implements SimpleMapper { @Override public Map<String, String> longDateMapToStringStringMap(Map<Long, Date> source) } { Map<String, String> map = new HashMap<String, String>(); } for ( java.util.Map.Entry<Long, Date> entry : source.entrySet() ) } { String key = new DecimalFormat( "" ).format( entry.getKey() ); String value = new SimpleDateFormat( "dd.MM.yyyy" ).format( entry.getValue() ); map.put( key, value ); } // ... } }
NOTE: at least one element needs to be specified
- Author:
- Gunnar Morling
-
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description String
keyDateFormat
A format string as processable bySimpleDateFormat
if the annotated method maps from a map with key typeString
to an map with key typeDate
or vice-versa.Class<? extends Annotation>
keyMappingControl
Allows detailed control over the key mapping process.String
keyNumberFormat
A format string as processable byDecimalFormat
if the annotated method maps from aNumber
to aString
or vice-versa.Class<? extends Annotation>[]
keyQualifiedBy
A key value qualifier can be specified to aid the selection process of a suitable mapper.String[]
keyQualifiedByName
String-based form of qualifiers; When looking for a suitable mapping method to map this map mapping method's key 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.Class<?>
keyTargetType
Specifies the type of the key 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 map mapping.String
valueDateFormat
A format string as processable bySimpleDateFormat
if the annotated method maps from a map with value typeString
to an map with value typeDate
or vice-versa.Class<? extends Annotation>
valueMappingControl
Allows detailed control over the value mapping process.String
valueNumberFormat
A format string as processable byDecimalFormat
if the annotated method maps from aNumber
to aString
or vice-versa.Class<? extends Annotation>[]
valueQualifiedBy
A value qualifier can be specified to aid the selection process of a suitable mapper for the values in the map.String[]
valueQualifiedByName
String-based form of qualifiers; When looking for a suitable mapping method to map this map mapping method's value 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.Class<?>
valueTargetType
Specifies the type of the value to be used in the result of the mapping method in case multiple mapping methods qualify.
-
-
-
Element Detail
-
keyDateFormat
String keyDateFormat
A format string as processable bySimpleDateFormat
if the annotated method maps from a map with key typeString
to an map with key typeDate
or vice-versa. Will be ignored for all other key types.- Returns:
- A date format string as processable by
SimpleDateFormat
.
- Default:
- ""
-
-
-
valueDateFormat
String valueDateFormat
A format string as processable bySimpleDateFormat
if the annotated method maps from a map with value typeString
to an map with value typeDate
or vice-versa. Will be ignored for all other value types.- Returns:
- A date format string as processable by
SimpleDateFormat
.
- Default:
- ""
-
-
-
keyNumberFormat
String keyNumberFormat
A format string as processable byDecimalFormat
if the annotated method maps from aNumber
to aString
or vice-versa. Will be ignored for all other key types.- Returns:
- A decimal format string as processable by
DecimalFormat
.
- Default:
- ""
-
-
-
valueNumberFormat
String valueNumberFormat
A format string as processable byDecimalFormat
if the annotated method maps from aNumber
to aString
or vice-versa. Will be ignored for all other value types.- Returns:
- A decimal format string as processable by
DecimalFormat
.
- Default:
- ""
-
-
-
keyQualifiedBy
Class<? extends Annotation>[] keyQualifiedBy
A key value 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:
- {}
-
-
-
keyQualifiedByName
String[] keyQualifiedByName
String-based form of qualifiers; When looking for a suitable mapping method to map this map mapping method's key 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:
keyQualifiedBy()
,Named
- Default:
- {}
-
-
-
valueQualifiedBy
Class<? extends Annotation>[] valueQualifiedBy
A value qualifier can be specified to aid the selection process of a suitable mapper for the values in the map. 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:
- {}
-
-
-
valueQualifiedByName
String[] valueQualifiedByName
String-based form of qualifiers; When looking for a suitable mapping method to map this map mapping method's value 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:
valueQualifiedBy()
,Named
- Default:
- {}
-
-
-
keyTargetType
Class<?> keyTargetType
Specifies the type of the key to be used in the result of the mapping method in case multiple mapping methods qualify.- Returns:
- the resultType to select
- Default:
- void.class
-
-
-
valueTargetType
Class<?> valueTargetType
Specifies the type of the value to be used in the result of the mapping method in case multiple mapping methods qualify.- Returns:
- the resultType to select
- Default:
- void.class
-
-
-
nullValueMappingStrategy
NullValueMappingStrategy nullValueMappingStrategy
The strategy to be applied whennull
is passed as source value to this map 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
-
-
-
keyMappingControl
Class<? extends Annotation> keyMappingControl
Allows detailed control over the key mapping process.- Returns:
- the mapping control
- Since:
- 1.4
- See Also:
DeepClone
,NoComplexMapping
,MappingControl
- Default:
- org.mapstruct.control.MappingControl.class
-
-
-
valueMappingControl
Class<? extends Annotation> valueMappingControl
Allows detailed control over the value mapping process.- Returns:
- the mapping control
- Since:
- 1.4
- See Also:
DeepClone
,NoComplexMapping
,MappingControl
- Default:
- org.mapstruct.control.MappingControl.class
-
-