@Retention(value=RUNTIME)
@Target(value=METHOD)
public @interface ProviderKey
Cache methods can be annotated with this annotation to provide the unique (provider) key that is
used to cache the data in the memory. Without this annotation the method name will be used
instead. The provider key is not dynamic and does not change at runtime. Using this annotation is
required when using proguard, not doing so can lead to strange runtime behaviour as proguard
changes method names. In the worst case scenario (which is very likely) it can even happen that
two or more different methods (different arguments) end-up having the same name. Which
effectively leads to having two or more runtime providers using the same "memory space' in cache.