/** * 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(); }
/** * Create a new Builder instance without any provider, e.g. for creating * new {@link ConversionContext} instances for querying. */ public ConversionContextBuilder() { set(RateType.ANY); }
/** * Create a new Builder, hereby using the given * {@link ConversionContext}'s values as defaults. This allows changing * an existing {@link ConversionContext} easily. * * @param context the provider context, not {@code null} * @param rateType the rate type, not null. */ private ConversionContextBuilder(ProviderContext context, RateType rateType) { importContext(context); setRateType(rateType); }
/** * 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(); }
@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; }
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(); } }
/** * Create a new Builder, hereby using the given * {@link ConversionContext}'s values as defaults. This allows changing * an existing {@link ConversionContext} easily. * * @param context the context, not {@code null} */ private ConversionContextBuilder(ConversionContext context) { importContext(context); }
/** * Creates a new {@link javax.money.convert.ConversionContextBuilder} instance. * * @return a new {@link javax.money.convert.ConversionContextBuilder} instance, never null. */ public static ConversionContextBuilder of() { return new ConversionContextBuilder(); }
/** * Creates a conversion query builder with the context data from this context instance. * * @return a corresponding conversion query builder instance, never null. */ public ConversionContextBuilder toBuilder() { return ConversionContextBuilder.of(this); }
/** * Creates a new {@link javax.money.convert.ConversionContextBuilder} instance. * @param conversionContext the conversion context to be used to initialize the new builder instance, not null. * @return a new {@link javax.money.convert.ConversionContextBuilder} instance, never null. */ public static ConversionContextBuilder of(ConversionContext conversionContext) { return new ConversionContextBuilder(conversionContext); }
/** * Set the historic value. * * @param rateType the rate type * @return this, for chaining. */ public ConversionContextBuilder setRateType(RateType rateType) { Objects.requireNonNull(rateType); set(rateType); return this; }
/** * Create a new Builder, hereby using the given * {@link ConversionContext}'s values as defaults. This allows changing * an existing {@link ConversionContext} easily. * * @param context the provider context, not {@code null} * @param rateType the rate type, not null. * @return a new {@link javax.money.convert.ConversionContextBuilder} instance, never null. */ public static ConversionContextBuilder create(ProviderContext context, RateType rateType) { return new ConversionContextBuilder(context, rateType); }