@Retention(value=RUNTIME) @Target(value=METHOD) @Documented public @interface WithCaller
@WithCaller
is used to define a function that takes the caller class as first argument.
The caller will be injected by the runtime, and will not be present in the code using the function. The annotated function must have a class as first parameter.
Mainly used for internal stuff.