Skip to content

Commit b4fbc80

Browse files
committed
Updated some aspects, merged changes from Ottavio.
2 parents 291e43b + 341d33b commit b4fbc80

14 files changed

+845
-175
lines changed

src/main/java/org/javamoney/moneta/ExchangeRateBuilder.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import javax.money.convert.ConversionContext;
66
import javax.money.convert.ExchangeRate;
77
import javax.money.convert.RateType;
8+
89
import java.util.ArrayList;
910
import java.util.Arrays;
1011
import java.util.List;
@@ -173,4 +174,16 @@ public ExchangeRateBuilder setRate(ExchangeRate rate){
173174
this.term = rate.getCurrency();
174175
return this;
175176
}
177+
178+
@Override
179+
public String toString() {
180+
StringBuilder sb = new StringBuilder();
181+
sb.append("org.javamoney.moneta.ExchangeRateBuilder: ");
182+
sb.append("[conversionContext").append(conversionContext).append(',');
183+
sb.append("base").append(base).append(',');
184+
sb.append("term").append(term).append(',');
185+
sb.append("factor").append(factor).append(',');
186+
sb.append("rateChain").append(rateChain).append(']');
187+
return sb.toString();
188+
}
176189
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package org.javamoney.moneta;
2+
3+
import javax.money.convert.ExchangeRateProviderSupplier;
4+
5+
import org.javamoney.moneta.convert.internal.ECBCurrentRateProvider;
6+
import org.javamoney.moneta.convert.internal.ECBHistoric90RateProvider;
7+
import org.javamoney.moneta.convert.internal.ECBHistoricRateProvider;
8+
import org.javamoney.moneta.convert.internal.IMFRateProvider;
9+
import org.javamoney.moneta.convert.internal.IdentityRateProvider;
10+
11+
/**
12+
* <p>
13+
* This enum contains all implementation of moneta. Using this enum will easier
14+
* to choose an available implementation.
15+
* </p>
16+
* <code>ExchangeRateProvider provider = MonetaryConversions.getExchangeRateProvider(ExchangeRateType.ECB);<code>
17+
*
18+
* @author otaviojava
19+
*/
20+
public enum ExchangeRateType implements ExchangeRateProviderSupplier {
21+
/**
22+
* Exchange rate to the European Central Bank. Uses the
23+
* {@link ECBCurrentRateProvider} implementation.
24+
*/
25+
ECB("ECB", "Exchange rate to the European Central Bank."),
26+
/**
27+
* Exchange rate to the International Monetary Fond. Uses the
28+
* {@link IMFRateProvider} implementation.
29+
*/
30+
IMF("IMF", "Exchange rate to the International Monetary Fond."),
31+
/**
32+
* Exchange rate to European Central Bank (last 90 days). Uses the
33+
* {@link ECBHistoric90RateProvider} implementation.
34+
*/
35+
ECB_HIST90("ECB-HIST90",
36+
"Exchange rate to European Central Bank (last 90 days)."),
37+
/**
38+
* Uses the {@link ECBHistoricRateProvider} implementation.
39+
*/
40+
ECB_HIST(
41+
"ECB-HIST",
42+
"Exchange rate to the European Central Bank that loads all data up to 1999 into its historic data cache."),
43+
/**
44+
* Uses the {@link IdentityRateProvider} implementation.
45+
*/
46+
IDENTITY(
47+
"IDENT",
48+
"Exchange rate rate with factor one for identical base/term currencies");
49+
50+
private String type;
51+
52+
private String description;
53+
54+
ExchangeRateType(String type, String description) {
55+
this.type = type;
56+
this.description = description;
57+
}
58+
59+
@Override
60+
public String get() {
61+
return type;
62+
}
63+
64+
@Override
65+
public String getDescription() {
66+
return description;
67+
}
68+
69+
}

src/main/java/org/javamoney/moneta/convert/internal/DefaultMonetaryConversionsSingletonSpi.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,24 @@
1515
*/
1616
package org.javamoney.moneta.convert.internal;
1717

18-
import org.javamoney.moneta.spi.CompoundRateProvider;
19-
import org.javamoney.moneta.spi.MonetaryConfig;
18+
import java.util.ArrayList;
19+
import java.util.Collection;
20+
import java.util.List;
21+
import java.util.Map;
22+
import java.util.Optional;
23+
import java.util.Set;
24+
import java.util.concurrent.ConcurrentHashMap;
25+
import java.util.logging.Level;
26+
import java.util.logging.Logger;
2027

2128
import javax.money.MonetaryException;
2229
import javax.money.convert.ConversionQuery;
2330
import javax.money.convert.ExchangeRateProvider;
2431
import javax.money.spi.Bootstrap;
2532
import javax.money.spi.MonetaryConversionsSingletonSpi;
26-
import java.util.*;
27-
import java.util.concurrent.ConcurrentHashMap;
28-
import java.util.logging.Level;
29-
import java.util.logging.Logger;
33+
34+
import org.javamoney.moneta.spi.CompoundRateProvider;
35+
import org.javamoney.moneta.spi.MonetaryConfig;
3036

3137
/**
3238
* This is the default implementation of the {@link javax.money.spi.MonetaryConversionsSingletonSpi} interface, backing

0 commit comments

Comments
 (0)