final class DynamicGlue
extends java.lang.Object
Provider
-based proxies.Modifier and Type | Field and Description |
---|---|
private static java.lang.String |
ILLEGAL_STATE_NAME |
private static java.lang.String |
OBJECT_DESC |
private static java.util.Map<java.lang.String,java.lang.reflect.Method> |
OBJECT_METHOD_MAP |
private static java.lang.String |
OBJECT_NAME |
private static java.lang.String |
PROVIDER_DESC |
private static java.lang.String |
PROVIDER_HANDLE |
private static java.lang.String |
PROVIDER_NAME |
Modifier | Constructor and Description |
---|---|
private |
DynamicGlue() |
Modifier and Type | Method and Description |
---|---|
static byte[] |
generateProxyClass(java.lang.String proxyName,
java.lang.Class<?> facade)
Generates a dynamic
Provider -based proxy that reflects the given facade. |
private static java.lang.String[] |
getInternalNames(java.lang.Class<?>... clazzes)
Returns the internal names of the given classes.
|
private static java.util.Collection<java.lang.reflect.Method> |
getWrappableMethods(java.lang.Class<?> clazz)
Returns the methods that should be wrapped for delegation in the given class.
|
private static void |
init(ClassWriter cw,
java.lang.String superName,
java.lang.String proxyName)
Generates a constructor that accepts a
Provider and stores it in an internal field. |
private static boolean |
isWrappable(java.lang.reflect.Method method)
Returns
true if the given method should be wrapped; otherwise false . |
private static java.lang.String |
signatureKey(java.lang.reflect.Method method)
Returns a signature-based key that identifies the given method in the current class.
|
private static void |
wrap(ClassWriter cw,
java.lang.String proxyName,
java.lang.reflect.Method method)
Generates a wrapper that dereferences the stored
Provider and invokes the given method. |
private static final java.lang.String PROVIDER_NAME
private static final java.lang.String PROVIDER_DESC
private static final java.lang.String PROVIDER_HANDLE
private static final java.lang.String OBJECT_NAME
private static final java.lang.String OBJECT_DESC
private static final java.lang.String ILLEGAL_STATE_NAME
private static final java.util.Map<java.lang.String,java.lang.reflect.Method> OBJECT_METHOD_MAP
public static byte[] generateProxyClass(java.lang.String proxyName, java.lang.Class<?> facade)
Provider
-based proxy that reflects the given facade.proxyName
- The proxy namefacade
- The expected facadeprivate static void init(ClassWriter cw, java.lang.String superName, java.lang.String proxyName)
Provider
and stores it in an internal field.private static void wrap(ClassWriter cw, java.lang.String proxyName, java.lang.reflect.Method method)
Provider
and invokes the given method.private static java.lang.String[] getInternalNames(java.lang.Class<?>... clazzes)
private static java.util.Collection<java.lang.reflect.Method> getWrappableMethods(java.lang.Class<?> clazz)
private static boolean isWrappable(java.lang.reflect.Method method)
true
if the given method should be wrapped; otherwise false
.private static java.lang.String signatureKey(java.lang.reflect.Method method)