Annotation Type BeanMapping
-
@Target(METHOD) @Retention(CLASS) public @interface BeanMapping
Configures the mapping between two bean types.Unless otherwise specified these properties are inherited to the generated bean mapping methods.
Either
resultType()
,qualifiedBy()
ornullValueMappingStrategy()
must be specified.Example: Determining the result type
// When result types have an inheritance relation, selecting either mapping method
Mapping
or factory method //BeanMapping
can be become ambiguous. ParameterresultType()
can be used. public class FruitFactory { public Apple createApple() { return new Apple(); } public Orange createOrange() { return new Orange(); } } @Mapper(uses = FruitFactory.class) public interface FruitMapper { @BeanMapping(resultType = Apple.class) Fruit toFruit(FruitDto fruitDto); }// generates public class FruitMapperImpl implements FruitMapper { @Override public Fruit toFruit(FruitDto fruitDto) { Apple fruit = fruitFactory.createApple(); // ... } }
- Author:
- Sjaak Derksen
-
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description Builder
builder
The information that should be used for the builder mappings.boolean
ignoreByDefault
Default ignore all mappings.String[]
ignoreUnmappedSourceProperties
Unmapped source properties to be ignored.Class<? extends Annotation>
mappingControl
Allows detailed control over the mapping process.NullValueCheckStrategy
nullValueCheckStrategy
Determines when to include a null check on the source property value of a bean mapping.NullValueMappingStrategy
nullValueMappingStrategy
The strategy to be applied whennull
is passed as source bean argument value to this bean mapping.NullValuePropertyMappingStrategy
nullValuePropertyMappingStrategy
The strategy to be applied when a source bean property isnull
or not present.Class<? extends Annotation>[]
qualifiedBy
A qualifier can be specified to aid the selection process of a suitable factory method or filtering applicable@
BeforeMapping
/@
AfterMapping
methods.String[]
qualifiedByName
Similar toqualifiedBy()
, but used in combination with@
Named
in case no custom qualifier annotation is defined.Class<?>
resultType
Specifies the result type of the factory method to be used in case several factory methods qualify.SubclassExhaustiveStrategy
subclassExhaustiveStrategy
Determines how to handle missing implementation for super classes when using theSubclassMapping
.ReportingPolicy
unmappedSourcePolicy
How unmapped properties of the source type of a mapping should be reported.ReportingPolicy
unmappedTargetPolicy
How unmapped properties of the target type of a mapping should be reported.
-
-
-
Element Detail
-
resultType
Class<?> resultType
Specifies the result type of the factory method to be used in case several factory methods qualify.NOTE: This property is not inherited to generated mapping methods
- Returns:
- the resultType to select
- Default:
- void.class
-
-
-
qualifiedBy
Class<? extends Annotation>[] qualifiedBy
A qualifier can be specified to aid the selection process of a suitable factory method or filtering applicable@
BeforeMapping
/@
AfterMapping
methods. This is useful in case multiple factory method (hand written of internal) qualify and result in an 'Ambiguous factory methods' 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
Similar toqualifiedBy()
, but used in combination with@
Named
in case no custom qualifier annotation is defined.- Returns:
- the qualifiers
- See Also:
Named
- Default:
- {}
-
-
-
nullValueMappingStrategy
NullValueMappingStrategy nullValueMappingStrategy
The strategy to be applied whennull
is passed as source bean argument value to this bean 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
-
-
-
nullValuePropertyMappingStrategy
NullValuePropertyMappingStrategy nullValuePropertyMappingStrategy
The strategy to be applied when a source bean property isnull
or not present. If no strategy is configured, the strategy given viaMapperConfig.nullValuePropertyMappingStrategy()
orMapper.nullValuePropertyMappingStrategy()
will be applied,NullValuePropertyMappingStrategy.SET_TO_NULL
will be used by default.- Returns:
- The strategy to be applied when
null
is passed as source property value or the source property is not present. - Since:
- 1.3
- Default:
- org.mapstruct.NullValuePropertyMappingStrategy.SET_TO_NULL
-
-
-
nullValueCheckStrategy
NullValueCheckStrategy nullValueCheckStrategy
Determines when to include a null check on the source property value of a bean mapping. Can be overridden by the one onMapperConfig
,Mapper
orMapping
.- Returns:
- strategy how to do null checking
- Default:
- org.mapstruct.NullValueCheckStrategy.ON_IMPLICIT_CONVERSION
-
-
-
subclassExhaustiveStrategy
SubclassExhaustiveStrategy subclassExhaustiveStrategy
Determines how to handle missing implementation for super classes when using theSubclassMapping
. Overrides the setting onMapperConfig
andMapper
.- Returns:
- strategy to handle missing implementation combined with
SubclassMappings
. - Since:
- 1.5
- Default:
- org.mapstruct.SubclassExhaustiveStrategy.COMPILE_ERROR
-
-
-
ignoreUnmappedSourceProperties
String[] ignoreUnmappedSourceProperties
Unmapped source properties to be ignored. This could be used whenReportingPolicy.WARN
orReportingPolicy.ERROR
is used forMapper.unmappedSourcePolicy()
orMapperConfig.unmappedSourcePolicy()
. Listed properties will be ignored when composing the unmapped source properties report.NOTE: This does not support ignoring nested source properties
NOTE: This property is not inherited to generated mapping methods
- Returns:
- The source properties that should be ignored when performing a report
- Since:
- 1.3
- Default:
- {}
-
-
-
unmappedSourcePolicy
ReportingPolicy unmappedSourcePolicy
How unmapped properties of the source type of a mapping should be reported. If no policy is configured, the policy given viaMapperConfig.unmappedSourcePolicy()
orMapper.unmappedSourcePolicy()
will be applied, usingReportingPolicy.IGNORE
by default.- Returns:
- The reporting policy for unmapped source properties.
- Since:
- 1.6
- Default:
- org.mapstruct.ReportingPolicy.IGNORE
-
-
-
unmappedTargetPolicy
ReportingPolicy unmappedTargetPolicy
How unmapped properties of the target type of a mapping should be reported. If no policy is configured, the policy given viaMapperConfig.unmappedTargetPolicy()
orMapper.unmappedTargetPolicy()
will be applied, usingReportingPolicy.WARN
by default.- Returns:
- The reporting policy for unmapped target properties.
- Since:
- 1.5
- Default:
- org.mapstruct.ReportingPolicy.WARN
-
-
-
builder
Builder builder
The information that should be used for the builder mappings. This can be used to define custom build methods for the builder strategy that one uses. If no builder is defined the builder given viaMapperConfig.builder()
orMapper.builder()
will be applied.NOTE: In case no builder is defined here, in
Mapper
orMapperConfig
and there is a single build method, then that method would be used.If the builder is defined and there is a single method that does not match the name of the finisher than a compile error will occurs
- Returns:
- the builder information for the method level
- Since:
- 1.3
- Default:
- @org.mapstruct.Builder
-
-
-
mappingControl
Class<? extends Annotation> mappingControl
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
-
-