diff --git a/core-common/src/main/java/org/mapstruct/BeanMapping.java b/core-common/src/main/java/org/mapstruct/BeanMapping.java
index 582814e7a..2492477a2 100644
--- a/core-common/src/main/java/org/mapstruct/BeanMapping.java
+++ b/core-common/src/main/java/org/mapstruct/BeanMapping.java
@@ -11,6 +11,8 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+import static org.mapstruct.NullValueCheckStrategy.ON_IMPLICIT_CONVERSION;
+
/**
* Configures the mapping between two bean types.
*
@@ -61,6 +63,15 @@ public @interface BeanMapping {
*/
NullValueMappingStrategy nullValueMappingStrategy() default NullValueMappingStrategy.RETURN_NULL;
+ /**
+ * Determines when to include a null check on the source property value of a bean mapping.
+ *
+ * Can be overridden by the one on {@link MapperConfig}, {@link Mapper} or {@link Mapping}.
+ *
+ * @return strategy how to do null checking
+ */
+ NullValueCheckStrategy nullValueCheckStrategy() default ON_IMPLICIT_CONVERSION;
+
/**
* Default ignore all mappings. All mappings have to be defined manually. No automatic mapping will take place. No
* warning will be issued on missing target properties.
diff --git a/core-common/src/main/java/org/mapstruct/Mapper.java b/core-common/src/main/java/org/mapstruct/Mapper.java
index fa9863244..c86485e94 100644
--- a/core-common/src/main/java/org/mapstruct/Mapper.java
+++ b/core-common/src/main/java/org/mapstruct/Mapper.java
@@ -153,7 +153,7 @@ public @interface Mapper {
/**
* Determines when to include a null check on the source property value of a bean mapping.
*
- * Can be overridden by the one on {@link MapperConfig} or {@link Mapping}.
+ * Can be overridden by the one on {@link MapperConfig}, {@link BeanMapping} or {@link Mapping}.
*
* @return strategy how to do null checking
*/
diff --git a/core-common/src/main/java/org/mapstruct/MapperConfig.java b/core-common/src/main/java/org/mapstruct/MapperConfig.java
index f0589c0ae..cbcd15115 100644
--- a/core-common/src/main/java/org/mapstruct/MapperConfig.java
+++ b/core-common/src/main/java/org/mapstruct/MapperConfig.java
@@ -138,7 +138,7 @@ public @interface MapperConfig {
/**
* Determines when to include a null check on the source property value of a bean mapping.
*
- * Can be overridden by the one on {@link Mapper} or {@link Mapping}.
+ * Can be overridden by the one on {@link Mapper}, {@link BeanMapping} or {@link Mapping}.
*
* @return strategy how to do null checking
*/
diff --git a/core-jdk8/src/main/java/org/mapstruct/Mapping.java b/core-jdk8/src/main/java/org/mapstruct/Mapping.java
index 703c2bd37..a5d86dc90 100644
--- a/core-jdk8/src/main/java/org/mapstruct/Mapping.java
+++ b/core-jdk8/src/main/java/org/mapstruct/Mapping.java
@@ -15,6 +15,8 @@ import java.text.SimpleDateFormat;
import java.text.DecimalFormat;
import java.util.Date;
+import static org.mapstruct.NullValueCheckStrategy.ON_IMPLICIT_CONVERSION;
+
/**
* Configures the mapping of one bean attribute or enum constant.
*
@@ -255,4 +257,14 @@ public @interface Mapping {
* @return Default value to set in case the source property is {@code null}.
*/
String defaultValue() default "";
+
+ /**
+ * Determines when to include a null check on the source property value of a bean mapping.
+ *
+ * Can be overridden by the one on {@link MapperConfig}, {@link Mapper} or {@link BeanMapping}.
+ *
+ * @return strategy how to do null checking
+ */
+ NullValueCheckStrategy nullValueCheckStrategy() default ON_IMPLICIT_CONVERSION;
+
}
diff --git a/core/src/main/java/org/mapstruct/Mapping.java b/core/src/main/java/org/mapstruct/Mapping.java
index d98eb3b8d..edf7d55ec 100644
--- a/core/src/main/java/org/mapstruct/Mapping.java
+++ b/core/src/main/java/org/mapstruct/Mapping.java
@@ -14,6 +14,8 @@ import java.text.SimpleDateFormat;
import java.text.DecimalFormat;
import java.util.Date;
+import static org.mapstruct.NullValueCheckStrategy.ON_IMPLICIT_CONVERSION;
+
/**
* Configures the mapping of one bean attribute or enum constant.
*
@@ -260,4 +262,14 @@ public @interface Mapping {
* @return Default value to set in case the source property is {@code null}.
*/
String defaultValue() default "";
+
+ /**
+ * Determines when to include a null check on the source property value of a bean mapping.
+ *
+ * Can be overridden by the one on {@link MapperConfig}, {@link Mapper} or {@link BeanMapping}.
+ *
+ * @return strategy how to do null checking
+ */
+ NullValueCheckStrategy nullValueCheckStrategy() default ON_IMPLICIT_CONVERSION;
+
}
diff --git a/processor/src/main/java/org/mapstruct/ap/internal/model/BeanMappingMethod.java b/processor/src/main/java/org/mapstruct/ap/internal/model/BeanMappingMethod.java
index f29c876c4..16546f401 100644
--- a/processor/src/main/java/org/mapstruct/ap/internal/model/BeanMappingMethod.java
+++ b/processor/src/main/java/org/mapstruct/ap/internal/model/BeanMappingMethod.java
@@ -75,8 +75,6 @@ public class BeanMappingMethod extends NormalTypeMappingMethod {
private Set targetProperties;
private final List propertyMappings = new ArrayList();
private final Set unprocessedSourceParameters = new HashSet();
- private NullValueMappingStrategyPrism nullValueMappingStrategy;
- private SelectionParameters selectionParameters;
private final Set existingVariableNames = new HashSet();
private Map> methodMappings;
private SingleMappingByTargetPropertyNameFunction singleMapping;
@@ -135,16 +133,6 @@ public class BeanMappingMethod extends NormalTypeMappingMethod {
return this;
}
- public Builder selectionParameters(SelectionParameters selectionParameters) {
- this.selectionParameters = selectionParameters;
- return this;
- }
-
- public Builder nullValueMappingStrategy(NullValueMappingStrategyPrism nullValueMappingStrategy) {
- this.nullValueMappingStrategy = nullValueMappingStrategy;
- return this;
- }
-
public BeanMappingMethod build() {
// map properties with mapping
boolean mappingErrorOccured = handleDefinedMappings();
@@ -168,12 +156,20 @@ public class BeanMappingMethod extends NormalTypeMappingMethod {
reportErrorForUnmappedTargetPropertiesIfRequired();
reportErrorForUnmappedSourcePropertiesIfRequired();
+ // get bean mapping (when specified as annotation )
+ BeanMapping beanMapping = method.getMappingOptions().getBeanMapping();
+ BeanMappingPrism beanMappingPrism = BeanMappingPrism.getInstanceOn( method.getExecutable() );
+
// mapNullToDefault
+ NullValueMappingStrategyPrism nullValueMappingStrategy =
+ beanMapping != null ? beanMapping.getNullValueMappingStrategy() : null;
boolean mapNullToDefault = method.getMapperConfiguration().isMapToDefault( nullValueMappingStrategy );
- BeanMappingPrism beanMappingPrism = BeanMappingPrism.getInstanceOn( method.getExecutable() );
+ // selectionParameters
+ SelectionParameters selectionParameters = beanMapping != null ? beanMapping.getSelectionParameters() : null;
+ // check if there's a factory method for the result type
MethodReference factoryMethod = null;
if ( !method.isUpdateMethod() ) {
factoryMethod = ObjectFactoryMethodResolver.getFactoryMethod(
@@ -481,6 +477,7 @@ public class BeanMappingMethod extends NormalTypeMappingMethod {
.dependsOn( mapping.getDependsOn() )
.defaultValue( mapping.getDefaultValue() )
.defaultJavaExpression( mapping.getDefaultJavaExpression() )
+ .nullValueCheckStrategyPrism( mapping.getNullValueCheckStrategy() )
.build();
handledTargets.add( propertyName );
unprocessedSourceParameters.remove( sourceRef.getParameter() );
@@ -597,6 +594,8 @@ public class BeanMappingMethod extends NormalTypeMappingMethod {
.existingVariableNames( existingVariableNames )
.dependsOn( mapping != null ? mapping.getDependsOn() : Collections.emptyList() )
.forgeMethodWithMappingOptions( extractAdditionalOptions( targetPropertyName, false ) )
+ .nullValueCheckStrategyPrism( mapping != null ? mapping.getNullValueCheckStrategy()
+ : null )
.build();
unprocessedSourceParameters.remove( sourceParameter );
@@ -660,6 +659,7 @@ public class BeanMappingMethod extends NormalTypeMappingMethod {
.existingVariableNames( existingVariableNames )
.dependsOn( mapping != null ? mapping.getDependsOn() : Collections.emptyList() )
.forgeMethodWithMappingOptions( extractAdditionalOptions( targetProperty.getKey(), false ) )
+ .nullValueCheckStrategyPrism( mapping != null ? mapping.getNullValueCheckStrategy() : null )
.build();
propertyMappings.add( propertyMapping );
diff --git a/processor/src/main/java/org/mapstruct/ap/internal/model/CollectionAssignmentBuilder.java b/processor/src/main/java/org/mapstruct/ap/internal/model/CollectionAssignmentBuilder.java
index e832bba4e..7649c373f 100644
--- a/processor/src/main/java/org/mapstruct/ap/internal/model/CollectionAssignmentBuilder.java
+++ b/processor/src/main/java/org/mapstruct/ap/internal/model/CollectionAssignmentBuilder.java
@@ -57,6 +57,7 @@ public class CollectionAssignmentBuilder {
private PropertyMapping.TargetWriteAccessorType targetAccessorType;
private Assignment assignment;
private SourceRHS sourceRHS;
+ private NullValueCheckStrategyPrism nullValueCheckStrategy;
public CollectionAssignmentBuilder mappingBuilderContext(MappingBuilderContext ctx) {
this.ctx = ctx;
@@ -108,6 +109,11 @@ public class CollectionAssignmentBuilder {
return this;
}
+ public CollectionAssignmentBuilder nullValueCheckStrategy( NullValueCheckStrategyPrism nullValueCheckStrategy ) {
+ this.nullValueCheckStrategy = nullValueCheckStrategy;
+ return this;
+ }
+
public Assignment build() {
Assignment result = assignment;
@@ -146,14 +152,14 @@ public class CollectionAssignmentBuilder {
result,
method.getThrownTypes(),
targetType,
- method.getMapperConfiguration().getNullValueCheckStrategy(),
+ nullValueCheckStrategy,
ctx.getTypeFactory(),
PropertyMapping.TargetWriteAccessorType.isFieldAssignment( targetAccessorType ),
mapNullToDefault()
);
}
else if ( result.getType() == Assignment.AssignmentType.DIRECT ||
- method.getMapperConfiguration().getNullValueCheckStrategy() == NullValueCheckStrategyPrism.ALWAYS ) {
+ nullValueCheckStrategy == NullValueCheckStrategyPrism.ALWAYS ) {
result = new SetterWrapperForCollectionsAndMapsWithNullCheck(
result,
@@ -199,4 +205,5 @@ public class CollectionAssignmentBuilder {
return method.getMapperConfiguration().getNullValueMappingStrategy()
== NullValueMappingStrategyPrism.RETURN_DEFAULT;
}
+
}
diff --git a/processor/src/main/java/org/mapstruct/ap/internal/model/PropertyMapping.java b/processor/src/main/java/org/mapstruct/ap/internal/model/PropertyMapping.java
index 54da3723c..25db63576 100644
--- a/processor/src/main/java/org/mapstruct/ap/internal/model/PropertyMapping.java
+++ b/processor/src/main/java/org/mapstruct/ap/internal/model/PropertyMapping.java
@@ -5,17 +5,11 @@
*/
package org.mapstruct.ap.internal.model;
-import static org.mapstruct.ap.internal.model.common.Assignment.AssignmentType.DIRECT;
-import static org.mapstruct.ap.internal.prism.NullValueCheckStrategyPrism.ALWAYS;
-import static org.mapstruct.ap.internal.util.Collections.first;
-import static org.mapstruct.ap.internal.util.Collections.last;
-
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Set;
-
import javax.lang.model.element.AnnotationMirror;
import javax.lang.model.element.ExecutableElement;
import javax.lang.model.type.DeclaredType;
@@ -33,6 +27,7 @@ import org.mapstruct.ap.internal.model.common.ModelElement;
import org.mapstruct.ap.internal.model.common.Parameter;
import org.mapstruct.ap.internal.model.common.SourceRHS;
import org.mapstruct.ap.internal.model.common.Type;
+import org.mapstruct.ap.internal.model.source.BeanMapping;
import org.mapstruct.ap.internal.model.source.ForgedMethod;
import org.mapstruct.ap.internal.model.source.ForgedMethodHistory;
import org.mapstruct.ap.internal.model.source.MappingOptions;
@@ -52,6 +47,11 @@ import org.mapstruct.ap.internal.util.Strings;
import org.mapstruct.ap.internal.util.ValueProvider;
import org.mapstruct.ap.internal.util.accessor.Accessor;
+import static org.mapstruct.ap.internal.model.common.Assignment.AssignmentType.DIRECT;
+import static org.mapstruct.ap.internal.prism.NullValueCheckStrategyPrism.ALWAYS;
+import static org.mapstruct.ap.internal.util.Collections.first;
+import static org.mapstruct.ap.internal.util.Collections.last;
+
/**
* Represents the mapping between a source and target property, e.g. from {@code String Source#foo} to
* {@code int Target#bar}. Name and type of source and target property can differ. If they have different types, the
@@ -197,6 +197,7 @@ public class PropertyMapping extends ModelElement {
private MappingOptions forgeMethodWithMappingOptions;
private boolean forceUpdateMethod;
private boolean forgedNamedBased = true;
+ private NullValueCheckStrategyPrism nullValueCheckStrategyPrism;
PropertyMappingBuilder() {
super( PropertyMappingBuilder.class );
@@ -253,6 +254,12 @@ public class PropertyMapping extends ModelElement {
return this;
}
+ public PropertyMappingBuilder nullValueCheckStrategyPrism(
+ NullValueCheckStrategyPrism nullValueCheckStrategyPrism) {
+ this.nullValueCheckStrategyPrism = nullValueCheckStrategyPrism;
+ return this;
+ }
+
public PropertyMapping build() {
// handle source
this.rightHandSide = getSourceRHS( sourceReference );
@@ -427,11 +434,16 @@ public class PropertyMapping extends ModelElement {
!rhs.isSourceReferenceParameter(), mapNullToDefault );
}
else {
- NullValueCheckStrategyPrism nvcs = method.getMapperConfiguration().getNullValueCheckStrategy();
- return new SetterWrapper( rhs, method.getThrownTypes(), nvcs, isFieldAssignment(), targetType );
+ return new SetterWrapper( rhs, method.getThrownTypes(), getNvcs(), isFieldAssignment(), targetType );
}
}
+ private NullValueCheckStrategyPrism getNvcs() {
+ BeanMapping beanMapping = method.getMappingOptions().getBeanMapping();
+ NullValueCheckStrategyPrism nvcsBean = beanMapping != null ? beanMapping.getNullValueCheckStrategy() : null;
+ return method.getMapperConfiguration().getNullValueCheckStrategy( nvcsBean, nullValueCheckStrategyPrism );
+ }
+
private Assignment assignToPlainViaAdder( Assignment rightHandSide) {
Assignment result = rightHandSide;
@@ -461,6 +473,7 @@ public class PropertyMapping extends ModelElement {
.targetAccessorType( targetAccessorType )
.rightHandSide( rightHandSide )
.assignment( rhs )
+ .nullValueCheckStrategy( getNvcs() )
.build();
}
diff --git a/processor/src/main/java/org/mapstruct/ap/internal/model/source/BeanMapping.java b/processor/src/main/java/org/mapstruct/ap/internal/model/source/BeanMapping.java
index 5fdb28e27..ce91d9acd 100644
--- a/processor/src/main/java/org/mapstruct/ap/internal/model/source/BeanMapping.java
+++ b/processor/src/main/java/org/mapstruct/ap/internal/model/source/BeanMapping.java
@@ -13,6 +13,7 @@ import javax.lang.model.util.Types;
import org.mapstruct.ap.internal.prism.BeanMappingPrism;
import org.mapstruct.ap.internal.prism.BuilderPrism;
+import org.mapstruct.ap.internal.prism.NullValueCheckStrategyPrism;
import org.mapstruct.ap.internal.prism.NullValueMappingStrategyPrism;
import org.mapstruct.ap.internal.prism.ReportingPolicyPrism;
import org.mapstruct.ap.internal.util.FormattingMessager;
@@ -27,6 +28,7 @@ public class BeanMapping {
private final SelectionParameters selectionParameters;
private final NullValueMappingStrategyPrism nullValueMappingStrategy;
+ private final NullValueCheckStrategyPrism nullValueCheckStrategy;
private final ReportingPolicyPrism reportingPolicy;
private final boolean ignoreByDefault;
private final List ignoreUnmappedSourceProperties;
@@ -42,6 +44,7 @@ public class BeanMapping {
return new BeanMapping(
map.selectionParameters,
map.nullValueMappingStrategy,
+ map.nullValueCheckStrategy,
map.reportingPolicy,
false,
map.ignoreUnmappedSourceProperties,
@@ -63,6 +66,11 @@ public class BeanMapping {
? null
: NullValueMappingStrategyPrism.valueOf( beanMapping.nullValueMappingStrategy() );
+ NullValueCheckStrategyPrism nullValueCheckStrategy =
+ null == beanMapping.values.nullValueCheckStrategy()
+ ? null
+ : NullValueCheckStrategyPrism.valueOf( beanMapping.nullValueCheckStrategy() );
+
boolean ignoreByDefault = beanMapping.ignoreByDefault();
BuilderPrism builderMapping = null;
if ( beanMapping.values.builder() != null ) {
@@ -71,7 +79,7 @@ public class BeanMapping {
if ( !resultTypeIsDefined && beanMapping.qualifiedBy().isEmpty() && beanMapping.qualifiedByName().isEmpty()
&& beanMapping.ignoreUnmappedSourceProperties().isEmpty()
- && ( nullValueMappingStrategy == null ) && !ignoreByDefault
+ && ( nullValueMappingStrategy == null ) && ( nullValueCheckStrategy == null ) && !ignoreByDefault
&& builderMapping == null ) {
messager.printMessage( method, Message.BEANMAPPING_NO_ELEMENTS );
@@ -88,6 +96,7 @@ public class BeanMapping {
return new BeanMapping(
cmp,
nullValueMappingStrategy,
+ nullValueCheckStrategy,
null,
ignoreByDefault,
beanMapping.ignoreUnmappedSourceProperties(),
@@ -102,14 +111,24 @@ public class BeanMapping {
* @return bean mapping that needs to be used for Mappings
*/
public static BeanMapping forForgedMethods() {
- return new BeanMapping( null, null, ReportingPolicyPrism.IGNORE, false, Collections.emptyList(), null );
+ return new BeanMapping(
+ null,
+ null,
+ null,
+ ReportingPolicyPrism.IGNORE,
+ false,
+ Collections.emptyList(),
+ null
+ );
}
private BeanMapping(SelectionParameters selectionParameters, NullValueMappingStrategyPrism nvms,
+ NullValueCheckStrategyPrism nvcs,
ReportingPolicyPrism reportingPolicy, boolean ignoreByDefault,
- List ignoreUnmappedSourceProperties, BuilderPrism builder) {
+ List ignoreUnmappedSourceProperties, BuilderPrism builder) {
this.selectionParameters = selectionParameters;
this.nullValueMappingStrategy = nvms;
+ this.nullValueCheckStrategy = nvcs;
this.reportingPolicy = reportingPolicy;
this.ignoreByDefault = ignoreByDefault;
this.ignoreUnmappedSourceProperties = ignoreUnmappedSourceProperties;
@@ -124,6 +143,10 @@ public class BeanMapping {
return nullValueMappingStrategy;
}
+ public NullValueCheckStrategyPrism getNullValueCheckStrategy() {
+ return nullValueCheckStrategy;
+ }
+
public ReportingPolicyPrism getReportingPolicy() {
return reportingPolicy;
}
diff --git a/processor/src/main/java/org/mapstruct/ap/internal/model/source/Mapping.java b/processor/src/main/java/org/mapstruct/ap/internal/model/source/Mapping.java
index 64051d408..8c669f8b4 100644
--- a/processor/src/main/java/org/mapstruct/ap/internal/model/source/Mapping.java
+++ b/processor/src/main/java/org/mapstruct/ap/internal/model/source/Mapping.java
@@ -26,6 +26,7 @@ import org.mapstruct.ap.internal.model.common.Parameter;
import org.mapstruct.ap.internal.model.common.TypeFactory;
import org.mapstruct.ap.internal.prism.MappingPrism;
import org.mapstruct.ap.internal.prism.MappingsPrism;
+import org.mapstruct.ap.internal.prism.NullValueCheckStrategyPrism;
import org.mapstruct.ap.internal.util.AccessorNamingUtils;
import org.mapstruct.ap.internal.util.FormattingMessager;
import org.mapstruct.ap.internal.util.Message;
@@ -56,6 +57,7 @@ public class Mapping {
private final AnnotationValue sourceAnnotationValue;
private final AnnotationValue targetAnnotationValue;
private final AnnotationValue dependsOnAnnotationValue;
+ private final NullValueCheckStrategyPrism nullValueCheckStrategy;
private SourceReference sourceReference;
private TargetReference targetReference;
@@ -181,6 +183,11 @@ public class Mapping {
typeUtils
);
+ NullValueCheckStrategyPrism nullValueCheckStrategy =
+ null == mappingPrism.values.nullValueCheckStrategy()
+ ? null
+ : NullValueCheckStrategyPrism.valueOf( mappingPrism.nullValueCheckStrategy() );
+
return new Mapping(
source,
constant,
@@ -195,7 +202,8 @@ public class Mapping {
formattingParam,
selectionParams,
mappingPrism.values.dependsOn(),
- dependsOn
+ dependsOn,
+ nullValueCheckStrategy
);
}
@@ -214,7 +222,8 @@ public class Mapping {
null,
null,
null,
- new ArrayList()
+ new ArrayList(),
+ null
);
}
@@ -223,7 +232,8 @@ public class Mapping {
String targetName, String defaultValue, boolean isIgnored, AnnotationMirror mirror,
AnnotationValue sourceAnnotationValue, AnnotationValue targetAnnotationValue,
FormattingParameters formattingParameters, SelectionParameters selectionParameters,
- AnnotationValue dependsOnAnnotationValue, List dependsOn ) {
+ AnnotationValue dependsOnAnnotationValue, List dependsOn,
+ NullValueCheckStrategyPrism nullValueCheckStrategy ) {
this.sourceName = sourceName;
this.constant = constant;
this.javaExpression = javaExpression;
@@ -238,6 +248,7 @@ public class Mapping {
this.selectionParameters = selectionParameters;
this.dependsOnAnnotationValue = dependsOnAnnotationValue;
this.dependsOn = dependsOn;
+ this.nullValueCheckStrategy = nullValueCheckStrategy;
}
private Mapping( Mapping mapping, TargetReference targetReference ) {
@@ -257,6 +268,7 @@ public class Mapping {
this.dependsOn = mapping.dependsOn;
this.sourceReference = mapping.sourceReference;
this.targetReference = targetReference;
+ this.nullValueCheckStrategy = mapping.nullValueCheckStrategy;
}
private Mapping( Mapping mapping, SourceReference sourceReference ) {
@@ -276,6 +288,7 @@ public class Mapping {
this.dependsOn = mapping.dependsOn;
this.sourceReference = sourceReference;
this.targetReference = mapping.targetReference;
+ this.nullValueCheckStrategy = mapping.nullValueCheckStrategy;
}
private static String getExpression(MappingPrism mappingPrism, ExecutableElement element,
@@ -441,6 +454,10 @@ public class Mapping {
return targetReference;
}
+ public NullValueCheckStrategyPrism getNullValueCheckStrategy() {
+ return nullValueCheckStrategy;
+ }
+
public Mapping popTargetReference() {
if ( targetReference != null ) {
TargetReference newTargetReference = targetReference.pop();
@@ -488,7 +505,8 @@ public class Mapping {
formattingParameters,
selectionParameters,
dependsOnAnnotationValue,
- Collections.emptyList()
+ Collections.emptyList(),
+ nullValueCheckStrategy
);
reverse.init(
@@ -529,7 +547,8 @@ public class Mapping {
formattingParameters,
selectionParameters,
dependsOnAnnotationValue,
- dependsOn
+ dependsOn,
+ nullValueCheckStrategy
);
if ( sourceReference != null ) {
diff --git a/processor/src/main/java/org/mapstruct/ap/internal/prism/NullValueCheckStrategyPrism.java b/processor/src/main/java/org/mapstruct/ap/internal/prism/NullValueCheckStrategyPrism.java
index 6783d34af..555231f98 100644
--- a/processor/src/main/java/org/mapstruct/ap/internal/prism/NullValueCheckStrategyPrism.java
+++ b/processor/src/main/java/org/mapstruct/ap/internal/prism/NullValueCheckStrategyPrism.java
@@ -7,7 +7,7 @@ package org.mapstruct.ap.internal.prism;
/**
- * Prism for the enum {@link org.mapstruct.SourceValuePresenceCheckStrategy}
+ * Prism for the enum {@link org.mapstruct.NullValueCheckStrategy}
*
* @author Sean Huang
*/
diff --git a/processor/src/main/java/org/mapstruct/ap/internal/processor/MapperCreationProcessor.java b/processor/src/main/java/org/mapstruct/ap/internal/processor/MapperCreationProcessor.java
index abc982863..3ccd45873 100644
--- a/processor/src/main/java/org/mapstruct/ap/internal/processor/MapperCreationProcessor.java
+++ b/processor/src/main/java/org/mapstruct/ap/internal/processor/MapperCreationProcessor.java
@@ -365,19 +365,11 @@ public class MapperCreationProcessor implements ModelElementProcessor