task4/solution14/src/org/apidesign/apifest08/currency/CurrencyRateFactory.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Fri, 17 Oct 2008 17:35:52 +0200
changeset 67 bf7622ec1713
parent 61 58ec6da75f6f
permissions -rw-r--r--
Solution 14, task4
     1 package org.apidesign.apifest08.currency;
     2 
     3 
     4 public final class CurrencyRateFactory {
     5 
     6     //Singleton
     7     private static CurrencyRateFactory thisFactory = new CurrencyRateFactory();
     8     private CurrencyRateFactory() {};
     9     public static CurrencyRateFactory getInstance() {
    10         return thisFactory;
    11     }
    12 
    13     public CurrencyRate createCurrencyRate(final String currency1, final String currency2, final Rate rate) {
    14         return new CurrencyRateImpl(currency1, currency2, rate);
    15     }
    16     
    17     public CurrencyRate createCurrencyRate(final String currency1, final String currency2, int amount1, int amount2) {
    18         return new CurrencyRateImpl(currency1, currency2, new Rate(amount1, amount2));
    19     }
    20 
    21     public CurrencyRate createCurrencyRate(final String currency1, final String currency2, double amount1, double amount2) {
    22         return new CurrencyRateImpl(currency1, currency2, new Rate(amount1, amount2));
    23     }
    24 
    25     public TimeLimitedCurrencyRate createCurrencyRateTimeLimited(final String currency1, final String currency2, final Rate rate, long fromTime, long toTime) {
    26         return new CurrencyRateImpl(currency1, currency2, rate, fromTime, toTime);
    27     }
    28 
    29     public TimeLimitedCurrencyRate createCurrencyRateTimeLimited(final String currency1, final String currency2, int amount1, int amount2, long fromTime, long toTime) {
    30         return new CurrencyRateImpl(currency1, currency2, new Rate(amount1, amount2), fromTime, toTime);
    31     }
    32 
    33     public TimeLimitedCurrencyRate createCurrencyRateTimeLimited(final String currency1, final String currency2, double amount1, double amount2, long fromTime, long toTime) {
    34         return new CurrencyRateImpl(currency1, currency2, new Rate(amount1, amount2), fromTime, toTime);
    35     }
    36     
    37 }