task4/solution02/src/org/apidesign/apifest08/currency/MoneyImpl.java
changeset 70 6f4b6952f988
parent 69 420baec87dc5
child 71 978f6a78c22e
     1.1 --- a/task4/solution02/src/org/apidesign/apifest08/currency/MoneyImpl.java	Fri Oct 17 17:40:14 2008 +0200
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,121 +0,0 @@
     1.4 -package org.apidesign.apifest08.currency;
     1.5 -
     1.6 -import java.io.Serializable;
     1.7 -import java.math.BigDecimal;
     1.8 -import java.util.Currency;
     1.9 -
    1.10 -/**
    1.11 - * Default implementation of {@link Money} interface. This class is immutable.
    1.12 - * @author lukas
    1.13 - *
    1.14 - */
    1.15 -public final class MoneyImpl implements Serializable, Money{
    1.16 -	private static final long serialVersionUID = -6091808475616516136L;
    1.17 -
    1.18 -	private final BigDecimal amount;
    1.19 -	
    1.20 -	private final Currency currency;
    1.21 -	
    1.22 -	public MoneyImpl(BigDecimal amount, Currency currency) {
    1.23 -		if (amount==null) throw new NullPointerException("Amount is null");
    1.24 -		if (currency==null) throw new NullPointerException("Currency is null"+currency);
    1.25 -		this.amount = amount;
    1.26 -		this.currency = currency;
    1.27 -	}
    1.28 -	
    1.29 -	
    1.30 -	
    1.31 -	public MoneyImpl(long amount, Currency currency) {
    1.32 -		this(BigDecimal.valueOf(amount), currency);
    1.33 -	}
    1.34 -	
    1.35 -	public MoneyImpl(double amount, Currency currency) {
    1.36 -		this(BigDecimal.valueOf(amount), currency);
    1.37 -	}
    1.38 -	
    1.39 -	/**
    1.40 -	 * Factory method.
    1.41 -	 * @param amount
    1.42 -	 * @param currency
    1.43 -	 * @return
    1.44 -	 */
    1.45 -	public static final Money money(BigDecimal amount, Currency currency)
    1.46 -	{
    1.47 -		return new MoneyImpl(amount, currency);
    1.48 -	}
    1.49 -	/**
    1.50 -	 * Factory method.
    1.51 -	 * @param amount
    1.52 -	 * @param currency
    1.53 -	 * @return
    1.54 -	 */
    1.55 -	public static final Money money(long amount, Currency currency)
    1.56 -	{
    1.57 -		return new MoneyImpl(amount, currency);
    1.58 -	}
    1.59 -	/**
    1.60 -	 * Factory method.
    1.61 -	 * @param amount
    1.62 -	 * @param currency
    1.63 -	 * @return
    1.64 -	 */
    1.65 -	public static final Money money(double amount, Currency currency)
    1.66 -	{
    1.67 -		return new MoneyImpl(amount, currency);
    1.68 -	}
    1.69 -
    1.70 -	/**
    1.71 -	 * Returns amount.
    1.72 -	 * @return
    1.73 -	 */
    1.74 -	public BigDecimal getAmount() {
    1.75 -		return amount;
    1.76 -	}
    1.77 -	
    1.78 -	/**
    1.79 -	 * Returns currency.
    1.80 -	 */
    1.81 -	public Currency getCurrency() {
    1.82 -		return currency;
    1.83 -	}
    1.84 -
    1.85 -	@Override
    1.86 -	public int hashCode() {
    1.87 -		final int prime = 31;
    1.88 -		int result = 1;
    1.89 -		result = prime * result + ((amount == null) ? 0 : amount.hashCode());
    1.90 -		result = prime * result
    1.91 -				+ ((currency == null) ? 0 : currency.hashCode());
    1.92 -		return result;
    1.93 -	}
    1.94 -
    1.95 -	@Override
    1.96 -	public boolean equals(Object obj) {
    1.97 -		if (this == obj)
    1.98 -			return true;
    1.99 -		if (obj == null)
   1.100 -			return false;
   1.101 -		if (!(obj instanceof MoneyImpl))
   1.102 -			return false;
   1.103 -		MoneyImpl other = (MoneyImpl) obj;
   1.104 -		if (amount == null) {
   1.105 -			if (other.amount != null)
   1.106 -				return false;
   1.107 -		} else if (amount.compareTo(other.amount)!=0)
   1.108 -			return false;
   1.109 -		if (currency == null) {
   1.110 -			if (other.currency != null)
   1.111 -				return false;
   1.112 -		} else if (!currency.equals(other.currency))
   1.113 -			return false;
   1.114 -		return true;
   1.115 -	}
   1.116 -	
   1.117 -	@Override
   1.118 -	public String toString() {
   1.119 -		return getClass().getName()+"["+currency+amount+"]";
   1.120 -	}
   1.121 -
   1.122 -	
   1.123 -	
   1.124 -}