/** * Creates a new ConversionContext for the given {@link ProviderContext} and the given {@link RateType}. * <p> * <i>Note:</i> for adding additional attributes use {@link javax.money.convert.ConversionContextBuilder * (ProviderContext, RateType)}. * * @param providerContext the provider context, not null. * @param rateType the rate type, not null. * @return a corresponding instance of ConversionContext. */ public static ConversionContext from(ProviderContext providerContext, RateType rateType) { return ConversionContextBuilder.create(providerContext, rateType).build(); }
/** * Simple factory method for {@link ConversionContext}. For more * possibilities to initialize a {@link ConversionContext}, please use a * {@link javax.money.convert.ConversionContextBuilder}, * * @param provider the provider name, not {@code null} * @param rateType the required rate type. * @return a new instance of {@link ConversionContext} */ public static ConversionContext of(String provider, RateType rateType) { ConversionContextBuilder b = new ConversionContextBuilder(); b.setRateType(rateType); b.setProviderName(provider); return b.build(); }
protected ConversionContext getExchangeContext(String key) { int scale = getScale(key); if(scale < 0) { return ConversionContext.of(this.context.getProviderName(), RateType.HISTORIC); } else { return ConversionContext.of(this.context.getProviderName(), RateType.HISTORIC).toBuilder().set(KEY_SCALE, scale).build(); } }
@Override public ExchangeRate getExchangeRate(ConversionQuery conversionQuery) { if (isAvailable(conversionQuery)) { return new TestExchangeRate.Builder( ConversionContextBuilder.create(getContext(), RateType.OTHER).importContext(conversionQuery) .build()).setFactor(new TestNumberValue(2)).setBase(conversionQuery.getBaseCurrency()) .setTerm(conversionQuery.getCurrency()).build(); } return null; }