package Ġp cb . uw u . amount . derived . econom ics Ċ Ċ import Ġp cb . uw u . core . Composite Unit Amount Ċ import Ġp cb . uw u . core . Magnitude Ċ import Ġp cb . uw u . core . Magnitude . NAT UR AL Ċ import Ġp cb . uw u . core . Unit Amount Ċ import Ġp cb . uw u . unit . derived . ac ou st ics . Frequency Unit Ċ import Ġp cb . uw u . unit . derived . econom ics . Currency Unit Ċ import Ġp cb . uw u . unit . derived . econom ics . Rent Unit Ċ import Ġp cb . uw u . util . Unit Amount Utils Ċ Ċ class ĠInter est Rate Ġ: ĠComposite Unit Amount < Frequency Unit > Ċ { ĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġconstructor ( amount : ĠNumber , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmagnitude : ĠM agnitude Ġ= ĠN ATUR AL , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit : ĠFrequency Unit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ: Ġsuper ( amount , Ġmagnitude , Ġunit ) ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġconstructor ( amount : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmagnitude : ĠM agnitude Ġ= ĠN ATUR AL , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit : ĠFrequency Unit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ: Ġsuper ( amount , Ġmagnitude , Ġunit ) ĊĊĠĠĠ Ġ// Ġregion ĠUnit Amount ĊĊĠĠĠ Ġ@ Suppress (" PARAMETER _ NAME _ CHANGED _ ON _ OVERRIDE ") ĊĠĠĠ Ġoverride Ġfun Ġplus ( interest Rate : ĠUnit Amount < Frequency Unit >) Ġ= ĊĠĠĠĠĠĠĠ ĠInter est Rate ( amount Ġ= Ġthis . amount Ġ+ Ġ( interest Rate Ġto Ġthis . unit ). amount , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit Ġ= Ġthis . unit ) ĊĊĠĠĠ Ġ@ Suppress (" PARAMETER _ NAME _ CHANGED _ ON _ OVERRIDE ") ĊĠĠĠ Ġoverride Ġfun Ġminus ( interest Rate : ĠUnit Amount < Frequency Unit >) Ġ= ĊĠĠĠĠĠĠĠ ĠInter est Rate ( amount Ġ= Ġthis . amount Ġ- Ġ( interest Rate Ġto Ġthis . unit ). amount , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit Ġ= Ġthis . unit ) ĊĊĠĠĠ Ġoverride Ġfun Ġtimes ( scalar : ĠNumber ) Ġ= ĊĠĠĠĠĠĠĠ ĠInter est Rate ( amount Ġ= Ġthis . amount Ġ* Ġscalar , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit Ġ= Ġthis . unit ) ĊĊĠĠĠ Ġoverride Ġfun Ġdiv ( scalar : ĠNumber ) Ġ= ĊĠĠĠĠĠĠĠ ĠInter est Rate ( amount Ġ= Ġthis . amount Ġ/ Ġscalar , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit Ġ= Ġthis . unit ) ĊĊĠĠĠ Ġoverride Ġfun Ġto ( unit : ĠFrequency Unit ) Ġ= ĊĠĠĠĠĠĠĠ ĠInter est Rate ( amount Ġ= ĠUnit Amount Utils . get Amount In ( unit Amount Ġ= Ġthis , Ġnew Unit Ġ= Ġunit ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit Ġ= Ġunit ) ĊĊĠĠĠ Ġ// Ġend region ĊĊĠĠĠ Ġ// Ġregion Ġcomposition ĊĊĠĠĠ Ġfun Ġtimes ( currency : ĠCurrency ) Ġ= ĊĠĠĠĠĠĠĠ ĠR ent ( amount Ġ= ĠUnit Amount Utils . times ( this , Ġcurrency . amount . amount ), ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit Ġ= ĠR ent Unit ( interest Rate Unit Ġ= Ġthis . unit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrency Ġ= Ġcurrency . unit )) ĊĊĠĠĠ Ġfun Ġtimes ( de bt : ĠDeb t ) Ġ= ĊĠĠĠĠĠĠĠ ĠCurrency ( amount Ġ= Ġ( this Ġ* Ġde bt ). amount , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunit Ġ= Ġthis . unit . unit Counter . find Unit ( Currency Unit :: class ) !! ) ĊĊĠĠĠ Ġ// Ġend region Ċ } Ċ