diff --git a/processor/src/main/resources/org/mapstruct/ap/internal/model/MethodReference.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/MethodReference.ftl index 0706a3a1e..7b603d784 100644 --- a/processor/src/main/resources/org/mapstruct/ap/internal/model/MethodReference.ftl +++ b/processor/src/main/resources/org/mapstruct/ap/internal/model/MethodReference.ftl @@ -21,44 +21,57 @@ --> <@compress single_line=true> <#-- method is either internal to the mapper class, or external (via uses) declaringMapper!=null --> - <#if declaringMapper??><#if static><@includeModel object=declaringMapper.type/><#else>${mapperVariableName}.<@methodCall/> + <#if declaringMapper??> + <#if static><@includeModel object=declaringMapper.type/><#else>${mapperVariableName}.<@methodCall/> <#-- method is provided by a context parameter --> - <#elseif providingParameter??><#if static><@includeModel object=providingParameter.type/><#else>${providingParameter.name}.<@methodCall/> + <#elseif providingParameter??> + <#if static><@includeModel object=providingParameter.type/><#else>${providingParameter.name}.<@methodCall/> <#-- method is referenced java8 static method in the mapper to implement (interface) --> - <#elseif static><@includeModel object=definingType/>.<@methodCall/> + <#elseif static> + <@includeModel object=definingType/>.<@methodCall/> <#else> - <@methodCall/> + <@methodCall/> - <#macro methodCall> - <@compress> - ${name}<#if (parameterBindings?size > 0)>( <@arguments/> )<#else>() - - - <#macro arguments> - <#list parameterBindings as param> - <#if param.targetType> - <#-- a class is passed on for casting, see @TargetType --> - <@includeModel object=ext.targetType raw=true/>.class<#t> - <#elseif param.mappingTarget> - ${ext.targetBeanName}<#if ext.targetReadAccessorName??>.${ext.targetReadAccessorName}<#t> - <#elseif param.mappingContext> - ${param.variableName}<#t> - <#elseif assignment??> - <@_assignment/><#t> - <#else> - ${param.variableName}<#t> - + +<#-- + macro: methodCall + purpose: the actual method call (stuff following the dot) +--> +<#macro methodCall> + <#lt>${name}<#if (parameterBindings?size > 0)>( <@arguments/> )<#else>() + +<#-- + macro: arguments + purpose: the arguments in the method call +--> +<#macro arguments> + <#list parameterBindings as param> + <#if param.targetType> + <#-- a class is passed on for casting, see @TargetType --> + <@includeModel object=ext.targetType raw=true/>.class<#t> + <#elseif param.mappingTarget> + ${ext.targetBeanName}<#if ext.targetReadAccessorName??>.${ext.targetReadAccessorName}<#t> + <#elseif param.mappingContext> + ${param.variableName}<#t> + <#elseif assignment??> + <@_assignment/><#t> + <#else> + ${param.variableName}<#t> + <#if param_has_next>, <#t> - <#-- context parameter, e.g. for builtin methods concerning date conversion --> - <#if contextParam??>, ${contextParam}<#t> - - <#macro _assignment> - <@includeModel object=assignment - targetBeanName=ext.targetBeanName + <#-- context parameter, e.g. for builtin methods concerning date conversion --> + <#if contextParam??>, ${contextParam}<#t> + +<#-- + macro: assignment + purpose: note: takes its targetyType from the singleSourceParameterType +--> +<#macro _assignment> + <@includeModel object=assignment + targetBeanName=ext.targetBeanName existingInstanceMapping=ext.existingInstanceMapping targetReadAccessorName=ext.targetReadAccessorName targetWriteAccessorName=ext.targetWriteAccessorName targetType=singleSourceParameterType/> - - + \ No newline at end of file