Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Clean up Monetary implementation #125

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
keilw merged 1 commit into JavaMoney:master from marschall:fix-90
Aug 5, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 28 additions & 40 deletions src/main/java/javax/money/Monetary.java
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
import java.util.Collection;
import java.util.List;
import java.util.Locale;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.logging.Level;
Expand All @@ -40,8 +39,11 @@
public final class Monetary {
/**
* The used {@link javax.money.spi.MonetaryCurrenciesSingletonSpi} instance.
*
* @return the used {@link javax.money.spi.MonetaryCurrenciesSingletonSpi} instance,
* never {@code null}
*/
private static MonetaryCurrenciesSingletonSpi MONETARY_CURRENCIES_SINGLETON_SPI() {
private static MonetaryCurrenciesSingletonSpi monetaryCurrenciesSingletonSpi() {
try {
return Optional.ofNullable(Bootstrap
.getService(MonetaryCurrenciesSingletonSpi.class)).orElseGet(
Expand Down Expand Up @@ -83,6 +85,9 @@ private static MonetaryAmountsSingletonQuerySpi monetaryAmountsSingletonQuerySpi

/**
* The used {@link javax.money.spi.MonetaryCurrenciesSingletonSpi} instance.
*
* @return the used {@link javax.money.spi.MonetaryCurrenciesSingletonSpi} instance,
* never {@code null}
*/
private static MonetaryRoundingsSingletonSpi monetaryRoundingsSingletonSpi() {
try {
Expand All @@ -108,8 +113,7 @@ private Monetary() {
* @return the set of provider names, never {@code null}.
*/
public static Set<String> getRoundingProviderNames() {
return Optional.ofNullable(monetaryRoundingsSingletonSpi()).orElseThrow(
() -> new MonetaryException("No MonetaryRoundingsSpi loaded, query functionality is not available."))
return monetaryRoundingsSingletonSpi()
.getProviderNames();
}

Expand All @@ -119,8 +123,7 @@ public static Set<String> getRoundingProviderNames() {
* @return the chained list of provider names, never {@code null}.
*/
public static List<String> getDefaultRoundingProviderChain() {
return Optional.ofNullable(monetaryRoundingsSingletonSpi()).orElseThrow(
() -> new MonetaryException("No MonetaryRoundingsSpi loaded, query functionality is not available."))
return monetaryRoundingsSingletonSpi()
.getDefaultProviderChain();
}

Expand All @@ -133,8 +136,7 @@ public static List<String> getDefaultRoundingProviderChain() {
* @return the (shared) default rounding instance.
*/
public static MonetaryRounding getDefaultRounding() {
return Optional.ofNullable(monetaryRoundingsSingletonSpi()).orElseThrow(
() -> new MonetaryException("No MonetaryRoundingsSpi loaded, query functionality is not available."))
return monetaryRoundingsSingletonSpi()
.getDefaultRounding();
}

Expand All @@ -151,8 +153,7 @@ public static MonetaryRounding getDefaultRounding() {
* rounding, never {@code null}.
*/
public static MonetaryRounding getRounding(CurrencyUnit currencyUnit, String... providers) {
return Optional.ofNullable(monetaryRoundingsSingletonSpi()).orElseThrow(
() -> new MonetaryException("No MonetaryRoundingsSpi loaded, query functionality is not available."))
return monetaryRoundingsSingletonSpi()
.getRounding(currencyUnit, providers);
}

Expand All @@ -169,8 +170,7 @@ public static MonetaryRounding getRounding(CurrencyUnit currencyUnit, String...
* {@link javax.money.spi.RoundingProviderSpi} instance.
*/
public static MonetaryRounding getRounding(String roundingName, String... providers) {
return Optional.ofNullable(monetaryRoundingsSingletonSpi()).orElseThrow(
() -> new MonetaryException("No MonetaryRoundingsSpi loaded, query functionality is not available."))
return monetaryRoundingsSingletonSpi()
.getRounding(roundingName, providers);
}

Expand All @@ -184,8 +184,7 @@ public static MonetaryRounding getRounding(String roundingName, String... provid
* {@link javax.money.spi.RoundingProviderSpi} instance.
*/
public static MonetaryRounding getRounding(RoundingQuery roundingQuery) {
return Optional.ofNullable(monetaryRoundingsSingletonSpi()).orElseThrow(
() -> new MonetaryException("No MonetaryRoundingsSpi loaded, query functionality is not available."))
return monetaryRoundingsSingletonSpi()
.getRounding(roundingQuery);
}

Expand All @@ -200,8 +199,7 @@ public static MonetaryRounding getRounding(RoundingQuery roundingQuery) {
* {@link javax.money.spi.RoundingProviderSpi} instance.
*/
public static boolean isRoundingAvailable(String roundingName, String... providers) {
return Optional.ofNullable(monetaryRoundingsSingletonSpi()).orElseThrow(
() -> new MonetaryException("No MonetaryRoundingsSpi loaded, query functionality is not available."))
return monetaryRoundingsSingletonSpi()
.isRoundingAvailable(roundingName, providers);
}

Expand All @@ -217,8 +215,7 @@ public static boolean isRoundingAvailable(String roundingName, String... provide
* {@link javax.money.spi.RoundingProviderSpi} instance.
*/
public static boolean isRoundingAvailable(CurrencyUnit currencyUnit, String... providers) {
return Optional.ofNullable(monetaryRoundingsSingletonSpi()).orElseThrow(
() -> new MonetaryException("No MonetaryRoundingsSpi loaded, query functionality is not available."))
return monetaryRoundingsSingletonSpi()
.isRoundingAvailable(currencyUnit, providers);
}

Expand All @@ -232,8 +229,7 @@ public static boolean isRoundingAvailable(CurrencyUnit currencyUnit, String... p
* {@link javax.money.spi.RoundingProviderSpi} instance.
*/
public static boolean isRoundingAvailable(RoundingQuery roundingQuery) {
return Optional.ofNullable(monetaryRoundingsSingletonSpi()).orElseThrow(
() -> new MonetaryException("No MonetaryRoundingsSpi loaded, query functionality is not available."))
return monetaryRoundingsSingletonSpi()
.isRoundingAvailable(roundingQuery);
}

Expand All @@ -246,8 +242,7 @@ public static boolean isRoundingAvailable(RoundingQuery roundingQuery) {
* @return all {@link javax.money.MonetaryRounding} instances matching the query, never {@code null}.
*/
public static Collection<MonetaryRounding> getRoundings(RoundingQuery roundingQuery) {
return Optional.ofNullable(monetaryRoundingsSingletonSpi()).orElseThrow(
() -> new MonetaryException("No MonetaryRoundingsSpi loaded, query functionality is not available."))
return monetaryRoundingsSingletonSpi()
.getRoundings(roundingQuery);
}

Expand All @@ -260,8 +255,7 @@ public static Collection<MonetaryRounding> getRoundings(RoundingQuery roundingQu
* @return the set of custom rounding ids, never {@code null}.
*/
public static Set<String> getRoundingNames(String... providers) {
return Optional.ofNullable(monetaryRoundingsSingletonSpi()).orElseThrow(
() -> new MonetaryException("No MonetaryRoundingsSpi loaded, query functionality is not available."))
return monetaryRoundingsSingletonSpi()
.getRoundingNames(providers);
}

Expand Down Expand Up @@ -384,8 +378,7 @@ public static boolean isAvailable(MonetaryAmountFactoryQuery query) {
* @throws UnknownCurrencyException if no such currency exists.
*/
public static CurrencyUnit getCurrency(String currencyCode, String... providers) {
return Optional.ofNullable(MONETARY_CURRENCIES_SINGLETON_SPI()).orElseThrow(
() -> new MonetaryException("No MonetaryCurrenciesSingletonSpi loaded, check your system setup."))
return monetaryCurrenciesSingletonSpi()
.getCurrency(currencyCode, providers);
}

Expand All @@ -401,8 +394,7 @@ public static CurrencyUnit getCurrency(String currencyCode, String... providers)
* @throws UnknownCurrencyException if no such currency exists.
*/
public static CurrencyUnit getCurrency(Locale locale, String... providers) {
return Optional.ofNullable(MONETARY_CURRENCIES_SINGLETON_SPI()).orElseThrow(
() -> new MonetaryException("No MonetaryCurrenciesSingletonSpi loaded, check your system setup."))
return monetaryCurrenciesSingletonSpi()
.getCurrency(locale, providers);
}

Expand All @@ -418,7 +410,7 @@ public static CurrencyUnit getCurrency(Locale locale, String... providers) {
* @throws UnknownCurrencyException if no such currency exists.
*/
public static Set<CurrencyUnit> getCurrencies(Locale locale, String... providers) {
return Optional.ofNullable(MONETARY_CURRENCIES_SINGLETON_SPI()).orElseThrow(
return Optional.ofNullable(monetaryCurrenciesSingletonSpi()).orElseThrow(
() -> new MonetaryException("No MonetaryCurrenciesSingletonSpi loaded, check your system setup."))
.getCurrencies(locale, providers);
}
Expand All @@ -433,7 +425,7 @@ public static Set<CurrencyUnit> getCurrencies(Locale locale, String... providers
* would return a result for the given code.
*/
public static boolean isCurrencyAvailable(String code, String... providers) {
return Objects.nonNull(MONETARY_CURRENCIES_SINGLETON_SPI()) && MONETARY_CURRENCIES_SINGLETON_SPI().isCurrencyAvailable(code, providers);
return monetaryCurrenciesSingletonSpi().isCurrencyAvailable(code, providers);
}

/**
Expand All @@ -446,7 +438,7 @@ public static boolean isCurrencyAvailable(String code, String... providers) {
* result containing a currency with the given code.
*/
public static boolean isCurrencyAvailable(Locale locale, String... providers) {
return Objects.nonNull(MONETARY_CURRENCIES_SINGLETON_SPI()) && MONETARY_CURRENCIES_SINGLETON_SPI().isCurrencyAvailable(locale, providers);
return monetaryCurrenciesSingletonSpi().isCurrencyAvailable(locale, providers);
}

/**
Expand All @@ -456,8 +448,7 @@ public static boolean isCurrencyAvailable(Locale locale, String... providers) {
* @return the list of known currencies, never null.
*/
public static Collection<CurrencyUnit> getCurrencies(String... providers) {
return Optional.ofNullable(MONETARY_CURRENCIES_SINGLETON_SPI()).orElseThrow(
() -> new MonetaryException("No MonetaryCurrenciesSingletonSpi loaded, check your system setup."))
return monetaryCurrenciesSingletonSpi()
.getCurrencies(providers);
}

Expand All @@ -468,8 +459,7 @@ public static Collection<CurrencyUnit> getCurrencies(String... providers) {
* @return the list of known currencies, never null.
*/
public static CurrencyUnit getCurrency(CurrencyQuery query) {
return Optional.ofNullable(MONETARY_CURRENCIES_SINGLETON_SPI()).orElseThrow(
() -> new MonetaryException("No MonetaryCurrenciesSingletonSpi loaded, check your system setup."))
return monetaryCurrenciesSingletonSpi()
.getCurrency(query);
}

Expand All @@ -481,7 +471,7 @@ public static CurrencyUnit getCurrency(CurrencyQuery query) {
* @return the list of known currencies, never null.
*/
public static Collection<CurrencyUnit> getCurrencies(CurrencyQuery query) {
return Optional.ofNullable(MONETARY_CURRENCIES_SINGLETON_SPI()).orElseThrow(
return Optional.ofNullable(monetaryCurrenciesSingletonSpi()).orElseThrow(
() -> new MonetaryException("No MonetaryCurrenciesSingletonSpi loaded, check your system setup."))
.getCurrencies(query);
}
Expand All @@ -492,8 +482,7 @@ public static Collection<CurrencyUnit> getCurrencies(CurrencyQuery query) {
* @return the list of known currencies, never null.
*/
public static Set<String> getCurrencyProviderNames() {
return Optional.ofNullable(MONETARY_CURRENCIES_SINGLETON_SPI()).orElseThrow(
() -> new MonetaryException("No MonetaryCurrenciesSingletonSpi loaded, check your system setup."))
return monetaryCurrenciesSingletonSpi()
.getProviderNames();
}

Expand All @@ -504,8 +493,7 @@ public static Set<String> getCurrencyProviderNames() {
* @return the ordered list provider names, modelling the default provider chain used, never null.
*/
public static List<String> getDefaultCurrencyProviderChain() {
return Optional.ofNullable(MONETARY_CURRENCIES_SINGLETON_SPI()).orElseThrow(
() -> new MonetaryException("No MonetaryCurrenciesSingletonSpi loaded, check your system setup."))
return monetaryCurrenciesSingletonSpi()
.getDefaultProviderChain();
}

Expand Down

AltStyle によって変換されたページ (->オリジナル) /