package ch.fhzh.info2.currencyconverter.impl;
import java.util.HashMap;
import java.util.Map;
import ch.fhzh.info2.currencyconverter.ICurrencyConverter;
import ch.fhzh.info2.currencyconverter.Money;
import ch.fhzh.info2.currencyconverter.UnsupportedCurrencyConversionException;
public class StaticCurrencyConverter implements ICurrencyConverter {
private static Map<String, Map<String, Float>> conversionRates;
static {
conversionRates = new HashMap<String, Map<String,Float>>();
Map<String, Float> ratesChf = new HashMap<String, Float>();
ratesChf.put("EUR", 0.7171f);
ratesChf.put("USD", 0.8313f);
conversionRates.put("CHF", ratesChf);
}
@Override
public Money convert(Money money, String destinationCurrency) {
Map<String, Float> rates = conversionRates.get(money.getCurrency());
if (rates != null && rates.containsKey(destinationCurrency)) {
Float rate = rates.get(destinationCurrency);
return new Money(Math.round(rate * money.getCents()), destinationCurrency);
} else {
throw new UnsupportedCurrencyConversionException("Can not convert " + money.getCurrency() + " to " + destinationCurrency);
}
}
}