@Documented
@Retention(value=RUNTIME)
@Target(value=METHOD)
public @interface ReportCall
For example, assume three classes A, B, and C, that each implement/override a method m and A <: B <: C. Assume that B.m is annotated as ReportCall. Calls of A.m and B.m will then be reported, but calls of C.m will not be reported, even though the C reference might point to a B object. Therefore, add the ReportCall annotation high enough in the subtype hierarchy.