@API(status=STABLE, since="1.6") public class NestedMethodSelector extends java.lang.Object implements DiscoverySelector
DiscoverySelector
that selects a nested Method
or a combination of enclosing classes names, 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, enclosing
classes names and parameter types accordingly. If class or methods names are
provided, this selector will only attempt to lazily load the Class
and Method
if getEnclosingClasses()
,
getNestedClass()
or getMethod()
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.
DiscoverySelectors.selectNestedMethod(List, String, String)
,
DiscoverySelectors.selectNestedMethod(List, String, String, String)
,
DiscoverySelectors.selectNestedMethod(List, Class, String)
,
DiscoverySelectors.selectNestedMethod(List, Class, String, String)
,
DiscoverySelectors.selectNestedMethod(List, Class, Method)
,
MethodSource
,
NestedClassSelector
,
MethodSelector
Modifier and Type | Field and Description |
---|---|
private MethodSelector |
methodSelector |
private NestedClassSelector |
nestedClassSelector |
Constructor and Description |
---|
NestedMethodSelector(java.util.List<java.lang.Class<?>> enclosingClasses,
java.lang.Class<?> nestedClass,
java.lang.reflect.Method method) |
NestedMethodSelector(java.util.List<java.lang.Class<?>> enclosingClasses,
java.lang.Class<?> nestedClass,
java.lang.String methodName) |
NestedMethodSelector(java.util.List<java.lang.Class<?>> enclosingClasses,
java.lang.Class<?> nestedClass,
java.lang.String methodName,
java.lang.String methodParameterTypes) |
NestedMethodSelector(java.util.List<java.lang.String> enclosingClassNames,
java.lang.String nestedClassName,
java.lang.String methodName) |
NestedMethodSelector(java.util.List<java.lang.String> enclosingClassNames,
java.lang.String nestedClassName,
java.lang.String methodName,
java.lang.String methodParameterTypes) |
Modifier and Type | Method and Description |
---|---|
boolean |
equals(java.lang.Object o) |
java.util.List<java.lang.Class<?>> |
getEnclosingClasses()
Get the list of
Class enclosing the nested Class
containing the selected Method . |
java.util.List<java.lang.String> |
getEnclosingClassNames()
Get the names of the classes enclosing the nested class
containing the selected method.
|
java.lang.reflect.Method |
getMethod()
Get the selected
Method . |
java.lang.String |
getMethodName()
Get the name of the selected method.
|
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. |
java.lang.Class<?> |
getNestedClass()
Get the nested
Class containing the selected Method . |
java.lang.String |
getNestedClassName()
Get the name of the nested class containing the selected method.
|
int |
hashCode() |
java.lang.String |
toString() |
private final NestedClassSelector nestedClassSelector
private final MethodSelector methodSelector
NestedMethodSelector(java.util.List<java.lang.String> enclosingClassNames, java.lang.String nestedClassName, java.lang.String methodName)
NestedMethodSelector(java.util.List<java.lang.String> enclosingClassNames, java.lang.String nestedClassName, java.lang.String methodName, java.lang.String methodParameterTypes)
NestedMethodSelector(java.util.List<java.lang.Class<?>> enclosingClasses, java.lang.Class<?> nestedClass, java.lang.String methodName)
NestedMethodSelector(java.util.List<java.lang.Class<?>> enclosingClasses, java.lang.Class<?> nestedClass, java.lang.String methodName, java.lang.String methodParameterTypes)
NestedMethodSelector(java.util.List<java.lang.Class<?>> enclosingClasses, java.lang.Class<?> nestedClass, java.lang.reflect.Method method)
public java.util.List<java.lang.String> getEnclosingClassNames()
public java.util.List<java.lang.Class<?>> getEnclosingClasses()
Class
enclosing the nested Class
containing the selected Method
.
If the Class
were not provided, but only the name of the
nested class and its enclosing classes, this method attempts to lazily
load the list of enclosing Class
and throws a
PreconditionViolationException
if the classes cannot be loaded.
public java.lang.String getNestedClassName()
public java.lang.Class<?> getNestedClass()
Class
containing the selected Method
.
If the Class
were not provided, but only the name of the
nested class and its enclosing classes, this method attempts to lazily
load the nested Class
and throws a
PreconditionViolationException
if the class cannot be loaded.
public java.lang.String getMethodName()
public java.lang.reflect.Method getMethod()
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.
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.
NestedMethodSelector
via a constructor or deduced from a Method
supplied via a
constructor; never null
public boolean equals(java.lang.Object o)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public java.lang.String toString()
toString
in class java.lang.Object