mirror of
https://github.com/mapstruct/mapstruct.git
synced 2025-07-12 00:00:08 +08:00
#92 Some more clean-up
This commit is contained in:
parent
d7864e0566
commit
196d91324a
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user