task4/solution11/src/org/apidesign/apifest08/currency/ExchangeRateProvider.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Sat, 11 Oct 2008 23:38:46 +0200
changeset 61 58ec6da75f6f
parent 53 task3/solution11/src/org/apidesign/apifest08/currency/ExchangeRateProvider.java@09d690bb97f6
child 66 aa3f99f845ef
permissions -rw-r--r--
Copying structure for task4
     1 package org.apidesign.apifest08.currency;
     2 
     3 /**
     4  * Exchange rate provider.
     5  * 
     6  * @author ked
     7  * @see http://wiki.apidesign.org/wiki/APIDesignPatterns:ResponseReply
     8  */
     9 public interface ExchangeRateProvider<AmountType, IdentifierType> {
    10 
    11     public void getExchangeRate(
    12             ExchangeRateRequest<AmountType, IdentifierType> request,
    13             ExchangeRateResponse<AmountType, IdentifierType> response);
    14 
    15     public final class ExchangeRateRequest<AmountType, IdentifierType> {
    16 
    17         private IdentifierType currencyAIdentifier;
    18         private IdentifierType currencyBIdentifier;
    19 
    20         ExchangeRateRequest() {
    21         }
    22 
    23         public IdentifierType getCurrencyAIdentifier() {
    24             return currencyAIdentifier;
    25         }
    26 
    27         void setCurrencyAIdentifier(IdentifierType currencyAIdentifier) {
    28             this.currencyAIdentifier = currencyAIdentifier;
    29         }
    30 
    31         public IdentifierType getCurrencyBIdentifier() {
    32             return currencyBIdentifier;
    33         }
    34 
    35         void setCurrencyBIdentifier(IdentifierType currencyBIdentifier) {
    36             this.currencyBIdentifier = currencyBIdentifier;
    37         }
    38     }
    39 
    40     public final class ExchangeRateResponse<AmountType, IdentifierType> {
    41 
    42         private ExchangeRateValue<AmountType, IdentifierType> exchangeRate;
    43 
    44         ExchangeRateResponse() {
    45         }
    46 
    47         ExchangeRateValue<AmountType, IdentifierType> getExchangeRate() {
    48             return exchangeRate;
    49         }
    50 
    51         public void setExchangeRate(ExchangeRateValue<AmountType, IdentifierType> exchangeRate) {
    52             this.exchangeRate = exchangeRate;
    53         }
    54     }
    55 }