From 17ffcfe104c1153e45b9451728f65e97c487c241 Mon Sep 17 00:00:00 2001 From: Gunnar Morling Date: Sun, 23 Jun 2013 17:50:07 +0200 Subject: [PATCH] #32 Simplifying Method type --- .../mapstruct/ap/MapperGenerationVisitor.java | 37 +++++++++---------- .../org/mapstruct/ap/model/source/Method.java | 24 +----------- 2 files changed, 20 insertions(+), 41 deletions(-) diff --git a/processor/src/main/java/org/mapstruct/ap/MapperGenerationVisitor.java b/processor/src/main/java/org/mapstruct/ap/MapperGenerationVisitor.java index 979924aec..6eac511b0 100644 --- a/processor/src/main/java/org/mapstruct/ap/MapperGenerationVisitor.java +++ b/processor/src/main/java/org/mapstruct/ap/MapperGenerationVisitor.java @@ -240,7 +240,14 @@ public class MapperGenerationVisitor extends ElementKindVisitor6 { elementUtils.getAllMembers( returnTypeElement ) ); - reportErrorIfMappedPropertiesDontExist( method ); + Set sourceProperties = Executables.getPropertyNames( + Filters.getterMethodsIn( sourceGetters ) + ); + Set targetProperties = Executables.getPropertyNames( + Filters.setterMethodsIn( targetSetters ) + ); + + reportErrorIfMappedPropertiesDontExist( method, sourceProperties, targetProperties ); for ( ExecutableElement getterMethod : sourceGetters ) { String sourcePropertyName = Executables.getPropertyName( getterMethod ); @@ -267,6 +274,7 @@ public class MapperGenerationVisitor extends ElementKindVisitor6 { reportErrorForUnmappedTargetPropertiesIfRequired( method, unmappedTargetPolicy, + targetProperties, mappedTargetProperties ); @@ -338,17 +346,18 @@ public class MapperGenerationVisitor extends ElementKindVisitor6 { private void reportErrorForUnmappedTargetPropertiesIfRequired(Method method, ReportingPolicy unmappedTargetPolicy, + Set targetProperties, Set mappedTargetProperties) { - if ( method.getTargetProeprties().size() > mappedTargetProperties.size() && + if ( targetProperties.size() > mappedTargetProperties.size() && unmappedTargetPolicy.requiresReport() ) { - method.getTargetProeprties().removeAll( mappedTargetProperties ); + targetProperties.removeAll( mappedTargetProperties ); printMessage( unmappedTargetPolicy, MessageFormat.format( "Unmapped target {0,choice,1#property|1 { for ( ExecutableElement method : methodsIn( element.getEnclosedElements() ) ) { Parameter parameter = retrieveParameter( method ); Type returnType = retrieveReturnType( method ); - Element returnTypeElement = typeUtils.asElement( method.getReturnType() ); - Element parameterElement = typeUtils.asElement( method.getParameters().get( 0 ).asType() ); boolean mappingErroneous = false; @@ -496,21 +503,12 @@ public class MapperGenerationVisitor extends ElementKindVisitor6 { //add method with property mappings if an implementation needs to be generated if ( implementationRequired ) { - Set sourceProperties = Executables.getPropertyNames( - Filters.getterMethodsIn( parameterElement.getEnclosedElements() ) - ); - Set targetProperties = Executables.getPropertyNames( - Filters.setterMethodsIn( returnTypeElement.getEnclosedElements() ) - ); - methods.add( Method.forMethodRequiringImplementation( method, parameter.getName(), parameter.getType(), returnType, - sourceProperties, - targetProperties, getMappings( method ) ) ); @@ -544,9 +542,10 @@ public class MapperGenerationVisitor extends ElementKindVisitor6 { return methods; } - private void reportErrorIfMappedPropertiesDontExist(Method method) { + private void reportErrorIfMappedPropertiesDontExist(Method method, Set sourceProperties, + Set targetProperties) { for ( Mapping mappedProperty : method.getMappings().values() ) { - if ( !method.getSourceProperties().contains( mappedProperty.getSourceName() ) ) { + if ( !sourceProperties.contains( mappedProperty.getSourceName() ) ) { printMessage( ReportingPolicy.ERROR, String.format( @@ -556,7 +555,7 @@ public class MapperGenerationVisitor extends ElementKindVisitor6 { ), method.getExecutable(), mappedProperty.getMirror(), mappedProperty.getSourceAnnotationValue() ); } - if ( !method.getTargetProeprties().contains( mappedProperty.getTargetName() ) ) { + if ( !targetProperties.contains( mappedProperty.getTargetName() ) ) { printMessage( ReportingPolicy.ERROR, String.format( diff --git a/processor/src/main/java/org/mapstruct/ap/model/source/Method.java b/processor/src/main/java/org/mapstruct/ap/model/source/Method.java index 13efa0fbe..087e06146 100644 --- a/processor/src/main/java/org/mapstruct/ap/model/source/Method.java +++ b/processor/src/main/java/org/mapstruct/ap/model/source/Method.java @@ -20,7 +20,6 @@ package org.mapstruct.ap.model.source; import java.util.Collections; import java.util.Map; -import java.util.Set; import javax.lang.model.element.ExecutableElement; import org.mapstruct.ap.model.Type; @@ -38,14 +37,10 @@ public class Method { private final String parameterName; private final Type sourceType; private final Type targetType; - private final Set sourceProperties; - private final Set targetProeprties; private Map mappings; public static Method forMethodRequiringImplementation(ExecutableElement executable, String parameterName, - Type sourceType, - Type targetType, Set sourceProperties, - Set targetProperties, + Type sourceType, Type targetType, Map mappings) { return new Method( @@ -54,8 +49,6 @@ public class Method { parameterName, sourceType, targetType, - sourceProperties, - targetProperties, mappings ); } @@ -69,22 +62,17 @@ public class Method { parameterName, sourceType, targetType, - Collections.emptySet(), - Collections.emptySet(), Collections.emptyMap() ); } private Method(Type declaringMapper, ExecutableElement executable, String parameterName, Type sourceType, - Type targetType, Set sourceProperties, Set targetProperties, - Map mappings) { + Type targetType, Map mappings) { this.declaringMapper = declaringMapper; this.executable = executable; this.parameterName = parameterName; this.sourceType = sourceType; this.targetType = targetType; - this.sourceProperties = sourceProperties; - this.targetProeprties = targetProperties; this.mappings = mappings; } @@ -119,14 +107,6 @@ public class Method { return targetType; } - public Set getSourceProperties() { - return sourceProperties; - } - - public Set getTargetProeprties() { - return targetProeprties; - } - public Map getMappings() { return mappings; }