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:43 UTC

[isis] 07/36: ISIS-2264: isis.value.format["byte"] -> isis.value-types.java-lang.byte.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 417213d14b74b35c6c071b262ad62664e9490cb1
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Jan 16 23:13:11 2020 +0100

    ISIS-2264: isis.value.format["byte"] -> isis.value-types.java-lang.byte.format
    
    also renames isis.value-types.primitives.integer -> ...int
---
 .../toc/modules/mignotes/pages/migrating-to-2.0.0.adoc |  6 +++++-
 .../org/apache/isis/core/config/IsisConfiguration.java | 18 +++++++++++++++---
 .../additional-spring-configuration-metadata.json      |  8 ++++++++
 .../bytes/ByteValueSemanticsProviderAbstract.java      |  9 ++++++++-
 .../integer/IntValueSemanticsProviderAbstract.java     |  2 +-
 5 files changed, 37 insertions(+), 6 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 efed8eb..8680ff9 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
@@ -622,12 +622,16 @@ standalone-collection.bulk-load
 {nbsp}{nbsp}java-math.big-integer.format +
 
 isis.value-types. +
-{nbsp}{nbsp}primitives.integer.format
+{nbsp}{nbsp}primitives.int.format
 
 |isis.value.format["decimal"]
 |isis.value-types. +
 {nbsp}{nbsp}java-math.big-decimal.format
 
+|isis.value.format["byte"]
+|isis.value-types. +
+{nbsp}{nbsp}java-lang.byte.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 8f2bfbd..66ab13c 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
@@ -1172,9 +1172,21 @@ public class IsisConfiguration {
         @Data
         public static class Primitives {
 
-            private final Integer integer = new Integer();
+            // capitalized to avoid clash with keyword
+            private final Int Int = new Int();
             @Data
-            public static class Integer {
+            public static class Int {
+                private String format;
+            }
+        }
+
+        private final JavaLang javaLang = new JavaLang();
+        @Data
+        public static class JavaLang {
+            // capitalized to avoid clash with keyword
+            private final Byte Byte = new Byte();
+            @Data
+            public static class Byte {
                 private String format;
             }
         }
@@ -1247,7 +1259,7 @@ public class IsisConfiguration {
             TIMESTAMP, 
             TIME,
             
-            BYTE, DOUBLE, FLOAT, LONG, SHORT,
+            DOUBLE, FLOAT, LONG, SHORT,
             PERCENTAGE
         }
         
diff --git a/core/config/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/core/config/src/main/resources/META-INF/additional-spring-configuration-metadata.json
index faa68e6..fd56d0c 100644
--- a/core/config/src/main/resources/META-INF/additional-spring-configuration-metadata.json
+++ b/core/config/src/main/resources/META-INF/additional-spring-configuration-metadata.json
@@ -1,6 +1,14 @@
 {
   "properties": [
     {
+      "name": "isis.value-types.primitives.integer.format",
+      "type": "java.lang.String"
+    },
+    {
+      "name": "isis.value-types.java-lang.byte.format",
+      "type": "java.lang.String"
+    },
+    {
       "name": "isis.persistence.jdo-datanucleus.impl.datanucleus.ConnectionFactoryName"
     },
     {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bytes/ByteValueSemanticsProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bytes/ByteValueSemanticsProviderAbstract.java
index 1cd1bab..75471db 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bytes/ByteValueSemanticsProviderAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/bytes/ByteValueSemanticsProviderAbstract.java
@@ -22,9 +22,11 @@ package org.apache.isis.core.metamodel.facets.value.bytes;
 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;
@@ -47,9 +49,14 @@ implements ByteValueFacet {
 
     public ByteValueSemanticsProviderAbstract(final FacetHolder holder, final Class<Byte> adaptedClass) {
         super(type(), holder, adaptedClass, TYPICAL_LENGTH, MAX_LENGTH, Immutability.IMMUTABLE, EqualByContent.HONOURED, DEFAULT_VALUE);
-        format = determineNumberFormat(FormatIdentifier.BYTE);
+        final String formatRequired = getConfiguration().getValueTypes().getJavaLang().getByte().getFormat();
+
+        format = formatRequired != null
+                ? new DecimalFormat(formatRequired)
+                : NumberFormat.getNumberInstance(getConfiguration().getCore().getRuntime().getLocale().map(LocaleUtil::findLocale).orElse(Locale.getDefault()));
     }
 
+
     // //////////////////////////////////////////////////////////////////
     // 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 df43fad..af31781 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
@@ -48,7 +48,7 @@ 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);
-        final String formatRequired = getConfiguration().getValueTypes().getPrimitives().getInteger().getFormat();
+        final String formatRequired = getConfiguration().getValueTypes().getPrimitives().getInt().getFormat();
 
         NumberFormat result;
         if (formatRequired != null) {