# HG changeset patch # User japod@localhost # Date 1222780522 -7200 # Node ID 953f221cb98617cd2e19e2c00cf415ad386b9782 # Parent a022dd2a5d3071d70e5304bea7c76ec2601ee51a finishing update to 1.5 (sol 02) diff -r a022dd2a5d30 -r 953f221cb986 task1/solution02/src/org/apidesign/apifest08/currency/DefaultConvertorFactory.java --- a/task1/solution02/src/org/apidesign/apifest08/currency/DefaultConvertorFactory.java Tue Sep 30 13:51:18 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -package org.apidesign.apifest08.currency; - - -import java.math.BigDecimal; -import java.util.Currency; -import java.util.HashMap; -import java.util.Map; - -/** - * Default factory for convertors. Basically it just keeps exchange rates for given currency combinations. - * @author lukas - * - */ -class DefaultConvertorFactory { - private static final Currency SKK = Currency.getInstance("SKK"); - private static final Currency USD = Currency.getInstance("USD"); - private static final Currency CZK = Currency.getInstance("CZK"); - private Map convertorMap = new HashMap(); - - public DefaultConvertorFactory() - { - addConvertor(CZK,USD,BigDecimal.valueOf(17),BigDecimal.valueOf(1)); - addConvertor(CZK,SKK,BigDecimal.valueOf(80),BigDecimal.valueOf(100)); - } - - private void addConvertor(Currency sourceCurrency, Currency destinationCurrency, BigDecimal sourceEquivalent, BigDecimal destinationEquivalent) { - DefaultConvertor convertor = new DefaultConvertor(sourceEquivalent, destinationEquivalent, sourceCurrency, destinationCurrency); - convertorMap.put(getConvertorKey(sourceCurrency, destinationCurrency), convertor); - convertorMap.put(getConvertorKey(destinationCurrency, sourceCurrency), convertor.revert()); - } - - public Convertor getConvertor(Currency sourceCurrency, Currency destinationCurrency) throws UnsupportedConversionException - { - String convertorKey = getConvertorKey(sourceCurrency, destinationCurrency); - Convertor result = convertorMap.get(convertorKey); - if (result!=null) - { - return result; - } - else - { - throw new UnsupportedConversionException("Conversion from "+sourceCurrency+" to "+destinationCurrency+" is not supported"); - } - } - - private String getConvertorKey(Currency sourceCurrency, Currency destinationCurrency) { - return sourceCurrency.getCurrencyCode()+destinationCurrency.getCurrencyCode(); - } -} diff -r a022dd2a5d30 -r 953f221cb986 task1/solution02/src/org/apidesign/apifest08/currency/UnsupportedConversionException.java --- a/task1/solution02/src/org/apidesign/apifest08/currency/UnsupportedConversionException.java Tue Sep 30 13:51:18 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ -package org.apidesign.apifest08.currency; - -/** - * Exception thrown when conversion is not supported. - * @author lukas - * - */ -public class UnsupportedConversionException extends IllegalArgumentException { - private static final long serialVersionUID = 4412475695345865196L; - - public UnsupportedConversionException() { - super(); - } - - public UnsupportedConversionException(String message, Throwable cause) { - super(message, cause); - } - - public UnsupportedConversionException(String s) { - super(s); - } - - public UnsupportedConversionException(Throwable cause) { - super(cause); - } - - -}