Interesting technique, but I wonder if it would be better to simply have an intermediate "GatewayAttributes" class, rather than making the parser dependent on the Annotation classes.

Then, the gateway attributes can be built either by the parser, or from the annotation.

It just seems wrong to me to have the parser synthesize an annotation.