gh-pages / com.nextfaze.devfun / DeveloperAnnotation
DeveloperAnnotation
@Target([AnnotationTarget.ANNOTATION_CLASS]) annotation class DeveloperAnnotation
(source)
Annotation used to by DevFun to “tag” references to other DevFun/developer -related annotations.
Behaviour
By default this annotation will do nothing - you must set one of the flags to true
to take effect.
This is a somewhat experimental annotation - though DevFun uses it directly now (@DeveloperFunction
is annotated @DeveloperAnnotation(developerFunction = true)
).Having said that, attempts have been made for it to be quite versatile but it is still quite a recent aspect.
developerFunction
When true
the compiler will treat it as if it was an @DeveloperFunction annotation. In this state the compiler will check for the
same fields of @DeveloperFunction
, falling back to the standard defaults if they are absent.
If you have different defaults defined compared to DeveloperFunction then these values will be written as if you had used
@DeveloperFunction(field = value)
at the declaration site - this behaviour is somewhat experimental. Please report any issues you encounter.
An example of this can be seen with @DeveloperProperty.
developerCategory
When true
the compiler will treat it as if it was an @DeveloperCategory annotation. In this state the compiler will check for the
same fields of @DeveloperCategory
, falling back to the standard defaults if they are absent.
An example of this can be seen with @ContextCategory.
developerReference
When true
the compiler will treat it as if it was an @DeveloperReference annotation.
An example of this can be seen with @Dagger2Component.
Custom Properties
Properties named the same as the DevFun properties have the same meaning/behaviour. Other properties will be “serialized” and are available on the associated definition - DevFun will generate a “properties” object for annotations (e.g. DeveloperLogger -> DeveloperLoggerProperties)
Use helper functions withProperties or getProperties to get an instance of the properties object. Unset values will return their default values as defined in the annotation.
Parameters
developerFunction
- Set to true
to have the compiler treat the annotation as a @DeveloperFunction. (experimental)
developerCategory
- Set to true
to have the compiler treat the annotation as a @DeveloperCategory. (experimental)
developerReference
- Set to true
to have the compiler treat the annotation as a @DeveloperReference. (experimental)
See Also
Constructors
Name | Summary |
---|---|
<init> | DeveloperAnnotation(developerFunction: Boolean = false, developerCategory: Boolean = false, developerReference: Boolean = false) Annotation used to by DevFun to “tag” references to other DevFun/developer -related annotations. |
Properties
Name | Summary |
---|---|
developerCategory | val developerCategory: Boolean Set to true to have the compiler treat the annotation as a @DeveloperCategory. (experimental) |
developerFunction | val developerFunction: Boolean Set to true to have the compiler treat the annotation as a @DeveloperFunction. (experimental) |
developerReference | val developerReference: Boolean Set to true to have the compiler treat the annotation as a @DeveloperReference. (experimental) |