diff --git a/client/src/main/kotlin/com/r3corda/client/fxutils/AmountBindings.kt b/client/src/main/kotlin/com/r3corda/client/fxutils/AmountBindings.kt index cba9427136..91b41374d1 100644 --- a/client/src/main/kotlin/com/r3corda/client/fxutils/AmountBindings.kt +++ b/client/src/main/kotlin/com/r3corda/client/fxutils/AmountBindings.kt @@ -13,41 +13,39 @@ import java.util.stream.Collectors /** * Utility bindings for the [Amount] type, similar in spirit to [Bindings] */ -class AmountBindings { - companion object { - fun sum(amounts: ObservableList>, token: T) = EasyBind.map( - Bindings.createLongBinding({ - amounts.stream().collect(Collectors.summingLong { - require(it.token == token) - it.quantity - }) - }, arrayOf(amounts)) - ) { sum -> Amount(sum.toLong(), token) } +object AmountBindings { + fun sum(amounts: ObservableList>, token: T) = EasyBind.map( + Bindings.createLongBinding({ + amounts.stream().collect(Collectors.summingLong { + require(it.token == token) + it.quantity + }) + }, arrayOf(amounts)) + ) { sum -> Amount(sum.toLong(), token) } - fun exchange( - currency: ObservableValue, - exchangeRate: ObservableValue - ): ObservableValue) -> Long>> { - return EasyBind.combine(currency, exchangeRate) { currency, exchangeRate -> - Pair(currency) { amount: Amount -> - (exchangeRate.rate(amount.token, currency) * amount.quantity).toLong() - } - } - } - - fun sumAmountExchange( - amounts: ObservableList>, - currency: ObservableValue, - exchangeRate: ObservableValue - ): ObservableValue> { - return EasyBind.monadic(exchange(currency, exchangeRate)).flatMap { - val (currencyValue, exchange: (Amount) -> Long) = it - EasyBind.map( - Bindings.createLongBinding({ - amounts.stream().collect(Collectors.summingLong { exchange(it) }) - } , arrayOf(amounts)) - ) { Amount(it.toLong(), currencyValue) } + fun exchange( + currency: ObservableValue, + exchangeRate: ObservableValue + ): ObservableValue) -> Long>> { + return EasyBind.combine(currency, exchangeRate) { currency, exchangeRate -> + Pair(currency) { amount: Amount -> + (exchangeRate.rate(amount.token, currency) * amount.quantity).toLong() } } } + + fun sumAmountExchange( + amounts: ObservableList>, + currency: ObservableValue, + exchangeRate: ObservableValue + ): ObservableValue> { + return EasyBind.monadic(exchange(currency, exchangeRate)).flatMap { + val (currencyValue, exchange: (Amount) -> Long) = it + EasyBind.map( + Bindings.createLongBinding({ + amounts.stream().collect(Collectors.summingLong { exchange(it) }) + } , arrayOf(amounts)) + ) { Amount(it.toLong(), currencyValue) } + } + } }