Source code annotations alla Java

Mengu mengukagan at gmail.com
Thu Jan 30 00:28:13 PST 2014


On Thursday, 20 January 2011 at 18:19:21 UTC, Jacob Carlborg 
wrote:
> On 2011-01-20 14:47, Justin Johansson wrote:
>> Not long ago the Java Language people introduced the idea of 
>> annotations
>> together with an annotation processing tool (apt).
>>
>> Now perhaps the idea of source code annotations is not 
>> actually a Java
>> invention per se, however for someone learning D is there any 
>> equivalent
>> idiom [of Java annotations] in the D language?
>
> Depending on what you want to do you can create a template 
> mixin that accepts string(s)/alias(es). For example: for the 
> serialization library (http://dsource.org/projects/orange) I'm 
> working on the following syntax is used:
>
> class Foo
> {
>     int x;
>     int y;
>     int z;
>
>     mixin NonSerialized!(z);
> }
>
> The above mixin indicates that the "z" instance variable 
> shouldn't be serialized. This is (currently) achieved by 
> defining a field in the mixed in template (which will be added 
> to the class) which is a struct containing the string of the 
> filed which shouldn't be serialized. Then I iterate over all 
> the fields in the class with .tupleof and collects all mixed in 
> fields in a list. Then I know what fields to skip later during 
> the serialization.

let's assume you are building a web application and you want to 
keep that controller only for the logged in users. in java you 
can create an annotation class called @RequireLogin and put your 
logic there. mixins are not the way for this.


More information about the Digitalmars-d-learn mailing list