Class ClassLoaderOrder
- java.lang.Object
-
- nonapi.io.github.classgraph.classpath.ClassLoaderOrder
-
public class ClassLoaderOrder extends java.lang.Object
A class to find all unique classloaders.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Set<java.lang.ClassLoader>
added
The set of allClassLoader
instances that have been added to the order so far, so that classloaders don't get added twice.private java.util.Set<java.lang.ClassLoader>
allParentClassLoaders
The set of all parentClassLoader
instances that have been delegated to so far, to enableClassGraph.ignoreParentClassLoaders()
.private java.util.List<java.util.Map.Entry<java.lang.ClassLoader,ClassLoaderHandlerRegistry.ClassLoaderHandlerRegistryEntry>>
classLoaderOrder
TheClassLoader
order.private java.util.Map<java.lang.ClassLoader,ClassLoaderHandlerRegistry.ClassLoaderHandlerRegistryEntry>
classLoaderToClassLoaderHandlerRegistryEntry
A map fromClassLoader
toClassLoaderHandlerRegistry.ClassLoaderHandlerRegistryEntry
.private java.util.Set<java.lang.ClassLoader>
delegatedTo
The set of allClassLoader
instances that have been delegated to so far, to prevent an infinite loop in delegation.ReflectionUtils
reflectionUtils
-
Constructor Summary
Constructors Constructor Description ClassLoaderOrder(ReflectionUtils reflectionUtils)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(java.lang.ClassLoader classLoader, LogNode log)
Add aClassLoader
to the ClassLoader order at the current position.void
delegateTo(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 theClassLoader
order.private ClassLoaderHandlerRegistry.ClassLoaderHandlerRegistryEntry
getRegistryEntry(java.lang.ClassLoader classLoader, LogNode log)
Find theClassLoaderHandler
that can handle a givenClassLoader
instance.
-
-
-
Field Detail
-
classLoaderOrder
private final java.util.List<java.util.Map.Entry<java.lang.ClassLoader,ClassLoaderHandlerRegistry.ClassLoaderHandlerRegistryEntry>> classLoaderOrder
TheClassLoader
order.
-
reflectionUtils
public ReflectionUtils reflectionUtils
-
added
private final java.util.Set<java.lang.ClassLoader> added
The set of allClassLoader
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 allClassLoader
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 parentClassLoader
instances that have been delegated to so far, to enableClassGraph.ignoreParentClassLoaders()
.
-
classLoaderToClassLoaderHandlerRegistryEntry
private final java.util.Map<java.lang.ClassLoader,ClassLoaderHandlerRegistry.ClassLoaderHandlerRegistryEntry> classLoaderToClassLoaderHandlerRegistryEntry
A map fromClassLoader
toClassLoaderHandlerRegistry.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 theClassLoader
order.- Returns:
- the
ClassLoader
order, 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 theClassLoaderHandler
that can handle a givenClassLoader
instance.- Parameters:
classLoader
- theClassLoader
.log
- the log- Returns:
- the
ClassLoaderHandlerRegistry.ClassLoaderHandlerRegistryEntry
for theClassLoader
.
-
add
public void add(java.lang.ClassLoader classLoader, LogNode log)
Add aClassLoader
to 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
-
-