[ https://issues.apache.org/jira/browse/ISIS-2774?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Keir Haywood updated ISIS-2774: -------------------------------------- Description: See also ISIS-2782, which is closely related. And discussion at https://the-asf.slack.com/archives/CFC42LWBV/p1625205578149000?thread_ts=1624911448.097500&cid=CFC42LWBV ~~~~~~ Rationale here is: encapsulation, "tell not ask". Thus: * Our definition of a property or collection should be _either_ with a publicly available getter or setter, or a field annotated with @Property or @Collection. * Our definition of an action should be _either_ a publicly available method (if explicit actions config property not set), _or_ a method with any visibility and annotated with @Action. * Our definition of a supporting method is either one with public visibility or with some other visibility but annotated with @MemberSupport. See this blog [https://thorben-janssen.com/access-strategies-in-jpa-and-hibernate/] for reasons as to why field-level annotations are also recommended for ORMs (JPA in this case). was: Rationale here is: encapsulation, "tell not ask". Thus: * Our definition of a property or collection should be _either_ with a publicly available getter or setter, or a field annotated with @Property or @Collection. * Our definition of an action should be _either_ a publicly available method (if explicit actions config property not set), _or_ a method with any visibility and annotated with @Action. * Our definition of a supporting method is either one with public visibility or with some other visibility but annotated with @MemberSupport. See this blog [https://thorben-janssen.com/access-strategies-in-jpa-and-hibernate/] for reasons as to why field-level annotations are also recommended for ORMs (JPA in this case). > Allow members (and their supporting methods) to have non-public visibility. > Allow properties/collections to have no getters & setters, or non-public > getters and setters. > -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > > Key: ISIS-2774 > URL: https://issues.apache.org/jira/browse/ISIS-2774 > Project: Isis > Issue Type: Improvement > Components: Isis Core > Affects Versions: 2.0.0-M5 > Reporter: Daniel Keir Haywood > Priority: Major > Fix For: 2.0.0-M6 > > > See also ISIS-2782, which is closely related. And discussion at > https://the-asf.slack.com/archives/CFC42LWBV/p1625205578149000?thread_ts=1624911448.097500&cid=CFC42LWBV > > ~~~~~~ > Rationale here is: encapsulation, "tell not ask". > Thus: > * Our definition of a property or collection should be _either_ with a > publicly available getter or setter, or a field annotated with @Property or > @Collection. > * Our definition of an action should be _either_ a publicly available method > (if explicit actions config property not set), _or_ a method with any > visibility and annotated with @Action. > * Our definition of a supporting method is either one with public visibility > or with some other visibility but annotated with @MemberSupport. > See this blog > [https://thorben-janssen.com/access-strategies-in-jpa-and-hibernate/] for > reasons as to why field-level annotations are also recommended for ORMs (JPA > in this case). -- This message was sent by Atlassian Jira (v8.3.4#803005)