Class DiscoverySelectors

    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static ClassSelector selectClass​(java.lang.Class<?> clazz)
      Create a ClassSelector for the supplied Class.
      static ClassSelector selectClass​(java.lang.String className)
      Create a ClassSelector for the supplied class name.
      static ClasspathResourceSelector selectClasspathResource​(java.lang.String classpathResourceName)
      Create a ClasspathResourceSelector for the supplied classpath resource name.
      static java.util.List<ClasspathRootSelector> selectClasspathRoots​(java.util.Set<java.nio.file.Path> classpathRoots)
      Create a list of ClasspathRootSelectors for the supplied classpath roots (directories or JAR files).
      static DirectorySelector selectDirectory​(java.io.File directory)
      Create a DirectorySelector for the supplied directory.
      static DirectorySelector selectDirectory​(java.lang.String path)
      Create a DirectorySelector for the supplied directory path.
      static FileSelector selectFile​(java.io.File file)
      Create a FileSelector for the supplied file.
      static FileSelector selectFile​(java.lang.String path)
      Create a FileSelector for the supplied file path.
      static MethodSelector selectMethod​(java.lang.Class<?> javaClass, java.lang.reflect.Method method)
      Create a MethodSelector for the supplied Class and Method.
      static MethodSelector selectMethod​(java.lang.Class<?> javaClass, java.lang.String methodName)
      Create a MethodSelector for the supplied Class and method name.
      static MethodSelector selectMethod​(java.lang.Class<?> javaClass, java.lang.String methodName, java.lang.String methodParameterTypes)
      Create a MethodSelector for the supplied Class, method name, and method parameter types.
      static MethodSelector selectMethod​(java.lang.String fullyQualifiedMethodName)
      Create a MethodSelector for the supplied fully qualified method name.
      static MethodSelector selectMethod​(java.lang.String className, java.lang.String methodName)
      Create a MethodSelector for the supplied class name and method name.
      static MethodSelector selectMethod​(java.lang.String className, java.lang.String methodName, java.lang.String methodParameterTypes)
      Create a MethodSelector for the supplied class name, method name, and method parameter types.
      static ModuleSelector selectModule​(java.lang.String moduleName)
      Create a ModuleSelector for the supplied module name.
      static java.util.List<ModuleSelector> selectModules​(java.util.Set<java.lang.String> moduleNames)
      Create a list of ModuleSelectors for the supplied module names.
      static PackageSelector selectPackage​(java.lang.String packageName)
      Create a PackageSelector for the supplied package name.
      static UniqueIdSelector selectUniqueId​(java.lang.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​(java.lang.String uri)
      Create a UriSelector for the supplied URI.
      static UriSelector selectUri​(java.net.URI uri)
      Create a UriSelector for the supplied URI.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • selectClasspathRoots

        public static java.util.List<ClasspathRootSelector> selectClasspathRoots​(java.util.Set<java.nio.file.Path> classpathRoots)
        Create a list of 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.

        Parameters:
        classpathRoots - set of directories and JAR files in the filesystem that represent classpath roots; never null
        Returns:
        a list of selectors for the supplied classpath roots; elements which do not physically exist in the filesystem will be filtered out
        See Also:
        ClasspathRootSelector, Thread.getContextClassLoader()
      • selectClasspathResource

        public static ClasspathResourceSelector selectClasspathResource​(java.lang.String classpathResourceName)
        Create a 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.

        Parameters:
        classpathResourceName - the name of the classpath resource; never null or blank
        See Also:
        ClasspathResourceSelector, ClassLoader.getResource(String), ClassLoader.getResourceAsStream(String), ClassLoader.getResources(String)
      • selectModule

        @API(status=EXPERIMENTAL,
             since="1.1")
        public static ModuleSelector selectModule​(java.lang.String moduleName)
        Create a ModuleSelector for the supplied module name.

        The unnamed module is not supported.

        Parameters:
        moduleName - the module name to select; never null or blank
        Since:
        1.1
        See Also:
        ModuleSelector
      • selectModules

        @API(status=EXPERIMENTAL,
             since="1.1")
        public static java.util.List<ModuleSelector> selectModules​(java.util.Set<java.lang.String> moduleNames)
        Create a list of ModuleSelectors for the supplied module names.

        The unnamed module is not supported.

        Parameters:
        moduleNames - the module names to select; never null, never containing null or blank
        Since:
        1.1
        See Also:
        ModuleSelector
      • selectPackage

        public static PackageSelector selectPackage​(java.lang.String packageName)
        Create a PackageSelector for the supplied package name.

        The default package is represented by an empty string ("").

        Parameters:
        packageName - the package name to select; never null and never containing whitespace only
        See Also:
        PackageSelector
      • selectClass

        public static ClassSelector selectClass​(java.lang.Class<?> clazz)
        Create a ClassSelector for the supplied Class.
        Parameters:
        clazz - the class to select; never null
        See Also:
        ClassSelector
      • selectClass

        public static ClassSelector selectClass​(java.lang.String className)
        Create a ClassSelector for the supplied class name.
        Parameters:
        className - the fully qualified name of the class to select; never null or blank
        See Also:
        ClassSelector
      • selectMethod

        public static MethodSelector selectMethod​(java.lang.String fullyQualifiedMethodName)
                                           throws PreconditionViolationException
        Create a 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.).

        Examples

        MethodFully 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[][])
        Parameters:
        fullyQualifiedMethodName - the fully qualified name of the method to select; never null or blank
        Throws:
        PreconditionViolationException
        See Also:
        MethodSelector
      • selectMethod

        public static MethodSelector selectMethod​(java.lang.String className,
                                                  java.lang.String methodName)
        Create a MethodSelector for the supplied class name and method name.
        Parameters:
        className - the fully qualified name of the class in which the method is declared, or a subclass thereof; never null or blank
        methodName - the name of the method to select; never null or blank
        See Also:
        MethodSelector
      • selectMethod

        public static MethodSelector selectMethod​(java.lang.String className,
                                                  java.lang.String methodName,
                                                  java.lang.String methodParameterTypes)
        Create a 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.

        Parameters:
        className - the fully qualified name of the class in which the method is declared, or a subclass thereof; never null or blank
        methodName - the name of the method to select; never null or blank
        methodParameterTypes - the method parameter types as a single string; never null though potentially an empty string if the method does not accept arguments
        See Also:
        MethodSelector
      • selectMethod

        public static MethodSelector selectMethod​(java.lang.Class<?> javaClass,
                                                  java.lang.String methodName)
        Create a MethodSelector for the supplied Class and method name.
        Parameters:
        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 blank
        See Also:
        MethodSelector
      • selectMethod

        public static MethodSelector selectMethod​(java.lang.Class<?> javaClass,
                                                  java.lang.String methodName,
                                                  java.lang.String methodParameterTypes)
        Create a 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.

        Parameters:
        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 blank
        methodParameterTypes - the method parameter types as a single string; never null though potentially an empty string if the method does not accept arguments
        See Also:
        MethodSelector
      • selectMethod

        public static MethodSelector selectMethod​(java.lang.Class<?> javaClass,
                                                  java.lang.reflect.Method method)
        Create a MethodSelector for the supplied Class and Method.
        Parameters:
        javaClass - the class in which the method is declared, or a subclass thereof; never null
        method - the method to select; never null
        See Also:
        MethodSelector
      • selectUniqueId

        public static UniqueIdSelector selectUniqueId​(java.lang.String uniqueId)
        Create a UniqueIdSelector for the supplied unique ID.
        Parameters:
        uniqueId - the unique ID to select; never null or blank
        See Also:
        UniqueIdSelector