1 package org.apidesign.apifest08.currency;
4 * Exchange rate provider.
7 * @see http://wiki.apidesign.org/wiki/APIDesignPatterns:ResponseReply
9 public interface ExchangeRateProvider<AmountType, IdentifierType> {
11 public void getExchangeRate(
12 ExchangeRateRequest<AmountType, IdentifierType> request,
13 ExchangeRateResponse<AmountType, IdentifierType> response);
15 public final class ExchangeRateRequest<AmountType, IdentifierType> {
17 private IdentifierType currencyAIdentifier;
18 private IdentifierType currencyBIdentifier;
20 ExchangeRateRequest() {
23 public IdentifierType getCurrencyAIdentifier() {
24 return currencyAIdentifier;
27 void setCurrencyAIdentifier(IdentifierType currencyAIdentifier) {
28 this.currencyAIdentifier = currencyAIdentifier;
31 public IdentifierType getCurrencyBIdentifier() {
32 return currencyBIdentifier;
35 void setCurrencyBIdentifier(IdentifierType currencyBIdentifier) {
36 this.currencyBIdentifier = currencyBIdentifier;
40 public final class ExchangeRateResponse<AmountType, IdentifierType> {
42 private ExchangeRateValue<AmountType, IdentifierType> exchangeRate;
44 ExchangeRateResponse() {
47 ExchangeRateValue<AmountType, IdentifierType> getExchangeRate() {
51 public void setExchangeRate(ExchangeRateValue<AmountType, IdentifierType> exchangeRate) {
52 this.exchangeRate = exchangeRate;