Skip to content

Commit f2c12e2

Browse files
committed
Unified getCurrency/setCurrency method names. Adapted to this change.
1 parent f480f13 commit f2c12e2

14 files changed

+350
-370
lines changed

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

Lines changed: 27 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -138,11 +138,11 @@ private DefaultExchangeRate(Builder builder){
138138
*/
139139
private void setExchangeRateChain(List<ExchangeRate> chain){
140140
this.chain.clear();
141-
if (Objects.isNull(chain) || chain.isEmpty()){
141+
if(Objects.isNull(chain) || chain.isEmpty()){
142142
this.chain.add(this);
143143
}else{
144-
for (ExchangeRate rate : chain) {
145-
if (Objects.isNull(rate)) {
144+
for(ExchangeRate rate : chain){
145+
if(Objects.isNull(rate)){
146146
throw new IllegalArgumentException("Rate Chain element can not be null.");
147147
}
148148
}
@@ -164,7 +164,7 @@ public final ConversionContext getConversionContext(){
164164
*
165165
* @return the base {@link javax.money.CurrencyUnit}.
166166
*/
167-
public final CurrencyUnit getBase(){
167+
public final CurrencyUnit getBaseCurrency(){
168168
return this.base;
169169
}
170170

@@ -173,7 +173,7 @@ public final CurrencyUnit getBase(){
173173
*
174174
* @return the term {@link javax.money.CurrencyUnit}.
175175
*/
176-
public final CurrencyUnit getTerm(){
176+
public final CurrencyUnit getCurrency(){
177177
return this.term;
178178
}
179179

@@ -221,9 +221,9 @@ public final boolean isDerived(){
221221
@Override
222222
public int compareTo(ExchangeRate o){
223223
Objects.requireNonNull(o);
224-
int compare = this.getBase().getCurrencyCode().compareTo(o.getBase().getCurrencyCode());
224+
int compare = this.getBaseCurrency().getCurrencyCode().compareTo(o.getBaseCurrency().getCurrencyCode());
225225
if(compare == 0){
226-
compare = this.getTerm().getCurrencyCode().compareTo(o.getTerm().getCurrencyCode());
226+
compare = this.getCurrency().getCurrencyCode().compareTo(o.getCurrency().getCurrencyCode());
227227
}
228228
if(compare == 0){
229229
compare = this.getConversionContext().getProvider().compareTo(o.getConversionContext().getProvider());
@@ -248,7 +248,7 @@ public String toString(){
248248
*/
249249
@Override
250250
public int hashCode(){
251-
return Objects.hash(base, conversionContext, factor, term, chain);
251+
return Objects.hash(base, conversionContext, factor, term, chain);
252252
}
253253

254254
/*
@@ -257,20 +257,17 @@ public int hashCode(){
257257
* @see java.lang.Object#equals(java.lang.Object)
258258
*/
259259
@Override
260-
public boolean equals(Object obj) {
261-
if (obj == this) {
260+
public boolean equals(Object obj){
261+
if(obj == this){
262262
return true;
263263
}
264-
if (obj instanceof DefaultExchangeRate) {
265-
DefaultExchangeRate other = (DefaultExchangeRate) obj;
266-
return Objects.equals(base, other.base)
267-
&& Objects.equals(chain, other.chain)
268-
&& Objects.equals(conversionContext,
269-
other.conversionContext)
270-
&& Objects.equals(factor, other.factor)
271-
&& Objects.equals(term, other.term);
272-
}
273-
return false;
264+
if(obj instanceof DefaultExchangeRate){
265+
DefaultExchangeRate other = (DefaultExchangeRate) obj;
266+
return Objects.equals(base, other.base) && Objects.equals(chain, other.chain) &&
267+
Objects.equals(conversionContext, other.conversionContext) &&
268+
Objects.equals(factor, other.factor) && Objects.equals(term, other.term);
269+
}
270+
return false;
274271
}
275272

276273
/**
@@ -280,7 +277,7 @@ public boolean equals(Object obj) {
280277
* @author Anatole Tresch
281278
* @author Werner Keil
282279
*/
283-
public static class Builder {
280+
public static class Builder{
284281

285282
/**
286283
* The {@link javax.money.convert.ConversionContext}.
@@ -329,8 +326,8 @@ public Builder(ConversionContext context){
329326
public Builder(ExchangeRate rate){
330327
setContext(rate.getConversionContext());
331328
setFactor(rate.getFactor());
332-
setTerm(rate.getTerm());
333-
setBase(rate.getBase());
329+
setTerm(rate.getCurrency());
330+
setBase(rate.getBaseCurrency());
334331
setRateChain(rate.getExchangeRateChain());
335332
}
336333

@@ -364,7 +361,7 @@ public Builder setTerm(CurrencyUnit term){
364361
*/
365362
public Builder setRateChain(ExchangeRate... exchangeRates){
366363
this.rateChain.clear();
367-
if (Objects.nonNull(exchangeRates)){
364+
if(Objects.nonNull(exchangeRates)){
368365
this.rateChain.addAll(Arrays.asList(exchangeRates.clone()));
369366
}
370367
return this;
@@ -378,7 +375,7 @@ public Builder setRateChain(ExchangeRate... exchangeRates){
378375
*/
379376
public Builder setRateChain(List<ExchangeRate> exchangeRates){
380377
this.rateChain.clear();
381-
if (Objects.nonNull(exchangeRates)) {
378+
if(Objects.nonNull(exchangeRates)){
382379
this.rateChain.addAll(exchangeRates);
383380
}
384381
return this;
@@ -428,12 +425,12 @@ public DefaultExchangeRate build(){
428425
* @return the Builder, for chaining.
429426
*/
430427
public Builder setRate(ExchangeRate rate){
431-
this.base = rate.getBase();
432-
this.term = rate.getTerm();
428+
this.base = rate.getBaseCurrency();
429+
this.term = rate.getCurrency();
433430
this.conversionContext = rate.getConversionContext();
434431
this.factor = rate.getFactor();
435432
this.rateChain = rate.getExchangeRateChain();
436-
this.term = rate.getTerm();
433+
this.term = rate.getCurrency();
437434
return this;
438435
}
439436
}
@@ -444,7 +441,7 @@ public Builder setRate(ExchangeRate rate){
444441
* @return a new {@link Builder}, never {@code null}.
445442
*/
446443
public Builder toBuilder(){
447-
return new Builder(getConversionContext()).setBase(getBase()).setTerm(getTerm()).setFactor(getFactor())
448-
.setRateChain(getExchangeRateChain());
444+
return new Builder(getConversionContext()).setBase(getBaseCurrency()).setTerm(getCurrency())
445+
.setFactor(getFactor()).setRateChain(getExchangeRateChain());
449446
}
450447
}

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

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ public void newDataLoaded(String data, InputStream is){
115115
@Override
116116
public boolean isAvailable(ConversionQuery conversionQuery){
117117
String baseCode = conversionQuery.getBaseCurrency().getCurrencyCode();
118-
String termCode = conversionQuery.getTermCurrency().getCurrencyCode();
118+
String termCode = conversionQuery.getCurrency().getCurrencyCode();
119119
if(!"EUR".equals(baseCode) && !currentRates.containsKey(baseCode)){
120120
return false;
121121
}
@@ -130,8 +130,7 @@ public ExchangeRate getExchangeRate(ConversionQuery conversionQuery){
130130
if(!isAvailable(conversionQuery)){
131131
return null;
132132
}
133-
return getExchangeRateInternal(conversionQuery.getBaseCurrency(),
134-
conversionQuery.getTermCurrency());
133+
return getExchangeRateInternal(conversionQuery.getBaseCurrency(), conversionQuery.getCurrency());
135134
}
136135

137136
private ExchangeRate getExchangeRateInternal(CurrencyUnit base, CurrencyUnit term){
@@ -180,10 +179,10 @@ private ExchangeRate getExchangeRateInternal(CurrencyUnit base, CurrencyUnit ter
180179
@Override
181180
public ExchangeRate getReversed(ExchangeRate rate){
182181
if(rate.getConversionContext().getProvider().equals(CONTEXT.getProvider())){
183-
return new DefaultExchangeRate.Builder(rate.getConversionContext()).setTerm(rate.getBase())
184-
.setBase(rate.getTerm()).setFactor(new DefaultNumberValue(
185-
BigDecimal.ONE.divide(rate.getFactor().numberValue(BigDecimal.class), MathContext.DECIMAL64
186-
))).build();
182+
return new DefaultExchangeRate.Builder(rate.getConversionContext()).setTerm(rate.getBaseCurrency())
183+
.setBase(rate.getCurrency()).setFactor(new DefaultNumberValue(
184+
BigDecimal.ONE.divide(rate.getFactor().numberValue(BigDecimal.class), MathContext.DECIMAL64)
185+
)).build();
187186
}
188187
return null;
189188
}
@@ -262,11 +261,10 @@ public void startElement(String uri, String localName, String qName, Attributes
262261
*/
263262
void addRate(CurrencyUnit term, Long timestamp, Number factor){
264263
DefaultExchangeRate.Builder builder;
265-
if(timestamp==null) {
264+
if(timestamp == null){
266265
builder = new DefaultExchangeRate.Builder(
267266
ConversionContextBuilder.create(CONTEXT, RateType.DEFERRED).build());
268-
}
269-
else{
267+
}else{
270268
builder = new DefaultExchangeRate.Builder(
271269
ConversionContextBuilder.create(CONTEXT, RateType.DEFERRED).setTimestampMillis(timestamp).build());
272270
}

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

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,7 @@ public class ECBHistoric90RateProvider extends AbstractRateProvider implements L
7474
*/
7575
private static final ProviderContext CONTEXT =
7676
ProviderContextBuilder.create("ECB-HIST90", RateType.HISTORIC, RateType.DEFERRED)
77-
.set("providerDescription", "European Central Bank (last 90 days)")
78-
.set("days", 90).build();
77+
.set("providerDescription", "European Central Bank (last 90 days)").set("days", 90).build();
7978

8079
/**
8180
* Constructor, also loads initial data.
@@ -130,18 +129,18 @@ public ExchangeRate getExchangeRate(ConversionQuery conversionQuery){
130129
Long targetTS = cal.getTimeInMillis();
131130

132131
builder.setBase(conversionQuery.getBaseCurrency());
133-
builder.setTerm(conversionQuery.getTermCurrency());
132+
builder.setTerm(conversionQuery.getCurrency());
134133
Map<String,ExchangeRate> targets = this.rates.get(targetTS);
135134
if(Objects.isNull(targets)){
136135
return null;
137136
}
138137
sourceRate = targets.get(conversionQuery.getBaseCurrency().getCurrencyCode());
139-
target = targets.get(conversionQuery.getTermCurrency().getCurrencyCode());
138+
target = targets.get(conversionQuery.getCurrency().getCurrencyCode());
140139
if(BASE_CURRENCY_CODE.equals(conversionQuery.getBaseCurrency().getCurrencyCode()) &&
141-
BASE_CURRENCY_CODE.equals(conversionQuery.getTermCurrency().getCurrencyCode())){
140+
BASE_CURRENCY_CODE.equals(conversionQuery.getCurrency().getCurrencyCode())){
142141
builder.setFactor(DefaultNumberValue.ONE);
143142
return builder.build();
144-
}else if(BASE_CURRENCY_CODE.equals(conversionQuery.getTermCurrency().getCurrencyCode())){
143+
}else if(BASE_CURRENCY_CODE.equals(conversionQuery.getCurrency().getCurrencyCode())){
145144
if(Objects.isNull(sourceRate)){
146145
return null;
147146
}
@@ -152,10 +151,12 @@ public ExchangeRate getExchangeRate(ConversionQuery conversionQuery){
152151
// Get Conversion base as derived rate: base -> EUR -> term
153152
ExchangeRate rate1 = getExchangeRate(
154153
conversionQuery.toBuilder().setBaseCurrency(conversionQuery.getBaseCurrency())
155-
.setTermCurrency(MonetaryCurrencies.getCurrency(BASE_CURRENCY_CODE)).build());
154+
.setTermCurrency(MonetaryCurrencies.getCurrency(BASE_CURRENCY_CODE)).build()
155+
);
156156
ExchangeRate rate2 = getExchangeRate(
157157
conversionQuery.toBuilder().setBaseCurrency(MonetaryCurrencies.getCurrency(BASE_CURRENCY_CODE))
158-
.setTermCurrency(conversionQuery.getTermCurrency()).build());
158+
.setTermCurrency(conversionQuery.getCurrency()).build()
159+
);
159160
if(Objects.nonNull(rate1) || Objects.nonNull(rate2)){
160161
builder.setFactor(multiply(rate1.getFactor(), rate2.getFactor()));
161162
builder.setRateChain(rate1, rate2);

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

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,7 @@ public class ECBHistoricRateProvider extends AbstractRateProvider implements Loa
6565
/**
6666
* Historic exchange rates, rate timestamp as UTC long.
6767
*/
68-
private final Map<Long,Map<String,ExchangeRate>> historicRates =
69-
new ConcurrentHashMap<>();
68+
private final Map<Long,Map<String,ExchangeRate>> historicRates = new ConcurrentHashMap<>();
7069
/**
7170
* Parser factory.
7271
*/
@@ -122,10 +121,11 @@ public ExchangeRate getExchangeRate(ConversionQuery query){
122121
return null;
123122
}
124123
DefaultExchangeRate.Builder builder = new DefaultExchangeRate.Builder(
125-
ConversionContextBuilder.create(CONTEXT, RateType.HISTORIC).setTimestampMillis(query.getTimestampMillis())
126-
.build());
124+
ConversionContextBuilder.create(CONTEXT, RateType.HISTORIC)
125+
.setTimestampMillis(query.getTimestampMillis()).build()
126+
);
127127
builder.setBase(query.getBaseCurrency());
128-
builder.setTerm(query.getTermCurrency());
128+
builder.setTerm(query.getCurrency());
129129
ExchangeRate sourceRate;
130130
ExchangeRate target;
131131
if(historicRates.isEmpty()){
@@ -143,12 +143,12 @@ public ExchangeRate getExchangeRate(ConversionQuery query){
143143
return null;
144144
}
145145
sourceRate = targets.get(query.getBaseCurrency().getCurrencyCode());
146-
target = targets.get(query.getTermCurrency().getCurrencyCode());
146+
target = targets.get(query.getCurrency().getCurrencyCode());
147147
if(BASE_CURRENCY_CODE.equals(query.getBaseCurrency().getCurrencyCode()) &&
148-
BASE_CURRENCY_CODE.equals(query.getTermCurrency().getCurrencyCode())){
148+
BASE_CURRENCY_CODE.equals(query.getCurrency().getCurrencyCode())){
149149
builder.setFactor(DefaultNumberValue.ONE);
150150
return builder.build();
151-
}else if(BASE_CURRENCY_CODE.equals(query.getTermCurrency().getCurrencyCode())){
151+
}else if(BASE_CURRENCY_CODE.equals(query.getCurrency().getCurrencyCode())){
152152
if(Objects.isNull(sourceRate)){
153153
return null;
154154
}
@@ -161,7 +161,8 @@ public ExchangeRate getExchangeRate(ConversionQuery query){
161161
query.toBuilder().setTermCurrency(MonetaryCurrencies.getCurrency(BASE_CURRENCY_CODE)).build());
162162
ExchangeRate rate2 = getExchangeRate(
163163
query.toBuilder().setBaseCurrency(MonetaryCurrencies.getCurrency(BASE_CURRENCY_CODE))
164-
.setTermCurrency(query.getTermCurrency()).build());
164+
.setTermCurrency(query.getCurrency()).build()
165+
);
165166
if(Objects.nonNull(rate1) || Objects.nonNull(rate2)){
166167
builder.setFactor(multiply(rate1.getFactor(), rate2.getFactor()));
167168
builder.setRateChain(rate1, rate2);
@@ -175,7 +176,8 @@ private static ExchangeRate reverse(ExchangeRate rate){
175176
if(Objects.isNull(rate)){
176177
throw new IllegalArgumentException("Rate null is not reversable.");
177178
}
178-
return new DefaultExchangeRate.Builder(rate).setRate(rate).setBase(rate.getTerm()).setTerm(rate.getBase())
179+
return new DefaultExchangeRate.Builder(rate).setRate(rate).setBase(rate.getCurrency())
180+
.setTerm(rate.getBaseCurrency())
179181
.setFactor(divide(DefaultNumberValue.ONE, rate.getFactor(), MathContext.DECIMAL64)).build();
180182
}
181183

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ public class IMFRateProvider extends AbstractRateProvider implements LoaderListe
6060
private static final ProviderContext CONTEXT = ProviderContextBuilder.create("IMF", RateType.DEFERRED)
6161
.set("providerDescription", "International Monetary Fond").set("days", 1).build();
6262

63-
private static final CurrencyUnit SDR = new BuildableCurrencyUnit.Builder("SDR", CurrencyContextBuilder.create(
64-
IMFRateProvider.class.getSimpleName()).build()).setDefaultFractionDigits(3).build(true);
63+
private static final CurrencyUnit SDR = new BuildableCurrencyUnit.Builder("SDR", CurrencyContextBuilder
64+
.create(IMFRateProvider.class.getSimpleName()).build()).setDefaultFractionDigits(3).build(true);
6565

6666
private Map<CurrencyUnit,List<DefaultExchangeRate>> currencyToSdr = new HashMap<>();
6767

@@ -164,7 +164,7 @@ private void loadRatesTSV(InputStream inputStream) throws IOException, ParseExce
164164
continue;
165165
}
166166
Long fromTS = timestamps != null ? timestamps.get(i) : null;
167-
if(fromTS==null){
167+
if(fromTS == null){
168168
continue;
169169
}
170170
Long toTS = fromTS + 3600L * 1000L * 24L; // One day
@@ -230,7 +230,7 @@ public ExchangeRate getExchangeRate(ConversionQuery conversionQuery){
230230
return null;
231231
}
232232
CurrencyUnit base = conversionQuery.getBaseCurrency();
233-
CurrencyUnit term = conversionQuery.getTermCurrency();
233+
CurrencyUnit term = conversionQuery.getCurrency();
234234
Long timestamp = conversionQuery.getTimestampMillis();
235235
ExchangeRate rate1 = lookupRate(currencyToSdr.get(base), timestamp);
236236
ExchangeRate rate2 = lookupRate(sdrToCurrency.get(term), timestamp);

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

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,15 @@ public IdentityRateProvider() throws MalformedURLException{
5757
*/
5858
public boolean isAvailable(ConversionQuery conversionQuery){
5959
return conversionQuery.getBaseCurrency().getCurrencyCode()
60-
.equals(conversionQuery.getTermCurrency().getCurrencyCode());
60+
.equals(conversionQuery.getCurrency().getCurrencyCode());
6161
}
6262

6363
public ExchangeRate getExchangeRate(ConversionQuery query){
64-
if(query.getBaseCurrency().getCurrencyCode().equals(query.getTermCurrency().getCurrencyCode())){
65-
DefaultExchangeRate.Builder builder = new DefaultExchangeRate.Builder(getProviderContext().getProvider(), RateType.OTHER).setBase(query.getBaseCurrency());
66-
builder.setTerm(query.getTermCurrency());
64+
if(query.getBaseCurrency().getCurrencyCode().equals(query.getCurrency().getCurrencyCode())){
65+
DefaultExchangeRate.Builder builder =
66+
new DefaultExchangeRate.Builder(getProviderContext().getProvider(), RateType.OTHER)
67+
.setBase(query.getBaseCurrency());
68+
builder.setTerm(query.getCurrency());
6769
builder.setFactor(DefaultNumberValue.of(BigDecimal.ONE));
6870
return builder.build();
6971
}
@@ -80,8 +82,8 @@ public ExchangeRate getExchangeRate(ConversionQuery query){
8082
@Override
8183
public ExchangeRate getReversed(ExchangeRate rate){
8284
if(rate.getConversionContext().getProvider().equals(CONTEXT.getProvider())){
83-
return new DefaultExchangeRate.Builder(rate.getConversionContext()).setTerm(rate.getBase())
84-
.setBase(rate.getTerm()).setFactor(new DefaultNumberValue(BigDecimal.ONE)).build();
85+
return new DefaultExchangeRate.Builder(rate.getConversionContext()).setTerm(rate.getBaseCurrency())
86+
.setBase(rate.getCurrency()).setFactor(new DefaultNumberValue(BigDecimal.ONE)).build();
8587
}
8688
return null;
8789
}

0 commit comments

Comments
 (0)