You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@isis.apache.org by "Dan Haywood (JIRA)" <ji...@apache.org> on 2014/07/28 15:50:39 UTC

[jira] [Updated] (ISIS-844) Support custom annotations as higher-level semantics (a la BeanVal)

     [ https://issues.apache.org/jira/browse/ISIS-844?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dan Haywood updated ISIS-844:
-----------------------------

    Description: 
For example, a contributed collection requires:

import org.apache.isis.applib.annotations.*;

@ActionSemantics(Of.SAFE)
@NotContributed(As.ASSOCIATION)
@NotInServiceMenu
@Render(Type.EAGERLY)
public List<Foo> getFoos() { ... }

it would be nice to allow the user to simplify the programming model.  For example:

package com.mycompany.isis;
import org.apache.isis.applib.annotations.*;

@ActionSemantics(Of.SAFE)
@NotContributed(As.ASSOCIATION)
@NotInServiceMenu
@Render(Type.EAGERLY)
public @interface ContributedCollection {}

and then:

import com.mycompany.isis.*;

@ContributedCollection
public List<Foo> getFoos() { ... }


~~~
Thus, Isis continues to define the base "primitive" semantics, but the end-programmer is free to introduce higher-level semantics/abstractions if they so wish.


  was:
For example, a contributed collection requires:

@ActionSemantics(Of.SAFE)
@NotContributed(As.ASSOCIATION)
@NotInServiceMenu
@Render(Type.EAGERLY)
public List<Foo> getFoos() { ... }

it would be nice to allow the user to simplify the programming model.  For example:

package com.mycompany.isis;

@ActionSemantics(Of.SAFE)
@NotContributed(As.ASSOCIATION)
@NotInServiceMenu
@Render(Type.EAGERLY)
public @interface ContributedCollection {}

and then:

@ContributedCollection
public List<Foo> getFoos() { ... }


~~~
Thus, Isis continues to define the base "primitive" semantics, but the end-programmer is free to introduce higher-level semantics/abstractions if they so wish.



> Support custom annotations as higher-level semantics (a la BeanVal)
> -------------------------------------------------------------------
>
>                 Key: ISIS-844
>                 URL: https://issues.apache.org/jira/browse/ISIS-844
>             Project: Isis
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: core-1.6.0
>            Reporter: Dan Haywood
>            Assignee: Dan Haywood
>            Priority: Minor
>             Fix For: core-2.0.0
>
>
> For example, a contributed collection requires:
> import org.apache.isis.applib.annotations.*;
> @ActionSemantics(Of.SAFE)
> @NotContributed(As.ASSOCIATION)
> @NotInServiceMenu
> @Render(Type.EAGERLY)
> public List<Foo> getFoos() { ... }
> it would be nice to allow the user to simplify the programming model.  For example:
> package com.mycompany.isis;
> import org.apache.isis.applib.annotations.*;
> @ActionSemantics(Of.SAFE)
> @NotContributed(As.ASSOCIATION)
> @NotInServiceMenu
> @Render(Type.EAGERLY)
> public @interface ContributedCollection {}
> and then:
> import com.mycompany.isis.*;
> @ContributedCollection
> public List<Foo> getFoos() { ... }
> ~~~
> Thus, Isis continues to define the base "primitive" semantics, but the end-programmer is free to introduce higher-level semantics/abstractions if they so wish.



--
This message was sent by Atlassian JIRA
(v6.2#6252)