Compare commits
2 Commits
003e1a59db
...
1a447f1954
Author | SHA1 | Date | |
---|---|---|---|
1a447f1954 | |||
0676972a83 |
@ -1,5 +1,8 @@
|
|||||||
package com.cubetiqs.money
|
package com.cubetiqs.money
|
||||||
|
|
||||||
|
import java.util.concurrent.ConcurrentHashMap
|
||||||
|
import java.util.concurrent.ConcurrentMap
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default money config in static object.
|
* Default money config in static object.
|
||||||
* Sample parse format: USD=1,KHR=4000,EUR=0.99
|
* Sample parse format: USD=1,KHR=4000,EUR=0.99
|
||||||
@ -14,10 +17,10 @@ object MoneyConfig {
|
|||||||
* Key is the currency
|
* Key is the currency
|
||||||
* Value is the rate
|
* Value is the rate
|
||||||
*/
|
*/
|
||||||
private val config: MutableMap<String, Double> = mutableMapOf()
|
private val config: ConcurrentMap<String, Double> = ConcurrentHashMap()
|
||||||
|
|
||||||
// use to format the money for each value, if have
|
// use to format the money for each value, if have
|
||||||
private val configFormatter: MutableMap<String, MoneyFormatProvider> = mutableMapOf()
|
private val configFormatter: ConcurrentMap<String, MoneyFormatProvider> = ConcurrentHashMap()
|
||||||
|
|
||||||
// use to identified for config dataset with prefix mode
|
// use to identified for config dataset with prefix mode
|
||||||
private var configPrefix: String = ""
|
private var configPrefix: String = ""
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package com.cubetiqs.money
|
package com.cubetiqs.money
|
||||||
|
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
infix fun StdMoney.exchangeTo(currency: StdMoney.Currency): StdMoney {
|
infix fun StdMoney.exchangeTo(currency: StdMoney.Currency): StdMoney {
|
||||||
return MoneyExchangeUtils.exchange(this, currency)
|
return MoneyExchangeUtils.exchange(this, currency)
|
||||||
}
|
}
|
||||||
@ -126,4 +128,9 @@ fun MoneyView.asStdMoney(): StdMoney {
|
|||||||
return this@asStdMoney.getValue()
|
return this@asStdMoney.getValue()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// detect currency symbol, if needed
|
||||||
|
fun StdMoney.Currency.findCurrency(): Currency? {
|
||||||
|
return Currency.getInstance(this.getCurrency())
|
||||||
}
|
}
|
@ -4,9 +4,12 @@ open class MoneyView(
|
|||||||
private var value: Number? = null,
|
private var value: Number? = null,
|
||||||
private var currency: String? = null,
|
private var currency: String? = null,
|
||||||
) : MoneyMixin {
|
) : MoneyMixin {
|
||||||
|
private var _currency: StdMoney.Currency? = null
|
||||||
|
|
||||||
constructor(money: StdMoney) : this() {
|
constructor(money: StdMoney) : this() {
|
||||||
|
this._currency = money.getCurrency()
|
||||||
this.value = money.getValue()
|
this.value = money.getValue()
|
||||||
this.currency = money.getCurrency().getCurrency()
|
this.currency = this._currency?.getCurrency()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getValue(): Double {
|
fun getValue(): Double {
|
||||||
@ -17,6 +20,10 @@ open class MoneyView(
|
|||||||
return currency
|
return currency
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun getSymbol(): String? {
|
||||||
|
return this._currency?.findCurrency()?.symbol
|
||||||
|
}
|
||||||
|
|
||||||
fun getFormat(): String {
|
fun getFormat(): String {
|
||||||
return MoneyConfig
|
return MoneyConfig
|
||||||
.getFormatter(getCurrency())
|
.getFormatter(getCurrency())
|
||||||
|
Loading…
Reference in New Issue
Block a user