@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]"..