If we would not have the freedom of introducing a new annotation,
@Action(type=Supporting) 
would be a good choice as well, but we also have supporting methods for 
Properties and Collections!

But since we have @Action, @Property and @Collection all with good 
justification to stand and represent their own kind, we might as well introduce 
a new one here!?

I was also thinking about @Model, which is a bit more generic and may allow for 
more flexible use later on.

On 2019/09/22 08:47:20, "Rade, Joerg / Kuehne + Nagel / HAM GI-DP" 
<joerg.r...@kuehne-nagel.com> wrote: 
> Hi Andi,
> 
> I like the idea of using an annotation, because it makes the programming 
> model more consistent.
> 
> Maybe @Action(type=Supporting) ?
> 
> -j
> -----Ursprüngliche Nachricht-----
> Von: Andi Huber [mailto:ahu...@apache.org]
> Gesendet: Sonntag, 22. September 2019 10:01
> An: users@isis.apache.org
> Betreff: Extending the Programming Model with @Support?
> 
> Hi folks,
> 
> we are still making progress towards Apache Isis Version 2. While most of the 
> work goes into technical topics that stay under the hood, like decoupling 
> from JDO, there are also some changes to the programming model, that will 
> affect you and require migration of your domain-code.
> 
> We have no concrete release plan yet, we thought maybe October for a preview, 
> we'll see.
> 
> Anyway I do have a questions regarding the programming model:
> 
> Have you ever run into the issue of misspelling a supporting-method within 
> your domain-code
> eg. verifyMyAction(...) instead of correct validateMyAction(...) then 
> spending some time to troubleshot this? What an inconvenience!
> 
> My proposed solution to this is to introduce a new annotation to make a 
> contract with the domain-model (meta-model) :
> 
> @Action
> public void myAction() {
> 
> }
> 
> @Support // <-- to enforce a contract with the domain-model
> public boolean hideMyAction() {
>     ...
> }
> 
> * The 'hideMyAction' method is termed 'supporting-method'. We have lots of 
> variants of these. (validateX, disableX, ...)
> * This contract allows for a check whether the intended supporting-method 
> gets picked up by the framework and is not ignored. That way we can emit a 
> validation failure, if a support-method is misspelled or does have any other 
> deficiencies.
> * The @Support annotation is optional, does not require you to migrate your 
> domain-code.
> 
> Do you like the concept? Should we use a better name for the annotation? Can 
> we reuse/repurpose any existing annotation?
> 
> Any thoughts?
> 
> Cheers, Andi
> 
> Kühne + Nagel (AG & Co.) KG
> Rechtsform: Kommanditgesellschaft, Bremen HRA 21928, USt-IdNr.: DE 812773878.
> Geschäftsleitung Kühne + Nagel (AG & Co.) KG: Holger Ketz (Vors. ), Martin 
> Brinkmann, Lars-Olof Grün, Matthias Knicky, Nicholas Minde, Johannes 
> Trimborn, Lars Wedel, Matthias Weiner.
> Persönlich haftende Gesellschafterin: Kühne & Nagel A.G., Rechtsform: 
> Aktiengesellschaft nach luxemburgischem Recht, HR-Nr.: B 18745, 
> Geschäftsführendes Verwaltungsratsmitglied: Karl Gernandt.
> Geschäftsleitung Region Europa: Dr. Hansjörg Rodi (Vors.), Mart Ambur, Tom 
> Ban, Dominic Edmonds, Thierry Held, Uwe Hött, Richard Huhn, Jan-Hendrik 
> Köstergarten, Heiko Schuhmacher.
> 
> Wir arbeiten ausschließlich auf Grundlage der Allgemeinen Deutschen 
> Spediteurbedingungen 2017 (ADSp 2017). Hinweis: Die ADSp 2017 weichen in 
> Ziffer 23 hinsichtlich des Haftungshöchstbetrages für Güterschäden (§ 431 
> HGB) vom Gesetz ab, indem sie die Haftung bei multimodalen Transporten unter 
> Einschluss einer Seebeförderung und bei unbekanntem Schadenort auf 2 SZR/kg 
> und im Übrigen die Regelhaftung von 8,33 SZR/kg zusätzlich auf 1,25 Millionen 
> Euro je Schadenfall sowie 2,5 Millionen Euro je Schadenereignis, mindestens 
> aber 2 SZR/kg, beschränken. Die ADSp sind auf unserer Webseite als Download 
> erhältlich. Auf Anfrage senden wir Ihnen diese auch gerne zu.
> 

Reply via email to