1 package org.apidesign.apifest08.currency;
3 import java.math.BigDecimal;
6 public class ConvertorFactory {
8 public static Convertor getConvertor(CurrencyType from, CurrencyType to) {
9 if (from == CurrencyType.CZK && to == CurrencyType.USD) {
10 return new BasicConvertor(new BigDecimal(17));
11 } else if (from == CurrencyType.SKK && to == CurrencyType.CZK) {
13 return new BasicConvertor(new BigDecimal(rate));
17 throw new UnsupportedOperationException("Conversion not supported now");
20 private static class BasicConvertor implements Convertor {
22 private final BigDecimal conversionRate;
24 BasicConvertor(BigDecimal conversionRate) {
25 this.conversionRate = conversionRate;
29 public long convertTo(long amount) {
30 return (long) (conversionRate.doubleValue() * amount);
34 public long convertFrom(long amount) {
35 return (long) (amount / conversionRate.doubleValue());