You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/11/04 08:08:24 UTC
[isis] branch master updated: ISIS-2741: init decimal format's
MaximumFractionDigits to 16 per default
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new 407dafe ISIS-2741: init decimal format's MaximumFractionDigits to 16 per default
407dafe is described below
commit 407dafe3aa941356bfd21193527c2c2941b96b8e
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Nov 4 09:08:17 2021 +0100
ISIS-2741: init decimal format's MaximumFractionDigits to 16 per
default
- this is for parsable number representation, which we now distinguish
from simple (rendered) representation
---
.../isis/applib/adapters/ValueSemanticsAbstract.java | 12 ++++++++++--
...tionDigitsFacet.java => MaxFractionDigitsFacet.java} | 8 ++++----
...bstract.java => MaxFractionDigitsFacetAbstract.java} | 14 +++++++-------
...OnParameterFromJavaxValidationAnnotationFactory.java | 2 +-
...OnParameterFromJavaxValidationDigitsAnnotation.java} | 14 +++++++-------
...pertyFromJavaxValidationDigitsAnnotationFactory.java | 2 +-
...tOnPropertyFromJavaxValidationDigitsAnnotation.java} | 14 +++++++-------
.../valuesemantics/BigDecimalValueSemantics.java | 7 +++----
...JavaxValidationDigitsAnnotationFacetFactoryTest.java | 12 ++++++------
...imalInferredFromJdoColumnAnnotationFacetFactory.java | 10 +++++-----
...=> MaxFractionDigitsFacetInferredFromJdoColumn.java} | 14 +++++++-------
...lDerivedFromJdoColumnAnnotationFacetFactoryTest.java | 8 ++++----
...imalInferredFromJpaColumnAnnotationFacetFactory.java | 2 +-
...=> MaxFractionDigitsFacetInferredFromJpaColumn.java} | 14 +++++++-------
.../isis/viewer/common/model/feature/ScalarUiModel.java | 6 +++---
.../domainobjects/ObjectPropertyReprRenderer.java | 6 +++---
.../ui/components/scalars/IsisConverterLocator.java | 6 +++---
.../scalars/jdkmath/BigDecimalConverter_roundtrip.java | 17 ++++++++---------
18 files changed, 87 insertions(+), 81 deletions(-)
diff --git a/api/applib/src/main/java/org/apache/isis/applib/adapters/ValueSemanticsAbstract.java b/api/applib/src/main/java/org/apache/isis/applib/adapters/ValueSemanticsAbstract.java
index 729cd121..d1f9f75 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/adapters/ValueSemanticsAbstract.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/adapters/ValueSemanticsAbstract.java
@@ -86,9 +86,17 @@ implements
* @param context - nullable in support of JUnit testing
* @return {@link NumberFormat} the default from from given context's locale
* or else system's default locale
+ *
+ * @implNote the format's MaximumFractionDigits are initialized to 16, as
+ * 64 bit IEEE 754 double has 15 decimal digits of precision;
+ * this is typically overruled later by implementations of
+ * {@link #configureDecimalFormat(org.apache.isis.applib.adapters.ValueSemanticsProvider.Context, DecimalFormat) configureDecimalFormat}
*/
protected DecimalFormat getNumberFormat(final @Nullable ValueSemanticsProvider.Context context) {
- return (DecimalFormat)NumberFormat.getNumberInstance(getLocale(context));
+ val format = (DecimalFormat)NumberFormat.getNumberInstance(getLocale(context));
+ // prime w/ 16 (64 bit IEEE 754 double has 15 decimal digits of precision)
+ format.setMaximumFractionDigits(16);
+ return format;
}
protected String render(final T value, final Function<T, String> toString) {
@@ -137,7 +145,7 @@ implements
if(maxFractionDigits>-1
&& number.scale()>format.getMaximumFractionDigits()) {
throw new TextEntryParseException(String.format(
- "No more than %d fraction digits can be entered, "
+ "No more than %d digits can be entered after the decimal separator, "
+ "got %d in '%s'.", maxFractionDigits, number.scale(), input));
}
return number;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/maxlen/MaximumFractionDigitsFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/maxlen/MaxFractionDigitsFacet.java
similarity index 86%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/maxlen/MaximumFractionDigitsFacet.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/maxlen/MaxFractionDigitsFacet.java
index 97a532a..df52ad6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/maxlen/MaximumFractionDigitsFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/maxlen/MaxFractionDigitsFacet.java
@@ -29,12 +29,12 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
* <p>
* For example:
* <ul>
- * <li><tt>12345.789</tt> has 3 fractional digits</li>
- * <li><tt>12345</tt> has 0 fractional digits</li>
- * <li><tt>12345.0</tt> has 1 fractional digit</li>
+ * <li><tt>12345.789</tt> has 3 fraction digits</li>
+ * <li><tt>12345</tt> has 0 fraction digits</li>
+ * <li><tt>12345.0</tt> has 1 fraction digit</li>
* </ul>
*/
-public interface MaximumFractionDigitsFacet
+public interface MaxFractionDigitsFacet
extends Facet {
/**
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/maxlen/MaxFractionalDigitsFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/maxlen/MaxFractionDigitsFacetAbstract.java
similarity index 85%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/maxlen/MaxFractionalDigitsFacetAbstract.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/maxlen/MaxFractionDigitsFacetAbstract.java
index 8fa0963..ca05d52 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/maxlen/MaxFractionalDigitsFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/maxlen/MaxFractionDigitsFacetAbstract.java
@@ -27,25 +27,25 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import lombok.Getter;
import lombok.NonNull;
-public abstract class MaxFractionalDigitsFacetAbstract
+public abstract class MaxFractionDigitsFacetAbstract
extends FacetAbstract
-implements MaximumFractionDigitsFacet {
+implements MaxFractionDigitsFacet {
private static final Class<? extends Facet> type() {
- return MaximumFractionDigitsFacet.class;
+ return MaxFractionDigitsFacet.class;
}
@Getter(onMethod_ = {@Override})
private final int maximumFractionDigits;
- protected MaxFractionalDigitsFacetAbstract(
+ protected MaxFractionDigitsFacetAbstract(
final int maximumFractionDigits,
final FacetHolder holder) {
super(type(), holder);
this.maximumFractionDigits = maximumFractionDigits;
}
- protected MaxFractionalDigitsFacetAbstract(
+ protected MaxFractionDigitsFacetAbstract(
final int maximumFractionDigits,
final FacetHolder holder,
final Facet.Precedence precedence) {
@@ -55,10 +55,10 @@ implements MaximumFractionDigitsFacet {
@Override
public boolean semanticEquals(@NonNull final Facet other) {
- return other instanceof MaximumFractionDigitsFacet
+ return other instanceof MaxFractionDigitsFacet
? Integer.compare(
this.getMaximumFractionDigits(),
- ((MaximumFractionDigitsFacet)other).getMaximumFractionDigits()) == 0
+ ((MaxFractionDigitsFacet)other).getMaximumFractionDigits()) == 0
: false;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/bigdecimal/javaxvaldigits/BigDecimalFacetOnParameterFromJavaxValidationAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/bigdecimal/javaxvaldigits/BigDecimalFacetOnParameterFromJavaxValidationAnnotationFactory.java
index 4a8970a..2972055 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/bigdecimal/javaxvaldigits/BigDecimalFacetOnParameterFromJavaxValidationAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/bigdecimal/javaxvaldigits/BigDecimalFacetOnParameterFromJavaxValidationAnnotationFactory.java
@@ -51,7 +51,7 @@ extends FacetFactoryAbstract {
.create(digitsIfAny, processParameterContext.getFacetHolder()));
addFacetIfPresent(
- MaxFractionalDigitsFacetOnParameterFromJavaxValidationDigitsAnnotation
+ MaxFractionDigitsFacetOnParameterFromJavaxValidationDigitsAnnotation
.create(digitsIfAny, processParameterContext.getFacetHolder()));
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/bigdecimal/javaxvaldigits/MaxFractionalDigitsFacetOnParameterFromJavaxValidationDigitsAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/bigdecimal/javaxvaldigits/MaxFractionDigitsFacetOnParameterFromJavaxValidationDigitsAnnotation.java
similarity index 77%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/bigdecimal/javaxvaldigits/MaxFractionalDigitsFacetOnParameterFromJavaxValidationDigitsAnnotation.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/bigdecimal/javaxvaldigits/MaxFractionDigitsFacetOnParameterFromJavaxValidationDigitsAnnotation.java
index 9d43737..7086985 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/bigdecimal/javaxvaldigits/MaxFractionalDigitsFacetOnParameterFromJavaxValidationDigitsAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/bigdecimal/javaxvaldigits/MaxFractionDigitsFacetOnParameterFromJavaxValidationDigitsAnnotation.java
@@ -23,24 +23,24 @@ import java.util.Optional;
import javax.validation.constraints.Digits;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaximumFractionDigitsFacet;
-import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxFractionalDigitsFacetAbstract;
+import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxFractionDigitsFacet;
+import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxFractionDigitsFacetAbstract;
-public class MaxFractionalDigitsFacetOnParameterFromJavaxValidationDigitsAnnotation
-extends MaxFractionalDigitsFacetAbstract {
+public class MaxFractionDigitsFacetOnParameterFromJavaxValidationDigitsAnnotation
+extends MaxFractionDigitsFacetAbstract {
- public static Optional<MaximumFractionDigitsFacet> create(
+ public static Optional<MaxFractionDigitsFacet> create(
final Optional<Digits> digitsIfAny,
final FacetHolder holder) {
return digitsIfAny
.map(digits->{
- return new MaxFractionalDigitsFacetOnParameterFromJavaxValidationDigitsAnnotation(
+ return new MaxFractionDigitsFacetOnParameterFromJavaxValidationDigitsAnnotation(
digits.fraction(), holder);
});
}
- private MaxFractionalDigitsFacetOnParameterFromJavaxValidationDigitsAnnotation(
+ private MaxFractionDigitsFacetOnParameterFromJavaxValidationDigitsAnnotation(
final int maxFractionalDigits, final FacetHolder holder) {
super(maxFractionalDigits, holder);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/bigdecimal/javaxvaldigits/BigDecimalFacetOnPropertyFromJavaxValidationDigitsAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/bigdecimal/javaxvaldigits/BigDecimalFacetOnPropertyFromJavaxValidationDigitsAnnotationFactory.java
index 4edb66e..447f115 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/bigdecimal/javaxvaldigits/BigDecimalFacetOnPropertyFromJavaxValidationDigitsAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/bigdecimal/javaxvaldigits/BigDecimalFacetOnPropertyFromJavaxValidationDigitsAnnotationFactory.java
@@ -51,7 +51,7 @@ extends FacetFactoryAbstract {
.create(digitsIfAny, processMethodContext.getFacetHolder()));
addFacetIfPresent(
- MaxFractionalDigitsFacetOnPropertyFromJavaxValidationDigitsAnnotation
+ MaxFractionDigitsFacetOnPropertyFromJavaxValidationDigitsAnnotation
.create(digitsIfAny, processMethodContext.getFacetHolder()));
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/bigdecimal/javaxvaldigits/MaxFractionalDigitsFacetOnPropertyFromJavaxValidationDigitsAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/bigdecimal/javaxvaldigits/MaxFractionDigitsFacetOnPropertyFromJavaxValidationDigitsAnnotation.java
similarity index 77%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/bigdecimal/javaxvaldigits/MaxFractionalDigitsFacetOnPropertyFromJavaxValidationDigitsAnnotation.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/bigdecimal/javaxvaldigits/MaxFractionDigitsFacetOnPropertyFromJavaxValidationDigitsAnnotation.java
index bcd80fc..ba4fcd0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/bigdecimal/javaxvaldigits/MaxFractionalDigitsFacetOnPropertyFromJavaxValidationDigitsAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/bigdecimal/javaxvaldigits/MaxFractionDigitsFacetOnPropertyFromJavaxValidationDigitsAnnotation.java
@@ -23,24 +23,24 @@ import java.util.Optional;
import javax.validation.constraints.Digits;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaximumFractionDigitsFacet;
-import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxFractionalDigitsFacetAbstract;
+import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxFractionDigitsFacet;
+import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxFractionDigitsFacetAbstract;
-public class MaxFractionalDigitsFacetOnPropertyFromJavaxValidationDigitsAnnotation
-extends MaxFractionalDigitsFacetAbstract {
+public class MaxFractionDigitsFacetOnPropertyFromJavaxValidationDigitsAnnotation
+extends MaxFractionDigitsFacetAbstract {
- public static Optional<MaximumFractionDigitsFacet> create(
+ public static Optional<MaxFractionDigitsFacet> create(
final Optional<Digits> digitsIfAny,
final FacetHolder holder) {
return digitsIfAny
.map(digits->{
- return new MaxFractionalDigitsFacetOnPropertyFromJavaxValidationDigitsAnnotation(
+ return new MaxFractionDigitsFacetOnPropertyFromJavaxValidationDigitsAnnotation(
digits.fraction(), holder);
});
}
- private MaxFractionalDigitsFacetOnPropertyFromJavaxValidationDigitsAnnotation(
+ private MaxFractionDigitsFacetOnPropertyFromJavaxValidationDigitsAnnotation(
final int maxFractionalDigits, final FacetHolder holder) {
super(maxFractionalDigits, holder);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/BigDecimalValueSemantics.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/BigDecimalValueSemantics.java
index 911a412..32b43c5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/BigDecimalValueSemantics.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/valuesemantics/BigDecimalValueSemantics.java
@@ -33,7 +33,7 @@ import org.apache.isis.applib.adapters.Renderer;
import org.apache.isis.applib.adapters.ValueSemanticsAbstract;
import org.apache.isis.applib.adapters.ValueSemanticsProvider;
import org.apache.isis.applib.exceptions.UnrecoverableException;
-import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaximumFractionDigitsFacet;
+import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxFractionDigitsFacet;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.schema.common.v2.ValueType;
@@ -124,10 +124,9 @@ implements
}
// evaluate any facets that provide the MaximumFractionDigits
- feature.lookupFacet(MaximumFractionDigitsFacet.class).stream()
- .mapToInt(MaximumFractionDigitsFacet::getMaximumFractionDigits)
+ feature.lookupFacet(MaxFractionDigitsFacet.class).stream()
+ .mapToInt(MaxFractionDigitsFacet::getMaximumFractionDigits)
.filter(digits->digits>-1)
- .peek(digits->System.err.printf("digits: %d%n", digits)) //FIXME[ISIS-2741] remove (debug)
.forEach(digits-> // cardinality 0 or 1
format.setMaximumFractionDigits(digits));
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/decimal/JavaxValidationDigitsAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/decimal/JavaxValidationDigitsAnnotationFacetFactoryTest.java
index 6389d31..da69501 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/decimal/JavaxValidationDigitsAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/propparam/decimal/JavaxValidationDigitsAnnotationFacetFactoryTest.java
@@ -29,13 +29,13 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
import org.apache.isis.core.metamodel.facets.FacetFactory;
import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
-import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaximumFractionDigitsFacet;
+import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxFractionDigitsFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxTotalDigitsFacet;
import org.apache.isis.core.metamodel.facets.param.bigdecimal.javaxvaldigits.BigDecimalFacetOnParameterFromJavaxValidationAnnotationFactory;
-import org.apache.isis.core.metamodel.facets.param.bigdecimal.javaxvaldigits.MaxFractionalDigitsFacetOnParameterFromJavaxValidationDigitsAnnotation;
+import org.apache.isis.core.metamodel.facets.param.bigdecimal.javaxvaldigits.MaxFractionDigitsFacetOnParameterFromJavaxValidationDigitsAnnotation;
import org.apache.isis.core.metamodel.facets.param.bigdecimal.javaxvaldigits.MaxTotalDigitsFacetOnParameterFromJavaxValidationDigitsAnnotation;
import org.apache.isis.core.metamodel.facets.properties.bigdecimal.javaxvaldigits.BigDecimalFacetOnPropertyFromJavaxValidationDigitsAnnotationFactory;
-import org.apache.isis.core.metamodel.facets.properties.bigdecimal.javaxvaldigits.MaxFractionalDigitsFacetOnPropertyFromJavaxValidationDigitsAnnotation;
+import org.apache.isis.core.metamodel.facets.properties.bigdecimal.javaxvaldigits.MaxFractionDigitsFacetOnPropertyFromJavaxValidationDigitsAnnotation;
import org.apache.isis.core.metamodel.facets.properties.bigdecimal.javaxvaldigits.MaxTotalDigitsFacetOnPropertyFromJavaxValidationDigitsAnnotation;
public class JavaxValidationDigitsAnnotationFacetFactoryTest
@@ -92,10 +92,10 @@ extends AbstractFacetFactoryTest {
}
if(maxFractionalDigits>=0) {
- final MaximumFractionDigitsFacet facet = facetedMethod.getFacet(MaximumFractionDigitsFacet.class);
+ final MaxFractionDigitsFacet facet = facetedMethod.getFacet(MaxFractionDigitsFacet.class);
assertNotNull(facet);
- assertTrue(facet instanceof MaxFractionalDigitsFacetOnPropertyFromJavaxValidationDigitsAnnotation
- ||facet instanceof MaxFractionalDigitsFacetOnParameterFromJavaxValidationDigitsAnnotation);
+ assertTrue(facet instanceof MaxFractionDigitsFacetOnPropertyFromJavaxValidationDigitsAnnotation
+ ||facet instanceof MaxFractionDigitsFacetOnParameterFromJavaxValidationDigitsAnnotation);
assertThat(facet.getMaximumFractionDigits(), is(maxFractionalDigits));
}
}
diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalInferredFromJdoColumnAnnotationFacetFactory.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalInferredFromJdoColumnAnnotationFacetFactory.java
index 813fb69..e3b3044 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalInferredFromJdoColumnAnnotationFacetFactory.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalInferredFromJdoColumnAnnotationFacetFactory.java
@@ -29,7 +29,7 @@ import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
import org.apache.isis.core.metamodel.facets.FacetedMethod;
-import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaximumFractionDigitsFacet;
+import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxFractionDigitsFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxTotalDigitsFacet;
import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
import org.apache.isis.core.metamodel.spec.feature.MixedIn;
@@ -65,7 +65,7 @@ implements MetaModelRefiner {
.create(jdoColumnIfAny, holder));
addFacetIfPresent(
- MaxFractionalDigitsFacetInferredFromJdoColumn
+ MaxFractionDigitsFacetInferredFromJdoColumn
.create(jdoColumnIfAny, holder));
}
@@ -104,10 +104,10 @@ implements MetaModelRefiner {
b.getClass().getSimpleName());
}));
- association.lookupFacet(MaximumFractionDigitsFacet.class)
- .map(MaximumFractionDigitsFacet::getSharedFacetRankingElseFail)
+ association.lookupFacet(MaxFractionDigitsFacet.class)
+ .map(MaxFractionDigitsFacet::getSharedFacetRankingElseFail)
.ifPresent(facetRanking->facetRanking
- .visitTopRankPairsSemanticDiffering(MaximumFractionDigitsFacet.class, (a, b)->{
+ .visitTopRankPairsSemanticDiffering(MaxFractionDigitsFacet.class, (a, b)->{
ValidationFailure.raiseFormatted(
association,
diff --git a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MaxFractionalDigitsFacetInferredFromJdoColumn.java b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MaxFractionDigitsFacetInferredFromJdoColumn.java
similarity index 81%
rename from persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MaxFractionalDigitsFacetInferredFromJdoColumn.java
rename to persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MaxFractionDigitsFacetInferredFromJdoColumn.java
index a347c06..f89d85f 100644
--- a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MaxFractionalDigitsFacetInferredFromJdoColumn.java
+++ b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/MaxFractionDigitsFacetInferredFromJdoColumn.java
@@ -23,25 +23,25 @@ import java.util.Optional;
import javax.jdo.annotations.Column;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaximumFractionDigitsFacet;
-import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxFractionalDigitsFacetAbstract;
+import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxFractionDigitsFacet;
+import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxFractionDigitsFacetAbstract;
-public class MaxFractionalDigitsFacetInferredFromJdoColumn
-extends MaxFractionalDigitsFacetAbstract {
+public class MaxFractionDigitsFacetInferredFromJdoColumn
+extends MaxFractionDigitsFacetAbstract {
- public static Optional<MaximumFractionDigitsFacet> create(
+ public static Optional<MaxFractionDigitsFacet> create(
final Optional<Column> jdoColumnIfAny,
final FacetHolder holder) {
return jdoColumnIfAny
.filter(jdoColumn->jdoColumn.scale()>=0)
.map(jdoColumn->{
- return new MaxFractionalDigitsFacetInferredFromJdoColumn(
+ return new MaxFractionDigitsFacetInferredFromJdoColumn(
jdoColumn.scale(), holder);
});
}
- private MaxFractionalDigitsFacetInferredFromJdoColumn(
+ private MaxFractionDigitsFacetInferredFromJdoColumn(
final int maxFractionalDigits, final FacetHolder holder) {
super(maxFractionalDigits, holder);
}
diff --git a/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalDerivedFromJdoColumnAnnotationFacetFactoryTest.java b/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalDerivedFromJdoColumnAnnotationFacetFactoryTest.java
index 5ee9509..e11bd13 100644
--- a/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalDerivedFromJdoColumnAnnotationFacetFactoryTest.java
+++ b/persistence/jdo/metamodel/src/test/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/column/BigDecimalDerivedFromJdoColumnAnnotationFacetFactoryTest.java
@@ -27,7 +27,7 @@ import org.apache.isis.core.metamodel._testing.MetaModelContext_forTesting;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
import org.apache.isis.core.metamodel.facets.FacetedMethod;
-import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaximumFractionDigitsFacet;
+import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxFractionDigitsFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxTotalDigitsFacet;
import org.apache.isis.persistence.jdo.metamodel.testing.AbstractFacetFactoryTest;
@@ -112,12 +112,12 @@ extends AbstractFacetFactoryTest {
}
if(maxFractionalDigits>=0) {
- final MaximumFractionDigitsFacet facet = facetedMethod.getFacet(MaximumFractionDigitsFacet.class);
+ final MaxFractionDigitsFacet facet = facetedMethod.getFacet(MaxFractionDigitsFacet.class);
assertNotNull(facet);
- assertTrue(facet instanceof MaxFractionalDigitsFacetInferredFromJdoColumn);
+ assertTrue(facet instanceof MaxFractionDigitsFacetInferredFromJdoColumn);
assertThat(facet.getMaximumFractionDigits(), is(maxFractionalDigits));
} else {
- assertNull(facetedMethod.getFacet(MaximumFractionDigitsFacet.class));
+ assertNull(facetedMethod.getFacet(MaxFractionDigitsFacet.class));
}
}
diff --git a/persistence/jpa/metamodel/src/main/java/org/apache/isis/persistence/jpa/metamodel/facets/prop/column/BigDecimalInferredFromJpaColumnAnnotationFacetFactory.java b/persistence/jpa/metamodel/src/main/java/org/apache/isis/persistence/jpa/metamodel/facets/prop/column/BigDecimalInferredFromJpaColumnAnnotationFacetFactory.java
index c0d3bfa..8a2a033 100644
--- a/persistence/jpa/metamodel/src/main/java/org/apache/isis/persistence/jpa/metamodel/facets/prop/column/BigDecimalInferredFromJpaColumnAnnotationFacetFactory.java
+++ b/persistence/jpa/metamodel/src/main/java/org/apache/isis/persistence/jpa/metamodel/facets/prop/column/BigDecimalInferredFromJpaColumnAnnotationFacetFactory.java
@@ -54,7 +54,7 @@ extends FacetFactoryAbstract {
.create(jpaColumnIfAny, holder));
addFacetIfPresent(
- MaxFractionalDigitsFacetInferredFromJpaColumn
+ MaxFractionDigitsFacetInferredFromJpaColumn
.create(jpaColumnIfAny, holder));
}
diff --git a/persistence/jpa/metamodel/src/main/java/org/apache/isis/persistence/jpa/metamodel/facets/prop/column/MaxFractionalDigitsFacetInferredFromJpaColumn.java b/persistence/jpa/metamodel/src/main/java/org/apache/isis/persistence/jpa/metamodel/facets/prop/column/MaxFractionDigitsFacetInferredFromJpaColumn.java
similarity index 81%
rename from persistence/jpa/metamodel/src/main/java/org/apache/isis/persistence/jpa/metamodel/facets/prop/column/MaxFractionalDigitsFacetInferredFromJpaColumn.java
rename to persistence/jpa/metamodel/src/main/java/org/apache/isis/persistence/jpa/metamodel/facets/prop/column/MaxFractionDigitsFacetInferredFromJpaColumn.java
index 193f13b..b8226f5 100644
--- a/persistence/jpa/metamodel/src/main/java/org/apache/isis/persistence/jpa/metamodel/facets/prop/column/MaxFractionalDigitsFacetInferredFromJpaColumn.java
+++ b/persistence/jpa/metamodel/src/main/java/org/apache/isis/persistence/jpa/metamodel/facets/prop/column/MaxFractionDigitsFacetInferredFromJpaColumn.java
@@ -23,25 +23,25 @@ import java.util.Optional;
import javax.persistence.Column;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaximumFractionDigitsFacet;
-import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxFractionalDigitsFacetAbstract;
+import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxFractionDigitsFacet;
+import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxFractionDigitsFacetAbstract;
-public class MaxFractionalDigitsFacetInferredFromJpaColumn
-extends MaxFractionalDigitsFacetAbstract {
+public class MaxFractionDigitsFacetInferredFromJpaColumn
+extends MaxFractionDigitsFacetAbstract {
- public static Optional<MaximumFractionDigitsFacet> create(
+ public static Optional<MaxFractionDigitsFacet> create(
final Optional<Column> jpaColumnIfAny,
final FacetHolder holder) {
return jpaColumnIfAny
.filter(jpaColumn->jpaColumn.scale()>=0)
.map(jdoColumn->{
- return new MaxFractionalDigitsFacetInferredFromJpaColumn(
+ return new MaxFractionDigitsFacetInferredFromJpaColumn(
jdoColumn.scale(), holder);
});
}
- private MaxFractionalDigitsFacetInferredFromJpaColumn(
+ private MaxFractionDigitsFacetInferredFromJpaColumn(
final int maxFractionalDigits, final FacetHolder holder) {
super(maxFractionalDigits, holder);
}
diff --git a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/feature/ScalarUiModel.java b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/feature/ScalarUiModel.java
index 66ae575..5de5317 100644
--- a/viewers/common/src/main/java/org/apache/isis/viewer/common/model/feature/ScalarUiModel.java
+++ b/viewers/common/src/main/java/org/apache/isis/viewer/common/model/feature/ScalarUiModel.java
@@ -24,7 +24,7 @@ import java.util.Optional;
import org.apache.isis.commons.collections.Can;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facets.objectvalue.fileaccept.FileAcceptFacet;
-import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaximumFractionDigitsFacet;
+import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxFractionDigitsFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxTotalDigitsFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet;
import org.apache.isis.core.metamodel.spec.ManagedObject;
@@ -68,8 +68,8 @@ public interface ScalarUiModel {
* @see #getScale()
*/
default Integer getScale() {
- return getMetaModel().lookupFacet(MaximumFractionDigitsFacet.class)
- .map(MaximumFractionDigitsFacet::getMaximumFractionDigits)
+ return getMetaModel().lookupFacet(MaxFractionDigitsFacet.class)
+ .map(MaxFractionDigitsFacet::getMaximumFractionDigits)
.orElse(null);
}
diff --git a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java
index 09e1619..aaf6c62 100644
--- a/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java
+++ b/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java
@@ -31,7 +31,7 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet;
import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
-import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaximumFractionDigitsFacet;
+import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxFractionDigitsFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxTotalDigitsFacet;
import org.apache.isis.core.metamodel.interactions.managed.ManagedProperty;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
@@ -107,8 +107,8 @@ extends AbstractObjectMemberReprRenderer<OneToOneAssociation> {
.map(MaxTotalDigitsFacet::maxTotalDigits)
.orElse(-1);
- final int scale = lookupFacet(MaximumFractionDigitsFacet.class, facetHolders)
- .map(MaximumFractionDigitsFacet::getMaximumFractionDigits)
+ final int scale = lookupFacet(MaxFractionDigitsFacet.class, facetHolders)
+ .map(MaxFractionDigitsFacet::getMaximumFractionDigits)
.orElse(-1);
format = String.format("big-decimal(%d,%d)", totalDigits, scale);
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/IsisConverterLocator.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/IsisConverterLocator.java
index a7f00cf..f7b9905 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/IsisConverterLocator.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/IsisConverterLocator.java
@@ -26,7 +26,7 @@ import org.apache.wicket.util.convert.converter.BigIntegerConverter;
import org.apache.isis.applib.adapters.ValueSemanticsProvider;
import org.apache.isis.commons.internal.base._Casts;
import org.apache.isis.commons.internal.base._NullSafe;
-import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaximumFractionDigitsFacet;
+import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxFractionDigitsFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.renderedadjusted.RenderedAdjustedFacet;
import org.apache.isis.core.metamodel.spec.ManagedObject;
import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
@@ -112,8 +112,8 @@ public class IsisConverterLocator {
}
if (java.math.BigDecimal.class == correspondingClass) {
final int scale = objectSpecification
- .lookupFacet(MaximumFractionDigitsFacet.class)
- .map(MaximumFractionDigitsFacet::getMaximumFractionDigits)
+ .lookupFacet(MaxFractionDigitsFacet.class)
+ .map(MaxFractionDigitsFacet::getMaximumFractionDigits)
.orElse(-1);
return _Casts.uncheckedCast(new BigDecimalConverterWithScale(scale).forViewMode());
}
diff --git a/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkmath/BigDecimalConverter_roundtrip.java b/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkmath/BigDecimalConverter_roundtrip.java
index ffc6063..e39a5c3 100644
--- a/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkmath/BigDecimalConverter_roundtrip.java
+++ b/viewers/wicket/ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/jdkmath/BigDecimalConverter_roundtrip.java
@@ -24,7 +24,6 @@ import java.util.Locale;
import javax.validation.constraints.Digits;
import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -95,20 +94,20 @@ class BigDecimalConverter_roundtrip {
assertRoundtrip(CustomerScale2.class, bd_123_45_scale2, "123.45", "123.45", Locale.ENGLISH);
}
- @Test @Disabled //FIXME[ISIS-2741] scale not picked up yet
+ @Test
void scale4_english() {
- assertRoundtrip(CustomerScale4.class, bd_123_45_scale4, "123.4500", "123.4500", Locale.ENGLISH);
+ assertRoundtrip(CustomerScale4.class, bd_123_45_scale4, "123.4500", "123.45", Locale.ENGLISH);
}
- @Test @Disabled //FIXME[ISIS-2741] scale not picked up yet
+ @Test
void scaleNull_english() {
- assertRoundtrip(Customer.class, bd_123_45_scale2, "123.45", "123.45", Locale.ENGLISH);
- assertRoundtrip(Customer.class, bd_123_45_scale4, "123.4500", "123.4500", Locale.ENGLISH);
+ assertRoundtrip(CustomerScaleNone.class, bd_123_45_scale2, "123.45", "123.45", Locale.ENGLISH);
+ assertRoundtrip(CustomerScaleNone.class, bd_123_45_scale4, "123.4500", "123.45", Locale.ENGLISH);
}
@Test
void scale2_italian() {
- assertRoundtrip(Customer.class, bd_123_45_scale2, "123,45", "123,45", Locale.ITALIAN);
+ assertRoundtrip(CustomerScaleNone.class, bd_123_45_scale2, "123,45", "123,45", Locale.ITALIAN);
}
@Test
@@ -124,7 +123,7 @@ class BigDecimalConverter_roundtrip {
@Test
void scale2_english_tooLargeScale() {
assertParseError(CustomerScale2.class, "123.454", Locale.ENGLISH,
- "No more than 2 fraction digits can be entered, got 3 in '123.454'.");
+ "No more than 2 digits can be entered after the decimal separator, got 3 in '123.454'.");
}
// -- HELPER
@@ -169,7 +168,7 @@ class BigDecimalConverter_roundtrip {
// -- SCENARIOS
@DomainObject
- static class Customer {
+ static class CustomerScaleNone {
@Property @Getter @Setter
private BigDecimal value;
}