task4/solution13/src/org/apidesign/apifest08/currency/ConvertorCurrency.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Sat, 11 Oct 2008 23:38:46 +0200
changeset 61 58ec6da75f6f
parent 58 task3/solution13/src/org/apidesign/apifest08/currency/ConvertorCurrency.java@07c16ec15a25
child 63 20d332739f60
permissions -rw-r--r--
Copying structure for task4
japod@23
     1
japod@23
     2
package org.apidesign.apifest08.currency;
japod@23
     3
japod@23
     4
import java.util.Currency;
japod@23
     5
japod@23
     6
/**
japod@23
     7
 * Desription of currency. 
japod@23
     8
 * 
japod@23
     9
 * Java has similar class {@link java.util.Currency}, but original class is not flexible
japod@23
    10
 * enough, we use our own implementation of currency.
japod@23
    11
 *
japod@23
    12
 * @author arnostvalicek
japod@23
    13
 */
japod@23
    14
public class ConvertorCurrency {
japod@23
    15
japod@23
    16
    private Currency currency;
japod@23
    17
japod@23
    18
    private void setJavaCurrency(Currency javaCurrency) {
japod@23
    19
        this.currency = javaCurrency;
japod@23
    20
    }
japod@23
    21
japod@23
    22
    /**
japod@23
    23
     * Static method providing instance of <code>ConvertorCurrency</code> base of currency code.
japod@23
    24
     * 
japod@23
    25
     * @param currencyCode Code of required currency.
japod@23
    26
     * @return Returns required <code>ConvertorCurrency</code>
japod@23
    27
     */
japod@23
    28
    public static ConvertorCurrency getInstance(String currencyCode) {
japod@23
    29
        ConvertorCurrency convertorCurrency = new ConvertorCurrency();
japod@23
    30
        convertorCurrency.setJavaCurrency(Currency.getInstance(currencyCode));
japod@23
    31
        return convertorCurrency;
japod@23
    32
    }
japod@23
    33
japod@23
    34
    /**
japod@23
    35
     * Gets the default number of fraction digits used with this currency. For example, the default number of fraction digits for the Euro is 2, while for the Japanese Yen it's 0.
japod@23
    36
     * @return Returns the default number of fraction digits used with this currency.
japod@23
    37
     */
japod@23
    38
    public int getDefaultFractionDigits() {
japod@23
    39
        return currency.getDefaultFractionDigits();
japod@23
    40
    }
japod@23
    41
japod@23
    42
    @Override
japod@41
    43
    public boolean equals(Object obj) {
japod@41
    44
        boolean result;
japod@41
    45
        if (obj instanceof ConvertorCurrency) {
japod@41
    46
            ConvertorCurrency that = (ConvertorCurrency) obj;
japod@41
    47
            result = currency.equals(that.currency);
japod@41
    48
        } else {
japod@41
    49
            result = false;
japod@41
    50
        }
japod@41
    51
        return result;
japod@41
    52
    }
japod@58
    53
japod@58
    54
    @Override
japod@58
    55
    public int hashCode() {
japod@58
    56
        return currency==null ? 47/*??*/ : currency.hashCode();
japod@58
    57
    }
japod@58
    58
    
japod@58
    59
    
japod@41
    60
    
japod@41
    61
japod@41
    62
    @Override
japod@23
    63
    public String toString() {
japod@41
    64
        return  "ConvertorCurrency[" + (currency != null ? currency.toString() : "NO-BASE-CURRENCY")+"]";
japod@41
    65
    }
japod@41
    66
    
japod@41
    67
    String getCurrencyCode() {
japod@41
    68
        return currency.getCurrencyCode();
japod@23
    69
    }
japod@23
    70
}