#92 Some more clean-up

This commit is contained in:
Gunnar Morling 2014-01-21 00:45:14 +01:00
parent d7864e0566
commit 196d91324a

View File

@ -27,6 +27,7 @@ import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import javax.annotation.processing.Messager; import javax.annotation.processing.Messager;
import javax.lang.model.element.ExecutableElement; import javax.lang.model.element.ExecutableElement;
import javax.lang.model.element.TypeElement; import javax.lang.model.element.TypeElement;
@ -230,9 +231,9 @@ public class MapperCreationProcessor implements ModelElementProcessor<List<Metho
return reversed; return reversed;
} }
private PropertyMapping getPropertyMapping(List<Method> methods, Method method, ExecutableElement setterMethod, private PropertyMapping getPropertyMapping(List<Method> methods, Method method, ExecutableElement targetAcessor,
Parameter parameter) { Parameter parameter) {
String targetPropertyName = executables.getPropertyName( setterMethod ); String targetPropertyName = executables.getPropertyName( targetAcessor );
Mapping mapping = method.getMapping( targetPropertyName ); Mapping mapping = method.getMapping( targetPropertyName );
String dateFormat = mapping != null ? mapping.getDateFormat() : null; String dateFormat = mapping != null ? mapping.getDateFormat() : null;
String sourcePropertyName = mapping != null ? mapping.getSourcePropertyName() : targetPropertyName; String sourcePropertyName = mapping != null ? mapping.getSourcePropertyName() : targetPropertyName;
@ -241,31 +242,32 @@ public class MapperCreationProcessor implements ModelElementProcessor<List<Metho
elementUtils.getAllMembers( parameterElement ) elementUtils.getAllMembers( parameterElement )
); );
for ( ExecutableElement getter : sourceGetters ) { for ( ExecutableElement sourceAccessor : sourceGetters ) {
List<Mapping> sourceMappings = method.getMappings().get( sourcePropertyName ); List<Mapping> sourceMappings = method.getMappings().get( sourcePropertyName );
if ( method.getMappings().containsKey( sourcePropertyName ) ) { if ( method.getMappings().containsKey( sourcePropertyName ) ) {
for ( Mapping sourceMapping : sourceMappings ) { for ( Mapping sourceMapping : sourceMappings ) {
boolean mapsToOtherTarget = !sourceMapping.getTargetName().equals( targetPropertyName ); boolean mapsToOtherTarget = !sourceMapping.getTargetName().equals( targetPropertyName );
if ( executables.getPropertyName( getter ).equals( sourcePropertyName ) && !mapsToOtherTarget ) { if ( executables.getPropertyName( sourceAccessor ).equals( sourcePropertyName ) &&
!mapsToOtherTarget ) {
return getPropertyMapping( return getPropertyMapping(
methods, methods,
method, method,
parameter, parameter,
getter, sourceAccessor,
setterMethod, targetAcessor,
dateFormat dateFormat
); );
} }
} }
} }
else if ( executables.getPropertyName( getter ).equals( sourcePropertyName ) ) { else if ( executables.getPropertyName( sourceAccessor ).equals( sourcePropertyName ) ) {
return getPropertyMapping( return getPropertyMapping(
methods, methods,
method, method,
parameter, parameter,
getter, sourceAccessor,
setterMethod, targetAcessor,
dateFormat dateFormat
); );
} }
@ -482,18 +484,18 @@ public class MapperCreationProcessor implements ModelElementProcessor<List<Metho
} }
private PropertyMapping getPropertyMapping(List<Method> methods, Method method, Parameter parameter, private PropertyMapping getPropertyMapping(List<Method> methods, Method method, Parameter parameter,
ExecutableElement getterMethod, ExecutableElement setterMethod, ExecutableElement sourceAccessor, ExecutableElement targetAcessor,
String dateFormat) { String dateFormat) {
Type sourceType = executables.retrieveReturnType( getterMethod ); Type sourceType = executables.retrieveReturnType( sourceAccessor );
Type targetType = null; Type targetType = null;
String conversionStr = null; String conversionString = null;
if ( executables.isSetterMethod( setterMethod ) ) { conversionString = parameter.getName() + "." + sourceAccessor.getSimpleName().toString() + "()";
targetType = executables.retrieveSingleParameter( setterMethod ).getType();
conversionStr = parameter.getName() + "." + getterMethod.getSimpleName().toString() + "()"; if ( executables.isSetterMethod( targetAcessor ) ) {
targetType = executables.retrieveSingleParameter( targetAcessor ).getType();
} }
else if ( executables.isGetterMethod( setterMethod ) ) { else if ( executables.isGetterMethod( targetAcessor ) ) {
targetType = executables.retrieveReturnType( setterMethod ); targetType = executables.retrieveReturnType( targetAcessor );
conversionStr = parameter.getName() + "." + getterMethod.getSimpleName().toString() + "()";
} }
MappingMethodReference propertyMappingMethod = getMappingMethodReference( methods, sourceType, targetType ); MappingMethodReference propertyMappingMethod = getMappingMethodReference( methods, sourceType, targetType );
@ -501,16 +503,16 @@ public class MapperCreationProcessor implements ModelElementProcessor<List<Metho
sourceType, sourceType,
targetType, targetType,
dateFormat, dateFormat,
conversionStr conversionString
); );
PropertyMapping property = new PropertyMapping( PropertyMapping property = new PropertyMapping(
parameter.getName(), parameter.getName(),
executables.getPropertyName( getterMethod ), executables.getPropertyName( sourceAccessor ),
getterMethod.getSimpleName().toString(), sourceAccessor.getSimpleName().toString(),
sourceType, sourceType,
executables.getPropertyName( setterMethod ), executables.getPropertyName( targetAcessor ),
setterMethod.getSimpleName().toString(), targetAcessor.getSimpleName().toString(),
targetType, targetType,
propertyMappingMethod, propertyMappingMethod,
conversion conversion