diff --git a/src/main/kotlin/com/cubetiqs/libra/moneyutils/Money.kt b/src/main/kotlin/com/cubetiqs/libra/moneyutils/Money.kt index f3d0359..1e41823 100644 --- a/src/main/kotlin/com/cubetiqs/libra/moneyutils/Money.kt +++ b/src/main/kotlin/com/cubetiqs/libra/moneyutils/Money.kt @@ -1,7 +1,26 @@ package com.cubetiqs.libra.moneyutils -data class Money( - var value: Double, - var currency: String = "USD" -) +open class Money( + private var value: Double, + private var currency: String = "USD" +) : StdMoney { + override fun getValue(): Double { + return this.value + } + fun setValue(value: Double) { + this.value = value + } + + override fun getCurrency(): String { + return this.currency.toUpperCase() + } + + fun setCurrency(currency: String) { + this.currency = currency + } + + override fun toString(): String { + return "Money(value=${getValue()}, currency='${getCurrency()}')" + } +} diff --git a/src/main/kotlin/com/cubetiqs/libra/moneyutils/StdMoneyFormation.kt b/src/main/kotlin/com/cubetiqs/libra/moneyutils/StdMoneyFormation.kt new file mode 100644 index 0000000..2293f6c --- /dev/null +++ b/src/main/kotlin/com/cubetiqs/libra/moneyutils/StdMoneyFormation.kt @@ -0,0 +1,6 @@ +package com.cubetiqs.libra.moneyutils + +interface StdMoneyFormation { + fun format(): String + fun toMoneyString(overrideSymbol: Char? = null): String +} \ No newline at end of file