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/17 01:11:38 UTC

[isis] 02/36: ISIS-2264: refactors calls using IsisConfiguration#format with INT

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 68426ba251c7c8486a1113ce4fb9be0007f60fbc
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Jan 16 22:45:40 2020 +0100

    ISIS-2264: refactors calls using IsisConfiguration#format with INT
---
 .../org/apache/isis/core/config/IsisConfiguration.java    |  2 +-
 .../biginteger/BigIntegerValueSemanticsProvider.java      | 15 ++++++++++++++-
 .../value/integer/IntValueSemanticsProviderAbstract.java  | 14 +++++++++++++-
 3 files changed, 28 insertions(+), 3 deletions(-)

diff --git a/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java b/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
index ddfb5f6..64f60b1 100644
--- a/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
@@ -1201,7 +1201,7 @@ public class IsisConfiguration {
         }
         
         public String getFormatOrElse(FormatIdentifier formatIdentifier, String defaultFormat) {
-            return format.getOrDefault(formatIdentifier.name().toLowerCase(), defaultFormat);
+            return getFormat().getOrDefault(formatIdentifier.name().toLowerCase(), defaultFormat);
         }
         
         private final Money money = new Money();
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/biginteger/BigIntegerValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/biginteger/BigIntegerValueSemanticsProvider.java
index 5a953dd..cd9a6a5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/biginteger/BigIntegerValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/biginteger/BigIntegerValueSemanticsProvider.java
@@ -22,11 +22,13 @@ package org.apache.isis.core.metamodel.facets.value.biginteger;
 import java.math.BigInteger;
 import java.text.DecimalFormat;
 import java.text.NumberFormat;
+import java.util.Locale;
 import java.util.Map;
 
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.Parser;
 import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
+import org.apache.isis.core.metamodel.commons.LocaleUtil;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.parseable.TextEntryParseException;
@@ -56,9 +58,20 @@ public class BigIntegerValueSemanticsProvider extends ValueSemanticsProviderAndF
     public BigIntegerValueSemanticsProvider(final FacetHolder holder) {
 
         super(type(), holder, BigInteger.class, TYPICAL_LENGTH, -1, Immutability.IMMUTABLE, EqualByContent.HONOURED, DEFAULT_VALUE);
-        format = determineNumberFormat(FormatIdentifier.INT);
+        final String formatRequired =
+                getConfiguration().getValue().getFormat().getOrDefault(FormatIdentifier.INT.name().toLowerCase(), null);
+
+        NumberFormat result;
+        if (formatRequired != null) {
+            result = new DecimalFormat(formatRequired);
+        } else {
+            final Locale inLocale = getConfiguration().getCore().getRuntime().getLocale().map(LocaleUtil::findLocale).orElse(Locale.getDefault());
+            result = NumberFormat.getNumberInstance(inLocale);
+        }
+        format = result;
     }
 
+
     // //////////////////////////////////////////////////////////////////
     // Parser
     // //////////////////////////////////////////////////////////////////
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/integer/IntValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/integer/IntValueSemanticsProviderAbstract.java
index 929f003..e540776 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/integer/IntValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/integer/IntValueSemanticsProviderAbstract.java
@@ -22,9 +22,11 @@ package org.apache.isis.core.metamodel.facets.value.integer;
 import java.text.DecimalFormat;
 import java.text.NumberFormat;
 import java.text.ParseException;
+import java.util.Locale;
 import java.util.Map;
 
 import org.apache.isis.core.config.IsisConfiguration.Value.FormatIdentifier;
+import org.apache.isis.core.metamodel.commons.LocaleUtil;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.parseable.TextEntryParseException;
@@ -46,7 +48,17 @@ public abstract class IntValueSemanticsProviderAbstract extends ValueSemanticsPr
 
     public IntValueSemanticsProviderAbstract(final FacetHolder holder, final Class<Integer> adaptedClass) {
         super(type(), holder, adaptedClass, TYPICAL_LENGTH, MAX_LENGTH, Immutability.IMMUTABLE, EqualByContent.HONOURED, DEFAULT_VALUE);
-        format = determineNumberFormat(FormatIdentifier.INT);
+        final String formatRequired =
+                getConfiguration().getValue().getFormat().getOrDefault(FormatIdentifier.INT.name().toLowerCase(), null);
+
+        NumberFormat result;
+        if (formatRequired != null) {
+            result = new DecimalFormat(formatRequired);
+        } else {
+            final Locale inLocale = getConfiguration().getCore().getRuntime().getLocale().map(LocaleUtil::findLocale).orElse(Locale.getDefault());
+            result = NumberFormat.getNumberInstance(inLocale);
+        }
+        format = result;
     }
 
     // //////////////////////////////////////////////////////////////////