| Modifier and Type | Field and Description |
|---|---|
| private final Map | |
| private final Method[] | |
| private static final ClassValue | ENHANCERS
Lazy association between classes and their generated enhancers. |
| private final Class |
| Access | Constructor and Description |
|---|---|
| pack-priv | EnhancerBuilderImpl(Class<?> hostClass, Collection<Method> enhanceableMethods, Map<Method, Method> bridgeDelegates)
|
| Modifier and Type | Method and Description |
|---|---|
| public Function | buildEnhancer(BitSet methodIndices)
Implements com. |
| private Function | |
| public Method[] | getEnhanceableMethods()
Implements com. |
| bridgeDelegates | back to summary |
|---|---|
| private final Map<Method, Method> bridgeDelegates | |
| enhanceableMethods | back to summary |
|---|---|
| private final Method[] enhanceableMethods | |
| ENHANCERS | back to summary |
|---|---|
| private static final ClassValue<Map<BitSet, Function<String, BiFunction<Object, Object[], Object>>>> ENHANCERS Lazy association between classes and their generated enhancers. | |
| hostClass | back to summary |
|---|---|
| private final Class<?> hostClass | |
| EnhancerBuilderImpl | back to summary |
|---|---|
| pack-priv EnhancerBuilderImpl(Class<?> hostClass, Collection<Method> enhanceableMethods, Map<Method, Method> bridgeDelegates) | |
| buildEnhancer | back to summary |
|---|---|
| public Function Implements com. Doc from com. Generates an enhancer for the selected subset of methods. The enhancer maps constructor and method signatures to invokers, where each invoker is
represented as a Constructor invokers take an array of Method invokers take an enhanced instance as their context object and call the original super-method with arguments unpacked from the argument array, ie. provides super-invocation.
| |
| doBuildEnhancer | back to summary |
|---|---|
| private Function | |
| getEnhanceableMethods | back to summary |
|---|---|
| public Method[] getEnhanceableMethods() Implements com. Doc from com. Lists the methods in the host class that can be enhanced. This always includes public and protected methods that are neither static nor final. Package-private methods can only be enhanced if they're in the same package as the host
and we can define types in the same class loader with Unsafe. The
| |