1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/task3/solution11/src/org/apidesign/apifest08/currency/ExchangeRateProvider.java Fri Oct 10 21:58:12 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 +}