task2/solution01/src/org/apidesign/apifest08/currency/CurrencyConvertorImpl.java
changeset 42 2c8c32ad44f7
parent 41 a7e6f84fb078
child 44 6a500cd1e467
     1.1 --- a/task2/solution01/src/org/apidesign/apifest08/currency/CurrencyConvertorImpl.java	Tue Oct 07 01:18:23 2008 +0200
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,108 +0,0 @@
     1.4 -package org.apidesign.apifest08.currency;
     1.5 -
     1.6 -import java.math.BigDecimal;
     1.7 -import java.math.RoundingMode;
     1.8 -import java.util.Currency;
     1.9 -
    1.10 -/**
    1.11 - * Intern implementation of Bidirectional Convertor - this class is only for internal purposes only.
    1.12 - * This implementation uses BigDecimals to count result value
    1.13 - * Scale is set by ISO 4217 as default
    1.14 - *
    1.15 - * @author Ladislav Vitasek
    1.16 - */
    1.17 -class CurrencyConvertorImpl extends AbstractCurrencyConvertor {
    1.18 -
    1.19 -    protected RoundingMode roundingMode;
    1.20 -    protected int currency1Scale;
    1.21 -    protected int currency2Scale;
    1.22 -
    1.23 -    /**
    1.24 -     * Constructor
    1.25 -     * By default it creates convertor with conversion value 1
    1.26 -     *
    1.27 -     * @param currency1       currency for conversion
    1.28 -     * @param currency2       currency for conversion
    1.29 -     * @param provider constants provider
    1.30 -     * @param roundingMode    math rounding mode
    1.31 -     */
    1.32 -    CurrencyConvertorImpl(Currency currency1, Currency currency2, ConversionRatioProvider provider, RoundingMode roundingMode) {
    1.33 -        this(currency1, currency2, provider, roundingMode, currency1.getDefaultFractionDigits(), currency2.getDefaultFractionDigits());
    1.34 -    }
    1.35 -
    1.36 -    /**
    1.37 -     * Constructor
    1.38 -     *
    1.39 -     * @param currency1       currency for conversion
    1.40 -     * @param currency2       currency for conversion
    1.41 -     * @param conversionRatioProvider conversion constants provider
    1.42 -     * @param roundingMode    math rounding mode
    1.43 -     * @param conversionRatioProvider constants provider
    1.44 -     * @param currency2Scale
    1.45 -     */
    1.46 -    CurrencyConvertorImpl(Currency currency1, Currency currency2, ConversionRatioProvider conversionRatioProvider, RoundingMode roundingMode, int currency1Scale, int currency2Scale) {
    1.47 -        super(currency1, currency2, conversionRatioProvider);
    1.48 -        this.roundingMode = roundingMode;
    1.49 -        this.currency1Scale = currency1Scale;
    1.50 -        this.currency2Scale = currency2Scale;
    1.51 -    }
    1.52 -
    1.53 -
    1.54 -    public BigDecimal convertCurrency1ToCurrency2(BigDecimal amountOfMoney) throws CannotConvertException {
    1.55 -        try {
    1.56 -            final BigDecimal result = amountOfMoney.multiply(getConversionRatioProvider().getCurrency1ToCurrency2Constant());
    1.57 -            return result.setScale(getCurrency2Scale(), getRoundingMode());
    1.58 -        } catch (CannotProvideValueException e) {
    1.59 -            throw new CannotConvertException(e);            
    1.60 -        } catch (ArithmeticException e) {
    1.61 -            throw new CannotConvertException(e);
    1.62 -        }
    1.63 -    }
    1.64 -
    1.65 -
    1.66 -    public BigDecimal convertCurrency2ToCurrency1(BigDecimal amountOfMoney) throws CannotConvertException {
    1.67 -        try {
    1.68 -            final BigDecimal result = amountOfMoney.multiply(getConversionRatioProvider().getCurrency2ToCurrency1Constant());
    1.69 -            return result.setScale(getCurrency1Scale(), getRoundingMode());
    1.70 -        } catch (CannotProvideValueException e) {
    1.71 -            throw new CannotConvertException(e);
    1.72 -        } catch (ArithmeticException e) {
    1.73 -            throw new CannotConvertException(e);
    1.74 -        }
    1.75 -    }
    1.76 -  
    1.77 -    public String toString() {
    1.78 -        return "CurrencyConvertorImpl{" +
    1.79 -                "currency1=" + getCurrency1() +
    1.80 -                ",currency2=" + getCurrency2() +
    1.81 -                ", roundingMode=" + roundingMode +
    1.82 -                ", currency1Scale=" + currency1Scale +
    1.83 -                ", currency2Scale=" + currency2Scale +
    1.84 -                '}';
    1.85 -    }
    1.86 -
    1.87 -    RoundingMode getRoundingMode() {
    1.88 -        return roundingMode;
    1.89 -    }    
    1.90 -
    1.91 -    int getCurrency1Scale() {
    1.92 -        return currency1Scale;
    1.93 -    }
    1.94 -
    1.95 -    int getCurrency2Scale() {
    1.96 -        return currency2Scale;
    1.97 -    }
    1.98 -
    1.99 -    void setRoundingMode(RoundingMode roundingMode) {
   1.100 -        this.roundingMode = roundingMode;
   1.101 -    }
   1.102 -
   1.103 -    void setCurrency1Scale(int currency1Scale) {
   1.104 -        this.currency1Scale = currency1Scale;
   1.105 -    }
   1.106 -
   1.107 -    void setCurrency2Scale(int currency2Scale) {
   1.108 -        this.currency2Scale = currency2Scale;
   1.109 -    }
   1.110 -
   1.111 -}