final class GlueLoader
extends java.lang.ClassLoader
ClassLoader
s that can generate proxy classes on-demand.Modifier and Type | Field and Description |
---|---|
private static java.util.concurrent.ConcurrentMap<java.lang.Integer,GlueLoader> |
cachedGlue |
private static java.lang.String |
DYNAMIC |
private static java.lang.String |
GLUE_SUFFIX |
private static java.lang.String |
PROVIDER_NAME |
private static java.lang.Object |
SYSTEM_LOADER_LOCK |
Constructor and Description |
---|
GlueLoader() |
GlueLoader(java.lang.ClassLoader parent) |
Modifier and Type | Method and Description |
---|---|
private static GlueLoader |
createGlue(java.lang.ClassLoader parent)
Returns new
GlueLoader that delegates to the given ClassLoader . |
private static java.lang.Class<?> |
dynamicGlue(java.lang.Class<?> facade)
Loads the dynamic proxy class for the given facade class.
|
static <T> T |
dynamicGlue(com.google.inject.TypeLiteral<T> type,
javax.inject.Provider<T> provider)
Generates a new dynamic proxy instance for the given facade type and provider.
|
protected java.lang.Class<?> |
findClass(java.lang.String name) |
private static GlueLoader |
glue(java.lang.ClassLoader parent)
Returns the
GlueLoader associated with the given ClassLoader . |
protected java.lang.Class<?> |
loadClass(java.lang.String name,
boolean resolve) |
private static java.lang.String |
unwrap(java.lang.String name)
Unwraps the proxy decoration from around the given class name.
|
private static java.lang.String |
wrap(java.lang.String name,
java.lang.String kind)
Wraps the given class name with the appropriate proxy decoration.
|
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
private static final java.lang.Object SYSTEM_LOADER_LOCK
private static final java.lang.String PROVIDER_NAME
private static final java.lang.String GLUE_SUFFIX
private static final java.lang.String DYNAMIC
private static final java.util.concurrent.ConcurrentMap<java.lang.Integer,GlueLoader> cachedGlue
public static <T> T dynamicGlue(com.google.inject.TypeLiteral<T> type, javax.inject.Provider<T> provider)
type
- The facade typeprovider
- The providerprotected java.lang.Class<?> loadClass(java.lang.String name, boolean resolve) throws java.lang.ClassNotFoundException
loadClass
in class java.lang.ClassLoader
java.lang.ClassNotFoundException
protected java.lang.Class<?> findClass(java.lang.String name) throws java.lang.ClassNotFoundException
findClass
in class java.lang.ClassLoader
java.lang.ClassNotFoundException
private static java.lang.Class<?> dynamicGlue(java.lang.Class<?> facade) throws java.lang.ClassNotFoundException
java.lang.ClassNotFoundException
private static java.lang.String wrap(java.lang.String name, java.lang.String kind)
private static java.lang.String unwrap(java.lang.String name)
private static GlueLoader glue(java.lang.ClassLoader parent)
GlueLoader
associated with the given ClassLoader
.private static GlueLoader createGlue(java.lang.ClassLoader parent)
GlueLoader
that delegates to the given ClassLoader
.