So, the first step was to create a new Java Eclipse project which has three class files: RequiresStaticMethod.java - The annotation RequiresStaticMethod is a simple annotation : @Retention(RetentionPolicy.SOURCE) @Target(ElementType.TYPE) public @interface RequiresStaticMethod {     String name();     String returns();     String[] parameters();     String[] exceptions(); } The @Retention(RetentionPolicy.SOURCE) defines the