Ok, I'm back from vacations so I'll give a comment other than what I did :P.

First I like it.

Second, how does it work with respect to inheritance? I mean, if I have for
example:

ClassAnnotation subclass: MyFrameworkAnnotation.

And then

MyFrameworkAnnotation subclass: MyConcreteAnnotation1.
MyFrameworkAnnotation subclass: MyConcreteAnnotation2.

Can I query all my annotations or should do an isKindOf: by hand?

On Fri, Sep 29, 2017 at 1:10 PM, Stephane Ducasse <[email protected]>
wrote:

> tx!
>
> On Fri, Sep 29, 2017 at 9:58 AM, Denis Kudriashov <[email protected]>
> wrote:
>
>>
>> 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>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>


-- 



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

Reply via email to