/** * Creates a new ProviderContext based on the provider id and rate type(s). * * @param provider the provider id, not null. * @param rateTypes the required {@link RateType}s, not null * @return a new {@link ProviderContext} instance. */ public static ProviderContext of(String provider, RateType rateType, RateType... rateTypes) { return ProviderContextBuilder.of(provider, rateType, rateTypes).build(); }
/** * Creates a new ProviderContext based on the provider id and rate type(s). * * @param provider the provider id, not null. * @return a new {@link ProviderContext} instance. */ public static ProviderContext of(String provider) { return ProviderContextBuilder.of(provider, RateType.ANY).build(); }
private static ProviderContext createContext(Iterable<ExchangeRateProvider> providers) { Set<RateType> rateTypeSet = new HashSet<>(); StringBuilder providerName = new StringBuilder("Compound: "); List<ProviderContext> childContextList = new ArrayList<>(); for (ExchangeRateProvider exchangeRateProvider : providers) { childContextList.add(exchangeRateProvider.getContext()); providerName.append(exchangeRateProvider.getContext().getProviderName()); providerName.append(',' ); rateTypeSet.addAll(exchangeRateProvider.getContext().getRateTypes()); } providerName.setLength(providerName.length() - 1); ProviderContextBuilder builder = ProviderContextBuilder.of(providerName.toString(), rateTypeSet); builder.set(CHILD_PROVIDER_CONTEXTS_KEY, childContextList); return builder.build(); }