Class JavaModule

    • Field Detail

      • UNSUPPORTED

        public static final JavaModule UNSUPPORTED
        Canonical representation of a Java module on a JVM that does not support the module API.
    • Constructor Detail

      • JavaModule

        protected JavaModule​(AnnotatedElement module)
        Creates a new Java module representation.
        Parameters:
        module - The java.lang.Module instance this wrapper represents.
    • Method Detail

      • ofType

        public static JavaModule ofType​(Class<?> type)
        Returns a representation of the supplied type's java.lang.Module or null if the current VM does not support modules.
        Parameters:
        type - The type for which to describe the module.
        Returns:
        A representation of the type's module or null if the current VM does not support modules.
      • of

        public static JavaModule of​(Object module)
        Represents the supplied java.lang.Module as an instance of this class and validates that the supplied instance really represents a Java Module.
        Parameters:
        module - The module to represent.
        Returns:
        A representation of the supplied Java module.
      • isSupported

        public static boolean isSupported()
        Checks if the current VM supports the java.lang.Module API.
        Returns:
        true if the current VM supports modules.
      • isNamed

        public boolean isNamed()
        Returns true if this element has an explicit name.
        Specified by:
        isNamed in interface NamedElement.WithOptionalName
        Returns:
        true if this element has an explicit name.
      • getActualName

        public String getActualName()
        Returns the name of this element as it is found in the source code. If no such name exists, an empty string is returned.
        Specified by:
        getActualName in interface NamedElement
        Returns:
        The name of this element as given in a Java program's source code.
      • getResourceAsStream

        public InputStream getResourceAsStream​(String name)
        Returns a resource stream for this module for a resource of the given name or null if such a resource does not exist.
        Parameters:
        name - The name of the resource.
        Returns:
        An input stream for the resource or null if it does not exist.
      • getClassLoader

        public ClassLoader getClassLoader()
        Returns the class loader of this module.
        Returns:
        The class loader of the represented module.
      • unwrap

        public Object unwrap()
        Unwraps this instance to a java.lang.Module.
        Returns:
        The represented java.lang.Module.
      • canRead

        public boolean canRead​(JavaModule module)
        Checks if this module can read the exported packages of the supplied module.
        Parameters:
        module - The module to check for its readability by this module.
        Returns:
        true if this module can read the supplied module.
      • isExported

        public boolean isExported​(PackageDescription packageDescription,
                                  JavaModule module)
        Returns true if this module exports the supplied package to this module.
        Parameters:
        packageDescription - The package to check for
        module - The target module.
        Returns:
        true if this module exports the supplied package to this module.
      • isOpened

        public boolean isOpened​(PackageDescription packageDescription,
                                JavaModule module)
        Returns true if this module opens the supplied package to this module.
        Parameters:
        packageDescription - The package to check for.
        module - The target module.
        Returns:
        true if this module opens the supplied package to this module.
      • modify

        public void modify​(Instrumentation instrumentation,
                           Set<JavaModule> reads,
                           Map<String,​Set<JavaModule>> exports,
                           Map<String,​Set<JavaModule>> opens,
                           Set<Class<?>> uses,
                           Map<Class<?>,​List<Class<?>>> provides)
        Modifies this module's properties.
        Parameters:
        instrumentation - The instrumentation instace to use for applying the modification.
        reads - A set of additional modules this module should read.
        exports - A map of packages to export to a set of modules.
        opens - A map of packages to open to a set of modules.
        uses - A set of provider interfaces to use by this module.
        provides - A map of provider interfaces to provide by this module mapped to the provider implementations.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object