package Ġdev . d nih ze . rev or ate . data . local . mapper Ċ Ċ import Ġdev . d nih ze . rev or ate . utils . common . Mapper Ċ import Ġdev . d nih ze . rev or ate . data . mapper . Currency ISO Code Mapper Ċ import Ġdev . d nih ze . rev or ate . model . Exchange Rate Ċ import Ġdev . d nih ze . rev or ate . model . Exchange Table Ċ import Ġdev . d nih ze . rev or ate . model . impl . Ordered Exchange Table Ċ import Ġdev . d nih ze . rev or ate . model . local . Exchange Rate DB Entity Ċ import Ġjava . math . BigDecimal Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Singleton Ċ class ĠExchange Table Local Mapper Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġcurrency ISO Code Mapper : ĠCurrency ISO Code Mapper Ċ ): ĠMapper < List < Exchange Rate DB Entity >, ĠExchange Table > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġmap ( from : ĠList < Exchange Rate DB Entity >): ĠExchange Table Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrates Ġ= Ġfrom . map NotNull Ġ{ Ġentity Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfor Currency Ġ= Ġcurrency ISO Code Mapper . map ( entity . for Currency ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġof Currency Ġ= Ġcurrency ISO Code Mapper . map ( entity . of Currency ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( for Currency Ġ!= Ġnull Ġ&& Ġof Currency Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExchange Rate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Currency Ġ= Ġfor Currency , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrate Ġ= ĠBigDecimal ( entity . rate ). set Scale ( 1 0 ). toDouble (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġof Currency Ġ= Ġof Currency ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠOrdered Exchange Table ( rates ) ĊĠĠĠ Ġ} Ċ }