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

Andi Huber commented on ISIS-2161:
----------------------------------

Proposed new behavior:

{code:java}
public class Object1 {

    @Property @Getter @Setter
    private String myProperty;
    
    // proper supporting-method naming, will get picked up by the framework and 
added 
    // to the metamodel (no annotation required)
    public boolean hideMyProperty() { 
        return false;
    }
    
}

public class Object2 {

    @Property @Getter @Setter
    private String myProperty;
    
    // allowed, nothing wrong with that, might either be picked up as an action
    // or gets ignored, depending on the framework's configuration,
    // whether the @Action annotation is mandatory or not;
    // however, this is no supporting-method!
    public boolean hideWhatever() { 
        return false;
    }
    
}

public class Object3 {

    @Property @Getter @Setter
    private String myProperty;
    
    // will fail, because this method is clearly orphaned
    @Model 
    public boolean hideWhatever() { 
        return false;
    }
    
}
{code}

> Remove domain-object member naming restrictions (reserved prefixes)
> -------------------------------------------------------------------
>
>                 Key: ISIS-2161
>                 URL: https://issues.apache.org/jira/browse/ISIS-2161
>             Project: Isis
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Andi Huber
>            Assignee: Andi Huber
>            Priority: Major
>             Fix For: 2.0.0
>
>
> Currently the prefixes 'hide', 'validate', 'disable', etc are reserved for 
> supporting-methods and may not be used for Actions and Properties.
> We can lift this restriction:
>  * If a member is annotated Action/Property/Collection, then we allow any 
> names for this member, even if these collide with the 'reserved' prefixes!
> It is inconvenient, when misspelling support-methods eg. using 'verify' 
> instead of 'validate', that one has to troubleshoot the application later, 
> only to find out that one made a sloppy mistake.
>  * We can improve on this by introducing a new annotation eg. 'Model' to 
> enforce a meta-model check on the correct naming of supporting-methods.
> {code:java}
> @Action
> void placeOrder(X x, Y y, Z z) {...}
> @Model // <-- enforces a meta-model check on this supporting-method
> boolean hidePlaceOrder() {...}
> {code}
>  



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

Reply via email to