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 2020/01/04 11:43:00 UTC

[jira] [Commented] (ISIS-1695) Support value types (simple ones at least) as a first-class citizen

    [ https://issues.apache.org/jira/browse/ISIS-1695?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17008003#comment-17008003 ] 

ASF subversion and git services commented on ISIS-1695:
-------------------------------------------------------

Commit 88f5dae0c8846993ab83c82d189f5ee7edf17f83 in isis's branch refs/heads/master from Andi Huber
[ https://gitbox.apache.org/repos/asf?p=isis.git;h=88f5dae ]

ISIS-2249: moving all the classes

not yet enabling DN and Wicket support; we might do this on top of a
more generic solution as targeted by ISIS-1695

> Support value types (simple ones at least) as a first-class citizen
> -------------------------------------------------------------------
>
>                 Key: ISIS-1695
>                 URL: https://issues.apache.org/jira/browse/ISIS-1695
>             Project: Isis
>          Issue Type: New Feature
>            Reporter: Daniel Keir Haywood
>            Priority: Minor
>             Fix For: 2.0.0
>
>
> I would like to reintroduce value types as a first-class citizen, but without requiring the developer to have to write lots of code to teach DataNucleus, Wicket and the RO viewer about these.
> I don't have a general solution in mind on how to do this.
> However, for very simple value types that are just a type-safe wrapper around a single field (eg Password, or Money, or Temperature, or Email say), then perhaps there might be a way to support this, eg :
> public class Temperature implements org.apache.isis.valuetypes.Value<BigDecimal> {
>     public Temperature(BigDecimal value) \{ ... }
>     BigDecimal getValue() \{ ... }
> }
>  
>  or
>  
>  @Value(underlying=BigDecimal.class)
>  public class Temperature \{ ... }
> The idea here is that the framework would treat any instance of this custom value type as if it were the underlying type (BigDecimal in the case above). It would also be possible to apply validations to the value type that would apply everywhere it is used as a property/parameter.
>  
> We would expect these value types to be immutable, and (although this can't be expressed in an interface), would expect there to be a public 1-arg constructor of the appropriate type, and a package-local "getValue()" method.  These allow the framework to marshal values in and out of the value type.
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)