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.List<java.util.Map.Entry<java.lang.ClassLoader,ClassLoaderHandlerRegistry.ClassLoaderHandlerRegistryEntry>>classLoaderOrderTheClassLoaderorder.private java.util.Map<java.lang.ClassLoader,ClassLoaderHandlerRegistry.ClassLoaderHandlerRegistryEntry>classLoaderToClassLoaderHandlerRegistryEntryA map fromClassLoadertoClassLoaderHandlerRegistry.ClassLoaderHandlerRegistryEntry.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 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.java.util.List<java.util.Map.Entry<java.lang.ClassLoader,ClassLoaderHandlerRegistry.ClassLoaderHandlerRegistryEntry>>getClassLoaderOrder()Get theClassLoaderorder.private ClassLoaderHandlerRegistry.ClassLoaderHandlerRegistryEntrygetRegistryEntry(java.lang.ClassLoader classLoader, LogNode log)Find theClassLoaderHandlerthat can handle a givenClassLoaderinstance.
-
-
-
Field Detail
-
classLoaderOrder
private final java.util.List<java.util.Map.Entry<java.lang.ClassLoader,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().
-
classLoaderToClassLoaderHandlerRegistryEntry
private final java.util.Map<java.lang.ClassLoader,ClassLoaderHandlerRegistry.ClassLoaderHandlerRegistryEntry> classLoaderToClassLoaderHandlerRegistryEntry
A map fromClassLoadertoClassLoaderHandlerRegistry.ClassLoaderHandlerRegistryEntry.
-
-
Constructor Detail
-
ClassLoaderOrder
public ClassLoaderOrder(ReflectionUtils reflectionUtils)
-
-
Method Detail
-
getClassLoaderOrder
public java.util.List<java.util.Map.Entry<java.lang.ClassLoader,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
-
getRegistryEntry
private ClassLoaderHandlerRegistry.ClassLoaderHandlerRegistryEntry getRegistryEntry(java.lang.ClassLoader classLoader, LogNode log)
Find theClassLoaderHandlerthat can handle a givenClassLoaderinstance.- Parameters:
classLoader- theClassLoader.log- the log- Returns:
- the
ClassLoaderHandlerRegistry.ClassLoaderHandlerRegistryEntryfor theClassLoader.
-
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
-
-