Experimenting with annotation processing to bring the concept of traits to the Java language