@Retention(value=CLASS)
@Target(value={METHOD,TYPE})
public @interface Idempotent
Enables the return value caching. The annotated method is called only once, the returned value is
cached and the successive calls return the cached value. The annotated method must have a
non-void return type.