This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch maintenance-branch
in repository https://gitbox.apache.org/repos/asf/causeway.git
The following commit(s) were added to refs/heads/maintenance-branch by this
push:
new 5eb3e2a768 CAUSEWAY-3804: updates value semantics for big decimal
new e21c783b3b Merge branch 'CAUSEWAY-3804' into maintenance-branch
5eb3e2a768 is described below
commit 5eb3e2a76818cfe1aa517f441df01b81dc9dd017
Author: Dan Haywood <[email protected]>
AuthorDate: Tue Jul 16 11:16:30 2024 +0100
CAUSEWAY-3804: updates value semantics for big decimal
to take notice of relevant config param when rendering value for parsing
(editing)
---
.../metamodel/valuesemantics/BigDecimalValueSemantics.java | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BigDecimalValueSemantics.java
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BigDecimalValueSemantics.java
index 47c7d137cf..90855c3fdb 100644
---
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BigDecimalValueSemantics.java
+++
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BigDecimalValueSemantics.java
@@ -49,6 +49,8 @@ import lombok.NonNull;
import lombok.Setter;
import lombok.val;
+import static
org.apache.causeway.applib.value.semantics.ValueSemanticsAbstract.FormatUsageFor.PARSING;
+
@Component
@Named("causeway.metamodel.value.BigDecimalValueSemantics")
@Priority(PriorityPrecedence.LATE)
@@ -123,7 +125,7 @@ implements
public String parseableTextRepresentation(final
ValueSemanticsProvider.Context context, final BigDecimal value) {
return value==null
? null
- : getNumberFormat(context)
+ : getNumberFormat(context, PARSING)
.format(value);
}
@@ -149,7 +151,12 @@ implements
protected void configureDecimalFormat(
final Context context, final DecimalFormat format, final
FormatUsageFor usedFor) {
-
format.setGroupingUsed(causewayConfiguration.getValueTypes().getBigDecimal().getDisplay().isUseGroupingSeparator());
+ val bigDecimalConfig =
causewayConfiguration.getValueTypes().getBigDecimal();
+ format.setGroupingUsed(
+ usedFor == PARSING
+ ? bigDecimalConfig.getEditing().isUseGroupingSeparator()
+ : bigDecimalConfig.getDisplay().isUseGroupingSeparator()
+ );
if(context==null) {
return;
@@ -176,7 +183,7 @@ implements
format.setMinimumFractionDigits(optionalInt.getAsInt());
} else {
// otherwise, apply a minScale if configured.
-
minScaleFrom(causewayConfiguration.getValueTypes().getBigDecimal())
+ minScaleFrom(bigDecimalConfig)
.ifPresent(format::setMinimumFractionDigits);
}
}