diff --git a/processor/src/main/java/org/mapstruct/ap/internal/model/dependency/GraphAnalyzer.java b/processor/src/main/java/org/mapstruct/ap/internal/model/dependency/GraphAnalyzer.java index b9c4540d7..06acfc24b 100644 --- a/processor/src/main/java/org/mapstruct/ap/internal/model/dependency/GraphAnalyzer.java +++ b/processor/src/main/java/org/mapstruct/ap/internal/model/dependency/GraphAnalyzer.java @@ -116,10 +116,10 @@ public class GraphAnalyzer { private final Map nodes = new LinkedHashMap<>(); public GraphAnalyzerBuilder withNode(String name, Set descendants) { - Node node = getNode( name ); + Node node = nodes.computeIfAbsent( name, Node::new ); for ( String descendant : descendants ) { - node.addDescendant( getNode( descendant ) ); + node.addDescendant( nodes.computeIfAbsent( descendant, Node::new ) ); } return this; @@ -140,16 +140,5 @@ public class GraphAnalyzer { graphAnalyzer.analyze(); return graphAnalyzer; } - - private Node getNode(String name) { - Node node = nodes.get( name ); - - if ( node == null ) { - node = new Node( name ); - nodes.put( name, node ); - } - - return node; - } } } 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 9c05e382a..d28205ca0 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 @@ -128,7 +128,7 @@ public class BeanMapping { null, ReportingPolicyPrism.IGNORE, false, - Collections.emptyList(), + Collections.emptyList(), null ); } 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 5e3de4208..c2fe0a4e2 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 @@ -132,7 +132,7 @@ public class Mapping { boolean resultTypeIsDefined = mappingPrism.values.resultType() != null; Set dependsOn = mappingPrism.dependsOn() != null ? new LinkedHashSet( mappingPrism.dependsOn() ) : - Collections.emptySet(); + Collections.emptySet(); FormattingParameters formattingParam = new FormattingParameters( dateFormat, @@ -214,116 +214,59 @@ public class Mapping { return false; } + Message message = null; if ( !mappingPrism.source().isEmpty() && mappingPrism.values.constant() != null ) { - messager.printMessage( - element, - mappingPrism.mirror, - Message.PROPERTYMAPPING_SOURCE_AND_CONSTANT_BOTH_DEFINED - ); - return false; + message = Message.PROPERTYMAPPING_SOURCE_AND_CONSTANT_BOTH_DEFINED; } else if ( !mappingPrism.source().isEmpty() && mappingPrism.values.expression() != null ) { - messager.printMessage( - element, - mappingPrism.mirror, - Message.PROPERTYMAPPING_SOURCE_AND_EXPRESSION_BOTH_DEFINED - ); - return false; + message = Message.PROPERTYMAPPING_SOURCE_AND_EXPRESSION_BOTH_DEFINED; } else if ( mappingPrism.values.expression() != null && mappingPrism.values.constant() != null ) { - messager.printMessage( - element, - mappingPrism.mirror, - Message.PROPERTYMAPPING_EXPRESSION_AND_CONSTANT_BOTH_DEFINED - ); - return false; + message = Message.PROPERTYMAPPING_EXPRESSION_AND_CONSTANT_BOTH_DEFINED; } else if ( mappingPrism.values.expression() != null && mappingPrism.values.defaultValue() != null ) { - messager.printMessage( - element, - mappingPrism.mirror, - Message.PROPERTYMAPPING_EXPRESSION_AND_DEFAULT_VALUE_BOTH_DEFINED - ); - return false; + message = Message.PROPERTYMAPPING_EXPRESSION_AND_DEFAULT_VALUE_BOTH_DEFINED; } else if ( mappingPrism.values.constant() != null && mappingPrism.values.defaultValue() != null ) { - messager.printMessage( - element, - mappingPrism.mirror, - Message.PROPERTYMAPPING_CONSTANT_AND_DEFAULT_VALUE_BOTH_DEFINED - ); - return false; + message = Message.PROPERTYMAPPING_CONSTANT_AND_DEFAULT_VALUE_BOTH_DEFINED; } else if ( mappingPrism.values.expression() != null && mappingPrism.values.defaultExpression() != null ) { - messager.printMessage( - element, - mappingPrism.mirror, - Message.PROPERTYMAPPING_EXPRESSION_AND_DEFAULT_EXPRESSION_BOTH_DEFINED - ); - return false; + message = Message.PROPERTYMAPPING_EXPRESSION_AND_DEFAULT_EXPRESSION_BOTH_DEFINED; } else if ( mappingPrism.values.constant() != null && mappingPrism.values.defaultExpression() != null ) { - messager.printMessage( - element, - mappingPrism.mirror, - Message.PROPERTYMAPPING_CONSTANT_AND_DEFAULT_EXPRESSION_BOTH_DEFINED - ); - return false; + message = Message.PROPERTYMAPPING_CONSTANT_AND_DEFAULT_EXPRESSION_BOTH_DEFINED; } else if ( mappingPrism.values.defaultValue() != null && mappingPrism.values.defaultExpression() != null ) { - messager.printMessage( - element, - mappingPrism.mirror, - Message.PROPERTYMAPPING_DEFAULT_VALUE_AND_DEFAULT_EXPRESSION_BOTH_DEFINED - ); - return false; + message = Message.PROPERTYMAPPING_DEFAULT_VALUE_AND_DEFAULT_EXPRESSION_BOTH_DEFINED; } else if ( mappingPrism.values.nullValuePropertyMappingStrategy() != null && mappingPrism.values.defaultValue() != null ) { - messager.printMessage( - element, - mappingPrism.mirror, - Message.PROPERTYMAPPING_DEFAULT_VALUE_AND_NVPMS - ); - return false; + message = Message.PROPERTYMAPPING_DEFAULT_VALUE_AND_NVPMS; } else if ( mappingPrism.values.nullValuePropertyMappingStrategy() != null && mappingPrism.values.constant() != null ) { - messager.printMessage( - element, - mappingPrism.mirror, - Message.PROPERTYMAPPING_CONSTANT_VALUE_AND_NVPMS - ); - return false; + message = Message.PROPERTYMAPPING_CONSTANT_VALUE_AND_NVPMS; } else if ( mappingPrism.values.nullValuePropertyMappingStrategy() != null && mappingPrism.values.expression() != null ) { - messager.printMessage( - element, - mappingPrism.mirror, - Message.PROPERTYMAPPING_EXPRESSION_VALUE_AND_NVPMS - ); - return false; + message = Message.PROPERTYMAPPING_EXPRESSION_VALUE_AND_NVPMS; } else if ( mappingPrism.values.nullValuePropertyMappingStrategy() != null && mappingPrism.values.defaultExpression() != null ) { - messager.printMessage( - element, - mappingPrism.mirror, - Message.PROPERTYMAPPING_DEFAULT_EXPERSSION_AND_NVPMS - ); - return false; + message = Message.PROPERTYMAPPING_DEFAULT_EXPERSSION_AND_NVPMS; } else if ( mappingPrism.values.nullValuePropertyMappingStrategy() != null && mappingPrism.ignore() != null && mappingPrism.ignore() ) { - messager.printMessage( - element, - mappingPrism.mirror, - Message.PROPERTYMAPPING_IGNORE_AND_NVPMS - ); + message = Message.PROPERTYMAPPING_IGNORE_AND_NVPMS; + } + + if ( message == null ) { + return true; + } + else { + messager.printMessage( element, mappingPrism.mirror, message ); return false; } - return true; } @SuppressWarnings("checkstyle:parameternumber") @@ -576,7 +519,7 @@ public class Mapping { formattingParameters, selectionParameters, dependsOnAnnotationValue, - Collections.emptySet(), + Collections.emptySet(), nullValueCheckStrategy, nullValuePropertyMappingStrategy, new InheritContext( true, false, method )