Class ClassLoaderOrder
- java.lang.Object
-
- nonapi.io.github.classgraph.classpath.ClassLoaderOrder
-
public class ClassLoaderOrder extends java.lang.ObjectA class to find all unique classloaders.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Set<java.lang.ClassLoader>addedThe set of allClassLoaderinstances that have been added to the order so far, so that classloaders don't get added twice.private java.util.Set<java.lang.ClassLoader>allParentClassLoadersThe set of all parentClassLoaderinstances that have been delegated to so far, to enableClassGraph.ignoreParentClassLoaders().private java.util.Map<java.lang.ClassLoader,java.util.List<ClassLoaderHandlerRegistry.ClassLoaderHandlerRegistryEntry>>classLoaderOrderTheClassLoaderorder.private java.util.Set<java.lang.ClassLoader>delegatedToThe set of allClassLoaderinstances that have been delegated to so far, to prevent an infinite loop in delegation.ReflectionUtilsreflectionUtils
-
Constructor Summary
Constructors Constructor Description ClassLoaderOrder(ReflectionUtils reflectionUtils)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(java.lang.ClassLoader classLoader, LogNode log)Add aClassLoaderto the ClassLoader order at the current position.voiddelegateTo(java.lang.ClassLoader classLoader, boolean isParent, LogNode log)Recursively delegate to anotherClassLoader.java.util.Set<java.lang.ClassLoader>getAllParentClassLoaders()Get the all parent classloaders.private static java.util.List<ClassLoaderHandlerRegistry.ClassLoaderHandlerRegistryEntry>getClassLoaderHandlerRegistryEntries(java.lang.ClassLoader classLoader, LogNode log)Get the ClassLoaderHandler(s) that can handle a given ClassLoader.java.util.List<java.util.Map.Entry<java.lang.ClassLoader,java.util.List<ClassLoaderHandlerRegistry.ClassLoaderHandlerRegistryEntry>>>getClassLoaderOrder()Get theClassLoaderorder.
-
-
-
Field Detail
-
classLoaderOrder
private final java.util.Map<java.lang.ClassLoader,java.util.List<ClassLoaderHandlerRegistry.ClassLoaderHandlerRegistryEntry>> classLoaderOrder
TheClassLoaderorder.
-
reflectionUtils
public ReflectionUtils reflectionUtils
-
added
private final java.util.Set<java.lang.ClassLoader> added
The set of allClassLoaderinstances 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 allClassLoaderinstances 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 parentClassLoaderinstances that have been delegated to so far, to enableClassGraph.ignoreParentClassLoaders().
-
-
Constructor Detail
-
ClassLoaderOrder
public ClassLoaderOrder(ReflectionUtils reflectionUtils)
-
-
Method Detail
-
getClassLoaderOrder
public java.util.List<java.util.Map.Entry<java.lang.ClassLoader,java.util.List<ClassLoaderHandlerRegistry.ClassLoaderHandlerRegistryEntry>>> getClassLoaderOrder()
Get theClassLoaderorder.- Returns:
- the
ClassLoaderorder, as a pair:ClassLoader,ClassLoaderHandlerRegistry.ClassLoaderHandlerRegistryEntry.
-
getAllParentClassLoaders
public java.util.Set<java.lang.ClassLoader> getAllParentClassLoaders()
Get the all parent classloaders.- Returns:
- all parent classloaders
-
getClassLoaderHandlerRegistryEntries
private static java.util.List<ClassLoaderHandlerRegistry.ClassLoaderHandlerRegistryEntry> getClassLoaderHandlerRegistryEntries(java.lang.ClassLoader classLoader, LogNode log)
Get the ClassLoaderHandler(s) that can handle a given ClassLoader.
-
add
public void add(java.lang.ClassLoader classLoader, LogNode log)Add aClassLoaderto the ClassLoader order at the current position.- Parameters:
classLoader- the class loaderlog- the log
-
delegateTo
public void delegateTo(java.lang.ClassLoader classLoader, boolean isParent, LogNode log)Recursively delegate to anotherClassLoader.- Parameters:
classLoader- the class loaderisParent- true if this is a parent of another classloaderlog- the log
-
-