
com.commercetools.sunrise.framework.localization.CurrencyFromCountryProvider Maven / Gradle / Ivy
The newest version!
package com.commercetools.sunrise.framework.localization;
import com.commercetools.sunrise.ctp.project.ProjectContext;
import com.neovisionaries.i18n.CountryCode;
import javax.inject.Inject;
import javax.inject.Provider;
import javax.money.CurrencyUnit;
import javax.money.Monetary;
import java.util.Optional;
/**
* Provides the {@link CurrencyUnit} corresponding to the injected {@link CountryCode}.
*/
public final class CurrencyFromCountryProvider implements Provider {
private final CountryCode country;
private final ProjectContext projectContext;
@Inject
CurrencyFromCountryProvider(final CountryCode country, final ProjectContext projectContext) {
this.country = country;
this.projectContext = projectContext;
}
@Override
public CurrencyUnit get() {
return findCurrentCurrency()
.filter(projectContext::isCurrencySupported)
.orElseGet(projectContext::defaultCurrency);
}
private Optional findCurrentCurrency() {
return Optional.ofNullable(country.getCurrency())
.map(countryCurrency -> Monetary.getCurrency(countryCurrency.getCurrencyCode()));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy