package ivl.android.moneybalance.data; import ivl.android.moneybalance.CurrencyHelper; import java.util.Locale; public class Currency extends DataObject { private final long calculationId; private String currencyCode; private long decimalFactor; private double rateThis; private double rateMain; public Currency(long calculationId) { this.calculationId = calculationId; setExchangeRate(1.0, 1.0); decimalFactor = 1; } public long getCalculationId() { return calculationId; } public String getCurrencyCode() { return currencyCode; } public void setCurrencyCode(String currencyCode) { this.currencyCode = currencyCode; java.util.Currency jc = java.util.Currency.getInstance(currencyCode); decimalFactor = Math.round(Math.pow(10, jc.getDefaultFractionDigits())); } public long getDecimalFactor() { return decimalFactor; } public double getExchangeRateThis() { return rateThis; } public double getExchangeRateMain() { return rateMain; } public void setExchangeRate(double rateThis, double rateMain) { this.rateThis = rateThis; this.rateMain = rateMain; } public String getSymbol() { java.util.Currency currency = java.util.Currency.getInstance(currencyCode); return currency.getSymbol(); } public CurrencyHelper getCurrencyHelper() { java.util.Currency currency = java.util.Currency.getInstance(currencyCode); return new CurrencyHelper(currency); } public CurrencyHelper getCurrencyHelper(Locale locale) { java.util.Currency currency = java.util.Currency.getInstance(currencyCode); return new CurrencyHelper(currency, locale); } public double exchangeAmount(double thisCurrencyAmount) { return thisCurrencyAmount * rateMain / rateThis; } }