Package net.sf.cglib.proxy
package net.sf.cglib.proxy
-
ClassDescriptionUses bytecode reflection to figure out the targets of all bridge methods that use invokespecial and invokeinterface, so that we can later rewrite them to use invokevirtual.All callback interfaces used by
Enhancer
extend this interface.Map methods of subclasses generated byEnhancer
to a particular callback.DispatchingEnhancer
callback.Generates dynamic subclasses to enable method interception.The idea of the class is to cache relevant java.lang.reflect instances so proxy-class can be instantiated faster that when usingReflectUtils.newInstance(Class, Class[], Object[])
andEnhancer.setThreadCallbacks(Class, Callback[])
Internal interface, only public due to ClassLoader issues.All enhanced instances returned by theEnhancer
class implement this interface.Enhancer
callback that simply returns the value to return from the proxied method.Generates new interfaces at runtime.InvocationHandler
replacement (unavailable under JDK 1.2).Lazy-loadingEnhancer
callback.General-purposeEnhancer
callback which provides for "around advice".Classes generated byEnhancer
pass this object to the registeredMethodInterceptor
objects when an intercepted method is invoked.Mixin
allows multiple objects to be combined into a single larger object.Methods using thisEnhancer
callback will delegate directly to the default (super) implementation in the base class.This class is meant to be used as replacement forjava.lang.reflect.Proxy
under JDK 1.2.DispatchingEnhancer
callback.Used byProxy
as a replacement forjava.lang.reflect.UndeclaredThrowableException
.