Stumbled on Project Lombok today. A Java annotation processor is limited to generating new files and classes, but they found a way to use internal API to modify the AST of an existing class as it's going through the compiler.
Their technique could be rather interesting for Sapphire, as we should be able to generate property getters and setters in the interface at build time rather than relying on templates.
My only concern is support for maven tycho. That is what we currently use for building our sapphire projects and according to this, https://code.google.com/p/projectlombok/issues/detail?id=212
it may not be possible to combine lombok and tycho. I didn't take time to research it fully, just did a google search and found some posts that make it look like it may not be currently possible.
To be clear, I was referencing to potentially using the techniques used to implement Lombok as opposed to Lombok itself, but we would of course need to understand the repercussions of this approach before starting anything.