Class ClassLoaderOrder


  • public class ClassLoaderOrder
    extends java.lang.Object
    A class to find all unique classloaders.
    • Field Detail

      • added

        private final java.util.Set<java.lang.ClassLoader> added
        The set of all ClassLoader instances that have been added to the order so far, so that classloaders don't get added twice.
      • delegatedTo

        private final java.util.Set<java.lang.ClassLoader> delegatedTo
        The set of all ClassLoader instances that have been delegated to so far, to prevent an infinite loop in delegation.
      • allParentClassLoaders

        private final java.util.Set<java.lang.ClassLoader> allParentClassLoaders
        The set of all parent ClassLoader instances that have been delegated to so far, to enable ClassGraph.ignoreParentClassLoaders().
    • Constructor Detail

      • ClassLoaderOrder

        public ClassLoaderOrder​(ReflectionUtils reflectionUtils)
    • Method Detail

      • getAllParentClassLoaders

        public java.util.Set<java.lang.ClassLoader> getAllParentClassLoaders()
        Get the all parent classloaders.
        Returns:
        all parent classloaders
      • add

        public void add​(java.lang.ClassLoader classLoader,
                        LogNode log)
        Add a ClassLoader to the ClassLoader order at the current position.
        Parameters:
        classLoader - the class loader
        log - the log
      • delegateTo

        public void delegateTo​(java.lang.ClassLoader classLoader,
                               boolean isParent,
                               LogNode log)
        Recursively delegate to another ClassLoader.
        Parameters:
        classLoader - the class loader
        isParent - true if this is a parent of another classloader
        log - the log