Annotation processors
Joseph D. Darcy
Joe.Darcy at Sun.COM
Fri Apr 3 10:07:37 PDT 2009
Mark Thornton wrote:
> These have come up several times on this list. I suspect many people
> have only a vague idea of what they can do. Is there any good
> documentation or introductory material available?
>
> Mark Thornton
>
>
The annotation processing in javac provides immutable data structures
modeling the types in question. However, much of the power of providing
mutable source files can be had by either using an annotation processor
to generate subclasses of a class or the *superclass* of a class. Those
capabilities are mandated for JSR 269 annotation processing frameworks,
as implemented in javac and Eclipse.
For example, @MakeMeAPropertyInMySuperclass annotations could be used to
automatically generate at build time the desired property structure that
could be inherited. It is technically possible (a small matter of
programming ;-) to run
@MakeMeAPropertyInMySuperclass(name="foo",type=Type.class)
class Foo extends ToBeGenerated {}
into something like
class ToBeGenerated {
private Type foo;
Type getFoo() {
return foo;
}
Type setFoo(Type type) {
this.type = type;
return this.type;
}
}
Bruce Chapman has written interesting annotation processors as part of
his rapt and hickory projects:
https://rapt.dev.java.net/
https://hickory.dev.java.net/
-Joe
More information about the coin-dev
mailing list