Class ClassFileLocator.ForClassLoader.WeaklyReferenced

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

    public static class ClassFileLocator.ForClassLoader.WeaklyReferenced
    extends java.lang.ref.WeakReference<java.lang.ClassLoader>
    implements ClassFileLocator

    A class file locator that queries a class loader for binary representations of class files. The class loader is only weakly referenced.

    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.

    • Field Detail

      • hashCode

        private final int hashCode
        The represented class loader's hash code.
    • Constructor Detail

      • WeaklyReferenced

        protected WeaklyReferenced​(java.lang.ClassLoader classLoader)
        Creates a class file locator for a class loader that is weakly referenced.
        Parameters:
        classLoader - The class loader to represent.
    • Method Detail

      • of

        public static ClassFileLocator of​(java.lang.ClassLoader classLoader)
        Creates a class file locator for a given class loader. If the class loader is not the bootstrap class loader or the system class loader which cannot be collected, the class loader is only weakly referenced.
        Parameters:
        classLoader - The class loader to be used. If this class loader represents the bootstrap class loader which is represented by the null value, this system class loader is used instead.
        Returns:
        A corresponding source locator.
      • locate

        public ClassFileLocator.Resolution locate​(java.lang.String name)
                                           throws java.io.IOException
        Locates the class file for a given type and returns the binary data of the class file.
        Specified by:
        locate in interface ClassFileLocator
        Parameters:
        name - 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()
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
      • hashCode

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

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