@API(status=STABLE, since="1.0") public class MethodSelector extends java.lang.Object implements DiscoverySelector
DiscoverySelector
that selects a Method
or a combination of
class name, method name, and parameter types so that
TestEngines
can discover tests
or containers based on methods.
If a Java Method
is provided, the selector will return that
method and its method name, class name, and
parameter types accordingly. If a Class
and method name, a class name
and method name, or simply a fully qualified method name is provided,
this selector will only attempt to lazily load the Class
and
Method
if getJavaClass()
or getJavaMethod()
is
invoked.
In this context, a Java Method
means anything that can be referenced
as a Method
on the JVM — for example, methods from Java classes
or methods from other JVM languages such Groovy, Scala, etc.
MethodSource
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
className |
private java.lang.Class<?> |
javaClass |
private java.lang.reflect.Method |
javaMethod |
private java.lang.String |
methodName |
private java.lang.String |
methodParameterTypes |
Constructor and Description |
---|
MethodSelector(java.lang.Class<?> javaClass,
java.lang.reflect.Method method) |
MethodSelector(java.lang.Class<?> javaClass,
java.lang.String methodName) |
MethodSelector(java.lang.Class<?> javaClass,
java.lang.String methodName,
java.lang.String methodParameterTypes) |
MethodSelector(java.lang.String className,
java.lang.String methodName) |
MethodSelector(java.lang.String className,
java.lang.String methodName,
java.lang.String methodParameterTypes) |
Modifier and Type | Method and Description |
---|---|
java.lang.String |
getClassName()
Get the selected class name.
|
java.lang.Class<?> |
getJavaClass()
Get the
Class in which the selected method is declared, or a subclass thereof. |
java.lang.reflect.Method |
getJavaMethod()
Get the selected
Method . |
java.lang.String |
getMethodName()
Get the selected method name.
|
java.lang.String |
getMethodParameterTypes()
Get the parameter types for the selected method as a
String ,
typically a comma-separated list of primitive types, fully qualified
class names, or array types. |
private void |
lazyLoadJavaClass() |
private void |
lazyLoadJavaMethod() |
java.lang.String |
toString() |
private final java.lang.String className
private final java.lang.String methodName
private final java.lang.String methodParameterTypes
private java.lang.Class<?> javaClass
private java.lang.reflect.Method javaMethod
MethodSelector(java.lang.String className, java.lang.String methodName)
MethodSelector(java.lang.String className, java.lang.String methodName, java.lang.String methodParameterTypes)
MethodSelector(java.lang.Class<?> javaClass, java.lang.String methodName)
MethodSelector(java.lang.Class<?> javaClass, java.lang.String methodName, java.lang.String methodParameterTypes)
MethodSelector(java.lang.Class<?> javaClass, java.lang.reflect.Method method)
public java.lang.String getClassName()
public java.lang.String getMethodName()
public java.lang.String getMethodParameterTypes()
String
,
typically a comma-separated list of primitive types, fully qualified
class names, or array types.
Note: the parameter types are provided as a single string instead of a collection in order to allow this selector to be used in a generic fashion by various test engines. It is therefore the responsibility of the caller of this method to determine how to parse the returned string.
MethodSelector
via
a constructor or deduced from a Method
supplied via a constructor;
never null
public java.lang.Class<?> getJavaClass()
Class
in which the selected method is declared, or a subclass thereof.
If the Class
was not provided, but only the name, this method
attempts to lazily load the Class
based on its name and throws a
PreconditionViolationException
if the class cannot be loaded.
getJavaMethod()
public java.lang.reflect.Method getJavaMethod()
Method
.
If the Method
was not provided, but only the name, this method
attempts to lazily load the Method
based on its name and throws a
PreconditionViolationException
if the method cannot be loaded.
getJavaClass()
public java.lang.String toString()
toString
in class java.lang.Object
private void lazyLoadJavaClass()
private void lazyLoadJavaMethod()