There should be support for a real expression language in Mapping#expression():
@Mapping(target="foo", source="bar.firstName + ' ' + bar.lastName")
Possible candidates are Unified EL or SpEL. The latter allows constructor invocations which would be very useful. The general idea is to translate the given expressions into equivalent Java source code which then is embedded into the generated mapping method. Bot UEL (via JUEL) and SpEL allow to access and traverse the AST of given expressions for that purpose.