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" -->
<#list annotations as annotation>
    <#nt><@includeModel object=annotation/>

<#if overridden>@Override
<#lt>${accessibility.keyword} <@includeModel object=returnType/> ${name}(<#list parameters as param><@includeModel object=param/><#if param_has_next>, )<@throws/> {
    <#list beforeMappingReferencesWithoutMappingTarget as callback>
        <@includeModel object=callback targetBeanName=resultName targetType=resultType/>
        <#if !callback_has_next>

        
    
    if ( ${sourceParameter.name} == null ) {
        <#if nullTarget.targetAsException>throw new <@includeModel object=unexpectedValueMappingException />( "Unexpected enum constant: " + ${sourceParameter.name} );<#else>return <@writeTarget target=nullTarget.target/>;
    }

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

    switch ( ${sourceParameter.name} ) {
    <#list valueMappings as valueMapping>
        case <@writeSource source=valueMapping.source/>: <#if valueMapping.targetAsException >throw new <@includeModel object=unexpectedValueMappingException />( "Unexpected enum constant: " + ${sourceParameter.name} );<#else>${resultName} = <@writeTarget target=valueMapping.target/>;
        break;
    
    default: <#if defaultTarget.targetAsException >throw new <@includeModel object=unexpectedValueMappingException />( "Unexpected enum constant: " + ${sourceParameter.name} )<#else>${resultName} = <@writeTarget target=defaultTarget.target/>;
    }
    <#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 && defaultTarget.targetAsException)>
    return ${resultName};
    
}
<#macro writeSource source="">
    <#if sourceParameter.type.enumType>
        ${source}<#t>
    <#elseif sourceParameter.type.string>
        "${source}"<#t>
    

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

<#macro throws>
    <#if (thrownTypes?size > 0)><#lt> throws <@compress single_line=true>
        <#list thrownTypes as exceptionType>
            <@includeModel object=exceptionType/>
            <#if exceptionType_has_next>, <#t>
        
    





© 2015 - 2024 Weber Informatics LLC | Privacy Policy