japod@53: package org.apidesign.apifest08.currency; japod@53: japod@53: /** japod@53: * Exchange rate provider. japod@53: * japod@53: * @author ked japod@53: * @see http://wiki.apidesign.org/wiki/APIDesignPatterns:ResponseReply japod@53: */ japod@53: public interface ExchangeRateProvider { japod@53: japod@53: public void getExchangeRate( japod@53: ExchangeRateRequest request, japod@53: ExchangeRateResponse response); japod@53: japod@53: public final class ExchangeRateRequest { japod@53: japod@53: private IdentifierType currencyAIdentifier; japod@53: private IdentifierType currencyBIdentifier; japod@53: japod@53: ExchangeRateRequest() { japod@53: } japod@53: japod@53: public IdentifierType getCurrencyAIdentifier() { japod@53: return currencyAIdentifier; japod@53: } japod@53: japod@53: void setCurrencyAIdentifier(IdentifierType currencyAIdentifier) { japod@53: this.currencyAIdentifier = currencyAIdentifier; japod@53: } japod@53: japod@53: public IdentifierType getCurrencyBIdentifier() { japod@53: return currencyBIdentifier; japod@53: } japod@53: japod@53: void setCurrencyBIdentifier(IdentifierType currencyBIdentifier) { japod@53: this.currencyBIdentifier = currencyBIdentifier; japod@53: } japod@53: } japod@53: japod@53: public final class ExchangeRateResponse { japod@53: japod@53: private ExchangeRateValue exchangeRate; japod@53: japod@53: ExchangeRateResponse() { japod@53: } japod@53: japod@53: ExchangeRateValue getExchangeRate() { japod@53: return exchangeRate; japod@53: } japod@53: japod@53: public void setExchangeRate(ExchangeRateValue exchangeRate) { japod@53: this.exchangeRate = exchangeRate; japod@53: } japod@53: } japod@53: }