task4/solution11/src/org/apidesign/apifest08/currency/ExchangeRateProvider.java
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 25 Oct 2008 20:53:00 +0200
changeset 84 2ae6e4aa7aef
parent 61 58ec6da75f6f
permissions -rw-r--r--
Solutions by Petr Smid
     1 package org.apidesign.apifest08.currency;
     2 
     3 import java.util.Date;
     4 
     5 /**
     6  * Exchange rate provider.
     7  * 
     8  * @author ked
     9  * @see http://wiki.apidesign.org/wiki/APIDesignPatterns:ResponseReply
    10  */
    11 public interface ExchangeRateProvider<AmountType, IdentifierType> {
    12 
    13     public void getExchangeRate(
    14             ExchangeRateRequest<AmountType, IdentifierType> request,
    15             ExchangeRateResponse<AmountType, IdentifierType> response);
    16 
    17     public final class ExchangeRateRequest<AmountType, IdentifierType> {
    18 
    19         private IdentifierType currencyAIdentifier;
    20         private IdentifierType currencyBIdentifier;
    21         private Date instant;
    22 
    23         ExchangeRateRequest() {
    24         }
    25 
    26         public IdentifierType getCurrencyAIdentifier() {
    27             return currencyAIdentifier;
    28         }
    29 
    30         void setCurrencyAIdentifier(IdentifierType currencyAIdentifier) {
    31             this.currencyAIdentifier = currencyAIdentifier;
    32         }
    33 
    34         public IdentifierType getCurrencyBIdentifier() {
    35             return currencyBIdentifier;
    36         }
    37 
    38         void setCurrencyBIdentifier(IdentifierType currencyBIdentifier) {
    39             this.currencyBIdentifier = currencyBIdentifier;
    40         }
    41 
    42         public Date getInstant() {
    43             return instant;
    44         }
    45 
    46         void setInstant(Date instant) {
    47             this.instant = instant;
    48         }
    49     }
    50 
    51     public final class ExchangeRateResponse<AmountType, IdentifierType> {
    52 
    53         private ExchangeRateValue<AmountType, IdentifierType> exchangeRate;
    54 
    55         ExchangeRateResponse() {
    56         }
    57 
    58         ExchangeRateValue<AmountType, IdentifierType> getExchangeRate() {
    59             return exchangeRate;
    60         }
    61 
    62         public void setExchangeRate(ExchangeRateValue<AmountType, IdentifierType> exchangeRate) {
    63             this.exchangeRate = exchangeRate;
    64         }
    65     }
    66 }