# Post-processing a record: @AfterMapping on its builder, or a @DecoratedWith decorator --- ReceiptMapper: the hook receives ReceiptDto.Builder --- ReceiptDto[orderId=100, total=32.50, summary=order 100: 2 line(s)] public ReceiptDto toReceipt(Order order) { if ( order == null ) { return null; } ReceiptDto.Builder receiptDto = ReceiptDto.builder(); receiptDto.orderId( order.getId() ); receiptDto.total( orderMapper.sumOfLines( order.getLines() ) ); summarise( order, receiptDto ); return receiptDto.build(); } --- InvoiceMapper: @DecoratedWith, so two beans implement the interface --- bean invoiceMapperImpl -> InvoiceMapperImpl bean invoiceMapperImpl_ -> InvoiceMapperImpl_ injected InvoiceMapper (the @Primary one) : InvoiceDto[id=100, status=PAID, total=32.50, display=#100 [PAID] 32.50] the generated delegate on its own : InvoiceDto[id=100, status=PAID, total=32.50, display=null] --- the generated class that decorates --- @Component @Primary public class InvoiceMapperImpl extends InvoiceMapperDecorator { }