Class ModuleRef

  • All Implemented Interfaces:
    java.lang.Comparable<ModuleRef>

    public class ModuleRef
    extends java.lang.Object
    implements java.lang.Comparable<ModuleRef>
    A ModuleReference proxy, written using reflection to preserve backwards compatibility with JDK 7 and 8.
    • Constructor Detail

      • ModuleRef

        public ModuleRef​(java.lang.Object moduleReference,
                         java.lang.Object moduleLayer)
        Parameters:
        moduleReference - The module reference, of JPMS type ModuleReference.
        moduleLayer - The module layer, of JPMS type ModuleLayer
    • Method Detail

      • getName

        public java.lang.String getName()
        Returns:
        The module name, i.e. getReference().descriptor().name().
      • getReference

        public java.lang.Object getReference()
        Returns:
        The module reference (of JPMS type ModuleReference).
      • getLayer

        public java.lang.Object getLayer()
        Returns:
        The module layer (of JPMS type ModuleLayer).
      • getDescriptor

        public java.lang.Object getDescriptor()
        Returns:
        The module descriptor, i.e. getReference().descriptor() (of JPMS type ModuleDescriptor).
      • getPackages

        public java.util.List<java.lang.String> getPackages()
        Returns:
        The list of packages in the module. (Does not include non-package directories.)
      • getLocation

        public java.net.URI getLocation()
        Returns:
        The module location, i.e. getReference().location(). Returns null for modules that do not have a location.
      • getLocationStr

        public java.lang.String getLocationStr()
        Returns:
        The module location as a string, i.e. getReference().location().toString(). Returns null for modules that do not have a location.
      • getLocationFile

        public java.io.File getLocationFile()
        Returns:
        The module location as a File, i.e. new File(getReference().location()). Returns null for modules that do not have a location, or for system ("jrt:") modules.
      • getRawVersion

        public java.lang.String getRawVersion()
        Get the raw version string of the module, or null if the module did not provide one.
        Returns:
        The raw version of the module, obtained by ModuleReference#rawVersion().orElse(null).
      • isSystemModule

        public boolean isSystemModule()
        Returns:
        true if this module's location is a non-"file:" (i.e. "jrt:") URI, or if it has no location URI, or if it uses the (null) bootstrap ClassLoader, or if the module name starts with a system prefix ("java.", "jre.", etc.).
      • getClassLoader

        public java.lang.ClassLoader getClassLoader()
        Returns:
        The classloader for the module, i.e. moduleLayer.findLoader(getReference().descriptor().name()).
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • compareTo

        public int compareTo​(ModuleRef o)
        Specified by:
        compareTo in interface java.lang.Comparable<ModuleRef>