Class ClassFileLocator.ForModule.WeaklyReferenced

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, ClassFileLocator
    Enclosing class:
    ClassFileLocator.ForModule

    public static class ClassFileLocator.ForModule.WeaklyReferenced
    extends java.lang.ref.WeakReference<java.lang.Object>
    implements ClassFileLocator

    A class file locator for a Java module that only references this module weakly. If a module was garbage collected, this class file locator only returns unresolved resolutions.

    Important: Even when calling Closeable.close() on this class file locator, no underlying class loader is closed if it implements the Closeable interface as this is typically not intended.

    • Constructor Detail

      • WeaklyReferenced

        protected WeaklyReferenced​(java.lang.Object module)
        Creates a class file locator for a Java module that is weakly referenced.
        Parameters:
        module - The raw Java module to represent.
    • Method Detail

      • of

        public static ClassFileLocator of​(JavaModule module)
        Creates a class file locator for a Java module where the module is referenced weakly. If the module is not named, the module's class loader is represented instead. Module's of the boot layer are not referenced weakly.
        Parameters:
        module - The Java module to represent.
        Returns:
        A suitable class file locator.
      • locate

        public ClassFileLocator.Resolution locate​(java.lang.String typeName)
                                           throws java.io.IOException
        Description copied from interface: ClassFileLocator
        Locates the class file for a given type and returns the binary data of the class file.
        Specified by:
        locate in interface ClassFileLocator
        Parameters:
        typeName - The name of the type to locate a class file representation for.
        Returns:
        Any binary representation of the type which might be illegal.
        Throws:
        java.io.IOException - If reading a class file causes an error.
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Throws:
        java.io.IOException
      • hashCode

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

        public boolean equals​(java.lang.Object object)
        Overrides:
        equals in class java.lang.Object