Package org.mapstruct
Annotation Type BeanMapping
-
@Target(METHOD) @Retention(CLASS) public @interface BeanMapping
Configures the mapping between two bean types.Either
resultType(),qualifiedBy()ornullValueMappingStrategy()must be specified.Example: Determining the result type
// When result types have an inheritance relation, selecting either mapping methodMappingor factory method //BeanMappingcan 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 BuilderbuilderThe information that should be used for the builder mappings.booleanignoreByDefaultDefault ignore all mappings.String[]ignoreUnmappedSourcePropertiesUnmapped source properties to be ignored.Class<? extends Annotation>mappingControlAllows detailed control over the mapping process.NullValueCheckStrategynullValueCheckStrategyDetermines when to include a null check on the source property value of a bean mapping.NullValueMappingStrategynullValueMappingStrategyThe strategy to be applied whennullis passed as source bean argument value to this bean mapping.NullValuePropertyMappingStrategynullValuePropertyMappingStrategyThe strategy to be applied when a source bean property isnullor not present.Class<? extends Annotation>[]qualifiedByA qualifier can be specified to aid the selection process of a suitable factory method or filtering applicable@BeforeMapping/@AfterMappingmethods.String[]qualifiedByNameSimilar toqualifiedBy(), but used in combination with@Namedin case no custom qualifier annotation is defined.Class<?>resultTypeSpecifies the result type of the factory method to be used in case several factory methods qualify.SubclassExhaustiveStrategysubclassExhaustiveStrategyDetermines how to handle missing implementation for super classes when using theSubclassMapping.ReportingPolicyunmappedTargetPolicyHow 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.- 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/@AfterMappingmethods. 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@Namedin case no custom qualifier annotation is defined.- Returns:
- the qualifiers
- See Also:
Named
- Default:
- {}
-
-
-
nullValueMappingStrategy
NullValueMappingStrategy nullValueMappingStrategy
The strategy to be applied whennullis 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_NULLby default.- Returns:
- The strategy to be applied when
nullis 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 isnullor not present. If no strategy is configured, the strategy given viaMapperConfig.nullValuePropertyMappingStrategy()orMapper.nullValuePropertyMappingStrategy()will be applied,NullValuePropertyMappingStrategy.SET_TO_NULLwill be used by default.- Returns:
- The strategy to be applied when
nullis 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,MapperorMapping.- 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 onMapperConfigandMapper.- 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.WARNorReportingPolicy.ERRORis 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
- Returns:
- The source properties that should be ignored when performing a report
- Since:
- 1.3
- Default:
- {}
-
-
-
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.WARNby 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
MapperorMapperConfigand 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
-
-