Uploaded image for project: 'Causeway'
  1. Causeway
  2. CAUSEWAY-2774

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.

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Resolved
    • 2.0.0-M5
    • 2.0.0-M7
    • Core
    • None

    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).

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            hobrom Andi Huber
            danhaywood Daniel Keir Haywood
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment