You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2020/01/09 18:25:49 UTC
[isis] 10/11: ISIS-2261: also uses Optional for a couple of
other config props
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
commit c4b506f68dd9ea20a7dc309adc80256a27562d64
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Jan 9 17:44:20 2020 +0000
ISIS-2261: also uses Optional<X> for a couple of other config props
---
.../org/apache/isis/config/IsisConfiguration.java | 9 +++---
.../ValueSemanticsProviderAndFacetAbstract.java | 16 ++++------
.../session/init/IsisLocaleInitializer.java | 35 +++++++++++++---------
.../value/money/MoneyValueSemanticsProvider.java | 6 +++-
4 files changed, 36 insertions(+), 30 deletions(-)
diff --git a/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java b/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
index 906a1e8..565592d 100644
--- a/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
@@ -88,10 +88,9 @@ public class IsisConfiguration {
}
/**
- * Optional: set to override {@link Locale#getDefault()}
- * <p>{@code null} is allowed
+ * Set to override {@link Locale#getDefault()}
*/
- private String locale = null; //TODO no meta data yet ... https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-configuration-metadata.html#configuration-metadata-property-attributes
+ private Optional<String> locale = Optional.empty();
private final Objects objects = new Objects();
@Data
@@ -1217,10 +1216,10 @@ public class IsisConfiguration {
@Data
public static class Money {
- private String currency = null;
+ private Optional<String> currency = Optional.empty();
public String getCurrencyOrElse(String fallback) {
- return _Strings.isNotEmpty(getCurrency()) ? getCurrency() : fallback;
+ return getCurrency().filter(_Strings::isNotEmpty).orElse(fallback);
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java
index 5ad6233..be6f4f1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/value/vsp/ValueSemanticsProviderAndFacetAbstract.java
@@ -283,19 +283,15 @@ implements ValueSemanticsProvider<T>, EncoderDecoder<T>, Parser<T>, DefaultsProv
protected NumberFormat determineNumberFormat(FormatIdentifier formatIdentifier) {
final String formatRequired = getConfiguration()
- .getValue().getFormatOrElse(formatIdentifier, null);
-
- if (formatRequired != null) {
- return new DecimalFormat(formatRequired);
- } else {
- return NumberFormat.getNumberInstance(findLocale());
- }
+ .getValue().getFormatOrElse(formatIdentifier, null);
+
+ return formatRequired != null
+ ? new DecimalFormat(formatRequired)
+ : NumberFormat.getNumberInstance(findLocale());
}
private Locale findLocale() {
- final String localeStr = getConfiguration().getLocale();
- final Locale findLocale = LocaleUtil.findLocale(localeStr);
- return findLocale != null ? findLocale : Locale.getDefault();
+ return getConfiguration().getLocale().map(LocaleUtil::findLocale).orElse(Locale.getDefault());
}
// //////////////////////////////////////////////////////////
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/session/init/IsisLocaleInitializer.java b/core/runtime/src/main/java/org/apache/isis/runtime/session/init/IsisLocaleInitializer.java
index 7380f55..6697fcd 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/session/init/IsisLocaleInitializer.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/session/init/IsisLocaleInitializer.java
@@ -20,6 +20,7 @@
package org.apache.isis.runtime.session.init;
import java.util.Locale;
+import java.util.Optional;
import org.apache.isis.config.IsisConfiguration;
@@ -29,21 +30,27 @@ import lombok.extern.log4j.Log4j2;
public class IsisLocaleInitializer {
public void initLocale(final IsisConfiguration configuration) {
- final String localeSpec = configuration.getLocale();
- if (localeSpec != null) {
- final int pos = localeSpec.indexOf('_');
- Locale locale;
- if (pos == -1) {
- locale = new Locale(localeSpec, "");
- } else {
- final String language = localeSpec.substring(0, pos);
- final String country = localeSpec.substring(pos + 1);
- locale = new Locale(language, country);
- }
- Locale.setDefault(locale);
- log.info("locale set to {}", locale);
- }
+ final Optional<String> localeSpecOpt = configuration.getLocale();
+ localeSpecOpt.map(IsisLocaleInitializer::toLocale).ifPresent(IsisLocaleInitializer::setLocaleDefault);
log.debug("locale is {}", Locale.getDefault());
}
+ private static Locale toLocale(String localeSpec) {
+ final int pos = localeSpec.indexOf('_');
+ Locale locale;
+ if (pos == -1) {
+ locale = new Locale(localeSpec, "");
+ } else {
+ final String language = localeSpec.substring(0, pos);
+ final String country = localeSpec.substring(pos + 1);
+ locale = new Locale(language, country);
+ }
+ return locale;
+ }
+
+ private static void setLocaleDefault(Locale locale) {
+ Locale.setDefault(locale);
+ log.info("locale set to {}", locale);
+ }
+
}
diff --git a/legacy/extensions/core/metamodel/src/main/java/org/apache/isis/legacy/metamodel/facets/value/money/MoneyValueSemanticsProvider.java b/legacy/extensions/core/metamodel/src/main/java/org/apache/isis/legacy/metamodel/facets/value/money/MoneyValueSemanticsProvider.java
index 64a7551..bc263d6 100644
--- a/legacy/extensions/core/metamodel/src/main/java/org/apache/isis/legacy/metamodel/facets/value/money/MoneyValueSemanticsProvider.java
+++ b/legacy/extensions/core/metamodel/src/main/java/org/apache/isis/legacy/metamodel/facets/value/money/MoneyValueSemanticsProvider.java
@@ -27,6 +27,7 @@ import java.util.Map;
import org.apache.isis.applib.adapters.EncoderDecoder;
import org.apache.isis.applib.adapters.Parser;
+import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.legacy.applib.value.Money;
import org.apache.isis.metamodel.facetapi.Facet;
import org.apache.isis.metamodel.facetapi.FacetHolder;
@@ -82,7 +83,10 @@ implements MoneyValueFacet {
public MoneyValueSemanticsProvider(final FacetHolder holder) {
super(type(), holder, Money.class, TYPICAL_LENGTH, -1, Immutability.IMMUTABLE, EqualByContent.HONOURED, DEFAULT_VALUE);
- defaultCurrencyCode = getConfiguration().getValue().getMoney().getCurrencyOrElse(LOCAL_CURRENCY_CODE);
+ defaultCurrencyCode =
+ getConfiguration().getValue().getMoney().getCurrency()
+ .filter(_Strings::isNotEmpty)
+ .orElse(LOCAL_CURRENCY_CODE);
}
// //////////////////////////////////////////////////////////////////