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>
>>>
>>
>>
>

Reply via email to