Hi all, I personally prefer the notion that the ‘default’ mode of an domain object is to treat its members as part of the metamodel, because that’s the problem Isis is aiming to solve. I would argue that, as a consequence, a domain object is therefore built up of only metamodel related methods; practically, we know that that’s not always viable. @Programmatic to the rescue. Explicit exclusion of the metamodel feels more sensible than explicit inclusion, given the philosophy of Isis. This approach also prevents the case where a ‘pure’ domain object would be annotating every metamodel action even when that could just as well be implicit. I agree with Johan in the sense that those annotations would be superfluous.
Best Sander On 2019/12/04 10:43:53, Dan Haywood <d...@haywood-associates.co.uk> wrote: > Hi folks,> > > Canvassing opinions here.> > > Andi and I are still hard at work on v2.0. We've been chatting offline> > about the @Action annotation. Currently this is optional, but there's a> > config property (isis.reflector.explicit-annotations.action) that can be> > set to require it to be required.> > > If it's required, then it allows actions that start with a "reserved" word,> > such as "clear", "disable" and "addTo" to be used as action names.> > > What do folks think about this? Obviously it means there's more effort to> > migrate to v2.0, but is it a worthwhile trade-off.> > > A couple of follow-on questions.> > > First, if we make @Action mandatory, should we do the same for @Property> > and @Collection?> > > Second, if we are being explicit about the "main" methods, should we also> > annotate supporting methods? There was an earlier discussion about this,> > where Andi had suggested a @Model annotation, the semantic opposite> > of @Programmatic. I prefer the name @Supporting, but at any rate the idea> > is that the developer would annotate all supporting methods, and the> > framework would then be able to ensure that none had become orphaned.> > > So, to summarise, what do we think about:> > - @Action mandatory> > - @Property and @Collection also mandatory> > - @Supporting as an indicator of any supporting method, to make part of the> > metamodel and ensure not orphaned?> > > Thanks> > Sander Ginn T: +316 25 25 98 33