@API(value=Experimental) public final class DiscoverySelectors extends Object
static
factory methods for creating
DiscoverySelectors
.ClasspathRootSelector
,
ClasspathResourceSelector
,
ClassSelector
,
MethodSelector
,
PackageSelector
Modifier and Type | Method and Description |
---|---|
static ClassSelector |
selectClass(Class<?> clazz)
Create a
ClassSelector for the supplied Class . |
static ClassSelector |
selectClass(String className)
Create a
ClassSelector for the supplied class name. |
static ClasspathResourceSelector |
selectClasspathResource(String classpathResourceName)
Create a
ClasspathResourceSelector for the supplied classpath
resource name. |
static List<ClasspathRootSelector> |
selectClasspathRoots(Set<Path> classpathRoots)
Create a list of
ClasspathRootSelectors for the supplied
classpath roots (directories or JAR files). |
static DirectorySelector |
selectDirectory(File directory)
Create a
DirectorySelector for the supplied directory. |
static DirectorySelector |
selectDirectory(String path)
Create a
DirectorySelector for the supplied directory path. |
static FileSelector |
selectFile(File file)
Create a
FileSelector for the supplied file. |
static FileSelector |
selectFile(String path)
Create a
FileSelector for the supplied file path. |
static MethodSelector |
selectMethod(Class<?> javaClass,
Method method)
|
static MethodSelector |
selectMethod(Class<?> javaClass,
String methodName)
Create a
MethodSelector for the supplied Class and method name. |
static MethodSelector |
selectMethod(Class<?> javaClass,
String methodName,
String methodParameterTypes)
Create a
MethodSelector for the supplied Class , method name,
and method parameter types. |
static MethodSelector |
selectMethod(String fullyQualifiedMethodName)
Create a
MethodSelector for the supplied fully qualified
method name. |
static MethodSelector |
selectMethod(String className,
String methodName)
Create a
MethodSelector for the supplied class name and method name. |
static MethodSelector |
selectMethod(String className,
String methodName,
String methodParameterTypes)
Create a
MethodSelector for the supplied class name, method name,
and method parameter types. |
static PackageSelector |
selectPackage(String packageName)
Create a
PackageSelector for the supplied package name. |
static UniqueIdSelector |
selectUniqueId(String uniqueId)
Create a
UniqueIdSelector for the supplied unique ID. |
static UniqueIdSelector |
selectUniqueId(UniqueId uniqueId)
Create a
UniqueIdSelector for the supplied UniqueId . |
static UriSelector |
selectUri(String uri)
Create a
UriSelector for the supplied URI. |
static UriSelector |
selectUri(URI uri)
Create a
UriSelector for the supplied URI . |
public static UriSelector selectUri(String uri)
UriSelector
for the supplied URI.uri
- the URI to select; never null
or blankUriSelector
,
selectUri(URI)
,
selectFile(String)
,
selectFile(File)
,
selectDirectory(String)
,
selectDirectory(File)
public static UriSelector selectUri(URI uri)
UriSelector
for the supplied URI
.uri
- the URI to select; never null
UriSelector
,
selectUri(String)
,
selectFile(String)
,
selectFile(File)
,
selectDirectory(String)
,
selectDirectory(File)
public static FileSelector selectFile(String path)
FileSelector
for the supplied file path.
This method selects the file using the supplied path as is, without verifying if the file exists.
path
- the path to the file to select; never null
or blankFileSelector
,
selectFile(File)
,
selectDirectory(String)
,
selectDirectory(File)
public static FileSelector selectFile(File file)
FileSelector
for the supplied file.
This method selects the file in its canonical form and throws a PreconditionViolationException
if the
file does not exist.
file
- the file to select; never null
FileSelector
,
selectFile(String)
,
selectDirectory(String)
,
selectDirectory(File)
public static DirectorySelector selectDirectory(String path)
DirectorySelector
for the supplied directory path.
This method selects the directory using the supplied path as is, without verifying if the directory exists.
path
- the path to the directory to select; never null
or blankDirectorySelector
,
selectDirectory(File)
,
selectFile(String)
,
selectFile(File)
public static DirectorySelector selectDirectory(File directory)
DirectorySelector
for the supplied directory.
This method selects the directory in its canonical form and throws a PreconditionViolationException
if the
directory does not exist.
directory
- the directory to select; never null
DirectorySelector
,
selectDirectory(String)
,
selectFile(String)
,
selectFile(File)
public static List<ClasspathRootSelector> selectClasspathRoots(Set<Path> classpathRoots)
ClasspathRootSelectors
for the supplied
classpath roots (directories or JAR files).
Since the supplied paths are converted to URIs
, the
FileSystem
that created them must be the
default or one that
has been created by an installed
FileSystemProvider
.
Since engines are not expected to modify the classpath, the classpath roots represented by the resulting selectors must be on the classpath of the context class loader of the thread that uses these selectors.
classpathRoots
- set of directories and JAR files in the filesystem
that represent classpath roots; never null
ClasspathRootSelector
,
Thread.getContextClassLoader()
public static ClasspathResourceSelector selectClasspathResource(String classpathResourceName)
ClasspathResourceSelector
for the supplied classpath
resource name.
The name of a classpath resource must follow the semantics
for resource paths as defined in ClassLoader.getResource(String)
.
If the supplied classpath resource name is prefixed with a slash
(/
), the slash will be removed.
Since engines are not expected to modify the classpath, the supplied classpath resource must be on the classpath of the context class loader of the thread that uses the resulting selector.
classpathResourceName
- the name of the classpath resource; never
null
or blankClasspathResourceSelector
,
ClassLoader.getResource(String)
,
ClassLoader.getResourceAsStream(String)
,
ClassLoader.getResources(String)
public static PackageSelector selectPackage(String packageName)
PackageSelector
for the supplied package name.
The default package is represented by an empty string (""
).
packageName
- the package name to select; never null
and
never containing whitespace onlyPackageSelector
public static ClassSelector selectClass(Class<?> clazz)
ClassSelector
for the supplied Class
.clazz
- the class to select; never null
ClassSelector
public static ClassSelector selectClass(String className)
ClassSelector
for the supplied class name.className
- the fully qualified name of the class to select;
never null
or blankClassSelector
public static MethodSelector selectMethod(String fullyQualifiedMethodName) throws PreconditionViolationException
MethodSelector
for the supplied fully qualified
method name.
The following formats are supported.
[fully qualified class name]#[methodName]
[fully qualified class name]#[methodName](parameter type list)
The parameter type list is a comma-separated list of primitive names or fully qualified class names for the types of parameters accepted by the method.
Array parameter types may be specified using either the JVM's internal
String representation (e.g., [[I
for int[][]
,
[Ljava.lang.String;
for java.lang.String[]
, etc.) or
source code syntax (e.g., int[][]
, java.lang.String[]
,
etc.).
Method | Fully Qualified Method Name |
---|---|
java.lang.String.chars() | java.lang.String#chars |
java.lang.String.chars() | java.lang.String#chars() |
java.lang.String.equalsIgnoreCase(String) | java.lang.String#equalsIgnoreCase(java.lang.String) |
java.lang.String.substring(int, int) | java.lang.String#substring(int, int) |
example.Calc.avg(int[]) | example.Calc#avg([I) |
example.Calc.avg(int[]) | example.Calc#avg(int[]) |
example.Matrix.multiply(double[][]) | example.Matrix#multiply([[D) |
example.Matrix.multiply(double[][]) | example.Matrix#multiply(double[][]) |
example.Service.process(String[]) | example.Service#process([Ljava.lang.String;) |
example.Service.process(String[]) | example.Service#process(java.lang.String[]) |
example.Service.process(String[][]) | example.Service#process([[Ljava.lang.String;) |
example.Service.process(String[][]) | example.Service#process(java.lang.String[][]) |
fullyQualifiedMethodName
- the fully qualified name of the method to select; never
null
or blankPreconditionViolationException
MethodSelector
public static MethodSelector selectMethod(String className, String methodName)
MethodSelector
for the supplied class name and method name.className
- the fully qualified name of the class in which the method
is declared, or a subclass thereof; never null
or blankmethodName
- the name of the method to select; never null
or blankMethodSelector
public static MethodSelector selectMethod(String className, String methodName, String methodParameterTypes)
MethodSelector
for the supplied class name, method name,
and method parameter types.
The parameter types String
is typically a comma-separated list
of atomic types, fully qualified class names, or array types; however,
the exact syntax depends on the underlying test engine.
className
- the fully qualified name of the class in which the method
is declared, or a subclass thereof; never null
or blankmethodName
- the name of the method to select; never null
or blankmethodParameterTypes
- the method parameter types as a single string; never
null
though potentially an empty string if the method does not accept
argumentsMethodSelector
public static MethodSelector selectMethod(Class<?> javaClass, String methodName)
MethodSelector
for the supplied Class
and method name.javaClass
- the class in which the method is declared, or a subclass thereof;
never null
methodName
- the name of the method to select; never null
or blankMethodSelector
public static MethodSelector selectMethod(Class<?> javaClass, String methodName, String methodParameterTypes)
MethodSelector
for the supplied Class
, method name,
and method parameter types.
The parameter types String
is typically a comma-separated list
of atomic types, fully qualified class names, or array types; however,
the exact syntax depends on the underlying test engine.
javaClass
- the class in which the method is declared, or a subclass thereof;
never null
methodName
- the name of the method to select; never null
or blankmethodParameterTypes
- the method parameter types as a single string; never
null
though potentially an empty string if the method does not accept
argumentsMethodSelector
public static MethodSelector selectMethod(Class<?> javaClass, Method method)
javaClass
- the class in which the method is declared, or a subclass thereof;
never null
method
- the method to select; never null
MethodSelector
public static UniqueIdSelector selectUniqueId(UniqueId uniqueId)
UniqueIdSelector
for the supplied UniqueId
.uniqueId
- the UniqueId
to select; never null
UniqueIdSelector
public static UniqueIdSelector selectUniqueId(String uniqueId)
UniqueIdSelector
for the supplied unique ID.uniqueId
- the unique ID to select; never null
or blankUniqueIdSelector