@Documented @Retention(value=RUNTIME) @Target(value=ANNOTATION_TYPE) public @interface StingProvider
Fragment annotated type or an Injectable
annotated type. This annotation is applied to another frameworks annotation to simplify integration with Sting.
Sting will process this annotation when the framework annotation is applied to a type element and that Sting
attempts to include that type. Sting can attempt to include the type either by the type being added to an
Injector.includes() annotation parameter, a Fragment.includes() annotation parameter, or by
being an unresolved service referenced in component graph that sting attempts to autodetect.
It should be noted that Sting will attempt to use any annotation with this name and shape so that frameworks do not need a direct code dependency on Sting.
@Nonnull public abstract String value
come.example.MyElement the simple name is "MyElement". For a nested class like
come.example.MyElement.ElementType.Kind the simple name is "Kind".
come.example.MyElement the compound name is "MyElement". For a nested class like
come.example.MyElement.ElementType.Kind the simple name is "MyElement.ElementType.Kind".
come.example.MyElement the enclosing name is "". For a nested class like
come.example.MyElement.ElementType.Kind the enclosing name is "MyElement.ElementType.".
come.example.MyElement the flat enclosing name is "".
For a nested class like come.example.MyElement.ElementType.Kind the flat enclosing name is
"MyElement_ElementType_".
A typical pattern used by a framework such as Arez is "[FlatEnclosingName]Arez_[SimpleName]"..