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/11/26 06:52:13 UTC

[jira] [Comment Edited] (ISIS-439) Wicket viewer should support mutable collections - ie with an implicit 'add' and 'remove' action.

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

Dan Haywood edited comment on ISIS-439 at 11/26/14 5:52 AM:
------------------------------------------------------------

No, those are separate actions that just happened to be associated with the collection.

It's a subtle point, but the Isis programming model for collections defines:

Collection<Element> getCollection()
setCollection(Collection<Element>)
addToCollection(Element)
removeFromCollection(Element)

With validateAddToCollection(), validateRemoveFromCollection() etc also being supported methods.

In the metamodel there is only one member on the ObjectSpec, namely an instance of OneToManyAssociation; this member has facets representing the ability to add/remove.

~~~
In contrast, when we write:

Collection<Element> getCollection()
setCollection(Collection<Element>)

addCollection(Element)  // @MemberOrder(name="collection") to render close to the collection
removeCollection(Element)  // @MemberOrder(name="collection") to render close to the collection

Then there are three members on the ObjectSpec: the OneToManyAssociation and two ObjectActions.

~~~~~~
The above notwithstanding, in Isis 2.0 it may make sense to get rid of the idea of mutable collections; the amount of code that the developer writes is almost identical (and is one less concept for the developer to understand), and it would simplify some of the code in Isis.


was (Author: danhaywood):
No, those are separate actions that just happened to be associated with the collection.

It's a subtle point, but the Isis programming model for collections defines:

Collection<Element> getCollection()
setCollection(Collection<Element>)
addToCollection(Element)
removeFromCollection(Element)

With validateAddToCollection(), validateRemoveFromCollection() etc also being supported methods.

In the metamodel there is only one member on the ObjectSpec, namely an instance of OneToManyAssociation; this member has facets representing the ability to add/remove.

~~~
In contrast, when we right:

Collection<Element> getCollection()
setCollection(Collection<Element>)

addCollection(Element)  // @MemberOrder(name="collection") to render close to the collection
removeCollection(Element)  // @MemberOrder(name="collection") to render close to the collection

Then there are three members on the ObjectSpec: the OneToManyAssociation and two ObjectActions.

~~~~~~
The above notwithstanding, in Isis 2.0 it may make sense to get rid of the idea of mutable collections; the amount of code that the developer writes is almost identical (and is one less concept for the developer to understand), and it would simplify some of the code in Isis.

> Wicket viewer should support mutable collections - ie with an implicit 'add' and 'remove' action.
> -------------------------------------------------------------------------------------------------
>
>                 Key: ISIS-439
>                 URL: https://issues.apache.org/jira/browse/ISIS-439
>             Project: Isis
>          Issue Type: Improvement
>          Components: Viewer: Wicket
>    Affects Versions: viewer-wicket-1.2.0
>            Reporter: Dan Haywood
>            Assignee: Dan Haywood
>             Fix For: viewer-wicket-2.0.0
>
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)