task4/solution11/src/org/apidesign/apifest08/currency/ExchangeRateProvider.java
changeset 61 58ec6da75f6f
parent 53 09d690bb97f6
child 66 aa3f99f845ef
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/task4/solution11/src/org/apidesign/apifest08/currency/ExchangeRateProvider.java	Sat Oct 11 23:38:46 2008 +0200
     1.3 @@ -0,0 +1,55 @@
     1.4 +package org.apidesign.apifest08.currency;
     1.5 +
     1.6 +/**
     1.7 + * Exchange rate provider.
     1.8 + * 
     1.9 + * @author ked
    1.10 + * @see http://wiki.apidesign.org/wiki/APIDesignPatterns:ResponseReply
    1.11 + */
    1.12 +public interface ExchangeRateProvider<AmountType, IdentifierType> {
    1.13 +
    1.14 +    public void getExchangeRate(
    1.15 +            ExchangeRateRequest<AmountType, IdentifierType> request,
    1.16 +            ExchangeRateResponse<AmountType, IdentifierType> response);
    1.17 +
    1.18 +    public final class ExchangeRateRequest<AmountType, IdentifierType> {
    1.19 +
    1.20 +        private IdentifierType currencyAIdentifier;
    1.21 +        private IdentifierType currencyBIdentifier;
    1.22 +
    1.23 +        ExchangeRateRequest() {
    1.24 +        }
    1.25 +
    1.26 +        public IdentifierType getCurrencyAIdentifier() {
    1.27 +            return currencyAIdentifier;
    1.28 +        }
    1.29 +
    1.30 +        void setCurrencyAIdentifier(IdentifierType currencyAIdentifier) {
    1.31 +            this.currencyAIdentifier = currencyAIdentifier;
    1.32 +        }
    1.33 +
    1.34 +        public IdentifierType getCurrencyBIdentifier() {
    1.35 +            return currencyBIdentifier;
    1.36 +        }
    1.37 +
    1.38 +        void setCurrencyBIdentifier(IdentifierType currencyBIdentifier) {
    1.39 +            this.currencyBIdentifier = currencyBIdentifier;
    1.40 +        }
    1.41 +    }
    1.42 +
    1.43 +    public final class ExchangeRateResponse<AmountType, IdentifierType> {
    1.44 +
    1.45 +        private ExchangeRateValue<AmountType, IdentifierType> exchangeRate;
    1.46 +
    1.47 +        ExchangeRateResponse() {
    1.48 +        }
    1.49 +
    1.50 +        ExchangeRateValue<AmountType, IdentifierType> getExchangeRate() {
    1.51 +            return exchangeRate;
    1.52 +        }
    1.53 +
    1.54 +        public void setExchangeRate(ExchangeRateValue<AmountType, IdentifierType> exchangeRate) {
    1.55 +            this.exchangeRate = exchangeRate;
    1.56 +        }
    1.57 +    }
    1.58 +}