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:42 UTC
[isis] 06/36: ISIS-2264: isis.value.format["decimal"] ->
isis.value-types.java-math.big-decimal.format
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 2d582bc8f088c3012c66f888b7753841af4dc693
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Jan 16 23:03:25 2020 +0100
ISIS-2264: isis.value.format["decimal"] -> isis.value-types.java-math.big-decimal.format
---
.../toc/modules/mignotes/pages/migrating-to-2.0.0.adoc | 4 ++++
.../java/org/apache/isis/core/config/IsisConfiguration.java | 8 +++++++-
.../value/bigdecimal/BigDecimalValueSemanticsProvider.java | 11 +++++++++--
3 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/antora/components/toc/modules/mignotes/pages/migrating-to-2.0.0.adoc b/antora/components/toc/modules/mignotes/pages/migrating-to-2.0.0.adoc
index bc079c6..efed8eb 100644
--- a/antora/components/toc/modules/mignotes/pages/migrating-to-2.0.0.adoc
+++ b/antora/components/toc/modules/mignotes/pages/migrating-to-2.0.0.adoc
@@ -624,6 +624,10 @@ standalone-collection.bulk-load
isis.value-types. +
{nbsp}{nbsp}primitives.integer.format
+|isis.value.format["decimal"]
+|isis.value-types. +
+{nbsp}{nbsp}java-math.big-decimal.format
+
|
|
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 a50eaab..8f2bfbd 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
@@ -1187,6 +1187,12 @@ public class IsisConfiguration {
public static class BigInteger {
private String format;
}
+
+ private final BigDecimal bigDecimal = new BigDecimal();
+ @Data
+ public static class BigDecimal {
+ private String format;
+ }
}
private final JavaTime javaTime = new JavaTime();
@@ -1241,7 +1247,7 @@ public class IsisConfiguration {
TIMESTAMP,
TIME,
- DECIMAL, BYTE, DOUBLE, FLOAT, LONG, SHORT,
+ BYTE, DOUBLE, FLOAT, LONG, SHORT,
PERCENTAGE
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bigdecimal/BigDecimalValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bigdecimal/BigDecimalValueSemanticsProvider.java
index 32f6a10..5ff190c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bigdecimal/BigDecimalValueSemanticsProvider.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bigdecimal/BigDecimalValueSemanticsProvider.java
@@ -28,7 +28,7 @@ import java.util.Map;
import org.apache.isis.applib.adapters.EncoderDecoder;
import org.apache.isis.applib.adapters.Parser;
import org.apache.isis.core.commons.exceptions.IsisException;
-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;
@@ -58,7 +58,14 @@ public class BigDecimalValueSemanticsProvider extends ValueSemanticsProviderAndF
public BigDecimalValueSemanticsProvider(final FacetHolder holder) {
super(type(), holder, BigDecimal.class, TYPICAL_LENGTH, -1, Immutability.IMMUTABLE, EqualByContent.HONOURED, DEFAULT_VALUE);
- format = determineNumberFormat(FormatIdentifier.DECIMAL);
+ final String formatRequired = getConfiguration().getValueTypes().getJavaMath().getBigDecimal().getFormat();
+
+ if (formatRequired != null) {
+ format = new DecimalFormat(formatRequired);
+ } else {
+ final Locale inLocale = getConfiguration().getCore().getRuntime().getLocale().map(LocaleUtil::findLocale).orElse(Locale.getDefault());
+ format = NumberFormat.getNumberInstance(inLocale);
+ }
}
public void setLocale(final Locale l) {