Yes. On Thu, Sep 28, 2017 at 6:17 PM, Denis Kudriashov <[email protected]> wrote:
> 2017-09-25 17:57 GMT+02:00 Denis Kudriashov <[email protected]>: > >> 2017-09-25 17:38 GMT+02:00 Stephane Ducasse <[email protected]>: >> >>> I agree with guille. We should just called them class annotations. >>> >>> Denis what is a declared instance (is it an object returned by the >>> method having the annotation) >>> but can we find a better name. >>> >> >> My idea that the method with pragma #classMetaAnnotation is the >> declaration of annotation. Internally this declaration creates instance of >> specified annotation which cached by system. And users access all these >> declared instances for reflection purposes. >> >> > Maybe #registeredInstances would be better? > > >> Also annotation has inst var declarationSelector. >> > >> >>> may be effectiveInstances? >>> >> >> I don't like this name. I not understand "effective" in that context. >> >> >>> >>> >>> On Mon, Sep 25, 2017 at 5: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> >>>> >>> >>> >> >
