You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@isis.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2013/12/05 23:23:35 UTC
[jira] [Commented] (ISIS-624) New @Decimal annotation to specify
length and scale for BigDecimal action parameters (to avoid JDO exceptions
later).
[ https://issues.apache.org/jira/browse/ISIS-624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13840638#comment-13840638 ]
ASF subversion and git services commented on ISIS-624:
------------------------------------------------------
Commit ee0910c763db8ac9fbfd7135f5754a825bed304c in branch refs/heads/master from [~danhaywood]
[ https://git-wip-us.apache.org/repos/asf?p=isis.git;h=ee0910c ]
ISIS-624: @Decimal annotation and facet factories.
> New @Decimal annotation to specify length and scale for BigDecimal action parameters (to avoid JDO exceptions later).
> ---------------------------------------------------------------------------------------------------------------------
>
> Key: ISIS-624
> URL: https://issues.apache.org/jira/browse/ISIS-624
> Project: Isis
> Issue Type: New Feature
> Components: Core
> Affects Versions: core-1.3.0
> Reporter: Dan Haywood
> Assignee: Dan Haywood
> Priority: Minor
> Fix For: core-1.4.0
>
>
> Using the JDO @Column annotation the length/scale of properties can be specified. However, there is no capability to capture these semantics for action parameters (and the @Column annotation cannot be specified for parameters, even if we thought that were a good idea).
> With no semantics, Isis currently infers the scale of a BigDecimal from the entered input. For example, entering "123.45" will parse to a BD with scale of 2, entering "123.4567" will parse to a BD with scale of 4.
> The problem, then, is that if a BD with too large a scale is assigned to a property with a lower scale, then JDO will throw an exception.
> So this ticket is to introduce a new annotation, @Decimal, allowing the appropriate semantic to be enforced:
> public class ToDoItem
> @javax.jdo.annotations.Column(length=10, scale=2)
> private Cost cost;
> public void updateCost(@Decimal(10,2) BigDecimal newCost) {
> setCost(cost);
> }
> }
> ~~~~
> In addition, it should be possible to add this annotation to properties too. If there is a mismatch between JDO and the Isis annotaitons, then a metamodel validation exception should be thrown.
--
This message was sent by Atlassian JIRA
(v6.1#6144)