Package groovy.lang
Annotation Type DelegatesTo
This annotation can be used by API or DSL writers to specify what the delegate
type of a closure will be. This is important for IDE support.
This annotation can also be used to help the type checker (TypeChecked
)
which would not report errors then if the delegate is of the documented type. Of course, it is
also compatible with CompileStatic
.
Example:
// Declare that the delegate of the closure will be an ExecSpec ExecResult exec(@DelegatesTo(ExecSpec) Closure closure) { ... }
- Since:
- 2.1.0
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic @interface
Specifies the delegate for a@DelegatesTo
annotated parameter of the same method. -
Optional Element Summary
Modifier and TypeOptional ElementDescriptionint
The index of the generic type that will be the type of the closure's delegate.int
The closure's resolve strategy.In cases when there are multiple@DelegatesTo.Target
annotated parameters, this member should be set to theDelegatesTo.Target.value()
of the correct target.The closure's delegate type, if not usingDelegatesTo.Target
ortype()
.
-
Element Details
-
value
Class valueThe closure's delegate type, if not usingDelegatesTo.Target
ortype()
.- Default:
- groovy.lang.DelegatesTo.Target.class
-
strategy
int strategyThe closure's resolve strategy.- See Also:
- Default:
- 0
-
genericTypeIndex
int genericTypeIndexThe index of the generic type that will be the type of the closure's delegate. The generic types are considered with respect to the@DelegatesTo.Target
annotated parameter for this usage, with the index starting at 0.- Default:
- -1
-
target
String targetIn cases when there are multiple@DelegatesTo.Target
annotated parameters, this member should be set to theDelegatesTo.Target.value()
of the correct target.- Default:
- ""
-
type
String typeThe type member should be used when the type of the delegate cannot be represented byvalue()
ortarget()
. In this case, it is possible to use a string to represent the type, at the cost of more compile time and potential uncaught load errors if the type is invalid.- Since:
- 2.4.0
- Default:
- ""
-