1 package org.apidesign.apifest08.currency;
6 * Exchange rate provider.
9 * @see http://wiki.apidesign.org/wiki/APIDesignPatterns:ResponseReply
11 public interface ExchangeRateProvider<AmountType, IdentifierType> {
13 public void getExchangeRate(
14 ExchangeRateRequest<AmountType, IdentifierType> request,
15 ExchangeRateResponse<AmountType, IdentifierType> response);
17 public final class ExchangeRateRequest<AmountType, IdentifierType> {
19 private IdentifierType currencyAIdentifier;
20 private IdentifierType currencyBIdentifier;
23 ExchangeRateRequest() {
26 public IdentifierType getCurrencyAIdentifier() {
27 return currencyAIdentifier;
30 void setCurrencyAIdentifier(IdentifierType currencyAIdentifier) {
31 this.currencyAIdentifier = currencyAIdentifier;
34 public IdentifierType getCurrencyBIdentifier() {
35 return currencyBIdentifier;
38 void setCurrencyBIdentifier(IdentifierType currencyBIdentifier) {
39 this.currencyBIdentifier = currencyBIdentifier;
42 public Date getInstant() {
46 void setInstant(Date instant) {
47 this.instant = instant;
51 public final class ExchangeRateResponse<AmountType, IdentifierType> {
53 private ExchangeRateValue<AmountType, IdentifierType> exchangeRate;
55 ExchangeRateResponse() {
58 ExchangeRateValue<AmountType, IdentifierType> getExchangeRate() {
62 public void setExchangeRate(ExchangeRateValue<AmountType, IdentifierType> exchangeRate) {
63 this.exchangeRate = exchangeRate;