All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.mapstruct.ap.internal.model.ValueMappingMethod.ftl Maven / Gradle / Ivy

There is a newer version: 1.6.3
Show newest version
<#--

    Copyright MapStruct Authors.

    Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0

-->
<#-- @ftlvariable name="" type="org.mapstruct.ap.internal.model.ValueMappingMethod" -->
<#if overridden>@Override
<#lt>${accessibility.keyword} <@includeModel object=returnType/> ${name}(<#list parameters as param><@includeModel object=param/><#if param_has_next>, ) {
    <#list beforeMappingReferencesWithoutMappingTarget as callback>
        <@includeModel object=callback targetBeanName=resultName targetType=resultType/>
        <#if !callback_has_next>

        
    
    if ( ${sourceParameter.name} == null ) {
        return <@writeTarget target=nullTarget/>;
    }

    <@includeModel object=resultType/> ${resultName};

    switch ( ${sourceParameter.name} ) {
    <#list valueMappings as valueMapping>
        case <@writeSource source=valueMapping.source/>: ${resultName} = <@writeTarget target=valueMapping.target/>;
        break;
    
    default: <#if throwIllegalArgumentException>throw new IllegalArgumentException( "Unexpected enum constant: " + ${sourceParameter.name} )<#else>${resultName} = <@writeTarget target=defaultTarget/>;
    }
    <#list beforeMappingReferencesWithMappingTarget as callback>
        <#if callback_index = 0>

        
        <@includeModel object=callback targetBeanName=resultName targetType=resultType/>
    
    <#list afterMappingReferences as callback>
        <#if callback_index = 0>

        
        <@includeModel object=callback targetBeanName=resultName targetType=resultType/>
    

    <#if !(valueMappings.empty && throwIllegalArgumentException)>
    return ${resultName};
    
}
<#macro writeSource source="">
    <@compress single_line=true>
        <#if sourceParameter.type.enumType>
             ${source}
        <#elseif sourceParameter.type.string>
            "${source}"
        
    

<#macro writeTarget target="">
    <@compress single_line=true>
        <#if target?has_content>
            <#if returnType.enumType>
                <@includeModel object=returnType/>.${target}
            <#elseif returnType.string>
                "${target}"
            
        <#else>
            null
        
    




© 2015 - 2024 Weber Informatics LLC | Privacy Policy