From bb099a55ee3c1b9ae7fc2fbad6c6f9c8fe3ae911 Mon Sep 17 00:00:00 2001 From: Orange Add <48479242+chenzijia12300@users.noreply.github.com> Date: Fri, 4 Nov 2022 05:02:58 +0800 Subject: [PATCH] #3040: Allow using only `BeanMapping#mappingControl` --- .../mapstruct/ap/internal/model/source/BeanMappingOptions.java | 1 + .../ap/test/subclassmapping/DeepCloneMethodMapper.java | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/processor/src/main/java/org/mapstruct/ap/internal/model/source/BeanMappingOptions.java b/processor/src/main/java/org/mapstruct/ap/internal/model/source/BeanMappingOptions.java index b73b4084f..90ad0aabb 100644 --- a/processor/src/main/java/org/mapstruct/ap/internal/model/source/BeanMappingOptions.java +++ b/processor/src/main/java/org/mapstruct/ap/internal/model/source/BeanMappingOptions.java @@ -92,6 +92,7 @@ public class BeanMappingOptions extends DelegatingOptions { private static boolean isConsistent(BeanMappingGem gem, ExecutableElement method, FormattingMessager messager) { if ( !gem.resultType().hasValue() + && !gem.mappingControl().hasValue() && !gem.qualifiedBy().hasValue() && !gem.qualifiedByName().hasValue() && !gem.ignoreUnmappedSourceProperties().hasValue() diff --git a/processor/src/test/java/org/mapstruct/ap/test/subclassmapping/DeepCloneMethodMapper.java b/processor/src/test/java/org/mapstruct/ap/test/subclassmapping/DeepCloneMethodMapper.java index 3f276b24c..036b98a31 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/subclassmapping/DeepCloneMethodMapper.java +++ b/processor/src/test/java/org/mapstruct/ap/test/subclassmapping/DeepCloneMethodMapper.java @@ -7,7 +7,6 @@ package org.mapstruct.ap.test.subclassmapping; import org.mapstruct.BeanMapping; import org.mapstruct.Mapper; -import org.mapstruct.NullValueMappingStrategy; import org.mapstruct.SubclassMapping; import org.mapstruct.ap.test.subclassmapping.mappables.Bike; import org.mapstruct.ap.test.subclassmapping.mappables.Car; @@ -21,6 +20,6 @@ public interface DeepCloneMethodMapper { @SubclassMapping( source = Car.class, target = Car.class ) @SubclassMapping( source = Bike.class, target = Bike.class ) - @BeanMapping( mappingControl = DeepClone.class, nullValueMappingStrategy = NullValueMappingStrategy.RETURN_NULL ) + @BeanMapping( mappingControl = DeepClone.class ) Vehicle map(Vehicle vehicle); }