2017-09-28 21:12 GMT+02:00 Stephane Ducasse <[email protected]>:
> I would not use meta because you would not write annotationAnnotations :) > and annotations is meta by its name. > > classAnnotation is much better than metaAnnotation > Done. > > Stef > > > On Thu, Sep 28, 2017 at 5:40 PM, Denis Kudriashov <[email protected]> > wrote: > >> So I renamed it to ClassAnnotation with all related names. >> >> But I keep meta prefix in #metaAnnotations Class extension to avoid >> general name: >> >> MyClass metaAnnotations >> >> You can check updated readme for details https://github.com/dio >> nisiydk/ClassAnnotation >> >> 2017-09-26 17:31 GMT+02:00 Stephane Ducasse <[email protected]>: >> >>> ;) >>> >>> On Tue, Sep 26, 2017 at 1:28 PM, Ben Coman <[email protected]> wrote: >>> >>>> Shhh... The first rule of meta-club is we don't talk about meta-club. >>>> >>>> >>>> cheers -ben >>>> >>>> >>>> On Mon, Sep 25, 2017 at 11:09 PM, Guillermo Polito < >>>> [email protected]> wrote: >>>> >>>>> Why calling them meta-annotation and not just annotation? Annotations >>>>> are in general already meta :) >>>>> >>>>> On Mon, Sep 25, 2017 at 5:01 PM, Denis Kudriashov < >>>>> [email protected]> wrote: >>>>> >>>>>> Hi. >>>>>> >>>>>> I glad to present one class package which introduces reusable >>>>>> mechanism for first class annotations. >>>>>> >>>>>> The project can be found on github https://github.com/dion >>>>>> isiydk/ClassMetaAnnotation. >>>>>> And I tried to describe why it is needed in my blog >>>>>> http://dionisiydk.blogspot.fr/2017/09/class-meta-annotations.html. >>>>>> >>>>>> And here is overview: >>>>>> >>>>>> Every annotation should be subclass of ClassMetaAnnotation. To attach >>>>>> it to class you create new class side method which will return an >>>>>> instance >>>>>> of the annotation. Method should be marked with pragma >>>>>> #classMetaAnnotation: >>>>>> >>>>>> >>>>>> MyClass class>>specialAnnotation >>>>>> >>>>>> <classMetaAnnotation> >>>>>> >>>>>> ^MySpecialAnnotation new >>>>>> >>>>>> >>>>>> To query annotations from system there are two methods: >>>>>> >>>>>> 1) You can ask concrete annotation class for all declared instances: >>>>>> >>>>>> MySpecialAnnotation declaredInstances >>>>>> >>>>>> 2) You can ask given class for all attached annotations: >>>>>> >>>>>> MyClass metaAnnotations >>>>>> >>>>>> Every annotation includes information about annotated class and the >>>>>> selector of declaring method. >>>>>> All annotations are cached. So it is cheap to query them. There are >>>>>> extra messages to enumerate annotations using block. >>>>>> >>>>>> Now let's discuss it. I think it can be good addition for the Pharo >>>>>> 7. Especially that it is very small code. >>>>>> >>>>>> Also I would like to thank Marcus who helps me realize this concept >>>>>> in Commander and Calypso which I start simplify with this library. >>>>>> >>>>>> Best regards, >>>>>> Denis >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> >>>>> >>>>> Guille Polito >>>>> >>>>> Research Engineer >>>>> >>>>> Centre de Recherche en Informatique, Signal et Automatique de Lille >>>>> >>>>> CRIStAL - UMR 9189 >>>>> >>>>> French National Center for Scientific Research - *http://www.cnrs.fr >>>>> <http://www.cnrs.fr>* >>>>> >>>>> >>>>> *Web:* *http://guillep.github.io* <http://guillep.github.io> >>>>> >>>>> *Phone: *+33 06 52 70 66 13 <+33%206%2052%2070%2066%2013> >>>>> >>>> >>>> >>> >> >
