Class MultiClassLoader


  • public class MultiClassLoader
    extends ClassLoader
    Class loader type that can be configured to delegate to multiple internal class loaders. The THREAD_LOADER constant is a marker that will be replaced with the context loader of the current thread.
    Author:
    Abe White
    • Field Detail

      • THREAD_LOADER

        public static final ClassLoader THREAD_LOADER
        Marker that will be replaced with the context loader of the current thread whenever it is discovered in the class loader list.
      • SYSTEM_LOADER

        public static final ClassLoader SYSTEM_LOADER
        The standard system class loader.
    • Constructor Detail

      • MultiClassLoader

        public MultiClassLoader()
        Constructor; initializes the loader with an empty list of delegates.
      • MultiClassLoader

        public MultiClassLoader​(MultiClassLoader other)
        Construct with the class loaders of another multi loader.
      • MultiClassLoader

        public MultiClassLoader​(ClassLoader... loaders)
    • Method Detail

      • containsClassLoader

        public boolean containsClassLoader​(ClassLoader loader)
        Returns true if the list contains the given class loader or marker.
      • getClassLoaders

        public ClassLoader[] getClassLoaders()
        Return an array of all contained class loaders.
      • getClassLoader

        public ClassLoader getClassLoader​(int index)
        Return the class loader at the given index.
      • addClassLoader

        public boolean addClassLoader​(ClassLoader loader)
        Add the given class loader to the set of loaders that will be tried.
        Returns:
        true if the loader was added, false if already in the list
      • addClassLoader

        public boolean addClassLoader​(int index,
                                      ClassLoader loader)
        Add the given class loader at the specified index.
        Returns:
        true if the loader was added, false if already in the list
      • setClassLoaders

        public void setClassLoaders​(MultiClassLoader multi)
        Set the class loaders of this loader to those of the given loader.
      • addClassLoaders

        public boolean addClassLoaders​(int index,
                                       MultiClassLoader multi)
        Adds all class loaders from the given multi loader starting at the given index.
        Returns:
        true if any loaders were added, false if all already in list
      • addClassLoaders

        public boolean addClassLoaders​(MultiClassLoader multi)
        Adds all the class loaders from the given multi loader.
        Returns:
        true if any loaders were added, false if all already in list
      • removeClassLoader

        public boolean removeClassLoader​(ClassLoader loader)
        Remove the given loader from the list.
        Returns:
        true if removed, false if not in list
      • clear

        public void clear()
        Clear the list of class loaders.
      • size

        public int size()
        Return the number of internal class loaders.
      • isEmpty

        public boolean isEmpty()
        Return true if there are no internal class laoders.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object