[Java] Class PickAnyArgumentHint
- groovy.transform.stc.PickAnyArgumentHint
public class PickAnyArgumentHint extends SingleSignatureClosureHint
Base class for hints which use the type of a parameter of the annotated method as the signature. This can optionally use a generic type of the selected parameter as the hint. For example, imagine the following method:
void foo(A firstArg, B secondArg, Closure c) {...}
If the c closure should be { B it
, then we can see that the parameter type should be picked from the second parameter of the foo method, which is what PickAnyArgumentHint lets you do.->
...}
Alternatively, the method may look like this:
void <T> foo(A<T> firstArg, B secondArg, Closure c) {...}
in which case if you want to express the fact that c should accept a <T> then you can use the genericTypeIndex value.
This class is extended by several hint providers that make it easier to use as annotation values.
- Since:
- 2.3.0
Constructor Summary
Constructor and description |
---|
PickAnyArgumentHint
() Creates the an argument picker which extracts the type of the first parameter. |
PickAnyArgumentHint
(int parameterIndex, int genericTypeIndex) Creates a picker which will extract the parameterIndex-th parameter type, or its genericTypeIndex-th generic type genericTypeIndex is >=0. |
Methods Summary
Type Params | Return Type | Name and description |
---|---|---|
public ClassNode[] |
getParameterTypes(MethodNode node, String[] options, SourceUnit sourceUnit, CompilationUnit unit, ASTNode usage) |
Inherited Methods Summary
Methods inherited from class | Name |
---|---|
class SingleSignatureClosureHint | getClosureSignatures, getParameterTypes |
class ClosureSignatureHint | findClassNode, getClosureSignatures, pickGenericType, pickGenericType |
Constructor Detail
public PickAnyArgumentHint()
Creates the an argument picker which extracts the type of the first parameter.
public PickAnyArgumentHint(int parameterIndex, int genericTypeIndex)
Creates a picker which will extract the parameterIndex-th parameter type, or its genericTypeIndex-th generic type genericTypeIndex is >=0.
- Parameters:
-
parameterIndex
- the index of the parameter from which to extract the type -
genericTypeIndex
- if >=0, then returns the corresponding generic type instead of the parameter type.
Method Detail
@Override public ClassNode[] getParameterTypes(MethodNode node, String[] options, SourceUnit sourceUnit, CompilationUnit unit, ASTNode usage)
© 2003-2020 The Apache Software Foundation
Licensed under the Apache license.
https://docs.groovy-lang.org/3.0.7/html/gapi/groovy/transform/stc/PickAnyArgumentHint.html